00:00:39 -!- sebbu4 has joined. 00:00:40 Do you mean things like bind2 = join .: liftA2 and so on? 00:00:41 Which takes the appearance of a function ??? :: (Monad m) => m a -> a 00:00:41 -!- sebbu4 has quit (Excess Flood). 00:00:57 Said function can only be used in a certain context 00:01:03 what do you mean takes the appearance 00:01:04 You need a macro, then. 00:01:07 and used in a certain context 00:01:08 -!- sebbu4 has joined. 00:01:08 -!- sebbu4 has quit (Changing host). 00:01:08 -!- sebbu4 has joined. 00:01:11 It is not a function. 00:01:17 I don't think you're speaking haskell 00:01:30 you're speaking (???language) with haskellish syntax 00:01:34 monqy, yes 00:01:40 23:59:35 An applicative-ish syntax for using monads 00:01:44 do you mean applicatives 00:01:54 alt. have you seen the work on effect systems 00:02:01 -!- sebbu4 has changed nick to sebbu. 00:02:04 Haven't seen the work on effect systems :( 00:02:07 I'm thinking m a -> a would cause a lot of trouble with the IO monad 00:02:10 Sgeo: well my point with you should express your thoughts in haskell is we don't know what you're talking about when you use these weird terms 00:02:15 -!- GreyKnight has quit (Ping timeout: 265 seconds). 00:02:26 eff, frank, etc. 00:02:32 monqy, the best I can do is Haskell with shift and reset forms 00:02:49 how about haskell with the Cont monad 00:03:01 since it is a first-class representation of delimited continuations 00:03:03 that already exists 00:03:14 FreeFull: the point is sgeo isn't speaking haskell. he's speaking a weird thing. 00:03:33 FreeFull, it shouldn't 00:04:04 FreeFull: don't think anything sgeo's saying applies to haskell.... 00:04:23 What does it apply to? 00:04:31 idk something weird 00:04:34 but not haskell 00:04:54 It's not "really" taking an arbitrary m a and turning it into a, it's taking the rest of the computation up to the reset, with its location as \a ->, and using >>= on its argument and that lambda 00:05:18 Oh, I know: It's a bit like calling <- a function 00:05:22 Maybe it can apply to Ibtlfmm but even if it does, it would be a macro, and not a function. 00:05:31 -!- GreyKnight has joined. 00:05:49 remember that time I proposed using Cont rather than confusing people 00:06:03 -!- GreyKnight has quit (Client Quit). 00:06:06 elliott: How is that? 00:06:07 I propose that this is for languages that don't have do 00:06:12 remember that time I hinted in that direction and made explicit sgeo was confusing people 00:06:12 And that do is ugly 00:06:24 What would be a language that would be the opposite of Haskell? 00:06:32 FreeFull: meaningless question 00:06:45 Sgeo: i propose that this proposal is completely irrelevant to your question... 00:06:58 Sgeo: could you -please- use Cont so I can understand what you're saying 00:07:03 Sgeo: i assume you have heard of applicative notation right 00:07:07 Sgeo: because otherwise I'm not getting anything out of your words 00:07:09 since this sounds like you're edging in that direction but in a really weird way 00:07:15 of course you still won't be able to do join which is kind of important 00:07:27 ??? (??? a) is join 00:07:37 idiom brackets can do join!!!!!!can't they 00:07:40 elliott: Applicative doesn't really do m a -> a 00:08:08 I'm not "really" doing m a -> a either, just the illusion of it 00:08:13 FreeFull: sgeo was never talking about m a -> a. he was talking about somethign weird that he -called- m a -> a 00:08:22 Maybe I should just go write Factor code, would that help? 00:08:32 Might do 00:08:34 no 00:08:42 we don't know factor we know Cont 00:08:49 so can you please use Cont to communicate with us 00:09:03 What are the types of shift and reset in Cont? 00:09:05 otherwise we won't be very helpful?? 00:09:09 still would like an answer to my Applicative question 00:09:18 Sgeo: What are the stack effects of shift and reset in Factor? 00:09:19 o yes i would like an answer to that too 00:09:25 you should know that monqy exists in 3 persons..father son and.. 00:09:38 the beast 00:09:45 shift f = Cont (flip runCont id . f) 00:09:52 reset m = return (runCont m id) 00:09:54 is the form oleg uses 00:09:58 runCont and Cont work just fine though 00:09:59 :t runCont 00:10:01 Cont r a -> (a -> r) -> r 00:10:03 :t cont 00:10:05 ((a -> r) -> r) -> Cont r a 00:10:11 f <$> ma <*> mb <*> pure c <*> md --> f (??? a) (??? b) c (??? d) 00:10:24 so (| f a b ~c d |) 00:10:51 anyway just look at frank and eff if you want applicative notation for effects 00:12:06 -!- oerjan has quit (Quit: Good night). 00:12:09 Sgeo: but, your ??? function still clearly doesn't exist in Haskell 00:12:20 if you want to work with the effect of a continuation then you want to write with Cont 00:12:22 Sgeo: f <$> ma <*> mb <*> pure c <*> md would return the m d of md :: m d though 00:12:29 what 00:12:32 ????? 00:12:33 what 00:13:07 I mean, if m is [], then it will return a [] d 00:13:26 that's not true 00:13:32 are you familiar with Applicatives? 00:13:55 > (+) <$> [1] <*> [2] 00:13:57 [3] 00:14:31 > (\ a b -> show (a + b)) <$> Just 1 <*> Just 2 00:14:33 Just "3" 00:14:41 I'm just going to go ahead and call it mamb 00:14:44 And write code 00:14:46 nb that is not Maybe Int 00:14:49 monqy: Oh yeah, you're right 00:15:15 Sgeo: just call it "wtf". it's nothing to do with amb really 00:15:27 It returns m b of f :: a -> b 00:16:02 In Factor, { 1 2 3 } amb seems to return a 1, unless backtracking occurs, in which case it returns 2, unless that backtracks too, in which case it returns 3 00:17:50 Of course I have no idea what backtracking means here 00:18:10 does anyone 00:18:55 { 1 2 3 } amb dup 2 = require . 00:18:57 Will print 2 00:19:35 O, so that is how it works. 00:19:45 So require goes back and undoes everything until it gets a true? 00:19:57 FreeFull, yes 00:21:27 How does it mix with IO? 00:22:14 The IO will get performed each time around. So probably a bad idea to mix them 00:23:21 Depends on the IO I suppose 00:24:07 How far does require go back to? The nearest amb? 00:25:03 The nearest amb, unless that amb fails entirely, in which case it goes up an amb 00:26:02 FreeFull: how it actually works is it saves the continuation 00:26:14 and then runs it until it erorrs, and if it does, it retries with the next option 00:28:22 I don't see how this would make any sense for anything other than a [] of options 00:29:35 Or something similar in structure 00:30:20 you can do it with infinite sets pretty easily 00:33:58 -!- azaq23 has joined. 00:38:43 What would be a good non-listy monad to try my idea out on 00:38:47 Not counting Cont 00:39:02 (I'm considering Maybe to be listy) 00:39:43 (->) r? 00:40:00 Don't know what idea you're working on, though 00:41:47 Writer, IO 00:42:47 ((->) r) is also like a data structure 00:42:50 * Sgeo attempts to process wtf this looks like in Writer 00:42:53 indexed by elements of r 00:42:54 reverse state monad 00:43:06 there's some formal distinction between data structure like monads and other ones 00:43:13 but i forgot 00:43:14 Sgeo: should be utterly trivial for Writer 00:43:20 since you can implement Writer w a -> a 00:53:34 wot 00:53:37 "Generic word length does not define a method for the cons class." 00:55:09 hi 00:56:48 IN: scratchpad [ { 1 2 3 } mamb { 2 4 6 } mamb + 1array ] areset . 00:56:48 { 3 5 7 4 6 8 5 7 9 } 00:57:16 what's this 00:57:29 mamb bamb bo bamb 00:57:38 mamb working the way I want it to with the list monad 00:58:20 Is that just (+) <$> [1,2,3] <*> [2,4,6]? 00:58:31 But in a weird language I know not of 00:58:50 Let's try join 01:00:16 IN: scratchpad [ { { 1 2 } { 3 4 } { 5 6 } } mamb mamb 1array ] areset . 01:00:17 { 1 2 3 4 5 6 } 01:00:59 Success? 01:01:10 Is that Joy or Factor or something? 01:01:18 Factor 01:02:25 that should be in the /topic 01:02:35 $SGEO_LANGUAGE 01:02:51 but where else would i learn about omphaloskepsis 01:03:33 Goodnight! 01:03:36 -!- Ngevd has quit (Quit: Leaving). 01:04:24 I can't write a with-monad 01:04:32 Because the list monad in Factor is too broken for that 01:08:40 The next time I hear about someone doing a "straight translation" of monads from Haskell to another language, I will slap them 01:09:30 something about mamb 01:12:55 -!- nooga has joined. 01:19:52 This thing is acting a bit like do notation except possibly nicer 01:19:53 I think 01:20:22 In a more applicative language it might be nicer? 01:21:44 -!- nooga has quit (Ping timeout: 252 seconds). 01:22:32 So, reader monad test ? 01:22:36 what are you even talking about 01:23:10 (im back hi) 01:23:16 e.g. 01:23:18 17:04:24 I can't write a with-monad 01:23:19 17:04:32 Because the list monad in Factor is too broken for that 01:23:19 17:08:40 The next time I hear about someone doing a "straight translation" of monads from Haskell to another language, I will slap them 01:23:22 what does this mean 01:23:22 and also 01:23:26 17:19:52 This thing is acting a bit like do notation except possibly nicer 01:23:29 17:19:53 I think 01:23:32 17:20:22 In a more applicative language it might be nicer? 01:23:34 that 01:23:37 -!- nooga has joined. 01:23:51 it just looks like idiom brackets but noisier to me 01:24:04 not convinced it is possible to represent join with this notatoin 01:24:10 oh I guess he di dthat 01:24:12 *did that 01:24:20 IN: scratchpad [ ask mamb 15 + reader-monad return ] areset 5 run-reader . 01:24:20 20 01:25:15 ???? 01:27:07 http://paste.factorcode.org/paste?id=2821 01:27:35 Oh, whoops, prettyprint's not needed in there 01:27:37 could you explain what these things mean 01:27:40 & what they are doing 01:28:00 areset and ashift are just me making delimited continuation operators that work the way I want them to 01:28:23 Using a dynamically-scoped variable rather than actually passing quotations around on the stack 01:29:02 but what is mamb 01:29:30 i'm not a "factor guy" i can't look at this and immediately see what it means 01:29:44 (define (mamb ma) (shift k (bind ma k))) 01:29:48 ^^Scheme 01:31:38 mamb calls bind with its argument and the current continuation 01:31:48 yes i know but what is mamb supposed to do conceptually... 01:32:04 :t \ma -> Cont (\k -> (ma >>= k)) 01:32:05 Not in scope: data constructor `Cont' 01:32:05 Perhaps you meant one of these: 01:32:05 `Const' (imported from Control.Applicative), 01:32:09 :t \ma -> cont (\k -> (ma >>= k)) 01:32:10 Monad m => m a -> Cont (m b) a 01:32:37 :t let wtf ma = cont (\k -> (ma >>= k)) in (+) <$> wtf [1, 2, 3] <*> wtf [4, 5, 6] 01:32:38 Num b => ContT [b1] Identity b 01:32:55 :t let wtf ma = cont (\k -> (ma >>= k)) in evalCont $ (+) <$> wtf [1, 2, 3] <*> wtf [4, 5, 6] 01:32:56 Not in scope: `evalCont' 01:33:01 :t let wtf ma = cont (\k -> (ma >>= k)) in flip runCont ?f $ (+) <$> wtf [1, 2, 3] <*> wtf [4, 5, 6] 01:33:03 (?f::a -> [b], Num a) => [b] 01:33:08 > let wtf ma = cont (\k -> (ma >>= k)) in flip runCont return $ (+) <$> wtf [1, 2, 3] <*> wtf [4, 5, 6] 01:33:10 Terminated 01:33:14 oh hm 01:33:35 Where can I read up on what this mamb/amb thing is? 01:33:35 > let wtf ma = cont (\k -> (ma >>= k)) in flip runCont return $ (+) <$> wtf [1, 2, 3] <*> wtf [4, 5, 6] 01:33:36 [5,6,7,6,7,8,7,8,9] 01:33:42 > (+) <$> [1,2,3] <*> [4,5,6] 01:33:44 [5,6,7,6,7,8,7,8,9] 01:33:53 Sgeo: tada, was that really so hard you couldn't have done it originally 01:33:55 FireFly: nobody knows what mamb is, amb is well-documented 01:34:08 i know what mamb is now 01:34:52 Sgeo: anyway see http://blog.sigfpe.com/2008/12/mother-of-all-monads.html 01:34:57 elliott, that <$> and <*> for the wtf usage is only necessary because you need to use the Cont monad along with <$> and <*> to get shift and reset 01:35:13 Sgeo: your mamb is exactly i 01:35:13 no 01:35:23 you don't understand my point at all 01:35:29 elliott, isn't that exactly what I am doing? Taking nice syntax for the Cont monad and turning it into nice syntax for all monads 01:35:39 nice syntax for the Cont monad = nice syntax for all monads 01:35:41 it's equivalent 01:35:52 what you've done is reinvent idiom brackets, which work for Cont too 01:36:58 or rather 01:37:00 "reverse idiom brackets" 01:37:03 where you mark the impure expressions 01:37:08 but the translation is basically the same 01:37:35 (| f x y z |) = f <$> x' <*> y' <*> z' where (~x)' = x; y' = pure y 01:37:53 well 01:37:57 you get join too I guess but it's kind of freaky 01:38:09 > let wtf ma = cont (\k -> (ma >>= k)) in wtf (wtf [1,2,3]) 01:38:10 No instance for (GHC.Show.Show 01:38:10 (Control.Monad.Trans.Con... 01:38:12 right 01:38:39 > let wtf ma = cont (\k -> (ma >>= k)) in wtf [1,2,3] >>= twf 01:38:40 > let wtf ma = cont (\k -> (ma >>= k)) in wtf [1,2,3] >>= wtf 01:38:41 Not in scope: `twf' 01:38:41 Perhaps you meant `wtf' (line 1) 01:38:42 No instance for (GHC.Num.Num [b0]) 01:38:42 arising from a use of `e_1123' 01:38:42 Possi... 01:38:44 :t let wtf ma = cont (\k -> (ma >>= k)) in wtf [1,2,3] >>= wtf 01:38:45 Num [b] => ContT [b1] Identity b 01:38:49 :t let wtf ma = cont (\k -> (ma >>= k)) in wtf [1,2,3] 01:38:50 Num a => Cont [b] a 01:39:03 :t let wtf ma = cont (\k -> (ma >>= k)) in wtf (wtf [[1,2],[3]]) 01:39:04 Num t => Cont (ContT [b1] Identity b) [t] 01:39:13 :t let wtf ma = cont (\k -> (ma >>= k)) in wtf [[1,2],[3]] >>= wtf 01:39:15 Num b => ContT [b1] Identity b 01:39:23 > let wtf ma = cont (\k -> (ma >>= k)) in runCont (wtf [[1,2],[3]] >>= wtf) id 01:39:24 No instance for (GHC.Num.Num [b0]) 01:39:24 arising from a use of `e_1123' 01:39:24 Possi... 01:39:31 oh 01:39:32 > let wtf ma = cont (\k -> (ma >>= k)) in runCont (wtf [[1,2],[3]] >>= wtf) return 01:39:34 [1,2,3] 01:39:35 duh 01:39:38 right 01:39:57 Sgeo: anyway this sounds kind of awful in practice 01:40:11 having to write putStrLn (foo (foo getLine)) everywhere 01:40:16 but you should take a look at eff and frank 01:57:09 When you say frank I keep thinking that units calculation thingy 01:57:20 (Cont x) is like (Codensity (Const x)) so they are Kan extensions. As they said, everything is Kan extensions. 01:57:26 that's frink 02:01:50 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 02:02:38 but at what cost? your very soul, kmc! 02:02:42 exactly 02:02:44 if it also talked about how sexism in geek circles didn't exist it would get at least 2 billion 02:02:47 that's why i'm not going to do it 02:03:03 also i thought javascript had semicolon removal rules 02:03:26 Fiora: straight white programmers with self-diagnosed aspbergers are the *real* persecuted minority! 02:03:39 oh wow I still have this thing bookmarked I saw 02:03:41 http://us2.campaign-archive1.com/?u=193b767bbb3b0eb0d949d5924&id=0c3a567f95&e=5603c292b3 02:03:50 I would think that the prospect of getting a billion comments on hacker news is enough motivation to not do it 02:03:54 kmc: You might be correct. Maybe... 02:03:57 A Story About Sexism in Tech Filled With Sexist Comments Denying Sexism in Tech 02:04:07 whoa, it's like i'm really reading it 02:04:12 I -know= 02:04:14 it's perfect 02:04:25 Bike: it does, but omitting the semicolons is super tacky 02:04:39 «Startup Celebrity says, "Bold statement, out of context"» is "Startup Celebrity" a real thing :( 02:04:46 or anyway JSLint will complain about it 02:04:48 kmc: yeah well so's lisp ohhhhh 02:04:53 I suppose someone like zuck counts? 02:05:00 JavaScript semicolon removal rules might be the worst part 02:05:04 "How I Left My Jobs as a Consultant to Found a Startup" 02:05:06 Douglas Crockford is kinda crazy and super opinionated about minor syntax 02:05:33 Fiora: i cried the day I saw someone on HN list Zuckerberg in the same list as RMS, Donald Knuth, John Carmak, and Linus Torvalds 02:06:01 haha, did they really? rad 02:06:17 How I Left My Job At A Startup Providing Services to Startups to Join a Startup Providing Services to Startups Providing Services to Startups 02:06:29 if you're not working for at least a startup³ then you're just a MONKEY IN A CAGE man 02:06:39 I think HN's definition of celebrity involves making a lot of money and flipping a worthless startup for billions of dollars to some large company 02:06:59 Fiora: thanks for the link, this is hilariou 02:07:13 yeah i started reading HN for technical posts and then i realized that it was mostly startup crud i didn't care about 02:07:24 Bike: let me know if you find a good venue for technical posts 02:07:30 I read it a looong time ago but it really seemed to stop posting the interesting things 02:07:37 kmc: well, i read l-t-u but i don't think that's quite the same 02:07:37 i think some bayesian filtering on HN might be the way to go 02:07:45 Most technical posts are also worthless crud not worth caring about 02:07:48 nowadays whenever I look it's like a 5% chance I find anything technical, otherwise it's all startup drama stuff 02:07:55 i want to write a program which will feed me HN posts at a constant slow rate and I can flag them as shitty 02:07:58 and oh god the comments are horrid 02:08:12 Jafet: yes, but crud about startups not worth caring about transcends standard crud. 02:09:01 "How I remapped my capslock key to be both ESC and Ctrl" yessssssssss 02:09:05 i should do that 02:09:07 I remember talking to someone at one point who actually told me she much preferred reddit /prog/, which says something about HN <_> 02:09:08 there's a thing 02:09:15 Thanks for underlining your insight 02:09:18 yeah i ragequit /r/programming a while ago 02:09:43 http://www.reddit.com/r/coding seems reasonably high quality but has like 12 posts a month 02:09:51 underlines are important, man. important 02:10:11 kmc: "therefore" hth 02:10:14 I really wish there was a good place for just, cool interesting sciency technology things 02:10:26 "Are these glasses useful while coding, or is this a pseudo-science?" 02:10:28 without startup stuff, without neckbeards arguing about linux distros, without 500 sexist comments on everything 02:10:41 i basically count on my friends / aquaintances talking about interesting posts online 02:11:00 i count on you 02:11:06 obviously what we need is something that's exactly like word of mouth, but with a better logo 02:11:10 Just because something is not science, does not necessarily make it pseudoscience. 02:11:25 wow what an interesting channel today 02:11:29 maybe i should get on twitter and follow some people on twitter 02:11:44 I'm on Twitter 02:11:52 I should hook up my Tumblr to Twitter 02:12:04 i,i http://jerkcity.com/_jerkcity4960.html 02:12:11 I get some things from tumblr at least 02:12:16 oh, r/prog has a post on "implementing dependent type theory, part I" so that works 02:12:18 I follow people who post lots of astrophysicsy and astronomy stuff 02:12:44 christinetheastrophysicist, astrotastic, astronemma, etc 02:13:49 Why Go Can't Scale Past 2 Billion Users 02:13:51 this is good 02:14:02 Voyager Season One Has Left Cable Syndication 02:14:04 really good 02:20:17 -!- nooga has quit (Ping timeout: 255 seconds). 02:22:02 -!- augur has joined. 02:24:55 elliott, which is likely to be easier for me to understand first, eff or frank? 02:25:23 no idea 02:25:50 see https://personal.cis.strath.ac.uk/conor.mcbride/pub/Frank/test.fk 02:25:54 or https://personal.cis.strath.ac.uk/conor.mcbride/pub/Frank/TFM.pdf 02:26:04 or 02:26:09 http://math.andrej.com/2010/09/27/programming-with-effects-ii-introducing-eff/ 02:26:49 That post says that eff has changed considerably 02:27:43 eep that :: confused me for a second 02:27:55 It's almost like Haskell is the US of the functional world 02:28:14 In that it uses :: for types and : for con, where everyone else uses : for types and :: for con 02:28:17 hahaha 02:28:18 s/con/cons/g 02:28:18 yes 02:28:18 what the hell does that me- oh 02:28:36 HASKELL #1 FUCK YEAH FREEDOM 02:29:04 That's taken from Miranda. 02:29:26 i thought it was going to be some convoluted political metaphor. java is china, or something. and DEBT is crosshatched everywhere 02:29:41 the Haskell 98 report is divinely inspired and is a perfect foundation for civilization 02:29:58 the pure city on the hill 02:29:58 you can pry my monomorphism restriction from my cold dead hands 02:30:45 Haskell 2010 followers are mormons? 02:30:54 kmc: uh pretty sure you mean the haskell 1.4 report 02:30:57 canadians 02:31:18 shachaf: that can be the articles of confederation. 02:36:32 x.lookup() + x.lookup() 02:36:43 I assume that that's the implicit sequencing that it's warning about/ 02:39:40 elliott, monqy Fiora update 02:40:18 Bike: update 02:40:43 Sgeo: Your new job is to tell me when GitHub comes back up. 02:41:13 elliot: update 02:41:40 -!- copumpkin has quit (Ping timeout: 252 seconds). 02:42:20 -!- copumpkin has joined. 02:44:31 elliott, I guess I should read the theory stuff too? 02:44:39 And then consider how to implement this in some language 02:45:11 just read the frank stuff 02:45:19 implementation is basically trivial in terms of a free monad 02:46:48 What are you implementing? 02:46:50 I have no idea what a free monad is 02:47:06 data Free f a = Return a | Free (f (Free f a)) 02:47:08 data Free f x = Pure x | Free (f (Free f x)); 02:47:29 cf. http://hackage.haskell.org/package/free, http://hackage.haskell.org/package/operational (equivalent) 02:47:38 Free f a = (a, f (a, f (a, f (... 02:47:42 github.. 02:47:55 i think I'll switch to bitbucket for good 02:48:09 So, it lets you use any type constructor in a monadic way somehow? 02:48:47 And then join (Free x) = Free (join <$> x); I think 02:49:48 Wait. 02:49:49 elliott, is this effects stuff in eff just a nicer way to define a monad? 02:49:51 That's Cofree 02:49:57 Why did I write Cofree. :-( 02:50:08 Sgeo: I don't understand what you mean by that. 02:50:09 Free f a = Either a (f (Either a (f (Either a (f ... 02:50:20 It requires f to be a functor, but you can also use the right and left Yoneda 02:50:33 * Sgeo is unsure if the "magical" choice thing that always selects te value that leads to the lowest result is a monad 02:50:48 * Sgeo thinks it is 02:50:56 Yeah, I see how to do it as a monad 02:51:10 Erm, I mean, by defining bind 02:52:21 For example if you have data X :: * -> * where { GetChar :: X Char; PutChar :: Char -> X (); }; and then you can make (Free (CoYoneda X)) 02:53:21 -!- augur has quit (Read error: Connection reset by peer). 02:53:43 Typo 02:53:45 "Eff has a builting effect io" 02:54:29 -!- augur has joined. 02:55:20 So it is another use of GADT 02:59:59 I'm going to be patient and try to understand the math 03:00:50 -!- WeThePeople has quit (Quit: Leaving). 03:23:33 I don't quite understand this notation fi:Ani→A 03:23:53 I gather that f is a function, but what does A^n_i -> A mean? 03:23:54 whats the context 03:23:59 http://math.andrej.com/2010/09/27/programming-with-effects-i-theory/ 03:24:06 https://twitter.com/HackerNewsTips 03:24:14 "An algebra (A,f1,…,fk) is a set A together with maps fi:Ani→A for i=1,…,k, called the operations. " 03:24:48 Oh, I guess that f_i can take a number of arguments? 03:25:09 A number of arguments fixed for each individual f_i? 03:25:49 f_i is a function from A^{n_i} to A. depending on what n_i is, A^{n_i} is either the set of tuples of n_i A's, or functions from the set n_i to A 03:26:17 The former, I think 03:27:02 if n_i is a number you can pretend it means finite set with that many elements and then it's ~"the same thing" 03:27:37 -!- azaq23 has quit (Quit: Leaving.). 03:27:58 The person is now doing arities that are arbitrary sets 03:28:15 ok 03:36:33 * Sgeo decides to just skip that post and look at Frank 03:36:49 oh? 03:37:47 https://personal.cis.strath.ac.uk/conor.mcbride/pub/Frank/test.fk 03:38:09 yes i know what frank is 03:39:48 Nat + Nat [] Nat 03:39:55 yes 03:39:56 I don't understand that example 03:40:02 what's not to understand about it 03:40:21 Oh, is it a type declaration? 03:40:28 you should read the notes 03:40:39 "Here are some perfectly ordinary functions." 03:40:51 Oh, after that 03:42:23 The dull function is rather ... dull 03:42:31 :) 03:42:53 -!- copumpkin has quit (Ping timeout: 252 seconds). 03:43:35 -!- copumpkin has joined. 03:49:22 -!- augur has quit (Remote host closed the connection). 03:54:30 Trying to be sure I understand the precedence here 03:54:32 Is this 03:54:34 state _ [set s ? k] = state s ? k () 03:54:35 The same as 03:54:41 state _ [set s ? k] = state (s ? k ()) 03:54:57 erm, wait, that doesn't work... 03:55:01 Now I'm very confused 03:55:21 hi im back whats up 03:57:00 That state function 03:57:15 In that branch, it's calling state again, right? But with what arguments? 03:57:17 ok i'll try & explain it 03:57:23 it's (state s) ? k () 03:57:30 ok elliott explains it 03:57:52 which you can think of as state s (? (k ()) 03:57:56 ) 03:58:00 Wait, I can? 03:59:04 I was wondering if it was maybe (state s) ? (k ()) 03:59:22 I take it it's not, though 04:00:15 Would reading the PDF be easier? 04:02:26 Sgeo: state describes how to run a stateful request. if your request is to set the state to s & your continuation is k, you recursively do stuff with your state being s (the thing you set your state to) and whatever you get when you pass unit to your continuation 04:04:33 Sgeo: what in particular about that doesn't make sense? 04:05:41 & i forget if the pdf is "easier" or not 04:05:54 but there's nothing challenging about test.fk..... 04:06:54 I guess what the ? operation does, exactly 04:06:59 Why isn't it just k () 04:08:32 turns the stateful computation into its "interpretation" 04:08:40 state s (k ()) would execute k () 04:08:46 which is totally not what you want 04:08:55 because, remember, the whole point of this is that you (Sgeo) want applicative effects 04:09:03 s.t. you can write f (g x) (h x) where g and h are effectful 04:09:12 so interpreter ? action calls interpreter with the [] stuff 04:09:26 so yes ? is a binary operator here 04:09:54 Ah, ok 04:11:28 -!- Arc_Koen has quit (Quit: Arc_Koen). 04:23:16 -!- nys has quit (Quit: quit). 04:30:14 shachaf, are you the person who asked to be on a GitHub back up list? 04:30:31 Sgeo: Thanks! 04:30:36 Now please take me *off* the GitHub list. 04:47:29 -!- monqy has quit (Quit: hello). 04:58:41 I might end up looking at both the PDF and the example thing 04:58:56 I seem to learn best by reading as many different documentation sources as possible 05:05:10 Hmm, I think I get the template thing now 05:18:38 The PDF didn't really explain much 05:24:44 The fifty moves rule, threefold repetition rule, and perpetual check rule, do not necessarily require all three; either one of the first two will do. 05:26:07 Although having all three does sometimes change things, the game would work without. 05:29:56 'Lugging around a SOAP API in 2012? Replace all occurrences of "SOAP" with "Hand Crafted Vintage XML", and lure in the Portland tech scene.' 05:30:20 'The SaaS field is getting very overcrowded. Consider a Software as a Faustian Bargain approach to your product instead.' 05:30:52 shachaf: hey, you can't ask to be off the list 05:30:54 never works for anyone else 05:31:43 :t either LEft 05:31:45 Not in scope: data constructor `LEft' 05:31:45 Perhaps you meant `Left' (imported from Data.Either) 05:31:45 :t either Left 05:31:46 (b -> Either a b1) -> Either a b -> Either a b1 05:32:08 :t either Left (?f :: s -> Either t a) 05:32:09 Unbound implicit parameter (?f::s -> Either t a1) 05:32:09 arising from a use of implicit parameter `?f' 05:32:09 In the second argument of `either', namely 05:32:17 :t \f -> either Left (f :: s -> Either t a) 05:32:19 Couldn't match type `t' with `s -> Either t1 a1' 05:32:19 `t' is a rigid type variable bound by 05:32:19 the inferred type of it :: t -> Either a b -> Either a b1 05:32:21 ???? 05:32:22 Come on. 05:32:28 :t \(f :: s -> Either t a) -> either Left f 05:32:29 (s -> Either t a) -> Either t s -> Either t a 05:42:35 -!- ogrom has joined. 05:55:54 * Sgeo thinks that eff is more understandable 06:31:13 Is this data types OK? data Move = Resign | Draw | Castle CastlingSide | Move Square Square Piece deriving (Eq, Ord, Read, Show); type NAG = Word8; data AnnMove = AnnMove { annMove :: Move, annNAG :: NAG, annVar :: MoveList, annText :: String } deriving (Eq, Read, Show); type MoveList = [AnnMove]; 06:35:39 Chess is overcomplicated 06:40:54 "Ilyumzhinov claims to have been abducted from his Moscow apartment, in 1997, by extraterrestrials, who gave him a tour of the galaxy and taught him that chess came from outer space." 06:41:55 -!- augur has joined. 06:42:29 That's made-up nonsense. Everyone knows it was go. 06:43:43 -!- WeThePeople has joined. 06:43:59 -!- WeThePeople has quit (Changing host). 06:43:59 -!- WeThePeople has joined. 06:46:54 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer). 06:47:44 -!- augur has quit (Remote host closed the connection). 06:57:56 -!- Nisstyre-laptop has joined. 06:57:59 Yes, it was go, if any of them came from outer space, which it probably didn't. Is this like a counterfactual question? 07:26:50 I read that in one chess tournament, a player complained that the food given to his opponent was used as a code to give advice on what move to play. 07:27:15 but... it's not a hidden information game anyway. 07:27:57 I know. 07:28:43 Nevertheless, you are not supposed to have advice from other players in nearly any tournament of any game, and time trouble can get in the way of things too. 07:29:16 i just can't imagine mere advice being worth such an esoteric system. 07:29:37 it is 07:29:38 I don't know if it is true, but apparently someone complained about that. 07:29:48 there was an incident where a player was found cheating by hearing coughs from someone in the audience 07:29:57 goddamn. 07:29:57 the coughing person was hooked up to a chess engine that was analyzing the game board 07:30:03 what. 07:30:10 that's some oceans eleven shit 07:30:13 there was also a guy who went to the bathroom and used some hidden device to try to communicate 07:31:30 I actually (not knowing of this incident) once tried to cheat on a multiple-choice section of an exam by coughing. 07:32:42 -!- Frooxius has quit (Ping timeout: 244 seconds). 07:33:40 http://en.wikipedia.org/wiki/Topalov#Kramnik.E2.80.93Topalov_match_controversy 07:34:40 "During the tournament at Subroto Park, Umakant Sharma was caught receiving instructions from an accomplice using a chess computer via a Bluetooth-enabled device which had been sewn into his cap.[14][15] His accomplices were outside the building, and were relaying moves from a computer simulation." omg 07:34:53 " Officials became suspicious after Sharma had made unusually large gains in rating points during the previous 18 months, even qualifying for the national championship.[15] Umakant began the year with an average rating of 1933, and in 64 games gained over 500 points to attain a rating of 2484. Officials received multiple written complaints alleging that Umakant's moves were in exactly the same sequence suggested by the chess computer 07:35:02 " Eventually, in the seventh round of the tournament, Indian Air Force officials searched the players on the top eight boards with a metal detector " 07:35:20 i... how much money is at stake here 07:35:43 " Their plan involved one player, Cyril Marzolo, following the tournament at home and using the computer program to decide the best moves. He would send the moves by SMS to another player, Arnaud Hauchard, who would then stand or sit at various tables as a signal to the player, Sebastian Feller, to make a certain move." 07:35:50 (FIDE olympiad tournament 2010) 07:35:57 I doubt that people would cheat at Arimaa or Go like that. Mostly because computers still aren't that great at those games 07:36:30 also because less people care about those games. here in eastern europe, anyway 07:37:06 -!- epicmonkey has joined. 07:37:28 That's a boring reason for there to be fewer cheaters 07:37:33 -!- asiekierka has quit (Excess Flood). 07:37:37 Xom is bored. 07:37:41 the idea of someone cheatingly getting advice from a Go program, and it being shitty advice, is pretty funny though. 07:37:52 I think it's just a really popular sport (relatively?) so like it's more common that it's bigger news I guess 07:38:09 * Fiora throws butterflies at Sgeo 07:38:23 how the hell do you throw a butterfly? 07:38:48 sorry, crawl reference ~_~ 07:39:20 Fiora, have you ever watched a League of Legends video? Those get narrated as though it's a sport 07:39:21 No joke 07:39:43 A sufficiently powerful computer would be able to solve all of these games. 07:39:44 I used to watch a lot of starcraft casts 07:39:54 However I don't know if the universe has such a capacity or not. 07:40:41 I'm kinda surprised so many people are cheating by just plugging in the moves from a computer. that's so lazy even @_@ 07:40:42 listening to league of legends videos is quite saddening. 07:40:45 they could at least do some centauring 07:40:51 centaur...? 07:41:07 human-computer collaboration, where you use the computer as an exploratory tool combined with human thought 07:41:12 do you mean having a chess grandmaster dress up as a horse and play as a horse 07:41:15 oh. 07:41:20 -!- asiekierka has joined. 07:41:26 http://en.wikipedia.org/wiki/Kasparov_versus_the_World like this game (since they allowed computer usage) was basically a massive centaur-fest 07:41:27 yeah, well. human interface is hard, man. 07:41:46 each side spending days throwing things into computers and analyzing lines of moves 20 or 30 long and doing all kinds of crazy things 07:41:51 kasparov wrote a whole book on it too, it was cool 07:42:01 is your copy autographed 07:42:04 <_<; 07:42:09 no it isn't 07:42:10 :P 07:42:18 I am not that much of a fangirl okay 07:42:19 not QUITE that much 07:42:33 also, isn't kasparov kind of a nutty guy 07:42:40 he is kinda nutty, yeah 07:42:44 his chess books and writing are good though 07:43:08 When playing chess by mail, it is sometimes allowed to take advice from other people and computers. 07:43:44 Fiora: Have any of the people in that game programmed the computers they used? 07:43:58 Bike, how are LoL videos saddening? 07:44:02 that big one? given the World was like tens of thousands of people working together probably yes? XD 07:44:10 I'd imagine there were at least some chess AI programmers in that bunch 07:44:26 kasparov was using Deep Junior 07:44:29 OK, yes I guess you are probably correct. 07:44:46 Sgeo: the level of taking things seriously involved. it's pretty alien to me. 07:45:01 Ah 07:45:19 like you said, they treat it very much as a sport. 07:46:06 It kind of scares me away a bit from wanting to try it. Since it's a team game, I'd be afraid of my teammates getting mad at me for my incompetence 07:46:11 I tried watching a dota game broadcast thing once, maybe it was dota 2 07:46:12 i 07:46:23 even though I had played some dota it was really hard to keep track of because there were 10 players involved doing all kinds of different things 07:46:28 Also, my current computer can't handle it, so there's that 07:46:35 so it was really confusing 07:46:50 whereas starcraft was 1v1 07:47:00 With sufficient time you could analyze it manually, but the computer is much faster. 07:47:07 It also seems like the kind of game where people complain about things being nerfed or balanced or whatever constantly. Which is pretty annoying. I can barely handle en passant. 07:47:23 Bike: bishops are op . nerf bishops 07:47:28 Why are you barely handle en passant? 07:47:29 rooks need a boost. 07:47:47 zzo38: making a bit of a joke about the origins of that particular rule. 07:48:12 Fiora: There are many chess variants with many different kind of pieces 07:49:11 yeah, I know there's one with um... an archbishop? which is like this knight+bishop thing I think 07:49:32 http://en.wikipedia.org/wiki/Archbishop_(chess) 07:49:33 Yes; and the knight+rook is sometimes called chancellor. 07:49:47 Are there any chess variants with a "pope" piece? And, say, papal elections, or a college of cardinals. 07:49:51 XD 07:49:57 I could go for capturing some antipopes. 07:50:03 ohhh, they call chess variant pieces "fairy chess pieces" 07:50:12 and then there's bughouse chess which I remember people playing in college 07:50:13 Bike: Yes, I think in some games, the king which has bishop moves in addition, is called the pope. 07:50:17 which was kind of terrifyingly intimidating 07:50:26 ironically, fairies actually just play Scrabble 07:50:30 I like chess960, that one's a fun variant though 07:50:35 zzo38: i see. weird 07:51:06 Fiora: is that one of the random ones? 07:51:10 -!- Nisstyre-laptop has quit (Quit: Leaving). 07:51:28 it's the random one bobby fischer came up with that has 960 possible starting positions 07:51:34 so that you have to play without opening books 07:51:50 it makes things really fun and screwy and is great for people like me who can't remember opening books 07:51:54 <_<;;; 07:53:12 I also like it the game which involves some random information, although what I like best is which has partially hidden information, as well as some random chance, but mostly involving skill. 07:54:17 -!- Nisstyre-laptop has joined. 07:55:44 Sgeo: computers are good at go now 07:55:46 http://blog.printf.net/articles/2012/02/23/computers-are-very-good-at-the-game-of-go/ 07:56:42 aw man. i'm running out of options for confusing malignant AIs. 07:57:46 still pretty far behind chess though 07:57:49 considerig um rybka 07:57:50 http://www.gokgs.com/servlet/graph/zen19-en_US.png hot damn! 07:57:52 http://static.fjcdn.com/pictures/Portal_3d66bd_2045584.jpg 07:58:43 though there's now houdini too which is all kinds of terrifying 07:59:09 AIs are notoriously bad at nontraditional set theory 07:59:45 http://www.youtube.com/watch?v=xWdMqvGMxF4 this is a fun game if I remember right 07:59:59 houdini sacrifices three pawns for no apparent advantage whatsoever and then wins dozens of moves later 08:00:02 I think in some kinds of set theory, the set of all sets does contain itself. In other kinds, it is not a meaningful statement. I think. 08:00:29 "This makes me sad because while I wasn’t foolish enough to believe that humans would always be better at Go than computers, I did think that the process of making a computer that is very good at Go might be equivalent to the process of acquiring a powerful understanding of how human cognition works;" aww. 08:00:34 Fiora: Do you have the PGN of the game you are refering to? 08:00:44 the About has a pgn I think 08:01:04 zzo38: usually you have a "class" of all sets instead, but it varies. in ZFC it's not a meaningful statement because you can't define a set of all sets. so, yes 08:01:06 gosh now I want to go back and watch more of kingscrusher videos. he's fun 08:01:28 nice name. 08:02:17 the game made him really happy because a reason a lot of chess people disliked computers is they seemed to demonstrate that a lot of wonderful sacrifices, gambits, and so on were unsound given enough analysis 08:02:18 m, i think the author of this article may be slightly underestimating how interesting you can make writing a sudoku solver 08:02:31 but this was a game between two of the top level computers where one of them pulls off gambits and then wins 08:02:32 Bike: Well, I think that if you have a sufficiently powerful computer, it can solve the game and win perfectly; no undertsanding of human cognition or of human anything is required. However, I don't think any computer is that powerful and I am also unsure if the universe has the capacity for such a computer. 08:03:04 non well founded set theory is the kind where sets can contain themselves 08:03:31 zzo38: http://en.wikipedia.org/wiki/Blockhead_(computer_system) 08:03:51 Fiora: Were they two separate computers or two programs running on the same computer? 08:04:03 two separate computers but I assume with similar power 08:05:06 Bike: It also mentions the Chinese room; something else I have read about in another book. 08:05:19 it comes up a lot, yes 08:05:56 And I see the Blockhead thought experiment too now! 08:05:58 anyway, i'm more interested in intelligence that doesn't take O(fuckoff) space, is all 08:09:51 -!- WeThePeople has quit (Remote host closed the connection). 08:10:50 -!- asiekierka has quit (Excess Flood). 08:12:50 -!- asiekierka has joined. 08:15:13 I read also that, in one chess game, he was playing against someone who always moved the c-pawn on the first move and wanted them to play something different, so they stuck the pawn to c2 so that it won't move. 08:21:51 To force them to play something original, like e4? 08:23:04 It doesn't matter what; they just didn't want him to play the same move he always played. 08:23:12 At least, it is what I think. I am unsure. 08:36:26 -!- carado has joined. 09:00:12 -!- Bike has quit (Quit: sleep). 09:18:43 -!- oklofok has quit. 09:28:14 -!- nooga has joined. 09:39:50 -!- AnotherTest has joined. 09:39:58 Hello 09:40:01 -!- nooga has quit (Ping timeout: 245 seconds). 09:41:52 -!- augur has joined. 09:41:53 -!- nooga has joined. 09:52:34 -!- oerjan has joined. 09:57:09 -!- DHeadshot has joined. 09:59:28 -!- rodgort` has quit (Remote host closed the connection). 10:07:36 -!- rodgort has joined. 10:42:23 -!- oerjan has quit (Quit: leaving). 10:55:49 -!- zzo38 has quit (Remote host closed the connection). 10:56:04 -!- Nisstyre-laptop has quit (Ping timeout: 252 seconds). 11:00:42 -!- AnotherTest has quit (Read error: Connection reset by peer). 11:00:54 -!- AnotherTest has joined. 11:15:40 -!- copumpkin has quit (Ping timeout: 252 seconds). 11:16:13 -!- copumpkin has joined. 11:23:27 -!- ogrom has quit (Quit: Left). 11:52:06 -!- ais523 has joined. 12:12:15 -!- monqy has joined. 12:24:52 -!- aloril has quit (Read error: Operation timed out). 12:32:10 -!- aloril has joined. 12:32:46 -!- mekeor has joined. 12:59:14 -!- ogrom has joined. 13:39:15 -!- AnotherTest has quit (Read error: Connection reset by peer). 13:39:26 -!- AnotherTest has joined. 13:40:20 -!- copumpkin has quit (Ping timeout: 252 seconds). 13:41:00 -!- copumpkin has joined. 14:44:31 -!- WeThePeople has joined. 14:44:48 -!- WeThePeople has quit (Changing host). 14:44:48 -!- WeThePeople has joined. 14:48:49 Humans are still better than computers at sokoban 14:50:06 Humans are still better than computers at getting drunk. 15:09:16 -!- ogrom has quit (Quit: Left). 15:09:43 -!- carado has quit (Ping timeout: 246 seconds). 15:20:59 -!- asiekierka has quit (Excess Flood). 15:21:53 -!- asiekierka has joined. 15:26:32 -!- asiekierka has quit (Excess Flood). 15:27:53 -!- asiekierka has joined. 15:31:50 -!- WeThePeople has quit (Quit: Leaving). 15:41:44 -!- mekeor has quit (Remote host closed the connection). 15:51:56 -!- nooga has quit (Ping timeout: 260 seconds). 15:58:49 -!- azaq23 has joined. 15:58:57 -!- azaq23 has quit (Max SendQ exceeded). 15:59:16 -!- azaq23 has joined. 16:02:58 -!- DHeadshot has quit (Ping timeout: 252 seconds). 16:05:00 -!- Taneb has joined. 16:05:07 Help 16:05:29 I've messed up my video drivers and now my computer thinks I want an 800x600 screen 16:06:29 -!- DHeadshot has joined. 16:06:32 And I have no idea what to dooooo 16:11:49 reinstall the drivers? 16:11:49 ais523: You have 1 new message. '/msg lambdabot @messages' to read it. 16:14:02 ais523, I'll give that a go 16:15:38 In other news, I've updated that Haskell package I made a while back but haven't uploaded it for a reason. 16:25:51 -!- Taneb has quit (Quit: Leaving). 16:25:58 -!- nooga has joined. 16:27:39 -!- Taneb has joined. 16:29:14 Okay, that worked 16:29:16 -!- azaq23 has quit (Max SendQ exceeded). 16:30:35 -!- nooga has quit (Ping timeout: 260 seconds). 17:08:46 -!- Taneb has quit (Ping timeout: 245 seconds). 17:09:11 -!- oerjan has joined. 17:11:56 -!- Taneb has joined. 17:15:11 Sgeo: hm i haven't personally read that stuff, but if you want to mix delimited continuations and monads you might want to look at filinski's famous proof that pure monads can be implemented with delimited continuations... 17:15:43 @tell Sgeo hm i haven't personally read that stuff, but if you want to mix delimited continuations and monads you might want to look at filinski's famous proof that pure monads can be implemented with delimited continuations... 17:15:43 Consider it noted. 17:17:53 @tell Sgeo btw if you start with a _monad transformer_, then amb should be obvious if you use [] on the bottom. 17:17:54 @ping 17:17:54 Consider it noted. 17:17:54 pong 17:21:17 -!- Arc_Koen has joined. 17:24:55 `addquote 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! 17:25:01 883) 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! 17:25:31 * oerjan wonders if those are the first color codes in the quotes database 17:25:35 oerjan, I don't really understand monad transformers well enough 17:25:36 Sgeo: You have 2 new messages. '/msg lambdabot @messages' to read them. 17:25:40 @messages 17:25:41 oerjan said 9m 58s ago: hm i haven't personally read that stuff, but if you want to mix delimited continuations and monads you might want to look at filinski's famous proof that pure monads can be 17:25:41 implemented with delimited continuations... 17:25:41 oerjan said 7m 47s ago: btw if you start with a _monad transformer_, then amb should be obvious if you use [] on the bottom. 17:27:11 > chr 126 17:27:13 '~' 17:27:21 `quotes ^[ -~]*$ 17:27:22 1) EgoBot just opened a chat session with me to say "bork bork bork" \ 2) Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... More practice is in order. \ 3) that's where I got it rocket launch facility gift shop \ 4) GKennethR: he sh 17:27:35 oops 17:28:02 `quotes [^ -~] 17:28:04 269) ais523: quick, say something funny something funny hagrea:D can'tä sopt laughitn \ 320) `quote django ​352) django is named after a person? thought it would be a giraffe or something thankfully only one \ 321) `quote django ​352) `quotes [^ -ä] 17:29:34 320) `quote django ​352) django is named after a person? thought it would be a giraffe or something thankfully only one \ 321) `quote django ​352) django is named after a person? thought it would be a giraffe or something \ 407) `quote django 17:29:53 what's up with the recursive django quotes? 17:30:07 `run quote 320 | hexdump 17:30:09 0000000 3233 2930 3c20 7063 6572 7373 7965 203e \ 0000010 7160 6f75 6574 6420 616a 676e 206f 3c20 \ 0000020 6148 6b63 6745 3e6f e220 8b80 3533 2932 \ 0000030 3c20 6c6f 6e73 7265 203e 6a64 6e61 6f67 \ 0000040 6920 2073 616e 656d 2064 6661 6574 2072 \ 0000050 2061 6570 7372 6e6f 203f 3c20 6c6f 6e73 \ 0000060 7265 203e 6874 756f 6867 2074 7469 7720 \ 17:30:26 hm what was that option 17:30:55 `run quote 320 | od -t x1 17:30:56 0000000 33 32 30 29 20 3c 63 70 72 65 73 73 65 79 3e 20 \ 0000020 60 71 75 6f 74 65 20 64 6a 61 6e 67 6f 20 20 3c \ 0000040 48 61 63 6b 45 67 6f 3e 20 e2 80 8b 33 35 32 29 \ 0000060 20 3c 6f 6c 73 6e 65 72 3e 20 64 6a 61 6e 67 6f \ 0000100 20 69 73 20 6e 61 6d 65 64 20 61 66 74 65 72 20 \ 0000120 61 20 70 65 72 73 6f 6e 3f 20 20 3c 6f 6c 73 6e \ 00 17:31:10 no, that is definitely not what i wanted 17:31:13 there's an 80 8b in there 17:31:16 `run quote 320 | hexdump -c 17:31:18 0000000 3 2 0 ) < c p r e s s e y > \ 0000010 ` q u o t e d j a n g o < \ 0000020 H a c k E g o > â 200 213 3 5 2 ) \ 0000030 < o l s n e r > d j a n g o \ 0000040 i s n a m e d a 17:31:41 is that HackEgo's zero-width space that got included 17:32:06 that may be the zero width space I put into a quote ages ago to troll elliott 17:32:16 aha 17:32:25 because he was really insisting on two spaces between quotes 17:32:48 Grrrr 17:32:52 um it's just after Hackego> 17:32:55 Closing one Chrome window should NOT quit Chrome 17:32:59 that's not between quotes 17:33:23 hmm 17:33:28 (IIRC it's actually just a copy-paste problem.) 17:33:28 indeed 17:33:33 But it's quoted now, so you can't fix it. 17:34:12 elliott: well it's not really a problem if HackEgo actually said it, is it :P 17:34:19 just accurate quoting 17:35:43 `cat bin/quote 17:35:44 ​#!/bin/sh \ allquotes | if [ "$1" ]; then \ if expr "$1" + 0 >/dev/null 2>&1; then \ sed "$1q;d" \ else \ grep -P -i -- "$1" \ fi \ else shuf -n 1; fi 17:35:49 "Your daily network usage time limit has been reached" ifconfig wlan0 hw ether "logged in to hotspot". There are *some* good things in this phone. 17:35:56 `cat bin/quotes 17:35:57 ​#!/bin/sh \ allquotes | if [ "$1" ]; then \ if expr "$1" + 0 >/dev/null 2>&1; then \ sed "$1q;d" \ else \ grep -P -i -- "$1" \ fi \ else shuf -n 1; fi 17:36:28 I'm a bit surprised busybox ifconfig managed that, though. 17:36:42 -!- Taneb has quit (Quit: Leaving). 17:37:10 fizzie: it's the sort of thing busybox might need to do, though 17:37:20 `quotes [\000-\037] 17:37:20 it was originally designed as a recovery shell 17:37:22 883) 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! 17:37:30 yay that worked 17:37:48 and indeed those were the first color codes 17:37:55 fixing network problems is quote plausible in a recovery shell, especially if the system /normally/ uses network boot 17:39:12 ais523: I suppose. Their ifconfig usage message was only "ifconfig interface [address]", though, which was a bit worrying. Fortunately I managed to recall the syntax. 17:39:32 yeah, usable usage messages /aren't/ something you need to do busybox's job 17:41:19 Unfortunately the uplink on this wifi is really horrible. Takes about two minutes after writing it for an IRC comment to appear. 17:41:28 (Yeah yeah mosh yeah.) 17:42:00 is that total up+down latency? or just up? 17:42:36 Two minutes was perhaps a bit generous. 17:42:58 How I Left My Job At A Startup Providing Services to Startups to Join a Startup Providing Services to Startups Providing Services to Startups <-- startup and inception are synonyms, right? 17:44:29 Whatthefuck 17:44:48 Sgeofuck 17:44:48 My mouse cursor just turned into a vertical line with diagonal spikes 17:45:07 I don't really know. But it is slow. 17:45:57 It went away 17:46:04 Sgeo: sounds like part of an scp 17:46:12 it will not end well 17:47:02 (This is a Stockholm-Helsinki ferry, and the wifi was quite speedy when it was in the harbour. Don't know what they're using for connectivity on the sea.) 17:48:12 octopi(fi) 17:48:46 satellite, probably 17:51:27 I suppose. Though I do still get GPRS/EDGE according to the phone. 17:52:03 There's 3G around Ã…land. 17:58:49 -!- nooga has joined. 18:03:48 -!- nooga has quit (Ping timeout: 264 seconds). 18:08:06 "To land, the craft had to slow its speed and pitch the fuselage until the craft was vertical. Power could then be reduced and it would descend until the landing gear rested on the ground. This would have been a tricky and probably dangerous maneuver given that the pilot would be seated facing upward and the ground would be behind his head at this stage." 18:09:50 -!- nooga has joined. 18:13:17 kmc: context? 18:21:50 -!- nooga has quit (Ping timeout: 265 seconds). 18:22:22 -!- nooga has joined. 18:23:26 Sounds like VTOL. 18:32:28 Why Go Can't Scale Past 2 Billion Users <-- this was rather more intriguing before i realized you were referring to the programming language, not the game 18:32:38 hah 18:33:25 heh 18:33:54 :D 18:44:19 -!- ogrom has joined. 18:46:05 http://en.wikipedia.org/wiki/Focke-Wulf_Triebfl%C3%BCgel 18:46:54 -!- Bike has joined. 18:47:13 hi Biket 18:48:57 Hi oerjant. 18:51:08 -!- Frooxius has joined. 19:03:36 -!- nooga has quit (Ping timeout: 250 seconds). 19:05:50 -!- zzo38 has joined. 19:11:30 like you said, they treat it very much as a sport. <-- curiously chess isn't part of the sport organizations in norway, which i understand is not the case in other places. on the flip side magnus carlsen says he'd never have gotten as far as he has if he had had to follow norwegian children's sport rules :) 19:12:24 -!- Nisstyre-laptop has joined. 19:14:26 it's terrifying to realize that magnums carlsen was born after me @_@ 19:15:28 (btw he just beat kasparov's chess rating record) 19:16:15 wow. 19:17:03 admittedly those are well known to inflate over time. but he also has a nice gap to no. 2. 19:18:08 apparently magnus carlsen was born before me 19:18:16 good to know 19:18:53 -!- DHeadshot has quit (Read error: Connection reset by peer). 19:18:58 -!- DH____ has joined. 19:20:27 -!- AnotherTest has quit (Quit: Leaving.). 19:21:37 young chess prodigies are amazing 19:21:54 my favorite is judit polgar, I think she's rated as the strongest chess player ever through age ~14 19:21:58 (by age) 19:22:55 the best 14 year old chess player ever was 14 years old at the time 19:24:34 and she's like "dedicating my life to the game? pff, I'll have kids and take care of a family and keep a 27xx rating anyways because I'm that amazing" 19:26:02 now I'm wondering about something 19:26:09 elo rankings show how well you're doing relative to others in your field 19:26:21 and thus, elo rankings should at least in theory be comparable /between different games/ 19:26:30 so, what's the highest elo at anything ever? 19:26:35 um, she seems to have dropped slightly below 2700 in http://www.2700chess.com/ (you have to go to the women's list to find her) 19:26:54 she moves around I think, wikipedia says she's 2705 now 19:27:07 but I guess she might have gone down in january 19:27:33 -!- Nisstyre-laptop has quit (Quit: Leaving). 19:28:12 -!- Nisstyre-laptop has joined. 19:28:39 why are there different mens' and womens' divisions for chess? 19:29:24 Bike: because there aren't enough women to compete at the top? 19:29:27 i assume 19:29:52 the gap from polgar to the next woman is very large 19:31:46 well, about the same as from 1 to 7 for the men. admittedly no. 7 is also the current world champion :P 19:32:11 oerjan: is that because the others didn't participate 19:32:18 there was some sort of schism in the chess world championship, IIRC 19:32:24 and there were three competing champions for a while 19:32:29 I'm not sure if it's been sorted out yet 19:32:42 i'm sure that was years ago... 19:32:57 kasparov vs. karpov iirc 19:33:20 none of them are even in the current 2700 list 19:33:31 don't remember the third one 19:36:25 Bike: I think especially before polgar there were almost no women in the top ranks 19:37:50 I remember reading an interesting article about how polgar was such an inspiration to the higher-level players that women GMs tended to play significantly more aggressively than the men because they were often emulating polger's own aggressive style 19:39:48 nice 19:41:38 "The world championship was eventually reunified in 2006, when classical champion Kramnik defeated the winner of the FIDE World Chess Championship 2005, Veselin Topalov." 19:41:50 "One pilot, Feldwebel Rolf Heitsch, had his Dornier fitted with an infantry flame thrower in its tail." 19:45:28 kmc: I doubt it accomplished much 19:47:43 indeed, he got shot down that day 19:48:34 at least he went down in flames 19:52:30 -!- mekeor has joined. 20:03:16 -!- ogrom has quit (Quit: Left). 20:14:43 -!- nooga has joined. 20:24:33 -!- ais523 has quit. 20:25:33 YES! 20:25:42 LAST HOUSEMATE IS LEAVING FOR CHRISTMAS 20:25:47 `quote hermit 20:25:49 446) i try to be a hermit but it's hard with all these housemates. 20:30:48 -!- epicmonkey has quit (Read error: Operation timed out). 20:39:33 I read the rule of the Wuss chess variant, but one thing I don't know, is if in Wuss V it is allowed to move a Wuss into an attacked square. 20:42:01 -!- nooga has quit (Ping timeout: 256 seconds). 20:51:49 -!- carado has joined. 21:36:23 -!- WeThePeople has joined. 21:48:44 -!- Taneb has joined. 22:16:30 -!- Arc_Koen has left. 22:30:01 kmc: "Also, i think the halting problem is very uninteresting because such systems don't need to be considered valid code" 22:30:41 what insanity is that from 22:31:31 #haskell 22:31:56 Sounds sort of like Brainfuck/w/index.php?title=Talk:Brainfuck/index.php 22:38:36 -!- Nisstyre-laptop has quit (Ping timeout: 264 seconds). 22:40:02 elliott: whaaaaaaaaaaaat 22:40:07 monqy: yes 22:40:55 monqy: what's the last kind of lens you learned 22:41:17 -!- Nisstyre-laptop has joined. 22:41:33 probably those twanvl-styled mirrored lens familiies... i havent payed much attn to lenses 22:42:03 wow so passé :'( 22:42:10 the new lenses are so elegant, edwardk exploded 22:42:20 which are these, the profunctor lenses 22:42:24 yes 22:42:30 ok 22:42:33 and bifunctor lenses are also "p. cool" 22:42:37 maybe i'll learn them sometime 22:42:38 maybe i'll learn them sometime 22:43:29 monqy: class Hi p where hi :: p a b -> p (Either b a) b 22:43:56 what should that class be called 22:44:06 um 22:44:13 "you know like category theory and stuff right" 22:44:19 "Propogating"? 22:44:23 not really........ 22:44:37 i should know like category theory and stuff but 22:44:40 i dont know all that much 22:44:57 well you just need to know the answer to my question 22:45:06 "thats like one thing how can you not know that :'(" 22:45:27 it should be called prismatic imo 22:45:38 imo bad name 22:46:30 are there any contstraints on what p is, or "hi laws" 22:46:35 how about braided lax costrong strong monoidal functor 22:46:39 or is that the "entire Hi" 22:46:47 monqy: um we don't quite know 22:46:51 ok 22:46:51 p is usually a profunctor 22:47:05 which means that (p a b) is contravariant in a and covarint in b 22:47:07 p is always a profunctor 22:47:24 elliott: it could be a double-contravariant functor!!!!!! i think 22:47:33 :t (id |||) 22:47:34 (c -> d) -> Either d c -> d 22:47:45 :t (Control.Category.id |||) 22:47:47 ArrowChoice a => a c d -> a (Either d c) d 22:48:52 shachaf: what does Hi mean 22:49:02 shachaf: or do you just want a "fany maths name" 22:49:06 monqy, it's the opposite of Lo 22:49:07 fancy 22:49:10 not fany 22:49:20 shachaf: because im sorry i dont know the fancy maths name!!! 22:49:25 monqy: a "fany maths name" would be good 22:49:32 a "fansy math name" would be better 22:50:00 monqy: but some laws would be good too 22:50:20 his brains are in terrible danger 22:50:33 I can't make laws out of noting!!!I need to know what laws have to hold for it to do what you want it to do....and then those are the laws you want 22:51:21 just outsource it to agora 22:52:03 monqy: ok (1). uh.... lmap Right . prismatic = id?? 22:52:08 elliott: is that a good law 22:53:02 shachaf: i don't know what these lens things are because i don't know lens.....why are you asking me this stuff 22:53:15 monqy: wait sorry 22:53:19 because he's evil hth 22:53:24 monqy: lmap Right . hi = id?? 22:53:32 good law right 22:53:35 is it true 22:54:08 shachaf: i don't know what these lens things are because i don't know lens.....why are you asking me this stuff 22:54:24 because he's evil hth 22:54:36 Oh no a botloop. 22:55:29 that happens when they change something in the matrix 22:57:39 the matrix is so last century 22:57:47 now we use the tensor 22:57:59 aw.. what's that 22:58:31 ah k 22:58:38 enjoy living in your tensor of solidarity 23:00:51 hm "last century" is so last bak'tun 23:01:51 pink is the new red 23:02:48 -!- DH____ has quit (Read error: Connection reset by peer). 23:03:01 -!- DHeadshot has joined. 23:04:24 hm "last" is so mueval-core: Time limit exceeded 23:08:01 -!- asiekierka has quit (Excess Flood). 23:09:25 -!- asiekierka has joined. 23:36:26 the precise way in which ZeptoBasic is esoteric seems to elude me. 23:36:51 I guess you could say that the way is... esoteric? 23:37:37 presumably. 23:46:26 -!- Nisstyre-laptop has quit (Ping timeout: 252 seconds). 23:47:23 -!- mekeor has quit (Read error: Connection reset by peer). 23:52:34 -!- sebbu2 has joined. 23:53:50 -!- sebbu has quit (Ping timeout: 276 seconds).