00:00:01 -!- GOMADWarrior has quit (Read error: Connection timed out). 00:03:54 -!- monqy has quit (Quit: Lost terminal). 00:06:15 -!- monqy has joined. 00:06:32 -!- mroman has quit (Ping timeout: 255 seconds). 00:06:59 -!- elliott has quit (Ping timeout: 246 seconds). 00:07:17 -!- mroman has joined. 00:08:01 -!- sirdancealot7 has quit (Ping timeout: 246 seconds). 00:12:59 -!- elliott_ has joined. 00:23:14 I graphed the time between messages and found out that the majority of the time there is from 1 to 8 minutes between messages in this channel 00:24:23 doesthiswork: What percentage of the time is that? 00:25:06 Can you plot the time between messages on the X axis and then bars rising above on Y axis how often that is? 00:25:57 -!- nooga has quit (Ping timeout: 252 seconds). 00:26:24 -!- sirdancealot has joined. 00:27:24 http://s15.postimage.org/n5n38rmln/Rplot_page_1.jpg 00:27:38 I log transformed it before graphing 00:27:48 -!- Frooxius has quit (Ping timeout: 264 seconds). 00:27:51 so the x is powers of two 00:27:57 and the y is seconds 00:29:35 -!- nooga has joined. 00:30:16 -!- sirdancealot has quit (Excess Flood). 00:31:20 I graphed the time between messages and found out that the majority of the time there is from 1 to 8 minutes between messages in this channel 00:31:22 is that like 00:31:28 a particularly helpful metric of anythign 00:31:31 *anything 00:31:50 obviously there are going to be less long waits because you can't fit as many of them into a given day 00:32:12 it tells you how fast you should expect the conversation to go 00:32:49 I wanted to see if it was bimodal 00:33:11 you should run that on other channels you can get logs for 00:33:22 something busy maybe 00:33:31 haskell? 00:33:36 sure 00:34:22 anyway. it is time........ to sleep 00:34:26 -!- nooodl has quit (Quit: Leaving). 00:34:32 you should produce a sound file with one click per message 00:34:38 at some multiple of realtime 00:36:54 -!- tswett_ has joined. 00:37:38 -!- tswett has quit (Quit: leaving). 00:38:40 -!- tswett_ has changed nick to tswett. 00:42:45 here's haskell's plot for yesterday http://s15.postimage.org/g6i80w1ez/Rplot_page_1.jpg 00:43:18 so it peaks at... 30 seconds? 00:43:19 needs better labels :( 00:43:42 -!- Phantom_Hoover has left ("Leaving"). 00:43:45 -!- Phantom_Hoover has quit (Quit: Leaving). 00:47:36 the problem of estimating a continuous-valued hidden parameter from interarrival times is important in neuroscience 00:47:41 also probably in computer networking 00:48:17 `echo tswett 00:48:19 tswett 00:48:26 Amazing. 00:49:14 I think I'm off by a power of 2 in both 00:49:29 so they're twice as fast as I say 00:49:45 because lists in R start indexing at 1 00:50:05 * tswett Hey guys, mind if I test some stuff in here? No? Great, thanks. 00:50:18 -!- sirdancealot has joined. 00:51:02 * tswett So yes, I recently switched to a different IRC client. I'm trying stuff out. 00:51:16 It's Quassel. It's sorta like an IRC client with a bouncer built in. 00:51:17 what are you testing 00:51:21 am i already being tested?? 00:51:26 Yes. 00:51:35 D: 00:51:36 Does Quassel still freeze randomly? 00:51:37 Your test results: lavender–grape. 00:51:46 ...I'm ok with that. 00:51:49 I don't know. It hasn't frozen on me yet. 00:51:58 Maybe I should try it again at some point 00:52:22 Okay, it has an extremely minor bug: the descenders on some letters are cut off. 00:52:32 is rewriting a java chatbot in php an improvement if the original coder was shit? 00:52:41 good question 00:52:55 Is that a trick question 00:53:04 its a question of scruples 00:53:04 I think it's theoretically possible for php to be an improvement, maybe 00:53:06 a better question may be why rewrite it in php of all things 00:53:13 i hear good things about Quassel 00:53:28 obviously because the person who has the time to rewrite it is best in php 00:53:31 i use irssi in screen on ec2 via mosh 00:53:33 it's definitely possible for php code to be better than java code but 00:53:40 ec2 eh 00:53:42 urgh 00:53:45 i have all of those but ec2 00:53:48 why php why 00:53:52 Quassel seems pretty good so far. 00:54:42 quintopia: yeah, free micro instance 00:54:46 (free for a year, cheap after) 00:54:51 ah 00:54:58 i'm pretty happy with my vps 00:55:13 Bug that is minor, but not extremely so: it doesn't seem to be possible to set the color of the topic bar, so it currently appears white-on-light-gray. 00:55:15 yeah 00:55:17 -!- sirdancealot has quit (Excess Flood). 00:55:21 using EC2 as a plain always-on server is kind of silly 00:55:24 yet everyone does it 00:55:36 kmc: do you have a better plain always-on server suggestion? 00:55:46 i don't really like their management tools or the way they have funny names for everything 00:55:50 tswett: there are tons of VPS providers 00:56:06 the downside of my VPS is i can't run tor node on it 00:56:08 i hear linode and prgmr are good, for example 00:56:24 i could with prgmr but i wouldn't get as much for the price there 00:56:29 i don't recommend linode 00:56:44 they might be cheaper than EC2 if you don't need the rapid scalability and API and the high availability stuff that doesn't actually work 00:57:25 I think this micro instance is currently costing me $8 a month, though. 00:57:56 -!- DHeadshot has quit (Read error: Connection reset by peer). 00:57:59 Maybe more. I might be using more than my quota of I/O requests. 00:58:02 -!- DH____ has joined. 00:59:05 it took me a while to find a VPS provider which was compatible with me being lawful good 00:59:32 -!- sebbu has quit (Read error: Connection reset by peer). 00:59:59 -!- sebbu has joined. 00:59:59 -!- sebbu has quit (Changing host). 00:59:59 -!- sebbu has joined. 00:59:59 -!- sebbu has quit (Excess Flood). 01:00:24 -!- sebbu has joined. 01:00:24 -!- sebbu has quit (Changing host). 01:00:24 -!- sebbu has joined. 01:00:24 -!- sebbu has quit (Excess Flood). 01:00:41 -!- GOMADWarrior has joined. 01:00:49 -!- sebbu2 has joined. 01:00:49 -!- sebbu2 has quit (Changing host). 01:00:49 -!- sebbu2 has joined. 01:00:49 -!- sebbu2 has quit (Excess Flood). 01:01:15 -!- sebbu3 has joined. 01:01:15 -!- sebbu3 has quit (Changing host). 01:01:15 -!- sebbu3 has joined. 01:01:15 -!- sebbu3 has quit (Excess Flood). 01:01:22 hmm 01:01:31 I'll temp-ban him if it continues 01:01:44 but I think he's noticed something's wrong 01:01:52 -!- sebbu4 has joined. 01:01:52 -!- sebbu4 has quit (Changing host). 01:01:52 -!- sebbu4 has joined. 01:01:52 -!- sebbu4 has quit (Excess Flood). 01:02:28 -!- sebbu5 has joined. 01:02:28 -!- sebbu5 has quit (Excess Flood). 01:02:39 -!- ais523 has left (" fizzie: it makes demons fly out of my window, washing the windows api"). 01:02:39 There's a channel to point him to iirc 01:02:43 ... 01:02:50 -!- ais523 has joined. 01:03:00 hmm, the numbers keep increasing 01:04:40 maybe he should just change his name to noah 01:05:31 -!- sirdancealot has joined. 01:07:35 -!- copumpkin has quit (Ping timeout: 260 seconds). 01:08:06 -!- copumpkin has joined. 01:08:10 -!- sebbu6 has joined. 01:08:10 -!- sebbu6 has quit (Excess Flood). 01:10:25 bleh, it's slow enough at this point that it's not really problematic 01:10:30 but I'm interested in why he keeps flooding 01:15:34 Responding to server ping with an infinite loop? 01:17:01 -!- monqy has quit (Quit: hello). 01:17:07 pikhq: hmm 01:19:47 -!- sirdancealot has quit (Ping timeout: 246 seconds). 01:22:36 -!- sebbu6 has joined. 01:23:23 -!- sebbu6 has changed nick to sebbu. 01:23:36 -!- sebbu has quit (Changing host). 01:23:36 -!- sebbu has joined. 01:24:32 -!- Zerker has joined. 01:33:59 -!- sirdancealot has joined. 01:38:33 sebbu, are you here to stay? 01:42:56 Sgeo_: hey, do you have any interest in perhaps participating in a nomic that takes place in multiple IRC sessions? 01:43:15 multiple IRC sessions? 01:43:24 Is this going to be different from Canada? 01:44:05 I don't really remember Canada. 01:44:23 (IRCnomic) 01:44:26 I figure we would meet at a specific time once per week or something. 01:44:36 Ah. 01:45:17 I don't know if I can force myself to be awake at a specific time regularly 01:45:45 Does that mean that you don't know of a specific time at which you'll usually be awake? 01:46:23 -!- nooga has quit (Ping timeout: 260 seconds). 01:46:43 -!- Zerker has quit (Remote host closed the connection). 01:46:58 -!- Zerker has joined. 01:47:31 -!- zzo38 has quit (Remote host closed the connection). 01:47:50 -!- DH____ has quit (Read error: Connection reset by peer). 01:48:10 -!- DHeadshot has joined. 01:48:36 tswett, that seems accurate to say 01:50:01 -!- ais523 has quit. 01:50:59 All right. 01:51:15 Think you'd be interested in playing anyway? 01:52:02 Probably, actually. 01:52:02 -!- DHeadshot has quit (Read error: Connection reset by peer). 01:52:12 -!- DH____ has joined. 01:54:20 -!- otro_viajero7 has quit (Ping timeout: 252 seconds). 01:56:15 Going to go eat now 01:56:31 * tswett nods. 02:06:18 -!- monqy has joined. 02:07:30 -!- Arc_Koen has quit (Quit: Arc_Koen). 02:47:48 -!- esowiki has joined. 02:47:48 -!- glogbot has joined. 02:47:49 -!- glogbackup has left. 02:47:52 -!- HackEgo has joined. 02:47:52 -!- EgoBot has joined. 02:47:52 -!- esowiki has joined. 02:47:53 -!- esowiki has joined. 02:49:03 -!- Gregor has joined. 02:49:25 -!- Zerker has quit (Quit: Colloquy for iPad - Timeout (10 minutes)). 02:49:27 -!- Gregor has changed nick to Guest32646. 03:03:49 -!- Guest32646 has changed nick to Gregor. 03:09:40 -!- GOMADWarrior has quit (Ping timeout: 256 seconds). 03:27:39 -!- upgrayeddd has quit (Ping timeout: 260 seconds). 03:40:01 `slist 03:40:10 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 03:48:40 -!- upgrayeddd has joined. 04:42:53 these are the points near the tail end of the message frequency 05:14:31 -!- TeruFSX has quit (Ping timeout: 260 seconds). 05:19:35 -!- sebbu has quit (Ping timeout: 260 seconds). 05:20:01 kmc: Maybe I'd register shach.af if you registered miu.af. 05:20:20 what is that, afghanistan 05:20:31 Yes. 05:29:57 shachafghanistan 05:30:19 miuafghanistan 05:43:28 -!- doesthiswork has quit (Quit: Leaving.). 05:48:35 -!- doesthiswork has joined. 05:59:17 -!- zzo38 has joined. 05:59:33 The special state is really the one that is not quantum entanglement, isn't it? Or, did I misunderstand something? 06:00:12 zzo38: or both?????? 06:00:32 -!- sebbu has joined. 06:00:32 -!- sebbu has quit (Changing host). 06:00:32 -!- sebbu has joined. 06:01:27 I thought it is something like, if it is not quantum entangled then you can write it as the tensor product of simpler states, or something like that. But might it also differ depending on what reference they are on? 06:02:14 -!- doesthiswork has quit (Quit: Leaving.). 06:02:26 Yeah, I think that whether a state is entangled or not depends on the basis you're writing it in. 06:05:57 Like, suppose you have the state a + b, where a and b are orthogonal vectors... that's a meaningful concept, isn't it? 06:06:33 You could say a = |00> and b = |01>, and then that's the unentangled state |0> (|0> + |1>). But you could also say a = |00> and b = |11>, and then you see it as an entangled state. 06:06:44 But I feel like I'm talking out of my ass right now. 06:28:02 Okay, lemme ponder continuation passing style out loud for a little while. 06:28:22 So the idea is that "no function ever returns", is it? 06:28:44 that is a way to put it, though i'm not sure it's a good one 06:28:49 It seems like that would mean that you don't actually need to specify the return type of any function. 06:29:07 Just have a type constructor F, so that "F a" means "a function taking an 'a'". 06:29:39 sensible 06:29:47 The function (a -> b), then, just becomes something along the lines of F (a, F b). 06:31:06 So what does application look like? It seems like the expression for application is the same as it's ever been—"f x"—except now that function doesn't return anything. 06:31:56 And then it seems like to write a function taking a value x, all you'd need to write is "\x". What need is there to write the return value? 06:32:42 All right, but I feel like the whole "eventual return value of the entire thing" is going to come into play here eventually. 06:33:29 What's really happening, I suppose, is that first all function calls happen, and then all returns happen. Or something like that. 06:33:55 -!- epicmonkey has joined. 06:34:18 So eventually, this weird stack of functions is going to return *something*. Let's call the thing that it returns "the buck", and we'll say it has the type @. 06:35:03 Whenever you call a function, it returns the buck. The buck is the only thing any function ever returns. 06:35:20 So when you're writing a lambda expression, you do need to have a buck on the right hand side. 06:35:47 "F a" is a synonym of "a -> @". 06:37:13 so how would you describe a function that takes one value and then doesn't call anything, forever 06:37:51 I guess that would still be "F a", wouldn't it? That function would pretty much have to be \x -> undefined. 06:38:13 So what would the "increment" function do? I guess it would take a number, and it would also take something that needs a number. It would take its number, increment it, give it to the new function, get the buck, and pass the buck down. 06:38:21 So yeah. F (Integer, F Integer). 06:38:42 \(x, cont) -> cont (x plus one). 07:05:41 Suppose you've got an "F (a, F b)" and an "F (b, F c)", and you want an "F (a, F c)". What do you do? 07:05:42 -!- doesthiswork has joined. 07:07:55 Say those two things are called f and g. Then I guess you go like \(x, cont) -> f (x, \y -> g (x, cont)). 07:15:10 -!- FreeFull has quit. 07:57:42 -!- sirdancealot has quit (Ping timeout: 252 seconds). 08:12:26 -!- sirdancealot has joined. 08:53:09 -!- Taneb has joined. 08:59:46 quintopia: I can't give 1sec execution time 08:59:46 mroman: You have 2 new messages. '/msg lambdabot @messages' to read them. 08:59:56 quintopia: Because you could allocate all of my 80MB RAM in 1sec 09:00:11 quintopia: And that'd crash other programs because I have no swap 09:00:52 If you need more time you can use the online shell 09:00:59 that has a higher timeout and a memory limit. 09:07:09 -!- monqy has quit (Quit: hello). 09:32:34 -!- Bike has quit (Quit: leaving). 09:32:43 -!- NuclearMeltdown has quit (Ping timeout: 276 seconds). 09:34:18 -!- NuclearMeltdown has joined. 09:37:49 Is excluded middle continuations sometimes useful? 09:38:39 ? 09:41:31 I mean: Cont r (Either a (a -> Cont r b)) 09:42:25 Oh, sure, I guess. 09:43:10 do { x <- emc; ...; case emc of (Right k) -> ... (k x) ...; Left y -> ... } 09:44:29 That way you can "return to the top" with an x when you find one. 09:44:41 (But the (a -> Cont r b) case should be Left, and the a case should be Right.) 09:45:07 OK, why? 09:45:27 Because it's more "failure"y. 09:45:29 Well, maybe not. 09:45:29 @messages 09:45:29 oerjan said 12h 26m 13s ago: I suspect blsqbot is not doing the take to limit output size inside the timeout, which makes it time out because of parts it would otherwise never evaluate 09:45:29 oerjan said 12h 25m 17s ago: e.g. there's no reason why 1R@ should timeout 09:45:32 In some cases it is. 09:46:39 Well, with the Either monad, the Left side means to stop and Right means it can continue (regardless of any failure). (This doesn't necessarily mean a reason either; you could do in either order with the type I gave) 09:47:33 !blsq 1R@5.+ 09:47:34 {1 2 3 4 5} 09:49:05 > take 80 . reverse [1..] 09:49:06 No instances for (GHC.Enum.Enum [a0], GHC.Num.Num [a0]) 09:49:07 arising from a u... 09:49:11 > take 80 . reverse $ [1..] 09:49:17 mueval: Prelude.undefined 09:49:53 @tell oerjan The reason for that is you can't do take 80 . reverse [1..] in Haskell without ending in an endless loop 09:49:53 Consider it noted. 09:50:27 @tell oerjan If I were to put the take 80 outside the timeout it loops forever 09:50:28 Consider it noted. 09:51:01 You don't need to @tell oerjan 09:51:03 He just knows. 09:51:40 @tell oerjan actually the take 80 is outside the timeout now, but to prevent exactly that I use evaluate $!! 09:51:40 Consider it noted. 09:53:46 -!- NihilistDandy has joined. 09:59:36 -!- olsner has quit (Ping timeout: 252 seconds). 10:11:26 -!- olsner has joined. 10:36:05 -!- epicmonkey has quit (Ping timeout: 255 seconds). 10:42:26 -!- epicmonkey has joined. 10:43:45 -!- Frooxius has joined. 10:44:23 -!- NihilistDandy has quit (Quit: Textual IRC Client: www.textualapp.com). 10:58:05 -!- Phantom_Hoover has joined. 11:05:14 -!- nooga has joined. 11:18:09 Help 11:18:16 ok 11:18:47 I'm tempted to use a Cont monad 11:19:57 dont' 11:20:41 Phantom_Hoover: what are you doing here 11:20:42 oh 11:20:45 this isn't #-lens 11:20:50 all my channels are shifter by one 11:20:51 help 11:21:59 What have you closed 11:22:11 #haskell 11:22:19 ("its just temporary") 11:22:22 -!- oerjan has joined. 11:23:16 maybe you're turning into kmc 11:23:53 @messages 11:23:53 mroman said 1h 34m ago: The reason for that is you can't do take 80 . reverse [1..] in Haskell without ending in an endless loop 11:23:53 mroman said 1h 33m 26s ago: If I were to put the take 80 outside the timeout it loops forever 11:23:53 mroman said 1h 32m 13s ago: actually the take 80 is outside the timeout now, but to prevent exactly that I use evaluate $!! 11:24:53 -!- doesthiswork has quit (Quit: Leaving.). 11:25:19 Phantom_Hoover: I hope not. 11:25:22 @tell mroman um i don't think you understand what i am saying. you _should_ put the take 80 inside the timeout, so that only what's _printed_ affects the evaluation length. that way you can still print the beginning of infinite lists without timing out. 11:25:22 Consider it noted. 11:27:04 @tell mroman *evaluation time 11:27:04 Consider it noted. 11:35:50 Yeah, I think that whether a state is entangled or not depends on the basis you're writing it in. <-- to define entanglement, you need to have an idea of how the state divides into different objects. this limits the choice of basises, although you can still make different choices for each subobject, and afaiu it won't affect whether they're entangled 11:36:25 *bases 11:37:14 @tell tswett Yeah, I think that whether a state is entangled or not depends on the basis you're writing it in. <-- to define entanglement, you need to have an idea of how the state divides into different objects. this limits the choice of basises, although you can still make different choices for each subobject, and afaiu it won't affect whether they're entangled 11:37:15 Consider it noted. 11:37:35 -!- DH____ has quit (Ping timeout: 260 seconds). 11:38:54 Is there any kind of Curry-Howard which is involving the halting problem? 11:40:54 @tell tswett And then it seems like to write a function taking a value x, all you'd need to write is "\x". What need is there to write the return value? <-- you need to write the _continuation_ for the return value. 11:40:54 Consider it noted. 11:41:48 @tell tswett What's really happening, I suppose, is that first all function calls happen, and then all returns happen. Or something like that. <-- note that with CPS, all the function calls are tail calls, so the returns all can be TCO'ed away 11:41:48 Consider it noted. 11:42:34 people being away is so annoying :P 11:43:18 hello 11:43:23 hi elliott_ 11:43:29 -!- elliott_ has changed nick to elliott. 11:43:42 nice guy, not being away and everything 11:44:06 http://sprunge.us/gPAL 11:44:20 caption: This Is My Fucking Nickname Goddammit 11:45:26 persistent guy 11:45:36 where do you get that list? 11:45:43 guys plural going by the hostnames 11:45:48 oh right 11:45:52 I get the list because nickserv messages me every time it happens 11:45:57 aha 11:45:59 you need to set the guard thing on your nick so people get booted off after 30 seconds 11:46:23 -!- elliott has changed nick to elliott__. 11:46:26 oops 11:46:27 -!- elliott__ has changed nick to elliott. 11:46:30 that was meant to be a whois 11:46:43 oh. well i guess that would only be annoying for me, seeing as no one ever steals my nickname anyway :P 11:47:00 well I have my IRC client set up to auto-identify so it's immaterial in terms of annoying me :P 11:47:34 yeah irssi is set up that way but occasionally i cannot get to nvg and have to use webchat 11:48:29 @messages 11:48:29 oerjan said 23m 7s ago: um i don't think you understand what i am saying. you _should_ put the take 80 inside the timeout, so that only what's _printed_ affects the evaluation length. that way you 11:48:29 can still print the beginning of infinite lists without timing out. 11:48:29 oerjan said 21m 25s ago: *evaluation time 11:48:49 Ic. 11:49:42 mroman: also 100 microseconds is quite unusually low :P 11:50:47 mroman: someone suggested making some kind of queue instead, to limit the total and have a higher individual limit 11:51:54 also my first sentence above sounded grumpy, sorry. 11:55:42 100 microseconds is somewhat likely to be lower than the underlying timer resolution, depending on the implementation. (I think based on the numbers printed in those 12345-and-8 pastes suggested a resolution of 10 milliseconds, at least for getCurrentTime.) 11:55:42 fizzie: You have 1 new message. '/msg lambdabot @messages' to read it. 11:56:13 fizzie: it uses the timeout function. hm... let me look at the source of that. 11:58:06 fizzie: the timeout function _does_ take a microsecond argument. 11:58:34 oerjan: I followed that path to Control.Concurrent.threadDelay, and then to GHC.Event.Thread.threadDelay but then couldn't bother figuring out what getSystemEventManager -> registerTimeout will do. 11:58:50 oerjan: POSIX nanosleep takes a nanosecond argument, but it's not going to have a nanosecond resolution anywhere ever. 11:58:58 heh 11:59:33 Does the RTS have an option to limit memory usage? 11:59:38 fizzie: What about if you power an ATOMIC CLOCK with LINUX? 11:59:40 (for both stack and heap) 11:59:49 Then I could increase the time limit. 12:00:15 almost certainly. 12:00:54 I know there's an option for the stack. 12:01:36 -H and -K probably 12:01:53 https://www.simple-talk.com/dotnet/.net-framework/10-reasons-why-visual-basic-is-better-than-c/ 12:02:50 the RTS options seem hard to find in the manual... 12:03:08 "This option does not put a limit on the heap size: the heap may grow beyond the given size as usual." 12:03:12 that's bad :) 12:03:33 ah there 12:03:39 -M : Set the maximum heap size 12:03:45 -K : Set the maximum stack size 12:04:27 mroman: wouldn't that crash the whole bot though... 12:04:37 if triggered 12:05:00 The bot spawns the interpreter with readProcess 12:05:09 ok 12:05:37 Sgeo_, I love 6 12:05:53 (inside a catch, because else readProcess crashes if the process it executes crashes) 12:06:27 I still don't get how those functions exist in one .NET language but not another 12:08:53 "It doesn’t matter if you disagree with everything else in this article: case-sensitivity alone is sufficient reason to ditch C#! " 12:09:09 If somebody says that I stop reading immediately. 12:09:19 Well, sure. 12:09:26 ugh 12:09:29 I really hate mediawiki 12:09:30 If it doesn't matter whether you disagree with the rest of the article, why read it? 12:10:33 Also... he explains about symbols... 12:10:48 so why does VB use & for concatenate and = for compare 12:11:03 mroman: Because it was designed by a real person. 12:11:05 I'd want "Hello" concatenate "World" and 1 comparewith 1 12:11:07 mroman: Instead of an academic. 12:11:11 Yeah. 12:11:21 But why don' just use words everywhere. 12:11:26 Instead of mixing the two. 12:11:51 Obviously he thought symbols are better to read than words 12:11:52 fizzie: I think you need to add a smiley. Like so: :-) 12:11:56 Otherwise people take you seriously. 12:12:15 elliott: Well, I mean, it was direct quotation from the article, and there's no smiley there. 12:12:22 Almost, anywya. 12:12:28 By the way why do we care about this terrible linkbait article that Sgeo_ linked for no apparent reason? 12:12:32 I might have added some quotation marks though. 12:12:45 Someone linked to it in another channel 12:12:52 I have to say I was kind of surprised by the "Calculates the annual mortgage payment for a loan" function. 12:13:38 also he complains about C# IDE 12:14:05 When people don't understand the distinction between C# and Microsofts IDE I usually also would stop reading 12:14:11 if I had something better to do 12:14:44 I got sidetracked to the MSDN Visual Basic Function Reference. 12:14:56 Sgeo_: is it one of those things where it says that if you don't pass it on to ten other channels you'll die in a week 12:14:57 It's amusing because it's just a flat list without any categories. 12:15:18 elliott, what's wrong with linking to horrible articles? 12:15:45 I really hate mediawiki 12:16:07 PPmt -- "Returns a Double specifying the principal payment for a given period of an annuity based on periodic fixed payments and a fixed interest rate" -- is there right beside e.g. Mid (aka substr) and QBColor -- "Returns an Integer value representing the RGB color code corresponding to the specified [QBasic?] color number." -- it's just such a random set. 12:16:09 i hear mediawiki's 'parser' is a complete mess of regexes that nobody really knows how to fi 12:16:11 x 12:16:30 I've heard that too, and then I think I heard something about making a real parser? 12:16:30 Phantom_Hoover: pretty much 12:16:36 there are other parsers that are compatible though 12:16:41 I think the plan is to rewrite it? 12:16:53 -!- Nisstyre has quit (Ping timeout: 255 seconds). 12:16:58 i guess it's the perfect exemplar of PHP In The Real World then 12:17:14 well the code structure isn't that awful 12:17:15 NPV: "Returns a Double specifying the net present value of an investment based on a series of periodic cash flows (payments and receipts) and a discount rate." 12:17:17 I'd punch the author in the face. 12:17:22 but administrating it just makes me want to die 12:17:37 That's right next to Print. 12:18:07 I hear that those regexes are also essentially the spec for the "standard" input language 12:18:19 I would have expected there to have been some kind of a, I don't know, finance library/package/module/something. 12:18:29 MIRR: "Returns a Double specifying the modified internal rate of return for a series of periodic cash flows (payments and receipts)." 12:18:48 fizzie: is that "[QBasic?]" in the official docs? 12:18:51 You want your basic at-home accountant to be able to do things without any fuss 12:18:57 elliott: No, that's why I put it in []. 12:19:14 :( 12:19:19 Having to teach them about libraries/packages/modules/somethings will just result in lost sales 12:19:20 I was hoping they were unsure about what they actually did. 12:20:51 Deewiant: It kind of reminds me of how SQLite has a soundex() function out of the blue, in its otherwise very sparse set of functions. (Though admittedly only if compiled with SQLITE_SOUNDEX.) 12:21:22 -!- ais523 has joined. 12:21:39 PHP has soundex too! 12:21:43 ais523: hi 12:21:53 hi elliott 12:22:03 Yes, but you sort of expect that out of PHP. 12:22:07 Well, they are the default color numbers for PC; it is not specific with QBASIC, actually. 12:23:02 fizzie: In SQLite that's quite a bit more surprising. 12:23:06 zzo38: Sure, I was just going by the function name. 12:23:54 Deewiant: The documentation says SQLITE_SOUNDEX is not set by default; but I'm sure there's a story behind it anyhow. 12:24:17 zzo38: I find that those lists of colors sometimes mix up the red and blue channels 12:24:29 so color 4 might be red, or blue, depending on the system you're using and the software stack behind it 12:25:02 vanilla NetHack includes and uses it purely for the reason of discovering whether color 1 is red or blue, it ignores the whole of the rest of curses 12:25:23 nice 12:26:33 ais523: Really? That is strange. The standard PC colors have 4 as red (although with VGA this can be changed). 12:26:46 elliott: yeah, that was pretty wtf to me 12:28:30 But it is one of the problems RogueVM avoids; in RogueVM, 4 is always red (on a color display). 12:29:27 what if it's a color display that doesn't have red as one of the colors? 12:29:37 hmm… do those even exist? 12:29:51 I've made color displays that could do red, yellow, and green (but no other colors) 12:30:11 but don't think I've seen one without red, because it's the easiest color 12:30:12 ais523: I don't know, but if it is color display that doesn't have all the sixteen standard PC colors, then you have to use mono mode. 12:30:23 that makes sense 12:30:56 -!- Nisstyre has joined. 12:31:18 fizzie: I do think it was due to QBASIC, but QBASIC also just uses the PC color codes (actually, QBASIC uses bit4 as the flashing bit while PC uses bit7, so that is a difference) 12:32:16 `olist 12:32:18 And since colors in Visual Basic are not flashing colors, this is irrelevant. 12:32:19 shachaf oerjan Sgeo 12:32:40 That's more like it. 12:33:58 Sgeo_: hey i already saw that 12:34:02 -!- ais523 has quit (Read error: Connection reset by peer). 12:34:04 -!- Arc_Koen has joined. 12:34:12 -!- ais523 has joined. 12:34:13 oerjan: And you didn't tell us? 12:34:35 i thought i saw it because someone here had used `olist 12:34:53 I didn't see any olist for 871. 12:34:59 wat 12:35:16 -!- epicmonkey has quit (Ping timeout: 252 seconds). 12:35:24 um i see no 871 12:35:39 I do think that SQLITE_SOUNDEX not set by default is good idea not to include it by default. Actually it probably would be better if you just use a separate program for soundex it can define that function using the SQLite commands to create a new function. 12:35:48 oerjan: um http://www.giantitp.com/comics/oots0871.html 12:36:45 shachaf: oh, i always go to the last one i have in my browser history, then press forward... and that didn't work, nor was it listed in the sidebar. huh now it is. 12:37:22 I suppose you went to a cached version. 12:37:35 Caching: The root of all everything? 12:37:37 goddammit the sidebar is different for that link, all the others have the previous one listed 12:37:54 ? 12:37:58 shachaf: but the sidebar doesn't change when i force reload D: 12:37:58 Try reloading-without-cache. 12:38:00 Or just reloading. 12:38:06 I see 871 in the sidebar. 12:38:10 For 870 and the front page etc. 12:38:34 i see 871 in its _own_ sidebar, but not in the sidebar of comics i've already seen 12:38:47 perhaps there's caching issues at their end 12:38:54 Perhaps. 12:38:55 I see it in every sidebar. 12:39:31 I see it same as shachaf 12:40:07 the "New" button in the main comics page, which i'm sure i haven't visited for ages, points at the previous comic D: 12:40:22 my cache is only 30 days 12:41:25 ok it's 871 on the erfworld page, i guess i must have visited the main page somehow anyway 12:41:34 What browser do you use? 12:41:37 IE 8 12:41:52 Oh. 12:49:50 -!- epicmonkey has joined. 12:51:08 it _could_ still be caching issues at their end, if pages send the wrong date for when they were last changed. 12:51:30 except force reload should take care of that. hm. 12:53:22 The RSS feed for it worked well, and did not even clutter #esoteric, hint hint. 12:53:39 it did not work well for me, when i tried it. 12:54:35 fizzie: I believe the "list ship" has sailed. 12:54:52 * shachaf runs an RSS feed for olist that shows the actual comic inline rather than just a link. 12:54:56 Unfortunately I don't use RSS. 12:55:24 I used to have a Perl thing that made RSS feeds for webcomics that had no RSS feeds. 12:55:56 By regex-splonking an image out of a page, and "posting" a new "item" whenever it changed. 13:03:08 `ylist 13:03:09 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ylist: not found 13:03:26 (yafgc started updating again. yay!) 13:04:34 after a 3 week hiatus 13:04:42 `elist 13:04:43 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: elist: not found 13:04:54 that's a list of people who want to be notified about new comments in #esoteric 13:04:58 the problem with it is that once you do it 13:05:01 you have to do it repeatedly, forever 13:05:07 to notify people of the fact you did it 13:05:11 scary stuff 13:05:42 -!- epicmonkey has quit (Ping timeout: 252 seconds). 13:07:43 ok since I'm going to change the bot I might as well add suggested stuff 13:08:01 Any suggestions besides ng (Negate = -1?*)? 13:08:07 I guess it's for the best that the elist is empty 13:11:55 -!- epicmonkey has joined. 13:12:49 i dob't get this whole burlesque 13:12:54 don't* 13:13:27 `run echo echo elliott >bin/elist; chmod +x bin/elist 13:13:31 No output. 13:13:32 ais523: I have subscribed 13:14:02 elliott: oh dear 13:14:03 nooga: What's there not to get? 13:14:07 I put you in charge of notifying people 13:14:16 ais523: no 13:14:21 alternatively we could `revert it 13:14:23 oh hm 13:14:26 right, I accept the duty 13:14:32 and since I now have op approval, 13:14:33 `elist 13:14:34 elliott 13:14:36 `elist 13:14:37 elliott 13:14:38 `elist 13:14:39 elliott 13:14:41 `elist 13:14:42 elliott 13:14:43 `elist 13:14:44 elliott 13:14:45 `elist 13:14:46 elliott 13:14:47 `elist 13:14:48 elliott 13:14:50 `elist 13:14:51 elliott 13:14:53 `elist 13:14:54 elliott 13:14:55 `elist 13:14:57 elliott 13:14:58 `elist 13:14:59 elliott 13:15:04 ais523: you should kick yourself for this, btw 13:15:05 `elist 13:15:06 elliott 13:15:08 `elist 13:15:09 elliott 13:15:12 `elist 13:15:13 elliott 13:15:15 `elist 13:15:16 elliott 13:15:19 `elist 13:15:20 elliott 13:15:21 elliott: I'm waiting to see when you get bored 13:15:22 elliott: No, you should kick yourself for this, btw. 13:15:22 `elist 13:15:23 elliott 13:15:29 zzo38: that's tricky 13:15:31 also you should be posting the `elist in bunches of five now because it grows with each comment 13:15:32 if ais523 ops me I could do it 13:15:37 ais523: I'm rate-limiting! 13:16:01 ais523: OK, how about this: you op me, and I'll kick both of us 13:16:21 that… seems like potentially a bad idea 13:16:49 (temporarily) 13:16:55 ais523: well, it's not a worse idea than `elist spam continuing, right? 13:17:05 yeah but you stopped 13:17:15 ais523: only for these diplomatic negotiations! 13:17:30 `run while 1; do elist; od 13:17:32 bash: -c: line 1: syntax error: unexpected end of file 13:17:35 hmph 13:17:38 oerjan: "done" 13:17:43 `run while 1; do elist; done 13:17:45 bash: 1: command not found 13:17:48 eek 13:17:55 `run while true; do elist; done 13:18:07 ais523: OK, how about this: I put you on the elist so that it's even more annoying, thus making opping me so that I can kick both of us better in comparison 13:18:15 this seems not to work 13:18:18 elliott: but the lists don't work like that 13:18:26 elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ 13:18:30 ah 13:18:36 ais523: well, I have no idea how the lists work any more 13:18:54 elliott: I DID AN INFINITE AMOUNT, IT'S OK NOW 13:19:30 oerjan: but there have been fewer than infinity comments 13:19:30 oerjan: no, you fool, now I have to run elist an infinite number of times to notify about the infinite messages 13:19:32 now you have to delete some 13:20:11 elliott: no, it was just one comment, that was the clever bit 13:20:28 !blsq "noog")<-zi).* 13:20:28 {ERROR: Burlesque: (.*) Invalid arguments! {0 'N} ERROR: Burlesque: (.*) Invalid 13:20:30 yeah, oerjan is correct here 13:20:42 !blsq "noog")<-ziU[ 13:20:42 "OOOGGG" 13:20:47 hmm 13:20:50 well, what ais523 said 13:20:58 !blsq " NoOg")<-ziU[ 13:20:59 "nOOoooGGGG" 13:21:13 anyway I still maintain that I ais523 should op me so I can kick us, if only because I cannot disobey zzo38's order to kick myself 13:21:18 s/the second I // 13:22:31 !blsq 1 2 3 4 #s^^bx++ 13:22:31 {4 3 2 1} 13:22:39 -!- DHeadshot has joined. 13:22:47 If you cannot obey and you cannot disobey, then what is it? 13:22:47 huh 13:22:54 oh 13:22:57 !blsq 1 2 3 4 #s^^bx_+ 13:22:58 {4 3 2 1 {4 3 2 1}} 13:23:46 zzo38: that's life, at least for me 13:24:21 alternatively oerjan can do it. 13:24:28 oh yeah. I wanted to add a tuple like command. 13:24:35 !blsq {1 2}{1 2}_+ 13:24:35 {1 2 1 2} 13:24:50 if you'd want {{1 2}{1 2}} you'd need to box twices 13:24:55 !blsq {1 2}bx{1 2}bx_+ 13:24:56 {{1 2} {1 2}} 13:25:04 -s 13:25:55 oh hm this is wrong because it's reversed 13:26:22 mroman: i wasn't trying to do that, i wanted to see how to get a copy of the stack _without_ removing the rest. 13:26:30 s/the rest/it/ 13:26:48 !blsq 1 2 3 4 #s^^bx\/_+#S 13:26:48 {4 3 2 1} 13:27:15 !blsq 1 2 3 4 #s^^bx\/_+#S++#s 13:27:15 {10 4 3 2 1} 13:27:28 Hm? 13:27:37 Doesn't #s do exactly that? 13:27:52 no, #s removes the original stack afaiu 13:27:58 No it does not. 13:28:19 yes it does. 13:28:49 !blsq 1 2 3 4 #s 5 \/ #S#s 13:28:49 {4 3 2 1} 13:28:55 or does it... 13:29:08 It does not. 13:29:10 good grief 13:29:15 blsqbot just prints the top element 13:29:19 !blsq 1 2 3 4#s#s 13:29:20 {{4 3 2 1} 4 3 2 1} 13:29:25 ^- that's your stack. 13:29:27 ok then 13:29:44 how then _does_ one remove the whole stack? 13:29:48 except the top element 13:30:04 http://eso.mroman.ch/cgi/burlesque.cgi?q=1+2+3+4%23s <- see here 13:30:07 oerjan: Hm.. 13:30:20 #s tail #S? 13:30:38 hm no 13:30:46 #s head bx #S 13:31:01 !blsq 1 2 3 4#s-]bx#S 13:31:01 4 13:31:03 !blsq 1 2 3 4#s-]bx#S#s 13:31:04 {4} 13:31:09 ^- deletes everything except the 4 13:31:21 oh wait #S _does_ delete the rest of stack? 13:31:31 #S overwrites the stack, yes. 13:31:46 ok then i had them sort of backwards :P 13:32:04 #s pushes the stack to the stack 13:32:14 #S pops a block from the stack and replaces the _whole_ stack with it 13:34:00 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 13:34:02 !blsq 1 2 3 4 bx{\/+]}{\/isn!}w! 13:34:02 {1 2 3 4} 13:34:06 !blsq #Q^^#s 13:34:06 {{^^ #s} {^^ #s}} 13:34:24 !blsq 1 2 3 4 bx{\/+]}{\/isn!}w![~ 13:34:25 4 13:34:36 ^- that would also delete everything except the top element 13:34:45 i think we discussed something resembling #Q for an underload variation 13:36:50 It'd be interesting to see what #q #Q #q and #Q could do 13:36:54 eh 13:37:01 *#q #Q #j #J 13:37:38 !blsq 1 2 3 4bx#S"simpler, no?"vv 13:37:38 4 13:38:24 Maybe #q#Q#s#S^^ are enough for tcness 13:39:14 Or #q#Q#j#J#s#S^^ 13:39:34 (see at the bottom of http://mroman.ch/burlesque/lref.html) 13:40:00 i'm a bit worried how #Q would be useful if you have no kind of tail operation 13:40:20 mroman: do you have some sort of programming manual for blsq? 13:40:20 oh hm wait 13:40:38 nooga: Besides http://mroman.ch/burlesque/lref.html no. Not yet. 13:40:38 #S#S can be used for that 13:40:48 and the tutorial 13:40:55 http://mroman.ch/burlesque/tutorial.html 13:41:05 ah 13:41:14 i couldn't get there from the main page 13:41:24 consider redesigning the page :D 13:42:38 what 13:42:42 there is a link right there 13:42:52 http://mroman.ch/burlesque 13:42:58 Second link in the "Contents" 13:43:18 -!- DHeadshot has quit (Read error: Connection reset by peer). 13:43:34 -!- DHeadshot has joined. 13:46:40 How often are you writing a program that addition, bitwise OR, bitwise XOR, are always going to be the same result in that case? Furthermore, where subtraction, bitwise AND NOT, bitwise XOR? 13:46:54 !blsq 1 2 {+} #j 13:46:54 ERROR: (line 1, column 7): 13:46:59 !blsq 1 2 {+} e! 13:46:59 ERROR: (line 1, column 7): 13:47:06 bah 13:47:10 !blsq 1 2 {.+} e! 13:47:10 3 13:47:15 !blsq 1 2 {.+} #j 13:47:15 3 13:47:25 mroman: i think #j = e! perhaps? 13:49:02 Not quite. 13:49:10 !blsq {#Q5 5.+}e! 13:49:10 10 13:49:22 !blsq {5 5#Q.+}e! 13:49:22 {.+} 13:49:50 ...this is relevant how? 13:49:57 Well 13:50:08 inside an eval #Q only sees the code inside that eval 13:50:21 oh evil 13:51:11 i.e e! calls recursively the internal eval loop 13:51:25 while #j modifies the code of the current eval loop 13:51:34 *eval function 13:52:35 !blsq {#Q5 5.+}e! 13:52:36 10 13:52:41 !blsq {#Q5 5.+}#j 13:52:41 10 13:52:51 !blsq {#Q5 5.+}#j5 6.+ 13:52:52 11 13:52:55 !blsq {#Q5 5.+}#j5 6.+#s 13:52:56 {11 10 {5 5 .+ 5 6 .+ #s}} 13:53:01 !blsq {#Q5 5.+}e!5 6.+#s 13:53:01 {11 10 {5 5 .+}} 13:53:07 right 13:55:38 !blsq #Q#Q#j#J#s#S#S#q 13:55:39 No output! 13:55:46 !blsq #Q#5Q#j#J#s#S#S#q 13:55:46 ERROR: (line 1, column 4): 13:55:52 !blsq #Q5#Q#j#J#s#S#S#q 13:55:52 5 13:55:56 !blsq #Q5#Q#j#J#s5#S#S#q 13:55:56 -!- ais523 has quit (Ping timeout: 252 seconds). 13:55:57 5 13:56:02 !blsq #Q5#Q#j#J#s5#S#S#q#s 13:56:03 {5 #Q #j #J #s 5 #S #S #q #s} 13:56:09 !blsq #Q5#Q#j#J#s5#S#S#q#se! 13:56:10 Ain't nobody got time fo' dat! 13:56:21 !blsq #Q5#Q#j#J#s5#S#S#q#s#j 13:56:22 Ain't nobody got time fo' dat! 13:56:36 I haven't gotten the hang of it yet :) 13:56:48 mroman: anyway ^^{}#j are TC by my previous underload :()^ experiments (j# and e! are equivalent in that case) 13:58:23 :()^ is tc 13:58:27 yes 13:58:36 Yeah. 13:58:45 It was already known that you can translate underload to burlesque 13:58:51 see the faq page 14:00:02 i know, it's also on the wiki 14:01:03 also i'm pretty sure i was around when the translation was developed 14:01:52 back then burlesque was much simpler, iirc 14:02:38 then it went off in a completely different direction 14:09:01 -!- carado has joined. 14:11:59 -!- boily has joined. 14:24:00 Does anyone have the "addition and then inverting the high bit" instruction? 14:37:58 !blsq 1 2 3 4 #s#q 14:37:58 1 14:38:14 !blsq 1 2 3 4 #s 14:38:14 {4 3 2 1} 14:38:24 hm #s reverses but #q doesn't 14:38:53 !blsq 1 2 3 4 #s#S#s 14:38:53 {4 3 2 1} 14:40:20 #Q 1 2 3 4 14:40:26 !blsq #Q 1 2 3 4 14:40:26 4 14:40:58 !blsq #Q 1 2 3 4#s 14:40:58 {4 3 2 1 {1 2 3 4 #s}} 14:43:24 !blsq #Q #S #s 14:43:24 {#S #s} 14:43:59 !blsq #Q #S 1 #s 14:43:59 {1 #S 1 #s} 14:50:23 -!- oklopol has joined. 14:52:39 !blsq {#s}#S 1 2 3 4#s 14:52:39 {4 3 2 1 #s} 14:53:00 !blsq {#s}#S 1 2 3 4#s #q 14:53:01 {1 2 3 4 4 3 2 1 #s} 14:55:48 the more I see you all playing with burlesque, the more it reminds me of ursala: lists and numbers and cryptic tense manipulations on them. 15:00:18 -!- NihilistDandy has joined. 15:00:26 -!- epicmonkey has quit (Remote host closed the connection). 15:04:45 -!- oerjan has quit (Quit: leaving). 15:12:14 I want this statement to be false. 15:12:48 I hope for your sake that it was 15:13:34 -!- epicmonkey has joined. 15:18:24 !blsq "boily"sur@ 15:18:24 Ain't nobody got time fo' dat! 15:18:27 !blsq "boily"su 15:18:27 {"b" "i" "l" "o" "y" "bo" "il" "ly" "oi" "boi" "ily" "oil" "boil" "oily" "boily" 15:18:45 !blsq "boily"su\[ 15:18:45 "biloyboillyoiboiilyoilboiloilyboily" 15:19:41 !blsq "foo"su\[ 15:19:42 "fofooofoo" 15:19:47 !blsq "foo"su\[2co 15:19:47 {"fo" "fo" "oo" "fo" "o"} 15:19:52 !blsq "foo"su\[2CO 15:19:53 {"fo" "of" "fo" "oo" "oo" "of" "fo" "oo"} 15:19:55 !blsq "foo"su\[2CO\[ 15:19:56 "fooffooooooffooo" 15:20:00 !blsq "foo"su\[2CO\[su\[ 15:20:00 Ain't nobody got time fo' dat! 15:20:13 !blsq "foo"2CO\[su\[ 15:20:13 "fofooofooooofooo" 15:20:25 Having fun, mroman? 15:21:41 A littl. 15:22:19 oh neat a list all substrings command. no end of possibilities for golfing that 15:25:34 zzo38: which statement? 15:26:13 mroman: \[? 15:27:22 -!- cuttlefish has joined. 15:28:33 boily: concat 15:29:51 obviously. 15:30:20 -!- aloril has quit (Ping timeout: 276 seconds). 15:32:08 What was that bijection between pairs of naturals and naturals that I knew a long time ago... 15:32:32 -!- GOMADWarrior has joined. 15:32:48 boily: I mean the "I want this statement to be false" statement. 15:33:22 zzo38, either you do, which means it isn't which is bad 15:33:30 Or you don't, which means it is, which is meh 15:33:33 zzo38: no matter how much you want it to be false, it will still be true 15:34:04 however, perhaps if you stop wanting it to be false, it might be false, but then you don't want it to be, so who cares? 15:34:34 I realized all that stuff 15:34:50 Taneb: something to do with the cardinality of rationals? 15:34:52 did you stop wanting it to be false 15:35:01 or do you still want it to be false 15:35:01 boily, perhaps 15:36:19 quintopia: Actually I don't care, I just wanted to write such a statement. 15:38:43 aha! so you have succeeded! it is false! 15:44:23 -!- aloril has joined. 15:52:05 parsing confusing statements quiz #1: rephrase the statement "The running time of algorithm A is at least O(n^2)." in your own words. 15:53:56 durr, the algorithm A, on an input of size n, takes at least at most n^2 steps 15:57:04 -!- aloril has quit (Ping timeout: 256 seconds). 15:57:26 more precisely, there exist C, n_0 > 0 such that on an input of size n > n_0, the algorithm takes at least m steps for some m < C*n. 15:58:17 which is probably useful in theoretical obfuscation contests 15:58:23 huh 15:58:28 oklopol: I believe you mean C * n^2 15:58:32 yes 15:58:34 sorry 15:58:35 i still like my interpretation better 15:58:39 they are equivalent though 15:58:47 since it has actual usefulness 15:58:54 what was yours 15:59:04 oklopol: hardly equivalent 15:59:09 oh? 15:59:11 oklopol: you described O(n) 15:59:16 i did? 15:59:19 yes 15:59:24 i thought i described that the algorithm takes any amount of steps 15:59:34 choose m = 0 15:59:35 I mean that your definition was of O(n) 15:59:46 oh, at least 15:59:54 "the best upper bound we can place on algorithm A's running time is quadratic in n, but we don't know whether the upper bound is actually worse than that" 16:00:06 -!- nooodl has joined. 16:00:11 quintopia: what does that mean? 16:00:36 coppro: the joke is O(n^2) is an upper bound. so saying at least O(n^2) doesn't make any sense usually. 16:00:39 oklopol: yeah, what you said makes no sense 16:00:43 oklopol: oh haha 16:00:53 i thought that was quintopia's point 16:00:56 quintopia: big-O isn't the best upper bound 16:01:00 oklopol: Probably. I missed it 16:01:16 \Omega(n^2) is at least, up to a constant 16:01:42 -!- epicmonkey has quit (Ping timeout: 252 seconds). 16:01:54 coppro: something like "we found a special type of input where the algorithm is guaranteed to take quadratic time, but the algorithm is really complicated, and there might be some other kind of input that takes cubic time or worse. so, we don't actually have an upper bound, but when we do, we know it will be O(n^2) or worse" 16:01:57 No, Omega is a lower bound 16:02:02 you need \Theta for that 16:02:08 quintopia: haha 16:02:31 \Theta is the least upper bound and also the greatest lower bound 16:02:39 since they are its actual asymptotic behaviour 16:02:44 quintopia: that's \Omega(n^2) essentially 16:02:47 well. 16:02:50 not at all. 16:02:55 yeah not at all :P 16:02:56 i dunno if there's a compact way to say that 16:04:08 "not O(n^(2-\epsilon)) for any \epsilon > 0"? 16:04:33 i think people say things like that 16:05:44 that means there is a constant C such that there are inputs of arbitrarily large size n such that the algo takes more than C*n^2 steps on them 16:06:05 hmm. 16:06:13 still not quite right. 16:06:24 the latter is stronger 16:10:15 -!- aloril has joined. 16:23:15 I seem to recall it had something to do with the triangle numbers 16:33:40 AHA 16:33:43 http://en.wikipedia.org/wiki/Cantor_pairing_function#Cantor_pairing_function 16:34:23 -!- c00kiemon5ter has joined. 16:36:37 Just remembered a bit of norn cruelty I wanted to do but haven't gotten around to 16:37:15 Something that messes up their brain so much that it's practically scrambled 16:37:21 I forget the details of how it would work though 16:38:48 Actually, I think I have dabbled with that a bit 16:49:33 Okay, this is probably the oddest SK calculus interpreter I've written 16:56:18 SKK is encoded as 740 16:56:24 No 16:56:26 That's SKKK 16:56:31 SKK is 37 17:10:42 -!- sirdancealot has quit (Read error: Connection reset by peer). 17:23:34 Heh, it's reached Double-y errors 17:23:41 -!- FreeFull has joined. 17:24:40 Okay, I don't need Double 17:27:55 -!- sirdancealot has joined. 17:29:35 Okay, there is a bug in this program that means that it doesn't work for big numbers or something 17:33:13 -!- zzo38 has quit (Remote host closed the connection). 17:42:44 Aha! 17:42:46 Success! 17:53:53 Taneb: I am intrigued by your SKing. 17:56:39 -!- DHeadshot has quit (Read error: Connection reset by peer). 17:56:44 -!- DH____ has joined. 18:03:12 -!- variable has changed nick to constant. 18:05:24 -!- augur has quit (Read error: Connection reset by peer). 18:06:46 -!- NihilistDandy has quit (Quit: Computer has gone to sleep.). 18:11:10 boily, let me write a parser 18:16:45 why is fungot not here? 18:17:36 fizzie: fungot!! 18:18:20 boily, http://hpaste.org/83052 18:18:28 It's my usual standard of code, I'm afraid 18:22:25 doesn't seem that bad 18:24:33 fizzie: FUNGOOOOOOOOT! *with cute eyes and a pretty please* 18:26:27 the code is fine. the actual computation is esoterically cringeworthy, with an aftertaste not unlike a good hot sauce with balanced seasoning and smoked peppers. 18:27:40 Taneb, you're not using code 0 :-( 18:27:58 tromp_, leads to problems with pair/unpair 18:28:03 Because pair 0 0 is 0 18:30:07 wow that parseSK function looks like magic 18:30:25 you can use code(S)=0, code(K)=1, code (M N) = pair (code(M),code(N)) + 2 ?! 18:31:19 I'd rather not, tromp_ 18:31:46 nooodl, I can't tell whether you're being sarcastic, don't know the parsec library, or it actually is magic 18:31:56 i don't know parsec 18:32:07 or use bitstring as codes, then all simplifies to code(S)=00, code(K)=01, code (M N) = 1 code(M) code(N 18:32:30 but it looks different from most parsec things i've seen 18:32:48 nooodl, that may be because it's stupidly simple and also written by me 18:33:07 tromp_, that doesn't feel right to me 18:34:22 that feels great to ne, it leads to much smaller codes for unbalanced expressions, like SSSSSSSSSSSS 18:34:28 Or at least not in the spirit of this design 18:34:39 (it is designed to be ridiculous) 18:35:03 your codes will be of exponential size in that case 18:35:30 tromp_: I don't see any impediments caused by that :p 18:35:36 -!- NihilistDandy has joined. 18:36:26 it's just funny that you end up using bitstrings to represent the necessary bignums:) 18:37:01 that reminds me I had this not quite optimal meteorological parsec abuse lying around on my drive: http://hpaste.org/83054 18:37:01 -!- KingOfKarlsruhe has joined. 18:37:10 -!- NihilistDandy has quit (Client Quit). 18:37:12 s/parsec/attoparsec/ 18:37:23 nooodl: maybe you're unfamiliar with the applicative operators like (*>) 18:37:36 anyway that's a nice concise parser :) 18:38:37 tromp_, in theory, the actual low-level implementation could be on a ternary or decimal computer 18:38:40 what's a lightweight easy-to-install ftp server 18:38:41 i'm not familiar with (*>) but i somewhat understand Applicative 18:39:02 (*>) is (>>) but for Applicatives 18:39:06 They are actually the same 18:39:34 Assuming ap = (<*>) and non-stupid Monad and Applicative instances 18:39:41 -!- AnotherTest has joined. 18:39:51 !blsq "Hi" 18:39:51 "Hi" 18:40:15 boily: what is attoparsec in feet please 18:40:26 `frink attoparsec -> feet 18:40:38 0.101236141118954362 18:40:51 1 attoParsec = 0.101236141 feet (17⁄32 inch) 18:40:51 Taneb: p *> q = (\x y -> y) <*> p <*> q 18:40:52 `frink attoparsec -> inches 18:40:57 er 18:41:02 Taneb: p *> q = (\x y -> y) <$> p <*> q 18:41:02 1.2148336934274523439 18:41:03 er 18:41:05 nooodl: p *> q = (\x y -> y) <$> p <*> q 18:41:06 (1 and 7/32 inch) 18:41:27 ~duck attoparsec 18:41:28 Software description: a fast Haskell library for parsing ByteStrings (Haskell). 18:41:30 and p <* q = (\x y -> x) <$> p <*> q? 18:41:49 boily you are off by almost .004!!!!!!!!! 18:41:53 nooodl: yeah 18:41:56 how could you be so careless 18:42:07 nooodl: so p *> q <* r does p then q then r and returns the result of q 18:42:13 Not quite, it's p <* q = (\x y -> y) <$> q <*> p 18:42:44 I think 18:42:51 hmm 18:43:02 is (p <* q) == (q *> p) 18:43:05 Oh no 18:43:10 Taneb: I was right 18:43:10 I'm wrong 18:43:16 quintopia: not my fault, I blindly was reporting what google said. and, as the great tetrachromatic logo in the sky said, Google is the Truth® 18:43:27 The other methods have the following default definitions, which may be overridden with equivalent specialized implementations: 18:43:30 u *> v = pure (const id) <*> u <*> v u <* v = pure const <*> u <*> v 18:44:00 @let p <** q = (\x y -> y) <$> q <*> p 18:44:03 Defined. 18:44:23 nooodl: (<*) is not flip (*>), no 18:44:27 > [Just 3 <* Nothing, Just 3 <** Nothing, Just 3 <* Just 4, Just 3 <** Just 4] 18:44:31 [Nothing,Nothing,Just 3,Just 3] 18:44:31 because (p *> q) and (p <* q) both do p first 18:44:35 (and q second) 18:44:38 they differ in which result they take 18:45:11 > [("hello", 1) <* ("world" 1), ("hello", 1) <** ("world", 1)] 18:45:14 The function `"world"' is applied to one argument, 18:45:14 but its type `[GHC.Type... 18:45:19 nice 18:45:22 > [("hello", 1) <* ("world", 1), ("hello", 1) <** ("world", 1)] 18:45:24 [("helloworld",1),("worldhello",1)] 18:45:34 ohh 18:45:50 -!- augur has joined. 18:46:05 -!- DH____ has quit (Read error: Connection reset by peer). 18:46:09 (there's an Applicative instance for (,) a? huh) 18:46:28 -!- DHeadshot has joined. 18:46:35 If a is a Monoid, yeah 18:46:37 also looks like a needs to be a monoid 18:46:41 aw yeha 18:46:50 > (Sum 2, 1) *> (Sum 3, 1) 18:46:51 (Sum {getSum = 5},1) 18:47:02 (a,f) <*> (b,x) = (a <> b, f x) 18:47:06 pure a = (mempty,a) 18:47:12 also a monad, the writer monad 18:47:23 join (a,(b,x)) = (a <> b, x) 18:47:32 i was thinking this kinda looked like writer 18:47:35 (a,x) >>= k = let (b,y) = k x in (a <> b, y) 18:47:42 (,) w = Writer w, just like (->) r = Reader r 18:47:43 but i wasn't sure; writer is the chapter where i last stopped reading lyah 18:47:54 you can use it e.g. for logging 18:49:11 sometimes i give up on lyah because i'm dumb. i keep having to reread everything about Applicatives and Monads 18:49:21 at some point in time i understood them fairly well though! 18:50:05 i remember reading a thing about how lyah would get exercises at some point in time, which would be really useful. however they're still not there, and i doubt they'll ever be 18:50:48 Isn't the text of LYAH some Creative Commons license? 18:51:21 Taneb: it's under a CC-BY-NC-SA 3.0. 18:51:48 man, i wonder if i would've had an easier time learning haskell concepts if it was my first programming language 18:52:36 You woudn't realise you needed to learn them 18:59:10 NC licenses :( 19:00:09 the definition of "commercial" is super slippery and is enough to scare off many reasonable uses 19:00:22 people apply NC as a "don't sell this thing i also want to sell" clause and don't realize what they're getting into 19:01:34 what's the issue with NC licenses 19:01:49 can i use drawings from LYAH in a talk at a conference which costs money to attend? can I use excerpts of LYAH on my blog where I also make money from ads? 19:01:50 Maybe you can write a "Less Commercial" clause and send it to the CC people 19:01:53 (not my blog, but hypothetical) 19:01:56 Taneb: IANAL 19:02:11 the answers to these questions may well be "yes", and you can certainly ask the author for special permission 19:02:30 but the actual licenses text is vague enough to provide serious stop energy to such uses 19:02:55 mroman: is there any place where I can download the burlesque bot? 19:03:11 only rarely is the ground truth of a judge's ruling invoked. mostly contract law affects the world through various lawyers reading it and making judgements about the relative degree of risk of this or that clause 19:03:20 hmm, the "money from ads" example is interesting 19:03:29 and the lawyers are paid to cover asses 19:03:41 AnotherTest: My repository 19:03:50 mroman: alright 19:03:55 blsqirc.hs and blqsirci.hs 19:03:56 so maybe I can read the CC-NC text and claim it clearly allows publishing on a blog with ads, but $BIGCORP lawyer probably won't, and honestly they're the expert and not me 19:03:56 Should probably have looked first 19:04:03 programmers often fail to appreciate that this is how contract law works 19:04:06 blsqirc.hs is the bot 19:04:13 and blsqirci.hs is the interpreter the bot calls 19:04:18 "You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation." 19:04:59 so now a lawyer has to think about whether it's worth risking the chance that their use is later determined to be "primarily intended for or directed toward commercial advantage" 19:05:09 it's really about uncertainty more than anything else 19:05:32 the less certain a license's terms are, the more it will prevent use 19:06:35 "I remember when legal used to mean lawful, now it means some kind of loophole." -- Leo Kessler (Charles Whiting) 19:08:03 http://stackoverflow.com/questions/15070881/logical-relational-expression-optimization/ 19:08:05 Wtf 19:08:09 look at the accepted answer 19:08:19 that's just ridiculous 19:08:44 as if that optimization is 1) even worth it 2) even an actual optimization 19:09:06 hahaha 19:09:15 why would you write that, jesus 19:09:40 well the optimisation saves a branch 19:09:43 "Optimization is not from the compiler's point of view." 19:09:45 what... does that mean 19:09:47 though perhaps it makes branch prediction worse 19:10:21 std::cin is like really fast 19:10:32 kmc: "optomization" 19:10:34 well at least the accepted answer looks at actual assembly output by an actual compiler 19:10:38 really optimozed 19:10:43 Shouldn't any compiler just generate one branch? 19:10:46 unlike the third answer which is more like "pulled out of ass" assembly 19:11:03 ok probably not should but could 19:11:05 I'd use this: a > max(b,c) – MatheusOl 19:11:05 so they're only committing two of the 3 cardinal sins of C optimization 19:11:07 wow nice 19:11:14 kmc: yeah, but it would be more optimal to use the asm keyword right? 19:11:23 most optimalerest 19:11:33 i don't see why the stdin is relevant 19:11:45 -!- monqy has joined. 19:11:46 it isn't 19:11:48 hi monqy 19:11:58 hi nooodl 19:12:38 hows gs2 19:12:48 I really wonder what kind of people go on stack overflow answering questions with crap like that 19:12:56 i'm planning to rewrite the whole thing 19:13:01 and make it "compiled" 19:13:06 i don't see how the accepted answer is crap 19:13:09 i support rewriting... 19:13:13 a>max(b,c) .... cmp, cmov, cmp, jmp 19:13:17 it proposes some code that answers the question asked and gives evidence to support the code 19:13:34 4 uops, while the accepted answer is also 4 19:13:37 perhaps it is not actually an optimisation for some reason but I see no reason it's a crap answer even if it's a wrong one 19:13:42 so, about the same I guess? 19:13:48 Fiora: that's also wrong though (it's (a > b) && (a > c)) 19:13:55 erm, min() then 19:14:01 yeah 19:14:04 (same ops though) 19:14:15 elliott: Yes, you may have a point there. The question is probably the worst part of the whole thing. 19:14:21 * ion reads the Stack Overflow page and laughs. 19:14:31 yes the question is pretty awful 19:14:46 someone answer "(a > b) || (a > c)" 19:14:54 perhaps I am biased from having answered worse ones 19:15:10 I'm surprised it didn't get down-voted actually 19:15:29 (the three sins are: assuming C is "close to the machine", assuming the machine is an in-order single-unit processor with no cache, and NOT FUCKING RUNNING THE FUCKING THING) 19:15:30 i don't want to downvote it, it feels rude 19:15:43 i don't have enough SO rep for that it feel Just 19:16:03 nooodl: That's a>min(b,c) 19:16:52 (what's that a response to) 19:17:00 19:14:46 < nooodl> someone answer "(a > b) || (a > c)" 19:17:16 that was the question 19:17:27 oh no we're talking about this SO post where someone asked "optimize (a>b)||(a>c) for me" 19:18:40 now i'm reading shitty SO questions... 19:18:42 http://stackoverflow.com/questions/15074624/how-can-i-make-a-program-determine-whether-or-not-the-input-is-an-int-in-python 19:19:15 nooodl: I'm not even clicking on that. sounds painful. 19:19:23 nooodl: In haskell I'd do it with a fold 19:19:35 boily: you should see the example code... 19:19:36 No idea about what the idiomatic thing is in python, list comprehension? 19:19:43 Can python list comprehensions do folds? 19:19:57 reduce(), sum(), any(), all() 19:20:00 python has a 'reduce' function which is a fold 19:20:01 Ah, top answer is good 19:20:10 Reduce apparently isn't idiomatic 19:20:12 Or something 19:20:17 nooodl: can you say "shmuck bait". 19:20:23 The bottom one is pretty... exceptional 19:20:31 FreeFull: python community is terrified of basic functional programming 19:20:36 guido actually just does not understand it 19:20:52 he said that Python isn't a functional language because 'map' is a library function, not like in Haskell where it's special magical built in compiler primitive 19:20:55 -_- 19:21:05 hahaha 19:21:29 well, list comprehensions are basically map. and *also* zipWith 19:21:36 and filter 19:21:39 yeah 19:21:40 Isn't everything in Haskell that isn't a keyword or doesn't have a # not a built in 19:21:54 Well, and lists and strings are built in of course 19:21:59 uh 19:22:00 numbers? 19:22:01 wait up 19:22:03 functions? 19:22:08 so first of all the # names are not part of Haskell 19:22:10 they are a GHC extension 19:22:16 nooodl: List comprehensions are the list monad but pansier 19:22:34 there are a few different kinds of 'built in' 19:22:40 kmc: Ok, so State# isn't an actual thing 19:22:48 Int and (IO t) and such are abstract data types 19:22:50 Except in GHC land 19:23:04 standard Haskell doesn't tell you what their constructors are, or let you pattern-match on them 19:23:17 FreeFull: State# is a horrible abomination and any attempt to understand IO thorugh it is doomed to massive confusion 19:23:20 hope that helps 19:23:31 i like how Bool isn't "special" 19:23:39 Lists aren't special except that they have special syntax 19:23:49 functionally equivalent to data List a = Nil | Cons a (List a) 19:24:43 kmc: Well I did mean the syntax 19:24:48 Obviously "" is syntax too 19:25:22 anyway there are at least three kinds of 'built in' 19:25:37 - thing the standard says is abstract, but it's a library in GHC and you can peek at the internals 19:25:54 - thing that looks like a library function but is implemented in GHC.Prim and so there are no Haskell internals to peek at 19:25:57 - actual special syntax 19:26:11 mroman: I hope I will be able to run this through a socks proxy so I can have it run through greenhouse. 19:26:18 iirc GHC's source code actually contains the line "data [] a = [] | a : [a]" somewhere 19:26:25 import would be the third 19:26:27 mroman: Don't worry though, it should work 19:26:40 As well as [stuff] and "stuff" 19:26:41 because it's convenient for every data type to be associated with a particular declaration on a particular line of a particular file 19:26:46 but it's not generally allowed syntax 19:27:16 Idris has any type with the constructors Nil and (:) (I think) to use [] syntax 19:27:19 GHC.Prim seems to have # stuff and -> 19:27:20 as for unboxed types like Int#, not only are they not in standard Haskell but the language semantics of standard Haskell wouldn't allow them 19:27:32 for example Haskell doesn't have any way to deal with the fact that [Int#] is illegal 19:27:51 in Haskell every type can be used as a type argument to a polymorphic thing, but in GHC this is not true for unboxed types 19:28:15 What would [Int#] even mean 19:28:23 list of unboxed integers... 19:28:32 Yeah, but implementation wise 19:28:53 a list where every (:) closure contains a machine int and a pointer to another such closure 19:28:58 you can write this type 19:29:07 Actually, I can see it work 19:29:14 data UIntList = Cons Int# UIntList | Nil 19:29:22 mroman: "readProcess "blsqirci.exe" ["--ircbot",p] """ - that looks windows 19:29:25 But it'd mean the list nodes would have different sizes depending on the type 19:29:39 if your implementation used a spare bit to tag pointers vs. words, you might allow this 19:29:51 I think each list node ends up as two pointers, assuming the list doesn't get optimised away? 19:29:53 mroman: should that give any problems, considering my haskell knowledge 19:29:56 but in general you don't want to, because you want to be able to emit polymorphic code that treats everything uniformly as heap pointers 19:30:23 FreeFull: in C++ you can do the equivalent of [Int#] because templates, rather than emitting polymorphic code, are a kind of glorified macro system that emits code specially for each type where used 19:30:40 so it's no problem that list and list have different element sizes 19:30:52 It also makes for horrific error messages 19:31:05 that's... tangentially related at best 19:33:54 -!- Bike has joined. 19:34:30 What languages have implementations that give really good error messages? 19:34:33 Probably Racket 19:34:39 clang is supposed to be very good 19:35:01 it will spit your code back at you with the problematic part highlighted and unerlined 19:35:08 i always wanted a badass type error debugger for Haskell 19:35:37 which would give you a slick way to visualize the type equations produced for your terms, and why unification fails on them 19:35:40 What packet gives me Web.Encodings for Haskell? 19:35:46 *package 19:35:53 (debian) 19:35:59 probably no debian package 19:36:13 Oh so I need to use the haskell installer thingy? 19:36:19 haskell-web-encodings-thank-you-debian 19:36:51 kmc: have you heard of type error slicing? 19:36:54 e.g. http://www.macs.hw.ac.uk/ultra/skalpel/ 19:37:27 cool 19:37:34 "libghc6-webkit-dev - Binding to the Webkit library" probably not? 19:38:20 go to hackage.haskell.org 19:38:26 kmc: I hear edwardk wrote one for Haskell once 19:38:28 and find the hackage package name using search 19:38:36 and then it's probably libghc6-whatever-dev if it exists 19:38:45 this is more likely to work than random guessing 19:39:22 http://hackage.haskell.org/package/web-encodings 19:39:23 hm 19:39:31 why does mroman use obsolete packages? 19:39:35 I was reading an interesting article about monad, 'pipes' and being a 'red pipe'. From what it seems it is saying function parameters or classes are types of pipes to make sure everything fits. Then it goes about being a red pipe and must always be a red pipe and purity. This part I didn't understand 19:39:40 Why can't a 'red pipe' become a 'blue pipe'? Can a red pipe be converted to a plain pipe? What does this have to do with purity? and can I think of this being something like class RedPipe: PlainPipe { /* same interface and implementation here*/ } ? 19:39:45 apt-get install cabal 19:39:57 nooodl: um... 19:40:01 elliott: gas up my murdering chainsaw 19:40:01 YES 19:40:02 I KNOW 19:40:02 nooodl: I got cabal 19:40:22 So I don't rally need that one 19:40:28 make sure it's the right one and not the hedge trimming chainsaw or the juggling chainsaw 19:40:40 they're all selected for the purpose 19:40:44 right tool for the right job you know 19:41:02 elliott: where's that from 19:41:09 You might not have all required modules. 'cabal install split web-encodings haskeline mtl regex-compat parsec digits statistics' should fix that. 19:41:10 AnotherTest: ^ 19:41:13 kmc: http://stackoverflow.com/questions/15068648/monads-red-pipe-different-from-type 19:41:51 nooodl:well I know I got parsec 19:42:10 I think its just web-encodings 19:42:18 it's easier to just run that entire line 19:42:20 oh and mtl 19:42:22 it'll skip over the ones you already have 19:42:29 abal: cannot configure mtl-2.1.2. It requires transformers ==0.3.* 19:42:36 This is the first time I've heard about pipes having colours 19:42:48 nooodl: For the dependency on transformers ==0.3.* there are these packages: 19:42:48 transformers-0.3.0.0. However none of them are available. 19:42:52 Great answer but I have a few more questions. Does State and IO () have a special meaning or are they user/library defined types? If i had to guess State means it modifies global variables (which I don't understand because I thought everything was read only/pure) and IO() means the data will not be the same even if the same parameters are called repeatedly. But I'm not sure why there are () after the IO. Is IO a type and () have a meaning? – Brute 19:42:55 meh, seems like cabal broke 19:43:15 elliott: owww 19:43:23 make it stop 19:43:28 elliott: I believe State is library-defined 19:43:29 * Bike watches kmc's temperature increase worryingly 19:43:33 FreeFull: .................. 19:43:36 And could be defined by an user just fine 19:43:41 elliott: at least it's not phrased in the pipe metaphor 19:43:45 this person is learning about monads lets make fun of them 19:43:50 FreeFull: ............................................................................................................................. 19:43:50 psst freefull he's quoting someone 19:44:02 nooodl: not sure what is going on there is learning 19:44:05 or about monads in fact 19:44:05 nooodl: luckily there is a libghc6-transformers-dev 19:44:07 That's why you use quotation marks 19:44:08 "Does this mean State is a blue pipe and IO is a red pipe? Is () the drain?" 19:44:10 Or the type doesn't match 19:44:13 it's not the beginner's confusion that frustrates me, so much as the plethora of bad explanations that confused him/her to get to this point 19:44:30 You supply an IRC Message type to me and I take it as a message 19:44:38 the way that bad explanations by people who are beginners themselves drown out the people who actually know what they're talking about 19:44:40 nooodl: I already have it though ? 19:44:58 i like not using quotation marks around quotations 19:45:10 --- abraham lincoln 19:45:15 maybe "cabal update" AnotherTest? 19:45:28 ah 19:45:29 it's much of why i left #haskell 19:45:33 yeah, that might be good idea 19:45:36 thereby exacerbating the problem but o well 19:45:55 also it's not like i or anyone else there actually knows what's a good explanation empirically 19:45:59 The haskell reddit is ok 19:46:00 remember when i accidentally did that... in #haskell... a week or two ago, elliott 19:46:01 we all just have our pet theories and shout them at each other 19:46:01 kmc: imo you should join #haskell again 19:46:03 see what it's like 19:46:03 But beginners don't seem to go there 19:46:06 I'm sort of scared of Haskell for some reason 19:46:06 elliott: is it worse 19:46:07 it was pretty good 19:46:08 I wonder if there is a correlation 19:46:08 nooodl: yes i yelled at you 19:46:11 kmc: um i'm not sure 19:46:14 you antiyelled at me 19:46:16 kmc: i guess yes but also better in some ways? 19:46:19 better how 19:46:24 that's a good question 19:46:25 it was just nooodl...................................... 19:46:27 you should find out! 19:46:30 no 19:46:40 wow kmc 19:46:42 where's your sense of adventure 19:46:51 where's your adventurous sense 19:47:02 what a grand adventure to join a room full of annoying people and get angry and leave 19:47:26 it's the grandest adventure you'll have on irc 19:47:32 they're not all annoying! 19:47:36 shachaf is an op now so how can it be bad 19:47:40 no they're not 19:47:49 it's even Grander when you join more annoying channels 19:48:18 they made shachaf an op? 19:48:20 tbf #haskell is pretty annoying 19:48:57 19:48:21 * hackagebot Nomyx 0.1.0 - A Nomic game in haskell, featuring automatic, machine-executed rules written by the players http://hackage.haskell.org/package/Nomyx-0.1.0 (CorentinDupont) 19:49:01 19:48:23 * hackagebot Nomyx-Rules 0.1.0 - Language to express rules for Nomic http://hackage.haskell.org/package/Nomyx-Rules-0.1.0 (CorentinDupont) 19:49:02 I've heard #PHP is pretty annoying 19:49:02 That's why I ask all my haskell questions in here 19:49:04 you get exciting package announcements like this 19:49:11 AnotherTest: PHP is pretty annoying 19:49:24 i wonder how a sense could be adventurous 19:49:33 that's like an elliott christmas present 19:49:34 sounds like material for a very surreal novel 19:49:35 Especially if you're looking for questions like "what does $a = 1+1; do in PHP?" 19:49:50 probably a SQL injection 19:50:01 nooodl: no that would be @ 19:50:06 Assigns 3 to $a 19:50:09 did anyone ever tell you 'bout @ 19:50:12 anyway the thing that bothers me the most in ANY irc channel is, 19:50:12 (no) 19:50:36 People not finishing their sentences? 19:50:39 when people come in and ask "can i ask a question about ... here?" 19:50:53 Can I ask a question about lasagna here? 19:50:54 and there's some asshole who's like, don't ask to ask!!! 19:51:10 instead of just typing, like, "sure" 19:51:18 what a twist 19:51:19 what if they say "sure, and you don't need to ask to ask" 19:51:26 monqy: yes that twist was intentional 19:51:29 this pipe monad metaphor is really horrible 19:51:36 What if they say "sure, always feel free to ask questions about ..." 19:51:40 nooodl: it's too bad i was already spoiled!!! 19:51:55 did i tell you about this once :( 19:51:57 yes 19:52:02 nice 19:52:07 monqy: can you tell nooodl about @ 19:52:15 Pipes isn't a good name anymore 19:52:19 this sounds like a job for the ~secret channel~ 19:52:40 failure-0.1.2 failed during the building phase. The exception was: 19:52:41 ExitFailure 1 19:52:41 split-0.2.1.2 failed during the configure step. The exception was: 19:52:41 ExitFailure 1 19:52:41 web-encodings-0.3.0.9 depends on failure-0.1.2 which failed to install. 19:52:41 great 19:52:43 do you mean #esoteric-minecraft thats not very secret!! 19:52:44 it oges something like: programs are pipes, haskell makes the "plumber worldwide association" introduce a rule that plumbers never touch naked pipes, monads are red wrappers around pipes 19:52:45 cabal just doesn't work 19:52:48 How about toilets 19:52:59 also the whole channel has to learn about @ 19:53:02 flush, overflow, clog 19:53:06 AnotherTest: that's some deep shit 19:53:28 Should I just apt-remove cabal && apt-install cabal 19:53:39 olsner: That does sound really stupid 19:53:43 I actually did cabal install cabal now 19:53:44 nooodl: in summary, vapourware to end all vapourware 19:53:47 because it told me to 19:53:51 good 19:53:53 i'll finish it 19:54:11 monqy: no!!! 19:54:12 thats not 19:54:13 the essence of @ 19:54:15 gosh 19:54:19 i'm firing you 19:54:22 appointing olsner as new @splainer 19:54:29 "The pipes goes inside another premise we don’t have the control over our pipework anymore. While inside the premise, another plumber decide to modify our pipe, insert a special water cleaner and then “re-inject” the water inside the old pipe system." 19:54:31 what's the @ssence of @ 19:54:53 olsner: I have no idea what that's saying 19:54:54 elliott: in the spirit of elliott i was going to make a joke about initial/terminal object in the category of vapourware but i didn't feel up to explaining it 19:55:00 olsner: is this person high 19:55:06 elliott: and i couldn't figure out which would be punchier 19:55:11 elliott: which way do the arrows go??? 19:55:12 olsner: i like how that sounds like just regular plumbing talk 19:55:14 FreeFull: me neither, but it has something to do with monads, supposedly 19:55:23 nooodl: how long should cabal install cabal take? 19:55:48 how long is your internet connection 19:55:57 why would you move the water 19:55:59 olsner: Obviously monads are actually burritos 19:56:10 i'm not sure... i installed it as part of the haskell platform 19:56:11 monqy: what's a henway. 19:56:15 this sounds like a surgical operation rather than plumbing 19:56:18 is the house alive? 19:56:30 boily: is this some sort of joke 19:56:37 AnotherTest: I think cabal is not supposed to be installed through cabal in general 19:56:41 oh 19:56:44 it said 19:56:51 "please run cabal install cabal" 19:56:51 -!- augur has quit (Read error: Connection reset by peer). 19:57:00 -!- augur has joined. 19:57:06 maybe that updates cabal?! 19:57:22 cabal install 'cabal install cabal' 19:57:36 kmc: you like burrito jokes right 19:57:39 to make things more or less confusing: cabal the binary comes from the package cabal-install, not from Cabal (which is a library) 19:57:39 I'm really considering Crtl + C and reinstalling cabal through debian 19:57:41 oh great 19:57:46 I get warnings 19:57:47 elliott: burrito jokes are like burritos 19:57:48 monqy: robbing you of any will of making vapoury punchlines. 19:57:55 $ fix cabal install 19:58:39 wow 19:58:48 I actually installed cabal with cabal 19:58:53 congratulations 20:00:15 if you upgraded the cabal library, congrats! your installation is now even more broken 20:02:49 elliott, did you see and subsequently become very ashamed of my existence because of my SK-calculus implementation 20:02:58 i saw it 20:03:33 i just realized i can finally ask this question because i know #esoteric exists: 20:03:41 ???? 20:03:43 do you know 20:03:46 for sure 20:03:50 are there any good esolangs based on lambda calculus that are still easily writable 20:04:02 (i.e. lambdas, not sk combinators) 20:04:04 It is a common myth that #esoteric actually exists. 20:04:06 uhh there's that one 20:04:12 "Imagine that we have our pipe perfectly sealed, with all the junctions perfectly aligned. If you think about this, this is something we could achieve also in an imperative language and, being provocative, also in Scala!" 20:04:20 Real Fast Nora's Hair Salon Three Shear Disaster Download 20:04:27 it does exist in the future however 20:04:39 (well, is commonly believed to) 20:04:54 http://esolangs.org/wiki/Real_Fast_Nora%27s_Hair_Salon_3:_Shear_Disaster_Download nooodl 20:05:01 TOTALLY readable 20:05:17 uuuuurrrrrrrrgh 20:05:19 http://esolangs.org/wiki/Binary_lambda_calculus totally readable 20:05:31 but good name 20:05:32 http://esolangs.org/wiki/Backslash_Calculus totally readable 20:06:04 nooodl i have your esolang 20:06:05 its called 20:06:07 the lambda calculus 20:06:11 yes!! 20:06:17 i just need a lambda calculus interpreter basically 20:06:20 http://esolangs.org/wiki/MIBBLLII Combinatory Logic But Its Not SK 20:06:31 that's like five lines of anything nooodl 20:06:33 but ideally it'd come with some thingies for input/output/chars 20:06:37 have you considered: a scheme implementation 20:06:47 nooodl: what is an inout/output char in lambda calculus? 20:06:48 or do you need nonstrict semantics 20:07:06 also backslash calculus is entirely lambda calculus with de bruijin, perfect 20:07:51 Bike, so is Real Fast Nora's Hair Salon 3: Shear Disaster Download 20:07:56 imo tailcalled invented backslash calculus so don't use it 20:08:08 so wait 20:08:14 are there two tailcalleds or something 20:08:22 nooodl: what do you want this thing for 20:08:26 nooodl: for what do you want this thing 20:08:26 Except Real Fast Nora's Hair Salon 3: Shear Disaster Download uses real words instead of crummy symbols, and hence is MUCH more readable 20:08:28 Real Fast Nora's Hair Salon 3: Shear Disaster Download it is then, elliott 20:08:33 i have it in my head that one of them is ok and the other bad 20:08:47 it'd be cute 20:08:55 I think internet relay programming can do lambda calculus really easy 20:09:01 oh wait, i just assumed because of generic he was o 20:09:02 k 20:09:07 does that still exist AnotherTest 20:09:20 nooodl: You're IN an interpreter 20:09:24 i've read the wiki article but i assumed the channel would just be empty or something 20:09:42 nooodl: http://esolangs.org/wiki/Lambda_calculus "an esolang" 20:09:45 it exists and it's like the worse version of #esoteric 20:09:50 except it's mostly dead i think? 20:09:51 Just popped on it and it has 22 people other than me 20:10:13 I guess we should make a "red pipe/blue pipe" language now where you somehow program with monad metaphors 20:10:16 i avoid #irp 20:10:22 nooodl, fwiw lazy k comes with a scheme library for translating from the lambda calculus 20:10:54 i avoid #irp <-- last I looked it was pretty dead 20:10:56 olsner: couldn't you just make aliases for some haskell types 20:10:57 so nothing to avoid really 20:11:28 monqy doesn't like dead things 20:11:29 rats, for example 20:11:37 they stink 20:11:44 (help whats @) 20:11:50 its because monqy lives in an abandoned stinky orphanage 20:11:52 full of dead rats 20:11:58 rat story!! i like the rat story 20:12:01 noodle, Binary_lambda_calculus has interpreters in C and Haskell 20:12:08 rat story 20:12:11 rat story 20:12:13 is that like friendship mouse 20:12:16 but w/ rats 20:12:16 including an obfuscated one 20:12:16 nooodl: @ is an English-language macro expanding to the name I will give @ in the future when I decide on one 20:12:26 -!- zzo38 has joined. 20:12:35 Phantom_Hoover: did friendship mouse die in your ceiling and stink up your room for week(s) 20:12:44 -!- AnotherTest has quit (Quit: Leaving.). 20:12:45 no 20:12:47 for week 20:12:48 Phantom_Hoover: and also die under your floor shortly before that 20:12:52 i released it humanely in the garden 20:12:59 elliott: uh why are you not using vau calculus instead of macros?? 20:13:03 do you mean, the name itself is a macro 20:13:03 im not seeing very many parallels here 20:13:06 so this rat died both in your floor and your ceiling 20:13:15 Bike: good q....................... 20:13:18 well there were probably two rats 20:13:21 nooodl: aliases for haskell types are not metaphors, besides what would I use aliases of types for? 20:13:24 Bike: does english support those 20:13:36 nooodl: what do you mean by "the name itself" 20:13:39 "@" is an English-language macro 20:13:44 "@" is not a name 20:13:46 i meant that 20:13:49 but @ is, just nobody knows what it is yet 20:13:56 or rather, "@" is 20:13:58 (a name) 20:13:59 is this your "feather" 20:14:02 remember when like 20:14:06 but the symbol "'@'" is a macro 20:14:09 elliott: yes you just say that every word appearing before @ is an operator 20:14:10 nooodl: its not really like feather at all 20:14:11 we were seriously talking about implementing @ 20:14:14 for like a week 20:14:19 Phantom_Hoover: more than a week! 20:14:23 what's a week 20:14:25 what's feather 20:14:25 i might still do it 20:14:26 what's @ 20:14:27 just not right now 20:14:28 what's elliott 20:14:32 it sounds a lot like it; what's @ 20:14:35 I remember friendship mouse 20:14:46 nooodl: it's an operating environment for computers 20:14:48 what if it turns out that "@" expands into "butts" 20:14:50 what's butts 20:14:59 "butts" is an English-language macro 20:15:01 http://esolangs.org/wiki/@tention! thanks wiki 20:15:14 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90 [Firefox 19.0/20130215130331]). 20:15:33 Bike: it's going to be pretty good when I replace all occurrences of "@" with the name in the logs 20:15:42 Does any music made using oneshot square waves? 20:15:52 zzt title screen music 20:16:01 nooodl: anyway for most of its existence @ has been an #esoteric joke about @ 20:16:08 but before that it was a different thing 20:16:10 elliott, remember when you were still just trying to do lisp machines on modern architectures 20:16:19 i wish i could import all #esoteric logs into my brain 20:16:23 Phantom_Hoover: that was you! 20:16:29 it was both of us! 20:16:31 buttstention! 20:16:36 but you should have known better! 20:16:39 nooodl: Do you mean the percussion notes 012456789 of ZZT? 20:16:45 ha ha lisp machines 20:16:52 why are you laughing Bike.... 20:17:01 lisp machines are pretty great! 20:17:02 the notes themselves are also just squarewaves 20:17:03 why indeed elliott 20:17:05 why indeed 20:17:08 Bike 20:17:09 stfu 20:17:13 i guess it depends on what you mean by "oneshot" 20:17:15 imo stfu 20:17:19 nooodl: Yes, it is PC Speaker. 20:17:22 ok i admit lisp machine fetishists are unbearable on some level 20:17:27 but you can't deny they're pretty great 20:17:32 but seriously have you ever looked at cdr coding 20:17:37 like really looked, at cdr coding 20:17:43 But what I mean by the "one shot" square waves is a square wave which triggers a monostable circuit at the frequency of the note. 20:17:47 cdr coding is cute 20:17:48 it's like your hands man 20:17:56 this is reminding me of ursala 20:18:03 hey Sgeo_ did you ever look at ursala 20:18:09 what are my hands like 20:18:12 the OSs are kinda cool but i mean people go on about the hardware and 20:18:16 i just, i uuuuugh 20:19:22 zzo38: so just... no volume changes, no vibrato, etc? 20:19:35 found this in 9front fortune file: The "do one thing well" philosophy underlying UNIX is best realized in a fully object-oriented environment. - some Linux guy 20:19:35 Bike: come on genera is pretty great 20:19:50 nooodl: anyway do you have any more questions about @ 20:19:55 -!- oerjan has joined. 20:20:05 yes: 20:20:11 i want to see how far the implementation got 20:20:34 nooodl: Well, not exactly what I mean; I mean that the duty is not a percentage but rather a fixed time being high regardless of the note. 20:21:05 nooodl, it uh 20:21:06 didn't 20:21:06 (So that high notes have a high duty percentage, and low notes have a low duty percentage) 20:21:08 nooodl: it didn't because it was never intended to be implemented in the state it was in 20:21:13 and I never claimed I was in the process of implementing it 20:21:24 is there a "ref", is it a "programming language" 20:21:28 hey now i think i was poking around with nasm at the time 20:21:35 zzo38: i see 20:21:58 it is possible that at some point code was written with @ at least partly in mind 20:22:11 @ turns out to expand to the full text of A Programming Language 20:22:19 Phantom_Hoover: sure I wrote a bootloader 20:22:22 #esoteric logs bloat, explode, covering elliott and his lisp machines in vomit 20:22:22 Nothing here 20:22:23 Bike: poor logs 20:22:29 digivomit 20:22:34 well then 20:22:36 Bike: I don't have any lisp machines because the shipping to the UK would cost too much 20:22:39 give nooodl a copy 20:22:49 nooodl: what do you mean by "ref" 20:23:03 language reference 20:23:05 nooodl: Do you know of any like that? 20:23:21 nooodl: what do you mean by language reference 20:23:22 zzo38: no 20:23:51 elliott: i'm not answering that question, this is retarded 20:24:31 (the "depends on what you mean by x!!" chain thing) 20:25:43 there's no written anything 20:25:59 alright 20:26:25 -!- doesthiswork has joined. 20:28:14 btw nooodl 20:28:24 did you use my damn blaze rod to make that ender chest 20:28:27 What was that bijection between pairs of naturals and naturals that I knew a long time ago... <-- well one i've discussed on this channel before is f(m,n) = (m+n)*(m+n+1)/2 + m 20:28:33 yes, but i got a new blaze rod 20:28:39 oerjan, I found it in the end 20:28:41 it's in my inventory i think 20:28:51 maybe i even got 2?? 20:28:59 what about the good ol' cantor functon 20:29:05 function 20:29:15 which is what you just said fuck 20:29:53 Bike: possibly the same? 20:31:26 it's counting by minor diagonals, anyway 20:34:14 also, for n-tuples it generalizes to comb(n1+...+nk+1,k) + comb(n1+...+n(k-1)+1,k-1) + ... + com(n1+n2+1,2) + n1, (modulo any off-by-one errors) 20:34:20 *comb 20:34:25 -!- augur has quit (Read error: Connection reset by peer). 20:34:32 *k-tuples 20:34:52 -!- augur has joined. 20:35:20 -!- augur has quit (Read error: Connection reset by peer). 20:35:38 -!- sirdancealot has quit (Quit: KEEP SPARKS. FLAME AWAY.). 20:35:39 -!- augur has joined. 20:44:28 -!- augur has quit (Remote host closed the connection). 20:45:49 elliott, what are you even up to in minecraft 20:46:47 hm fizzie is idle and fungot is missing 20:48:03 Did fungot kill fizzie and flee 20:51:25 hm in http://hpaste.org/83052 have you considered that the 1,2,3,5 values are also themselves pairs? 20:51:39 Taneb: ^ 20:51:46 I had not 20:52:13 @ask fungot did you kill fizzie and flee? 20:52:13 Consider it noted. 20:52:51 They're chosen because they're the smallest 4 such that they can't be constructed from pairing eachother and aren't zero 20:52:53 1 = (1,0), 2 = (0,1), 3 = (2,0), 5 = (0,2) 20:53:00 oh ok 20:53:14 basically, because they have 0 as a part 20:53:22 Yes 20:53:33 The next two would be 6 and 9 20:53:45 Then 10 and 14 20:53:53 Then 15 and 20 20:53:54 Hmm 20:54:03 There appears to be a pattern 20:54:11 Of course there's a pattern 20:55:05 @tell Anothertest If you're using linux you might wanna change that to ./blsqirci instead of blsqirci.exe 20:55:05 Consider it noted. 20:55:31 And parseSK is one of the prettiest parsers I have ever written 20:55:37 Perhaps because it is so basic 20:56:11 Taneb: x *> pure y == y <$ x , btw 20:56:26 -!- augur has joined. 20:56:58 Oh yeah 20:57:03 BUT NEATNESS 20:57:49 (<$) is neater since only Functor constraint 20:58:04 elliott, but the third choice needs it to be an Applicative 20:58:16 well why don't you use (>>) then!! 20:58:21 all Applicatives are Functors 20:58:36 :t (<$) 20:58:37 Functor f => a -> f b -> f a 20:58:42 Yeah, it is 20:58:46 > (0 <$ 1 <$> 2) 20:58:47 Could not deduce (GHC.Num.Num (a0 -> b0)) 20:58:47 arising from the ambiguity che... 20:59:23 > (0 <$ ( 1 <$> 2)) 20:59:24 Could not deduce (GHC.Num.Num (a0 -> b0)) 20:59:24 arising from the ambiguity che... 20:59:27 pair <$ char '`' <$> parseSK <*> parseSK 20:59:36 :t parseSK 20:59:38 Not in scope: `parseSK' 20:59:39 assuming they all chain left to right 20:59:47 FreeFull: see http://hpaste.org/83052 20:59:59 They're all infixl 4 21:00:03 oh wait 21:00:11 * pair <$ char '`' <*> parseSK <*> parseSK 21:01:47 i suppose using *> with all of them has an elegance 21:01:55 -!- azaq23 has joined. 21:02:10 -!- azaq23 has quit (Max SendQ exceeded). 21:03:55 And I know about line 32 21:06:20 pair `flip` b `fmap` step a maybe 21:06:34 For a start, `fmap` is <$> 21:06:43 pretty sure oerjan knows that 21:06:43 yes 21:06:54 And infix flip feels wrong to me 21:07:29 If there were more brackets about I'd be tempted 21:07:48 actually hm 21:08:36 :t ?a <$> ?b ?? ?c 21:08:37 (?a::a1 -> a -> b, ?b::f a1, ?c::a, Functor f) => f b 21:08:40 :t flip 21:08:41 (a -> b -> c) -> b -> a -> c 21:08:58 they removed caleskell flip but it still exists as lens ?? 21:09:59 Taneb: so, pair <$> step a ?? b , although you need to import ?? from lens >:) 21:10:10 :t (??) 21:10:12 Functor f => f (a -> b) -> a -> f b 21:10:37 it really should be in Data.Functor though 21:10:39 :t (.) 21:10:40 Functor f => (a -> b) -> f a -> f b 21:10:43 :t (++) 21:10:44 Monoid m => m -> m -> m 21:10:47 sigh 21:11:22 -!- epicmonkey has joined. 21:11:41 oerjan, I'm avoiding lens, because it is really overkill 21:11:47 so if i can't say lambdabot is running caleskell what can i say it's running? caleslens?? 21:11:57 Taneb: yeah it has heaps of dependencies 21:12:08 Bike: there's plenty of cale left 21:12:10 Bike: well (++) and (.) are still caleskell 21:12:19 some day, my bot will overthrow lambdabot. 21:12:27 oerjan, you are aware that I know about lens, quite a lot? 21:12:39 Taneb: anyway, it's just f ?? x = fmap ($ x) f 21:12:44 boily, what's the prefix for your bot? 21:13:25 @hoogle Functor f => f (a -> b) -> a -> f b 21:13:26 Prelude fmap :: Functor f => (a -> b) -> f a -> f b 21:13:26 Data.Functor fmap :: Functor f => (a -> b) -> f a -> f b 21:13:26 Control.Monad fmap :: Functor f => (a -> b) -> f a -> f b 21:13:31 :t (+ 1) . (+ 1) 21:13:32 Num b => b -> b 21:13:44 :t (+ 1) 21:13:45 Num a => a -> a 21:13:55 :t ($>) 21:13:57 Not in scope: `$>' 21:13:57 Perhaps you meant one of these: 21:13:57 `$' (imported from Data.Function), `$!' (imported from Prelude), 21:14:07 hm it doesn't exist 21:14:41 except it's not symmetric to <$ 21:15:00 Taneb: ~. 21:15:17 ~ (1, 2) ^. _1 21:15:17 --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi 21:15:22 ~eval (1, 2) ^. _1 21:15:25 Error (1): 21:15:28 eh? 21:15:30 Needs more lenses 21:15:42 oerjan: ($>) would be flip (<$), no? 21:15:43 ~eval fst (1, 2) 21:15:43 let me check... 21:15:45 1 21:16:16 weird, Control.Lenses is there... 21:16:20 elliott: i was looking for a good name for ?? if it were put into Data.Functor, ?? doesn't really fit with the rest of the Functor/Applicative naming scheme 21:16:40 and no, it's not flip (<$) 21:16:40 ah 21:16:48 ~eval (1, 2) & fst 21:16:49 1 21:16:56 ~eval (1, 2) ^. _2 21:16:57 2 21:16:59 put strength in while you're at it :P 21:17:02 ~eval (1, 2) ^. _1 21:17:03 1 21:17:05 weird... 21:17:21 ~eval (1, 2) & both .~ negate & _1 +~ 2 21:17:22 Error (1): No instance for (GHC.Show.Show (a0 -> a0)) 21:17:22 arising from a use of `M9092509914124073958.show_M9092509914124073958' 21:17:22 Possible fix: 21:17:22 add an instance declaration for (GHC.Show.Show (a0 -> a0))No instance for (GHC.Num.Num (a0 -> a0)) 21:17:22 arising from a use of `e_11212' 21:17:22 Possible fix: 21:17:22 add an instance declaration for (GHC.Num.Num (a0 -> a0)) 21:17:33 ~eval (1, 2) & both .~ negate & _1 +~ 2 21:17:34 Error (1): No instance for (GHC.Show.Show (a0 -> a0)) 21:17:34 arising from a use of `M5854169526931405235.show_M5854169526931405235' 21:17:34 Possible fix: 21:17:34 add an instance declaration for (GHC.Show.Show (a0 -> a0))No instance for (GHC.Num.Num (a0 -> a0)) 21:17:34 arising from a use of `e_11212' 21:17:34 Possible fix: 21:17:35 add an instance declaration for (GHC.Num.Num (a0 -> a0)) 21:17:38 yikes 21:17:41 That isn't right 21:17:48 ~eval (1, 2) & both %~ negate 21:17:49 (-1,-2) 21:17:49 Yes it is 21:17:49 monqy: you didn't see nothing there. move along. 21:17:58 ~eval (1, 2) & both %~ negate & _1 +~ 2 21:17:59 (1,-2) 21:18:11 who's cuttlefish. is cuttlefish lambdabot's evil twin 21:18:13 in fact i think the most logical name for ?? would have been <$ ... it takes a Functor on the left and an ordinary value on the right... 21:18:21 that reinforces my belief that yes, lenses tend to be completely overkill. 21:18:43 and then <$> should have been $> 21:18:44 ~eval 4 # _Just 21:18:45 Error (1): Could not deduce (Data.Profunctor.Choice p0) 21:18:45 arising from the ambiguity check for `e_14' 21:18:45 from the context (GHC.Num.Num 21:18:45 (Control.Lens.Review.AReview 21:18:45 s 21:18:45 t 21:18:45 a 21:18:46 (p a2 (f b) -> p (Data.Maybe.Maybe a2) (f (Data.Maybe.Maybe b)))), 21:18:46 Control.Applicative.Applicative f, 21:18:47 Data.Profunctor.Choice p) 21:18:47 bound by the inferred type for `e_14': 21:18:48 (GHC.Num.Num 21:19:05 ~eval 4 ^. re _Just 21:19:06 Just 4 21:19:09 nooodl: my cuttlefish is not lambdabot's twin yet. for now, it's just evil. 21:19:13 :t (#) 21:19:15 parse error on input `)' 21:19:18 :t ( # ) 21:19:19 Not in scope: `#' 21:19:38 -!- fungot has joined. 21:19:39 ~duck lambdabot 21:19:39 Software description: mirror of darcs repo (Haskell). 21:19:56 woohoo! the one and only fungot is back! 21:19:56 boily: damn your mother! 21:19:56 fungot: You have 1 new message. '/msg lambdabot @messages' to read it. 21:20:02 ~eval (Left 3, Right 4) ^? _1._Left.to negate 21:20:03 Just (-3) 21:20:10 ok. never saw that one coming. 21:20:22 ^echo @messages 21:20:22 @messages @messages 21:20:22 olsner asked 28m 10s ago: did you kill fizzie and flee? 21:20:26 fungot: why so mean? 21:20:27 boily: ( waaay to much mutation, though; i want an irc client 21:20:40 ^style 21:20:40 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 21:20:48 `addquote * fungot has joined #esoteric woohoo! the one and only fungot is back! boily: damn your mother! ok. never saw that one coming. 21:20:48 elliott: i just dont want to do for about fnord generations now.... 21:20:52 968) * fungot has joined #esoteric woohoo! the one and only fungot is back! boily: damn your mother! ok. never saw that one coming. 21:20:55 not sure if that last line is good or bad to include 21:21:03 hmm, fungot doesn't trigger when lambdabot tells it about messages? 21:21:04 olsner: it has nothing to do and not too specific to scheme. 21:21:19 fizzie: pls make fungot @messages 21:21:19 elliott: i would assume quite a lot of contrast. i believe they are not 21:21:20 > "I love fungot" 21:21:21 FreeFull: is there a bfm tutorial anywhere or documentation or at least that's the case in hand... 21:21:22 "I love fungot" 21:21:23 elliott: in fact hm the perfect naming would have been: $> = current <$>, <$> = current <*>, <$ = current ?? 21:21:23 fungot has an "ignore's list" 21:21:24 monqy: anyway infinite loop then is easy to write the code 21:21:27 ^ul (@messages)S 21:21:27 @messages 21:21:27 You don't have any new messages. 21:21:30 oh that was easy 21:21:31 fungot nethack style?? 21:21:31 nooodl: f is applied to it, as if it were reliable. unfortunately it means we don't know 21:21:37 oerjan: i think ski has proposed something like that 21:21:37 igorns list 21:21:42 oppan nethack style? 21:21:51 Phantom_Hoover........ 21:21:57 Phantom_Hoover: ha ha ha :D 21:22:00 Phantom_Hoover................................ 21:22:01 hey man i'm doing it ironically 21:22:14 oerjan: however I am not sure that is perfect because ideally a mirrored operator should be the flip of the non-mirrored one :P 21:22:27 ^style c64 21:22:28 Selected style: c64 (C64 programming material) 21:22:32 What elliott said 21:22:52 fungot, hi 21:22:52 nooodl: in boolean algebra, the word if is followed by ready. the video display matrix, does which represent data during statement execution. therefore, if you are communicating with other applications that require large amounts of each routine in rom) 21:23:03 great 21:23:04 well that's already broken with *> and <* isn;t' it 21:23:23 monqy: right which is the `imperfectness' 21:23:41 oerjan: also (<$>) is an even worse name than (<*>) because it's even more bulky :( 21:23:42 : isn't the flip of : !!! 21:24:12 ~eval flip (:) "hello" '_' 21:24:13 "_hello" 21:25:25 i feel like haskell learnin' 21:26:26 monqy: you didn't see nothing there. move along. <-- i suggest you remove line breaks in your bot output somehow, it's really verbose 21:26:32 things i've considered reading about: arrows, lenses, parsec, "which is more important" 21:27:16 um 21:27:27 oerjan: one of the top priorities for the next version. 21:27:27 arrows are dumb but "easy" 21:27:32 lenses are easy and good 21:27:37 parser combinators too 21:27:54 dont learn arrows 21:27:57 I'd suggest parsers, as they are the most practicalest. 21:28:05 lenses are practical.......... 21:28:10 but it has an operator called (&&&) 21:28:29 > (succ &&& pred) 5 21:28:30 (6,4) 21:28:31 move along now 21:28:39 arrows are interesting if you want to completely break your mind, viz. ArrowLoop. 21:28:44 but it has an operator called (***) 21:28:51 > (succ &&& pred) (1, 2) 21:28:53 No instance for (GHC.Enum.Enum (t0, t1)) 21:28:53 arising from a use of `e_112' 21:28:53 ... 21:28:56 woops 21:29:00 > (succ *** pred) (1, 2) 21:29:01 (2,1) 21:29:02 move along now 21:29:08 that's a cute function 21:29:16 are arrows ever something that isn't tuples 21:29:29 i mean. the answer is obviously "yes", 21:29:29 > (succ +++ pred) (Left 1) 21:29:30 Left 2 21:29:36 > (succ +++ pred) (Right 1) 21:29:37 Right 0 21:29:55 > (succ ||| pred) (Left 1) 21:29:57 2 21:30:01 > (succ ||| pred) (Right 2) 21:30:02 nooodl: you can do interesting things with arrows and streams. let me find that blog article again... 21:30:04 1 21:30:16 nooodl: the answer is no, actually. taneb's showing off arrowchoice. really the thing that varies with arrows is it's not always with normal ol functions (->) 21:30:25 nooodl: arrows are dumb 21:30:28 ok 21:30:29 -!- epicmonkey has quit (Remote host closed the connection). 21:30:43 nooodl, parsers are fun 21:30:45 i really can't imagine ever needing arrows from what i've heard about them 21:30:45 -!- epicmonkey has joined. 21:30:57 arrows are really bad seriously 21:31:02 nooodl, Control.Arrow has a few handy functions in it 21:31:06 some of the arrow combinators are sort of useful sometimes but just because you want those functions on (->) 21:31:07 That's it 21:31:15 parsers in haskell are magic... 21:31:17 edwardk has better versions of those functions!! 21:31:17 i see 21:31:29 does lens have (***) (&&&) 21:31:29 elliott, what's the better version of (|||) 21:31:31 nooodl: https://github.com/leonidas/codeblog/blob/master/2012/2012-01-08-streams-coroutines.md 21:31:51 Taneb: i forget 21:31:52 I mainly use arrows for pointless programming. 21:32:22 arrows are pointy though 21:32:38 :-) 21:33:15 arrows always make me think of psephology 21:33:17 bad association y/n 21:33:22 nooodl: what is it you want to learn about parser combinators, just how to use parsec or? 21:33:24 ~duck psephology 21:33:26 Psephology is a branch of political science which deals with the study and scientific analysis of elections. 21:33:30 how to parse 21:33:44 what does that mean... 21:33:50 nooodl: imho, I think attoparsec is the best out there. easy, well documented, and up to date. 21:33:56 i don't know! what does "parser combinators" mean 21:34:04 use trifecta clearly 21:34:14 Arrows are good for shooting people with 21:34:18 ~duck parser combinator 21:34:18 In functional programming, a parser combinator is a higher-order function which accepts several parsers as input and returns a new parser as its output. 21:34:26 you know like arrow's impossibility theorem 21:34:48 nooodl: it means building parsers out of combinators 21:34:53 attoparsec is really bad for general parsing 21:34:58 since it doesn't handle unicode at all last i checked 21:35:00 and gives bad error messages 21:35:01 class Arrow a => Zeno a where { halfMore :: a -> a } ? 21:35:02 ⇄ not so impossible now are you 21:35:04 god, i could've actually deduced that definition from "parser" + "combinator" 21:35:07 it's really intended for binary file format parsing 21:35:08 Hike 21:35:11 hachaf 21:35:48 elliott: what about the Text version of Attoparsec? 21:35:48 monqy: are profunctors dumb 21:35:59 how about: instead of specifying rules in some warped BNF derivative, you build up a function that parses your language out of simpler functions called "combinators". disclaimer this may be completely wrong 21:36:00 shachaf: no :) 21:36:08 shachaf: profunctors are time-traveling evil monstrosities. 21:36:13 Bike: silly talk 21:36:15 monqy: what about profunctor + strong + choice + category 21:36:19 is that kinda dumb 21:36:27 is that ~Arrow 21:36:36 boily: hmm, I forget 21:36:41 error mesage problem is still there, though 21:37:06 monqy: that's ArrowChoice 21:37:10 oh right 21:37:14 profunctor + strong + category 21:37:19 "hows that" 21:37:20 boily: zeno is bottom 21:37:51 at least profunctor+strong+category has better foundations than arrow it's built from not stupid things "i think???" .............................. maybe strong is stupid 21:37:55 (is strong stupid) 21:38:15 ((i dont remember the definition of strong)) 21:38:23 I messed a bit with profunctors but didn't see how to use them to make something useful 21:38:34 ok 21:38:35 (((monqy: strong gives you first' :: forall a b c. p a b -> p (a, c) (b, c)) 21:38:40 ok 21:38:42 (((((and also second') 21:38:44 ok 21:38:57 (ie arrombinators) 21:39:06 @yarr 21:39:06 Eat maggoty hardtack, ye unkempt, jenny frequentin', son of a gun. 21:39:14 ok 21:39:24 ~eval A.parseOnly (string "é") "é" 21:39:25 Error (1): Not in scope: `string' 21:39:25 Perhaps you meant one of these: 21:39:25 `A.string' (imported from Data.Attoparsec.Text), 21:39:25 `storing' (imported from Control.Lens), 21:39:25 `strict' (imported from Control.Lens) 21:39:33 ~eval A.parseOnly (A.string "é") "é" 21:39:34 Error (1): Couldn't match expected type `Data.Text.Internal.Text' 21:39:34 with actual type `[GHC.Types.Char]'Couldn't match expected type `Data.Text.Internal.Text' 21:39:34 with actual type `[GHC.Types.Char]' 21:39:42 ~eval data Hi = Hi 21:39:43 Error (1): :1:1: parse error on input `data' 21:39:52 argh fscking dammit stupid not overloaded strings! 21:39:58 ˙☹˙ 21:40:34 ˙͜˙ 21:40:50 ☺ 21:41:01 you're borking my weechat. stop that. 21:41:11 °ᵜ° 21:41:12 help 21:41:19 what did i even do 21:41:42 shachaf: looks like that's monqy's fault. 21:41:44 combining double breve below? seriously? 21:41:52 °̯° 21:42:00 Bike: you gotta problem with that 21:42:23 ~eval A.parseOnly (A.string $ T.pack "é") $ T.pack "é" 21:42:24 Right "\233" 21:42:36 elliott: yeah. attoparsec does do utf-8 correctly. 21:43:00 good to know 21:43:14 et tu, parsec? 21:44:33 > parse (Text.Parsec.Char.char '') "" "" 21:44:33 mueval: recoverEncode: invalid argument (invalid character) 21:45:06 btw why does mueval not do unicode 21:45:09 LAMBDABOT 21:45:16 Bike: It does. 21:45:19 Well, did? 21:45:22 i mean 21:45:26 lambdabot did Unicode fine before The Upgrade. 21:45:28 > ǟ 21:45:28 mueval: recoverEncode: invalid argument (invalid character) 21:45:31 what's going on there 21:45:38 ~eval Text.Parsec.parse (Text.Parsec.Char.char '') "" "" 21:45:39 Error (1): Not in scope: `Text.Parsec.parse'Not in scope: `Text.Parsec.Char.char' 21:45:40 lambdabot being stupid. 21:45:48 * Bike pokes lambdabot 21:46:01 lambdabot both uses ByteStrings to represent text and Strings to represent bytes. 21:46:11 cute 21:46:25 I'm surprised anything works at all. 21:46:46 That... seems bizarre 21:47:01 shachaf: wat 21:47:08 Anyway, goodnight 21:47:09 -!- Taneb has quit (Quit: Leaving). 21:47:16 Wike 21:47:21 ak 21:50:53 -!- GOMADWarrior has quit (Ping timeout: 252 seconds). 21:53:42 -!- blume has joined. 21:55:25 Cats http://youtu.be/YyHUNKV5Ouw http://youtu.be/0xvHEdqwSjY 21:55:32 -!- wareya has quit (Read error: Connection reset by peer). 21:56:32 -!- wareya has joined. 22:02:06 `quote reindeer 22:02:08 857) FireFly: oh, did you see ion's police reindeer? that was ... at least as on-topic as this discussion 22:02:34 `fusermount 22:02:36 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: fusermount: not found 22:02:38 Aw. 22:02:46 not sure if relevant, but it had ion and animals 22:03:21 `quote chemistry 22:03:23 No output. 22:03:27 `quote magnetism 22:03:28 No output. 22:05:00 `quote psephology 22:05:02 No output. 22:05:04 `quote cybernetics 22:05:06 No output. 22:05:20 `quote bike 22:05:21 855) Bike: Your client colours people? it would be pretty boring to see everyone as white, i get that enough in real life \ 858) "damn, my port of ghc to php isn't properly taking javascript booleans into account" \ 878) i bet a blog post complaining about ");});});" syntax in JavaScript and comparing it unfavorably t 22:05:45 `quote shachaf 22:05:46 539) elliott: GHC bug? Come on, it's the parentheses. The more parentheses you add, the closer it is to LISP, and therefore the more dynamically-typed. \ 580) Real Tar is GNU tar. You just ignore whichever features don't make you feel superior enough. \ 614) VMS Mosaic? I hope that's no 22:05:56 `delquote 580 22:05:59 `quote 878 22:06:01 ​*poof* Real Tar is GNU tar. You just ignore whichever features don't make you feel superior enough. 22:06:02 878) There is Haskell program "pandoc" to convert formats, so I make "panchess" which is the similar thing but for chess. 22:06:04 no~~ 22:06:11 `quote 877 22:06:13 877) i bet a blog post complaining about ");});});" syntax in JavaScript and comparing it unfavorably to Lisp would get approximately one billion comments on hacker news but at what cost? your very soul, kmc! 22:06:20 oh now it gets the formatting right 22:07:44 `revert 22:07:45 i like that quote 22:07:46 Done. 22:07:59 `quote revert 22:08:01 No output. 22:08:09 `quote No output. 22:08:10 627) `quote themselves No output. `quote norway No output. `quote lunch No output. Useless bot. 22:08:25 `quote themselves 22:08:26 627) `quote themselves No output. `quote norway No output. `quote lunch No output. Useless bot. \ 670) in one case, someone is hurting themselves, in the other, they are only hurting (all) norwegians (to death) 22:08:28 `quote norway 22:08:29 627) `quote themselves No output. `quote norway No output. `quote lunch No output. Useless bot. \ 826) unfortunately df is not yet able to simulate norway 22:08:39 `quote lunch 22:08:40 627) `quote themselves No output. `quote norway No output. `quote lunch No output. Useless bot. \ 728) Free as in unregistered, not free as in lunch or speech. 22:09:09 looks like it has at least one quote each for every topic 22:09:24 no one's from norway here, aren't they? 22:09:44 elliott: It's a bad quote. 22:09:45 oerjan 22:10:13 shachaf: issue resolved, bot useful 22:10:18 "Free as in unregistered"? What does that even mean? 22:11:23 shachaf: you should know, you said it! 22:11:49 like when you get the free version of some piece of software 22:11:54 and it's worse, but free! 22:12:22 me and shachaf switched people soon after that quote 22:12:43 Whooodl said. 22:13:10 hmm, so now nooodl == nooodl and shachaf == shachaf, but for different values of nooodl and shachaf? 22:13:26 yeah 22:13:30 nooodl is always == nooodl 22:13:42 unless you have a race condition 22:13:51 flipped values for nooodl and shachaf even 22:15:50 Is the bot useful now? 22:15:57 Let's apply the standardised test. 22:16:01 `quote trombone 22:16:02 No output. 22:16:03 `quote norway 22:16:05 627) `quote themselves No output. `quote norway No output. `quote lunch No output. Useless bot. \ 826) unfortunately df is not yet able to simulate norway 22:16:06 `quote illinois 22:16:07 No output. 22:16:13 `quote telemarketer 22:16:14 No output. 22:16:14 `quote cuttlefish 22:16:16 942) ~eval 1+2 Error (127): this is a great bot boily i love it 22:16:17 Apparently not. 22:16:26 that's a good quote about cuttlefish 22:16:43 great bot boily 22:16:44 groily 22:17:05 -!- boily has changed nick to groily. 22:17:06 someone should look for the one where i go '!gs2 "2 2+"' and gs2bot spams like 20 lines to the channel 22:17:15 20 long lines 22:17:15 wasn't that yesterday 22:17:19 yes... 22:17:23 first a venus flytrap-looking spatial anomaly, then they get out of it after 2 minutes and go to the holodeck, and it hasn't even started malfunctioning? something's WRONG with this star trek episode 22:17:29 http://www.youtube.com/watch?v=14xcsz43Kuw 22:17:34 now that's a useful bot 22:17:49 ah yis neverhood 22:18:44 btw that's a sad movie so don't watch it unless you like sad movies 22:18:49 neverhood is like the best thing ever made 22:19:07 At last olsner is talking some sense? 22:19:24 what, why would I ever? 22:19:35 I stand by the argument that fungot is the one making the most sense in this channel. 22:19:35 groily: there are vectored routines which begin at location 53265 ( d011 in hex) is set to a logical file 22:19:40 see? 22:19:59 ^style 22:19:59 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 22:20:07 oh, 53265 *is* d011 in hex 22:20:37 ^style pa 22:20:38 Selected style: pa (around 1200 transcribed Penny Arcade comics) 22:20:38 -!- DHeadshot has quit (Read error: Connection reset by peer). 22:20:42 fungot: tell me more about there are vectored returns 22:20:43 shachaf: fan 3: why no love for rogues! 22:20:48 ^style qwantz 22:20:48 Selected style: qwantz (Dinosaur Comics transcriptions 2003-2011) 22:20:58 ^style c64 22:20:59 Selected style: c64 (C64 programming material) 22:21:19 fungot: vectors, matrices, tensors, knuckles, dimples, hubbub. 22:21:19 groily: shown below. for a note has started playing will begin putting data onto the stack pointer is placed into the sprite enable register is located starting at 43 ( 2b) reveals that the ctrl key or until the spaces. stepping 3 positions at 22:21:33 fungot: is it because of your mother that you put data onto the stack pointer 22:21:34 shachaf: you probably asked yourself, " if it's time to send output to return to the right edge of the character rom in and out of the program is run, the 22:21:42 hi groily 22:21:53 hi quintopia! 22:21:56 hintopia 22:21:58 ^style nethack 22:21:58 Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal) 22:21:59 -!- epicmonkey has quit (Read error: Operation timed out). 22:22:02 hoily 22:22:11 -!- groily has changed nick to hoily. 22:22:13 fungot: tell me about the oracle 22:22:14 shachaf: they say that everyone knows why medusa stands alone in the nest without answering, for a heavy statue is really good. the styx could be made to shrink in size and power. trolls they were, as bright as ever. the deceased's next- of-kin would place it carefully in a shop. 22:22:19 fungot: hi how are you 22:22:19 nooodl: keep your weaponry away from rust. ( buffy the vampire slayer, episode 5.03, " go and sting the men of xibalba." old tom was the celtic ( continental european and irish) fertility goddess. 22:22:30 it has the comments... 22:22:36 st without answering, for a heavy statue is really 22:22:41 fungot: fungot? 22:22:41 shachaf: fog cloud to oz. in the evening has no effect on dragons. i am. ( the fox-horse, from the gods, by diana wynne jones) 22:22:42 "audio created with wolframtones" 22:22:59 fungot: what is the one thing every adventurer must know before going into the dungeon 22:22:59 shachaf: this release contains 10% recycled material. this is very embarrassing. do you bow before me?' ( rikki-tikki-tavi, by the two towers, by herbert spencer robinson and knox wilson) 22:23:11 ^style 22:23:11 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 22:23:29 ohhh, that's why the diana wynne jones 22:23:36 i wonder if she died yet 22:23:47 she did :( 22:23:51 `addquote I stand by the argument that fungot is the one making the most sense in this channel. 22:23:51 oerjan: thoth: the blindfolding was performed by binding a piece of iniquity, stealing away from the cave; the ferocious fear the only time conan ever saw such an expression of dubiosity on their bodies were jet-black and mostly the size of a warrior tradition, by robert e. howard, bjorn nyberg, and just missed the bunch. turning round again with a touch of his seed unto molech; he shall surely be put to death. 22:23:55 969) I stand by the argument that fungot is the one making the most sense in this channel. 22:24:13 `welcome oerjan 22:24:15 oerjan: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 22:24:30 `? fungot 22:24:30 olsner: want to know what cram is, of the blade itself gleamed like a regularly erupting geyser. 22:24:31 fungot cannot be stopped by that sword alone. 22:24:34 Did someone change `welcome? 22:24:55 `help 22:24:55 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 22:25:00 shachaf: looks the same to me? 22:25:08 I'd like to know what cram is, please fungot. 22:25:09 hoily: asmodeus: it is a painfully slow process. the other time when cursed holy water wasn't water. 22:25:11 later bill 22:25:21 maybe I didn't want to know after all. 22:25:33 `relcome shachaf 22:25:36 ​shachaf: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 22:26:12 `wercome oerjan 22:26:13 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wercome: not found 22:26:15 yikes 22:26:20 -!- zzo38 has quit (Remote host closed the connection). 22:26:24 `rainbow 22:26:26 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rainbow: not found 22:26:33 `cat bin/relcome 22:26:34 ​#!/bin/sh \ welcome "$@" | colorize 22:26:52 `echo $RANDOM | colorize 22:26:52 `?r monqy 22:26:53 `colorize "hi shachaf" 22:26:53 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ?r: not found 22:26:53 ​$RANDOM | colorize 22:27:00 `rwelcome kmc 22:27:03 ​kmc: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 22:27:10 `sh -c "echo $RANDOM | colorize" 22:27:11 sh: Illegal option - 22:27:15 fucucufuuk 22:27:17 kmc: `run 22:27:23 `run echo $RANDOM | colorize 22:27:24 No output. 22:27:25 ​9 22:27:31 `echo "hi shachaf" | colorize 22:27:32 ​"hi shachaf" | colorize 22:27:32 9? 22:27:38 lol i am bad at 22:27:41 9 is pretty small for a random number 22:27:42 `run echo $RANDOM | colorize 22:27:44 ​128 22:27:46 `run echo "hi shachaf" | colorize 22:27:47 ​hi shachaf 22:27:50 :D 22:27:51 `run seq 1 $RANDOM | colorize 22:27:53 ​1 22:28:04 `run echo $(seq 1 100) | colorize 22:28:06 ​ 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 17 18 19 20 21 22 23 2 25 26 27 28 29 3 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 5 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 6 69 70 71 72 73 74 5 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 22:28:30 `run cat colorize 22:28:31 what happened there?? 22:28:32 cat: colorize: No such file or directory 22:28:40 did some things get colorized invisible 22:28:41 `run cat /bin/colorize 22:28:42 cat: /bin/colorize: No such file or directory 22:28:48 where is 22:29:22 `run cat bin/colorize 22:29:24 ​#!/bin/sh \ python -c "import random; w=raw_input(); p=list('x'*len(w)+'C'*int((350-len(w))/3+1)); random.shuffle(p); i=(c for c in w); print ''.join(i.next() if c=='x' else chr(3)+str(random.randrange(2,15)) for c in ['C']+p)" 22:30:09 shachaf: it has to do with how the color thingy works....with numbers...you know.... 22:30:13 did some things get colorized invisible <-- oh hm i suspect the digit got swallowed by the color code number 22:30:19 "what oerjan said" 22:30:25 fizzie: ^ bug 22:30:32 monqy: right i remember now 22:30:37 you can easily fix that 22:30:38 monqy: look im not good at irc ok 22:30:41 that's not a bug, that's an invisible one. 22:30:47 (or at anything else?? :'( ) 22:30:49 str(random.randrange(2,15)) -> '%02d' % random.randrange(2,15) 22:31:59 `run base64 /dev/urandom -w 200 | head -n1 | colorize 22:32:01 ​/6d2Q76doel7Wp8WP7OvdrJ9rccw0r217o4pNmr8xTcukp+71tofYJbTzbUK+mS4rHjW//2vVOKo5zdquC3hbumeC4b4KqLCUkXoHd7LVjC/rZfmJ1zBhu+2FZBeqHYUUbW4jfwQPghEjk2INrxhkBQlq7wFGlURwM0WqnhNvuyYAg6bkFuu76iSPqfqJU4y7N 22:32:06 "thats more like it" 22:32:18 `run base64 /dev/urandom -w 100 | head -n1 | colorize 22:32:20 ​fOBYYKrtgvHwnJI4wbOAreqJifDecK1sS6Bwhh26JQXxvprrGGfYbBa3G+6n6/DycnAh2q63XMFZMD1IPYG+jQ/LeknkS 22:32:45 DecK 22:32:51 -!- blume has quit (Ping timeout: 260 seconds). 22:32:53 `run sed -i 's/str[^ ]*/'\''%02d'\'' % random.randrange(2,15)/ bin/colorize 22:32:54 IT'S A SIGN 22:32:54 bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file 22:32:57 `run base64 /dev/urandom -w 50 | head -n1 | colorize 22:32:59 ​FdnErKI4+44HWvUOd1aaJQEYei7ejYgHEnUDXALoVvkV 22:33:00 ff 22:33:14 ugh. sed 22:33:42 nooodl: shame on you, apologize to sed now 22:33:42 `run sed -i 's/str[^ ]*/'\''%02d'\'' % random.randrange(2,15)/' bin/colorize 22:33:45 No output. 22:33:57 `run echo $(seq 1 100) | colorize 22:33:59 ​1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 22:34:09 excellent 22:34:19 um 22:34:23 did you break the length checking 22:34:31 it only went up to 98.......... 22:34:43 ("u broke it") 22:34:51 oh hm 22:34:53 `run echo $(seq 1 100) | colorize 22:34:55 ​1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 22:34:59 ic 22:34:59 huh what 22:35:14 It's trickier to do the length checking this way, of course. 22:35:23 `run echo $(seq 90 110) | colorize 22:35:25 ​90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 11 22:35:41 109, 11, rip 22:35:52 shachaf: um shouldn't it be easier now that they're all the same length? 22:35:55 colorful 108 there tho 22:36:04 oerjan: Well, if you want to be *inefficient* about it. 22:36:19 i don't see how it's possible for it to break 22:36:22 But it shouldn't always addd the extra character. 22:36:26 addddd 22:36:38 what is this code even doing jesus 22:36:54 -!- augur has quit (Read error: Connection reset by peer). 22:37:01 oerjan: We want it to only add the extra character if it's strictly necessary. 22:37:19 sheesh 22:37:23 -!- augur has joined. 22:37:24 no we don't 22:37:29 these things are important 22:37:43 `run cat bin/colorize 22:37:44 ​#!/bin/sh \ python -c "import random; w=raw_input(); p=list('x'*len(w)+'C'*int((350-len(w))/3+1)); random.shuffle(p); i=(c for c in w); print ''.join(i.next() if c=='x' else chr(3)+'%02d' % random.randrange(2,15) for c in ['C']+p)" 22:37:58 iirc there is no way to reliably colorise sequences of numbers with pure mirc colours. 22:38:22 well mirc colors are terrible 22:38:27 well i don't use mirc 22:38:29 checkmate 22:38:40 ctrl+k 077 --> 7 22:38:41 yeah but they're how colors work anyway 22:38:49 elliott: um it seemed to work to pad it to two... 22:38:49 because irc is "well standardized" 22:38:50 it's perfectly reliable. 22:38:58 Bike: Clearly you should learn the rules of chess. 22:39:02 I said checkmate. 22:39:05 `quote chess 22:39:07 411) interestingly enough, go is a second player win chess is also first player win tennis, interestingly enough, is always a draw. \ 879) There is Haskell program "pandoc" to convert formats, so I make "panchess" which is the similar thing but for chess. 22:39:31 shachaf: figuring that you've got checkmate is uncomputable!!! 22:39:35 shachaf: you remember the wall of text? http://members.chello.nl/~r.gebhard1/nvrhd.txt 22:39:43 110 → 110 22:39:46 woops 22:39:47 !run sed -i 's/350/344/' bin/colorize 22:39:51 monqy: ??!! 22:39:56 11C070 → 110 22:39:57 `run sed -i 's/350/344/' bin/colorize 22:40:00 No output. 22:40:06 "This document is written by Gray (grayincarnation@hotmail.com) and may not be reproduced in any form without permission. Furthermore, this document may not be altered, edited, or sold without approval. If these terms are violated, proper legal action will be taken." 22:40:06 `run echo $(seq 1 100) | colorize 22:40:08 ​1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 10 22:40:10 good writing, Gray 22:40:16 what the hell is a "webmaster" 22:40:17 im trying to figure out how it goofed 22:40:18 `run sed -i 's/344/343/' bin/colorize 22:40:22 No output. 22:40:23 `run echo $(seq 1 100) | colorize 22:40:25 ​1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 10 22:40:28 wat 22:40:33 hm 22:40:39 why do you think you can't colorize numbers with mirc colors? 22:40:40 `run sed -i 's/343/342/' bin/colorize 22:40:43 No output. 22:40:45 Bike: They're the people who have to suffer legal consequences. 22:40:46 I mean, mirc colors are stupid and basically the worst spec ever 22:40:47 `run echo $(seq 1 100) | colorize 22:40:49 ​1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 10 22:40:54 but they are far from ambiguous 22:40:56 sheesh 22:40:59 Bike: Every time there's a legal consequence, a webmaster suffers. 22:41:16 `cat bin/colorize 22:41:18 ​#!/bin/sh \ python -c "import random; w=raw_input(); p=list('x'*len(w)+'C'*int((342-len(w))/3+1)); random.shuffle(p); i=(c for c in w); print ''.join(i.next() if c=='x' else chr(3)+'%02d' % random.randrange(2,15) for c in ['C']+p)" 22:41:19 coppro: IIRC there was no way with the original spec. 22:41:25 `run sed -i 's/342/341/' bin/colorize 22:41:28 No output. 22:41:33 `run echo $(seq 1 100) | colorize 22:41:35 ​1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 22:41:39 finally 22:41:42 nice 22:41:52 `run echo hello | colorize 22:41:53 ​hello 22:42:23 `run echo "hi nooodl" | colorize 22:42:25 ​hi nooodl 22:42:37 c13test 22:42:42 test 22:42:47 -!- hoily has changed nick to boily. 22:42:51 here: http://www.ircle.com/colorfaq.shtml 22:43:08 `run echo -n hm | colorize 22:43:10 ​hm 22:43:12 `run echo -n hmm | colorize 22:43:13 ​hmm 22:43:16 `run echo -n hmmm | colorize 22:43:18 ​hmmm 22:43:22 `run echo -n hmmmm | colorize 22:43:24 ​hmmmm 22:43:24 `run echo "i wonder whether sean is colorblind" | colorize 22:43:26 ​i wonder whether sean is colorblind 22:43:33 `run echo -n hmmmm | colorize 22:43:46 just testing if it works for all lengths (mod 3) 22:43:54 ~duck sean 22:43:55 --- No relevant information 22:44:01 ACTION 22:44:28 * oerjan notes the curiosity that it will always fill up the line with color codes, no matter how short the message 22:44:45 is there a way to make lambdabot print '\x3' 22:44:59 > '\x3' 22:45:00 '\ETX' 22:45:14 > '\\\x\3' 22:45:16 :1:4: 22:45:16 lexical error in string/character literal at character '\\' 22:45:24 sigh 22:45:34 > x3 22:45:36 ~echo > '' 22:45:37 > '' 22:45:37 '\x3' 22:45:39 :1:3: parse error (possibly incorrect indentation) 22:45:51 > 1 + 2 22:45:53 :1:3: lexical error at character '\ETX' 22:45:56 :( 22:46:10 > text "\ETX" 22:46:15 > text "\ETXq" 22:46:16 q 22:46:21 > text "\ETX3q" 22:46:21 hmm! 22:46:22 3q 22:46:24 nope 22:46:35 elliott: mirc color numbers max out at two digits 22:46:39 ~echo test 22:46:40 test 22:46:41 so you can pad with a leading zero if needed 22:46:50 ow. oooooooow. my eyes. 22:47:09 coppro: did you read the page I linked? 22:47:11 (custom rxvt colorscheme. L*a*b* balanced. that's nasty.) 22:47:26 elliott: missed it due to wifi drop 22:47:30 http://www.ircle.com/colorfaq.shtml 22:50:49 elliott: the mirc one is only ambiguous if you do not assume background color; you can otherwise just use the 4-digit version 22:51:15 * elliott still doesn't think you read the whole page... 22:51:22 elliott: I did 22:51:25 I have read it before 22:51:38 including the quote starting "If you use color numbers" and the following paragraph? 22:51:49 it seems clear that the original mIRC colour design did not allow this workaround 22:51:59 -!- TeruFSX has joined. 22:52:21 elliott: yes, but that's not what gets used 22:52:22 and there's still ambiguity in case of commas 22:52:34 no, because then you just specify a background color 22:52:49 you don't have that luxury, because you are implementing a client 22:52:52 wrong side of the power equation 22:53:10 you don't know whether ^Cff,bbx is ff-coloured ",bbx" or ff,bb-coloured "x" 22:53:17 i.e., ambiguity 22:53:18 it's the latter 22:53:23 it's well-defined 22:53:27 ...so colorize can still break with commas followed by numbers in the text? 22:53:28 yes, picking that is a way to resolve the ambiguity 22:53:28 braindead, yes 22:53:37 but it's well-defined and unambiguous 22:53:38 but it's not obvious from the protocol, you have to see what clients do in practice 22:53:47 no, because that's what the protocl is defined as 22:53:49 and I suspect many of them will emit an ff-coloured ,bbx as ^Cff,bbx 22:53:50 what if you WANT ff-coloured ",bbx" 22:53:52 which will break your guess 22:53:55 you can't add a "dummy" background color 22:54:08 `run echo $(seq -s, 1 100) | colorize 22:54:09 elliott: that's a client problem 22:54:10 ​1,2,3,5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,86,87,88,89,90,92,934,95,96,97,98,99,100 22:54:10 some people don't use black as their default bg color (including me) 22:54:23 ,bbx 22:54:26 ...what did you do now 22:54:35 hm. 0 isn't black. 22:54:53 coppro: the spec given at http://www.mirc.co.uk/colors.html is not remotely precise enough to determine this unambiguous implementation that every client differing from must therefore be in error for, really 22:54:57 oh right 22:55:11 nooodl: colour 99 works as "dummy" 22:55:23 according to that spec. let's take bets on how many clients that are not mIRC implement that part. 22:55:27 ,bbx 22:55:36 oh god i'm blind 22:55:39 elliott: 99 here gives a green background. 22:55:39 bla 22:55:42 bla 22:55:44 bla 22:55:46 xchat supports it just fine... 22:55:54 blabla 22:55:57 blabla 22:56:10 ^ used 99 there 22:56:12 help 22:56:16 0,101with three-digit... 22:56:20 blabla 22:56:20 coppro: green here 22:56:28 coppro: purple and green. 22:56:33 yeah 22:56:36 so as you can see, this comma ambiguity is not resolvable in practice, in a client-portable way 22:56:40 help 22:56:46 so colorize must inherently be broken 22:56:50 fair 22:57:01 can we take mirc out back and shoot it yet? 22:57:02 ´rm bin/colorize 22:57:17 unbreak colorize by detecting where it'll break and not do stuff there???? 22:57:21 "have fun" 22:57:30 let's just go with ctcp colors 22:57:32 keep colorize broken 22:57:42 olsner's suggestion is good too 22:57:42 broken = fun, correct = boring 22:58:03 GOOD point 22:58:39 imo not supporting the mirc spec correctly isn't colorize's fault 22:58:52 is there a fancy unicode character that combines . and ˙ in the same glyph 22:59:02 and if you don't follow the mirc spec for mirc colours what are you even following?? 22:59:04 Ouch, my eyes 22:59:06 that would be great for smileys 22:59:10 the spec is not in agreement with colorize, what can we do? it's not our spec 22:59:14 This is much better and less eyehurty 22:59:41 ,, 22:59:46 omg i found a good way to bypass it 22:59:59 instead of 23:00:23 y'all don't break things too much, ok? :( 23:00:25 olsner: kill mirc with fire 23:00:27 is mirc still alive? 23:00:36 ['\x3', '0', '5', ',', '1', '2'] 23:00:37 you write 23:00:48 mirc is a piece of shit 23:01:02 ['\x3', '0', '5', ',', '\x3', '0', '5', '1', '\x3', '0', '5', '2'] 23:01:03 shit is full of life, boily. 23:01:06 Teeming. 23:01:38 maybe i shouldn't've used [] notation in retrospect but basically, repeat the colors for every char, so comma's are followed by \x3 and can't get converted into some funky background color thing 23:03:54 nooodl: you are aware that this cuts the line limit by a factor of 4? 23:05:13 well you only have to do it in specific situations 23:05:45 -!- kiwi_93423 has joined. 23:06:08 the simple shuffle algorithm for placing colors won't work with being clever about this, though 23:06:57 nooodl: colorize is written to only add as many color codes as will fit within HackEgo's line limit 23:08:34 hm i suppose a simple solution to just turn badly placed C's into x's after shuffling, it might remove some but it is simpler than trying to find a new place for them 23:08:41 *is to just 23:09:11 i'm sure someone proficient in python could do that. 23:09:24 > x3 23:09:26 '\x3' 23:10:44 clearly rewrite it in haskell 23:11:13 obv. 23:11:32 elliott: um it's trivial in haskell 23:11:39 so we don't actually need to write it 23:12:03 ~yi 23:12:04 Your divination: "Persevering" to "Sprouting" 23:12:05 ,test 23:12:33 from random colourizations, green text will appear. my bot divination algo is working! 23:12:39 g'evening 23:13:19 ~yi 23:13:19 Your divination: "Small Accumulating" to "Centre Confirming" 23:13:27 shachaf: Gay evening to you, too, sir. 23:13:29 why is it always a sex thing 23:13:52 Bike: ancient chinese wisdom. I don't have nothing to do with it. 23:14:02 fuckin' pervs 23:14:31 `run echo $(seq -s, 100 200) 23:14:32 100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,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,18 23:14:53 > 87*4+2 23:14:55 350 23:14:57 whats this channel about? 23:14:59 seems programming 23:15:10 yes, exactly 23:15:11 `welcome kiwi_93423 23:15:13 kiwi_93423: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 23:15:39 thnx 23:19:41 -!- hagb4rd|lounge has joined. 23:21:34 -!- nooodl_ has joined. 23:22:45 -!- sirdancealot7 has joined. 23:23:54 -!- nooodl has quit (Ping timeout: 252 seconds). 23:24:10 -!- augur has quit (Remote host closed the connection). 23:25:47 huh 23:25:49 oh 23:25:51 a newcomer 23:26:37 nooga ~ nooodl? 23:26:57 shachaf ~ kiwi_93423? 23:27:14 seems programming 23:44:26 Hi, has anyone got a copy of Artificial Life by Steven Levy handy? I just wanted to check something and I haven't got my copy here. 23:57:26 -!- augur has joined. 23:57:39 -!- zzo38 has joined. 23:59:01 -!- Arc_Koen has quit (Quit: Arc_Koen). 23:59:29 -!- boily has quit (Quit: Poulet!). 23:59:34 -!- cuttlefish has quit (Remote host closed the connection).