00:09:07 @vixen \o/ 00:09:07 | 00:09:07 /`\ 00:09:08 whatever 00:10:06 wow 00:10:12 a whatever wedged inside them 00:12:42 on my screen the whatever is last 00:13:25 @vixen nexiv@ 00:13:25 I'm your huckleberry 00:13:36 @vixen peep peep peep 00:13:37 i'm the type of girl that finds Don Knotts very sexy 00:13:49 @vixen haskell haskell haskell haskell haskell haskell haskell haskell 00:13:49 church is my favourite computer scientist. 00:14:04 @. vixen . vixen . vixen . vixen vixen Hurr recursion 00:14:04 yeah, it is 00:14:11 :D 00:14:25 @. vixen . vixen . vixen . vixen vixen hi 00:14:29 @. vixen . vixen . vixen . vixen vixen hi 00:14:30 how cool? 00:14:35 @. vixen . vixen . vixen vixen hi 00:14:36 good good 00:14:39 @. vixen . vixen vixen hi 00:14:40 So, tell me your biggest and darkest secret. Something that no one knows of you. 00:14:43 @. vixen vixen hi 00:14:44 hiya 00:14:49 lament: why don't you marry @vixen? 00:14:51 @ vixen hi 00:14:55 blah 00:14:56 @vixen hi 00:14:57 hi 00:15:13 @vixen why don't you marry ehird? 00:15:13 maybe i will one day 00:15:26 :D 00:15:27 lol 00:15:39 -!- inurinternet has quit (No route to host). 00:27:34 is @vixen some alice bot or such? 00:27:55 AnMaster: it's the source to some cybering bot designed for yuks 00:28:23 uhu 00:28:35 in lambdabot? 00:28:45 @vixen what are you doing tonight? 00:28:46 just chattin 00:28:52 @vixen wanna go to the movies instead? 00:28:53 i'll hafta plead the fifth on that one. 00:28:53 http://code.haskell.org/lambdabot/Plugin/Vixen.hs 00:29:05 AnMaster: it's a copy 00:29:25 @vixen-on 00:29:29 Wonder what this does. 00:29:31 Not enough privileges 00:29:31 Nothing. 00:29:33 Aw. 00:29:47 AnMaster: also http://code.haskell.org/lambdabot/State/vixen. 00:30:25 ehird, that opens in khexedit? 00:30:33 It has non-ASCII values. 00:30:38 right 00:30:40 but what is it 00:30:46 data? 00:30:50 or state 00:30:51 The match/reply set for @vixen. 00:30:57 Mostly human readable. 00:30:58 why "state" then -_- 00:31:06 AnMaster: Because it's the state for the vixen plugin. 00:31:21 http://code.haskell.org/lambdabot/State/ 00:31:22 ehird, seems more like read only data than state to me 00:31:41 shrug; see http://code.haskell.org/lambdabot/Plugin/Vixen.hs 00:35:58 @vixen do you speak Chinese? 00:35:59 i do occassionally, i guess 00:36:10 great answer 00:36:14 @vixen do you play the violin? 00:36:14 yes i do 00:36:18 @vixen do you play the trombone? 00:36:19 maybe. do you? 00:36:22 @vixen do you play the flute? 00:36:22 maybe. do you? 00:36:24 @vixen do you play the piano? 00:36:25 maybe. do you? 00:36:29 @vixen do you play the harpsichord? 00:36:30 yes i do 00:36:32 @vixen do you play the bassoon? 00:36:33 i do occassionally, i guess 00:36:38 @vixen do you play the triangle? 00:36:38 yes i do 00:36:44 @vixen do you play the tuba? 00:36:44 i do occassionally, i guess 00:36:48 @vixen do you play the guitar? 00:36:49 yes i do 00:36:55 @vixen do you play the saxophone? 00:36:56 no phone, sorry 00:36:59 no phone :( 00:37:25 XD 00:38:40 -!- Gracenotes has joined. 00:44:37 hi GregorR 00:44:38 ... 00:44:39 Gracenotes: 00:45:22 what has been up 00:45:49 lambdabot is now an acquaintance of ours. 00:46:09 that is fortunate 00:47:09 @vixen that is fortunate 00:47:10 nothing good is on TV 00:47:18 e only likes us 'cuz we're amusing. 00:50:19 @vixen hey there sexy 00:50:19 sexy or sexy bitch? 00:53:09 @vixen sexy bitch 00:53:09 sexy or sexy bitch? 00:53:18 @vixen sexy or sexy bitch? 00:53:19 sexy or sexy bitch? 00:53:29 @vixen sexy or sexy bitch? 00:53:30 sexy is such an over used word. be more descriptive 00:53:32 @vixen sexy or sexy bitch? 00:53:33 how sexy? 00:53:34 @vixen sexy or sexy bitch? 00:53:35 sexy is such an over used word. be more descriptive 00:53:45 @. vixen vixen hey there, sexy 00:53:46 sexy or sexy bitch? 00:54:08 @vixen hey there, sexy bitch 00:54:09 sexy or sexy bitch? 00:54:18 @vixen hey there, 00:54:20 hiya 00:54:32 @vixen David slowed his pace slightly as his ears, 00:54:32 Wouldn't it be funny if I really was a super model? 00:54:37 @vixen David slowed his pace slightly as his ears, 00:54:38 how 00:54:39 @vixen David slowed his pace slightly as his ears, 00:54:40 yes 00:54:41 @vixen David slowed his pace slightly as his ears, 00:54:41 what type of music do you like? 00:54:42 @vixen David slowed his pace slightly as his ears, 00:54:43 Prolly 00:54:44 @vixen David slowed his pace slightly as his ears, 00:54:44 why me? :) 00:56:34 @yow 00:56:34 So this is what it feels like to be potato salad 01:03:00 -!- ehird has changed nick to ehird}. 01:03:01 -!- ehird} has changed nick to ehird. 01:14:15 pikhq: never read this Haskell I'm writing, it's such a quick hack 01:14:35 well ok it isn't that bad 01:14:54 @quote 01:14:55 tomasz says: After all, return is only a fancy name for liftM0 :-) 01:15:51 * pikhq is thinking about Pi. 01:16:24 why not about Khq? 01:16:32 The constant. 01:16:58 -!- Mathematica has joined. 01:17:02 Mathematica: 2+2 01:17:12 Great failure! 01:17:21 -!- Mathematica has quit (Remote closed the connection). 01:17:34 -!- Mathematica has joined. 01:17:39 fucktest 01:17:44 oh 01:18:05 -!- Mathematica has quit (Remote closed the connection). 01:18:45 -!- Mathematica has joined. 01:18:51 Mathematica: 2+2 01:19:00 % 2+2 01:19:02 -!- Mathematica has quit (Remote closed the connection). 01:19:16 -!- Mathematica has joined. 01:19:19 Mathematica: 2+2 01:19:30 ["leguin.freenode.net","401","Mathematica","#esoteric","Mathematica :No such nick/channel"] 01:19:30 ["leguin.freenode.net","421","Mathematica","Copyright","Unknown command"] 01:19:32 ["leguin.freenode.net","421","Mathematica","In[1]","= :Unknown command"] 01:19:34 ["leguin.freenode.net","421","Mathematica","Out[1]=","Unknown command"] 01:19:36 ["leguin.freenode.net","421","Mathematica","In[2]","= :Unknown command"] 01:20:12 @vixen lambda 01:20:12 do you trust the government? 01:20:19 -!- Mathematica has quit (Remote closed the connection). 01:20:21 land of lisp!!! 01:20:41 :D 01:20:45 -!- Mathematica has joined. 01:20:48 Mathematica: 2+2 01:20:56 * ehird drums fingers on table. 01:20:58 > 2+2 01:21:00 4 01:21:06 -!- Mathematica has quit (Remote closed the connection). 01:21:07 HASKELL is FASTER! 01:21:19 -!- Mathematica has joined. 01:21:22 Mathematica: 2+2 01:21:27 WTF 01:21:35 Ohhhhhh 01:21:46 -!- Mathematica has quit (Remote closed the connection). 01:22:08 -!- Mathematica has joined. 01:22:10 Mathematica: 2+2 01:22:18 Fuck my life. 01:22:24 -!- Mathematica has quit (Remote closed the connection). 01:22:35 -!- Mathematica has joined. 01:22:40 Mathematica: 2+2 01:22:46 ["leguin.freenode.net","401","Mathematica","#esoteric","Mathematica :No such nick/channel"] 01:22:57 hPutStrLn h ("PRIVMSG " ++ channel ++ ":" ++ res') 01:22:58 Oh. 01:22:59 No space. 01:23:07 @vixen I just need my space! 01:23:08 what's worth more a flush or a full house? 01:23:08 -!- Mathematica has quit (Remote closed the connection). 01:23:21 -!- Mathematica has joined. 01:23:24 Mathematica: 2+2 01:23:25 Mathematica 7.0 for Mac OS X x86 (64-bit) Copyright 1988-2008 Wolfram Research, Inc. In[1]:= Out[1]= 4 In[2]:= 01:23:33 Mathematica: Range[1000] 01:23:33 Mathematica 7.0 for Mac OS X x86 (64-bit) Copyright 1988-2008 Wolfram Research, Inc. In[1]:= Out[1]= {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, 4... 01:23:49 TODO: Fix the formatting, make it give long shit somehow. 01:23:59 Mathematica: PrimeQ /@ Range[10] 01:23:59 Mathematica 7.0 for Mac OS X x86 (64-bit) Copyright 1988-2008 Wolfram Research, Inc. In[1]:= Out[1]= {False, True, True, False, True, False, True, False, False, False} In[2]:= 01:24:12 Mathematica: Sum[(PrimeQ /@ Range[10])[[i]], {i, 10}] 01:24:13 Mathematica 7.0 for Mac OS X x86 (64-bit) Copyright 1988-2008 Wolfram Research, Inc. In[1]:= Out[1]= 6 False + 4 True In[2]:= 01:25:08 Mathematica: Table[PrimeQ, 10] 01:25:09 Mathematica 7.0 for Mac OS X x86 (64-bit) Copyright 1988-2008 Wolfram Research, Inc. In[1]:= Table::itform: Argument 10 at position 2 does not have the correct form for an iterator. Out[1]= Table[PrimeQ, 10] In[2]:= 01:25:18 Mathematica: 1/0 01:25:19 Mathematica 7.0 for Mac OS X x86 (64-bit) Copyright 1988-2008 Wolfram Research, Inc. In[1]:= 1 Power::infy: Infinite expression - encountered. 0 Out[1]= ComplexInfinity In[2]:= 01:25:48 Hey guys, I forgot to chroot it. Don't fuck things up. :P 01:25:51 -!- Mathematica has quit (Remote closed the connection). 01:25:53 Ha. 01:25:59 I got you all excited. 01:25:59 Maybe. 01:39:43 * pikhq wants to make a function for corecursing the digits... 01:41:04 Corecursing? Is that like folding or unfolding? 01:41:14 pikhq: Wait, you know what corecursion is already? Fuck, I haven't worked that out yet! :-P 01:41:24 Oh. 01:41:32 It's just infinite data structures. Sort of. 01:41:41 http://en.wikipedia.org/wiki/Corecursion 01:41:50 pikhq: digits of what, anyway? 01:41:58 Pi. 01:42:25 http://fabrice.bellard.free.fr/pi/pi_n2/pi_n2.html Fabrice Bellard seems to have a nice one for arbitrary bases. 01:42:32 ah 01:42:39 there's an O(n) one for base-16 isn't there? 01:44:12 No, from what I understand O(n^2) is the best one. 01:44:21 (for finding arbitrary digits) 01:44:25 algo looks quite complex 01:44:32 but very managable in haskell; maybe not in one line. 01:44:55 pikhq: [[ It is still slower than the BBP algorithm [2], but it works in any base.]] 01:44:58 Probably not a one-liner, but Haskell does make math rather nice. 01:44:58 bbp does base 16 01:45:06 haskell makes everything rather nice :-P 01:45:07 Oh. BBP is faster? Spiffy. 01:45:10 wait no 01:45:11 bbp is binary 01:45:14 so [Bool] 01:45:19 but that's the cleanest way anyway ;) 01:45:19 Is n the length of the required digit, or the digit itself? 01:45:24 http://en.wikipedia.org/wiki/BBP-type_formula 01:45:27 looks simple enough 01:45:34 Warrigal: the position, I think. 01:45:53 pikhq: The formula yields an algorithm for extracting hexadecimal digits of π. In order to perform digit extraction first we must rewrite the formula as 01:45:55 ok, hex then 01:46:16 hey pikhq 01:46:17 Bellard's formula, as used by PiHex, the now-completed distributed computing project, is used to calculate the nth digit of π in base 2. It is a faster version (about 43% faster[1]) of the Bailey–Borwein–Plouffe formula. Bellard's formula was discovered by Fabrice Bellard. 01:46:22 bellard wins again, with a new one 01:46:25 http://en.wikipedia.org/wiki/Bellard%27s_formula 01:46:28 it's also *very* simple 01:46:34 could easily be a oneliner 01:46:37 ehird: n is the position? 01:46:44 Warrigal: i believe so. 01:46:54 Fabrice Bellard wins again! 01:47:24 i'll let you do the trivial work of translating it to haskell :P 01:47:31 Thx. 01:48:35 Corecursion is totally recursion. 01:48:51 (Actually, it seems like recursion is implemented as a form of corecursion, in Haskell.) 01:57:31 pikhq: How does the definition go? 01:57:59 I got interrupted by a phone call. 01:58:03 :-) 02:08:15 -!- GreaseMonkey has quit ("HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it"). 02:27:21 -!- GreaseMonkey has joined. 02:32:36 * pikhq wishes that getting a digit of pi were a function of the previous digits 02:35:01 `etymology pretentious 02:35:06 pretentious \ 1845, from Fr. prtentieux (17c.), from prtention "pretension," from M.L. pretentionem (nom. pretentio) "pretension," from L.L. prtensus "pretend" (see pretense). \ \ unpretentious \ 1859, from un- (1) "not" + pretentious. \ \ Pharisee \ O.E. Fariseos, O.Fr. pharise (13c.), both from L.L. Pharisus, 02:35:14 `etymology pretense 02:35:15 pretense \ 1425, "the putting forth of a claim," from M.Fr. pretensse, from fem. of L.L. prtensus, from L. prtensus, pp. of prtendere (see pretend). Meaning "false or hypocritical profession" is from 1545. Pretension is c.1600 meaning "assertion;" sense of "ostentation" is from 1727. \ \ whitecap \ 1668, of birds, 02:36:03 `etymology ostentation 02:36:04 ostentation \ 1436, from M.Fr. ostentation (1366), from L. ostentationem (nom. ostentatio) "vain display," from ostentatus, pp. of ostentare "to display," freq. of ostendere (see ostensible). \ \ rumba (n.) \ 1922, from Cuban Sp., originally "spree, carousal," derived from Sp. rumbo "spree, party," earlier "ostentation, 02:37:34 http://74.125.47.132/search?q=cache:RylQCflF1YUJ:web.comlab.ox.ac.uk/people/Jeremy.Gibbons/publications/spigot.pdf+Digits+of+pi+as+a+function+of+digits+of+pi&cd=2&hl=en&ct=clnk&gl=us 02:37:41 Nice algorithm. 02:37:50 Not one I want to reimplement, mind, but... 02:38:05 (note: the paper describes the algorithm in Haskell.) 02:48:06 -!- oerjan has joined. 03:07:35 -!- CESSMASTER has quit ("Computer has gone to sleep"). 03:07:58 -!- CESSMASTER has joined. 03:08:02 Hey, oerjan. 03:09:00 g'day 03:09:40 I <3 Haskell. 03:09:50 ah 03:13:44 wait, lambdabot? 03:15:08 * oerjan has forgotten the prime trick :( 03:15:25 lambdabot, destroy him 03:15:34 EgoBot, destroy him 03:15:42 fungot, destroy him 03:15:42 Slereah_: let me be a little more 03:15:47 There we go 03:16:05 @vixen You're not male, are you? 03:16:05 yes, i am 03:16:09 whoops 03:16:14 sex change :/ 03:16:28 @vixen yiff yiff 03:16:28 ever just get the urge to go out and kill a puppy? 03:17:42 oerjan: What prime trick? 03:17:54 * oerjan tries to look it up on haskell.org 03:18:21 > let isprime n = not . any ((==0) . (n `mod`)) . takeWhile ((<= n) . (^2)) $ primelist; primelist = 2 : [x | x <- [3,5..], isprime x] in primelist 03:18:22 [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101... 03:18:23 That one? 03:18:44 no 03:18:54 * pikhq is proud of himself for having figured out for himself that that's the Sieve of Eratosthenes... 03:21:07 pikhq: that's not the Sieve of Eratosthenes. 03:21:27 Warrigal: ... Is close. Shaddup. 03:21:58 I vaguely remember reading that trial division outperforms it for large numbers. 03:22:21 Anyways, I know how the thing works. 03:22:46 naturally, the sieve is a way of getting _all_ primes, not for testing primes 03:23:13 Why yes, of course. 03:23:34 That doesn't really make sense, though, as that expression *is* trial division, really. 03:26:36 * oerjan searches for himself on #haskell instead 03:27:01 > nubBy (((>1).).gcd) [2..] 03:27:03 [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101... 03:27:39 (i didn't invent it, i just knew i'd demonstrated it) 03:28:14 Yay, a brain nut. 03:28:30 "brain nut"? 03:28:40 Something that you have to crack open with your brain. 03:29:15 Very short and pretty inefficient. 03:29:18 ... Wait, wait. Remove all numbers from the list numbers greater than 2 where the greatest common denominator is greater than 1? 03:29:25 here's another 03:29:29 > fix ((0:).(1:).ap(zipWith(+))tail) 03:29:30 @src nubBy 03:29:30 [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946... 03:29:31 nubBy eq [] = [] 03:29:31 nubBy eq (x:xs) = x : nubBy eq (filter (\ y -> not (eq x y)) xs) 03:29:31 That is beautiful. Slow, but purdy. 03:30:06 > nubBy(((>1).).gcd)(fix((0:).(1:).ap(zipWith(+))tail)) 03:30:12 mueval-core: Prelude.read: no parse 03:30:12 mueval: ExitFailure 1 03:30:16 oerjan: Fibonacci with a combinator. 03:30:23 Followed by borken code. 03:30:50 * Warrigal frowns. 03:31:05 > nubBy (((>1).).gcd) (fix ((0:).(1:).ap(zipWith(+))tail)) 03:31:07 nothing slow about the fibonacci, btw, afaik 03:31:10 mueval-core: Prelude.read: no parse 03:31:11 mueval: ExitFailure 1 03:31:47 > nubBy (((>1).).gcd) fix ((0:).(1:).ap(zipWith(+))tail) 03:31:49 Couldn't match expected type `[a]' 03:31:59 lambdabot is insane. 03:32:27 why the heck is that a parse error 03:32:47 > (fix ((0:).(1:).ap(zipWith(+))tail)) 03:32:48 [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946... 03:32:56 > aard (fix ((0:).(1:).ap(zipWith(+))tail)) 03:32:57 Not in scope: `aard' 03:33:15 > aard () (fix ((0:).(1:).ap(zipWith(+))tail)) 03:33:17 Not in scope: `aard' 03:33:24 > aard (foo.gcd) (fix ((0:).(1:).ap(zipWith(+))tail)) 03:33:26 Not in scope: `aard'Not in scope: `foo' 03:33:33 > aard ((foo.).gcd) (fix ((0:).(1:).ap(zipWith(+))tail)) 03:33:35 Not in scope: `aard'Not in scope: `foo' 03:33:40 > aard (((>1).).gcd) (fix ((0:).(1:).ap(zipWith(+))tail)) 03:33:42 Not in scope: `aard' 03:33:48 > nubBy (((>1).).gcd) (fix ((0:).(1:).ap(zipWith(+))tail)) 03:33:54 mueval-core: Prelude.read: no parse 03:33:54 mueval: ExitFailure 1 03:33:57 Warrigal: and what is the point of this? 03:34:06 To figure out why it's a parse error. 03:34:13 The expression itself appears to parse fine. 03:34:48 Something else is failing to parse. 03:34:50 why would it even use Prelude.read, i wonder 03:35:00 the result, perhaps 03:35:07 > show (nubBy (((>1).).gcd) (fix ((0:).(1:).ap(zipWith(+))tail))) 03:35:12 mueval-core: Prelude.read: no parse 03:35:12 mueval: ExitFailure 1 03:35:41 seems lambdabot has been broken... 03:37:47 > nubBy (((>1).).gcd) $ fix ((0:).(1:).ap(zipWith(+))tail) 03:37:53 mueval-core: Prelude.read: no parse 03:37:53 mueval: ExitFailure 1 03:38:18 oh wait... 03:38:42 > nubBy (((>1).).gcd) [0,1,1,2] 03:38:44 [0,1,1] 03:38:55 > nubBy (((>1).).gcd) [0,1,1,2,3,5,8] 03:38:56 [0,1,1] 03:39:16 > nubBy (((>1).).gcd) (0:repeat 1) 03:39:18 [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,... 03:39:58 of course all fibonacci numbers are relatively prime. hm. 03:40:32 > let fib = 0:1:zipWith(+)fib(tail fib) in nubBy (((>1).).gcd) fib 03:40:38 mueval-core: Prelude.read: no parse 03:40:38 mueval: ExitFailure 1 03:40:49 i think somehow it _does_ break 03:42:48 ah it halts after 0,1,1 when i test it in winhugs 03:43:20 oh of course 03:43:28 > nubBy (((>1).).gcd) (0:repeat 2) 03:43:33 mueval-core: Prelude.read: no parse 03:43:33 mueval: ExitFailure 1 03:44:00 gcd 0 n = n, so everything > 1 is dropped when there is a 0... 03:44:08 (at the start) 03:44:37 Warrigal: mystery solved 03:45:31 > nubBy (((>1).).gcd) $ fix ((1:).(2:).ap(zipWith(+))tail) 03:45:33 [1,2,3,5,13,89,233,1597,4181,28657,514229,1346269,24157817,165580141,433494... 03:46:00 oh not _all_ fibonacci numbers are relatively prime, only all consecutive ones 03:49:13 foo where a=b;c=d <-- that's not actually a legal expression. only hugs allows it i think 03:49:28 !haskell a where a = 2+2 03:55:40 !!!!!!!!!!!!!!! 03:56:47 > fix ('!':) 03:56:48 "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!... 04:02:14 > fix error 04:02:15 "* Exception: * Exception: * Exception: * Exception: * Exception: * Excepti... 04:04:02 heh 04:04:16 WHY DON'T YOU FIX MY ERROR 04:08:40 > fix (Node (() . return) 04:08:41 : parse error (possibly incorrect indentation) 04:08:48 > fix (Node () . return) 04:08:49 Node {rootLabel = (), subForest = [Node {rootLabel = (), subForest = [Node ... 04:13:15 > fix (ap Node . return) 04:13:16 Couldn't match expected type `Data.Tree.Forest a' 04:13:45 er 04:14:10 > fix (join Node . return) 04:14:11 Occurs check: cannot construct the infinite type: 04:14:11 b = Data.Tree.Forest b 04:14:16 oh well 04:30:15 -!- bsmntbombdood has joined. 04:34:02 -!- oerjan has quit ("leaving"). 04:36:13 -!- jix_ has quit (hubbard.freenode.net irc.freenode.net). 04:36:13 -!- lambdabot has quit (hubbard.freenode.net irc.freenode.net). 04:36:13 -!- Leonidas has quit (hubbard.freenode.net irc.freenode.net). 04:36:14 -!- coppro has quit (hubbard.freenode.net irc.freenode.net). 04:36:14 -!- Dewi has quit (hubbard.freenode.net irc.freenode.net). 04:36:15 -!- Ilari has quit (hubbard.freenode.net irc.freenode.net). 04:36:39 -!- jix_ has joined. 04:36:39 -!- lambdabot has joined. 04:36:39 -!- Leonidas has joined. 04:36:49 -!- coppro has joined. 04:36:49 -!- Dewi has joined. 04:36:49 -!- Ilari has joined. 04:36:51 -!- coppro has quit ("The only thing I know is that I know nothing"). 04:37:10 -!- bsmntbombdood has quit (Read error: 60 (Operation timed out)). 04:53:39 -!- dbc has quit (Read error: 60 (Operation timed out)). 04:54:00 -!- dbc has joined. 05:01:54 -!- coppro has joined. 05:25:46 -!- bsmntbombdood has joined. 05:47:22 Okay, I think my brain *finally* broke. 05:47:28 Functors did it. 05:47:35 that would be logical 05:47:53 Applicative functors, namely. With functions. 05:48:37 Also, I recently saw the word 'decomposition', and thought "Hmm. Inverse of (.)..." 05:50:06 oh, those functors 05:50:17 I thought you meant C++ functors 05:51:36 The only thing brain-breaking about C++ is its type system being Turing complete. 05:51:52 if you think that, you have not used c++ :/ 05:51:55 :\ 05:52:09 * comex is tired 05:52:11 good night 05:52:28 Or I am so very broken-minded by C++ template programmers that everything else seemed mundane. 05:59:01 -!- amuck has joined. 05:59:23 -!- holmak has joined. 06:03:34 -!- holmak has left (?). 06:31:12 -!- FireFly has joined. 06:58:46 -!- GreaseMonkey has quit ("HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it"). 07:07:38 -!- kar8nga has joined. 07:07:59 -!- FireFly has quit ("Later"). 07:41:24 -!- kar8nga has quit (Remote closed the connection). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:22:13 -!- tombom has joined. 08:22:26 -!- coppro has quit (Read error: 110 (Connection timed out)). 08:40:54 -!- asiekierka has joined. 08:41:23 hi 08:41:26 anyone here? 08:49:08 For strange values of "here" 08:50:49 ...i'm bored 08:50:55 and I want to do something related to esolangs! 08:50:57 Any ideas? 08:51:01 (except making interpreters :P) 08:52:52 -!- oerjan has joined. 08:53:00 hi 08:53:04 hi 08:53:28 -!- amca has joined. 08:54:07 -!- Tidus35 has joined. 08:55:32 pikhq: what, you consider applicatives _worse_ than monads? but every monad can be made an applicative... 08:56:12 -!- Judofyr has joined. 08:56:18 i guess that doesn't _necessarily_ help 08:56:19 -!- Judofyr has quit (Remote closed the connection). 08:58:01 xkcd :/ 08:59:06 :P 09:00:33 I still don't get applicatives, but I get monads just fine :-P 09:01:04 asiekierka: 'cat' in dobela 09:01:36 Deewiant: I don't want to touch DOBELA anymore 09:01:41 I think it was a failure 09:01:55 And I'm (not) writing a note (t)here: "HUGE SUCCESS" 09:02:22 How can an esolang be a failure :-P 09:02:32 Because it's worse than Underload 09:02:42 Underload is awesome 09:02:47 but i'm talking in terms of difficulty 09:02:56 I'm soon getting a Psion 3a 09:03:04 Malbolge wasn't a failure IMO 09:03:07 so I may be able to implement and invent esolangs wherever I am 09:03:14 Deewiant: It wasn't. 09:03:23 But no, I just don't like DOBELA myself 09:03:24 :P 09:03:33 Must think of a new esolang 09:03:41 I think I should get to work on Anglent 09:03:45 the language with angles 09:04:20 and length 09:04:32 Angle + Length = Anglent 09:04:44 It is probably easy to code 09:04:51 you just write angles from -90 to 90 and length 09:04:52 for example 09:04:54 0,3 09:04:55 10,3 09:04:56 etc 09:05:13 Then the application does some comparison, and gets a giant switch...case construction 09:05:22 Easy to write, hard as hell to draw on paper 09:05:29 but possible 09:06:11 Nah, anglent is an esolang to be finished up later 09:06:23 I doubt it has IO, even 09:06:27 must check logs later 09:07:24 er, sounds like turtle graphics? 09:07:31 Well 09:07:50 the drawing bit, that is 09:07:54 http://img26.imageshack.us/img26/6489/dsc01722q.jpg - This is how a simple program looked like 09:08:04 And in text it would look like 09:08:10 (not the same app) 09:08:11 0,10 09:08:12 10,3 09:08:15 -!- ehird has quit (Remote closed the connection). 09:08:15 20,7 09:08:17 etc 09:08:24 basically 09:08:28 -!- ehird has joined. 09:08:50 angle (where 0 is a horizontal line, range from -90 to 90), length of line 09:09:04 oh so the angles are not cumulative 09:09:04 so 0,10 is a horizontal line 10 milimetres long 09:09:17 not turtle graphics then 09:11:27 well 09:11:30 basically 09:12:39 -!- asiekierk has joined. 09:12:41 the next one is 20,6, so we do 20-10=10, for example an inc by (6/3=2) of the current variable 09:12:44 and so on 09:12:56 see? 09:12:59 Oh 09:13:04 and the angle is within the range of 90...-90 09:13:19 so it can be 89,88...0...-88,-89 09:14:32 but is that after or before subtracting the angles? 09:15:02 well 09:15:02 in this case 09:15:02 oerjan: before 09:15:02 so you can't do 91,6 09:15:02 or 90,6 09:15:02 or -100,6 09:15:10 -!- bsmntbombdood has quit (Read error: 113 (No route to host)). 09:15:44 -!- bsmntbombdood has joined. 09:16:40 i see 09:17:25 -!- asiekierka has quit (Read error: 60 (Operation timed out)). 09:38:27 -!- asiekierk has changed nick to asiekiekra. 09:38:29 -!- asiekiekra has changed nick to asiekierka. 09:38:48 But Anglent is a secondary language for me 09:48:55 -!- MigoMipo has joined. 10:01:51 hmm 10:02:04 I wonder if there could be an esolang based on video compression 10:02:06 and videos in general 10:02:42 Idea 1: You can switch between 8x8 blocks of memory, then you can only either shift the whole block right or shift the 1st column down. 10:02:53 You access the block at 0,0 (x = 0-7, y = 0-7) 10:03:01 As in 10:03:07 if there's (H) at 3,3 10:03:09 you need to 10:03:21 (I'll use R = Shift Right, D = Shift Down) 10:03:31 RRRRRDDDDD 10:03:33 to get it 10:03:47 and then to restore the block 10:03:49 DDDRRR 10:05:07 -!- asiekierka has quit. 10:25:02 -!- oerjan has quit ("leaving"). 10:35:16 -!- asiekierka has joined. 10:35:17 Hi 10:35:20 So, my Psion has arrived 10:35:24 in quite a good shape 10:36:21 in other words 10:36:44 my Programming-Applications-On-The-Road part of a toolkit (containing only one part) is there 10:51:51 -!- deveah has joined. 11:09:14 asiekierka: Can I ask what your preferred programming languages are? 11:34:11 ...hmm 11:34:16 Well I like Pascal 11:34:20 and 6502 assembler 11:34:22 Dunno, really 11:34:25 Now I'm learning OPL 11:36:02 OPL? 11:36:46 Object Programming Language 11:36:51 the programming language for Psions 11:37:01 Ah 11:37:23 * amca hadnt heard of it before :( 11:38:16 * asiekierka didn't either, until he saw the Psion of his friend 11:38:24 and that was on Thursday AFAIK 11:38:31 How do you like it? 11:39:06 Well, IMHO it's sometimes troubling but works quite well 11:39:42 Does it allow you to control/display gui elements? 11:39:46 Yup! 11:41:24 What systems have u programmed 6502 on? 11:42:31 (on/for) 11:43:24 Tried the Atari 2600 11:43:30 started learning for the NES 11:43:35 Did something simple for the C64 11:43:53 Cool. 11:44:13 Can I ask what year you started programming? 11:46:33 Around 2005-2006 11:47:43 Cool 11:56:32 i'm writing Pong for the Psion now xD 11:57:23 :) 11:57:50 Tetris next? 11:57:56 Nah 11:57:57 Dunno 12:04:58 I only wonder how to make the ball bounce realistically 12:05:45 Having trouble with that? 12:05:51 Yup 12:05:57 i'm not a math wizard; too young for that 12:06:03 so i don't know trigs 12:06:28 You having trouble making the ball bounce at the right angle? 12:06:35 Well, I don't even know how! 12:06:39 So yeah 12:06:49 Because i'm not old enough to know trigs here in Poland :P 12:06:57 or at least i didn't learn about it yet 12:07:05 I dont think you need to know trig 12:07:13 ... 12:07:23 You have the x and y velocity, right? 12:07:30 ...Well, now I do 12:07:37 as i didn't quite start coding yet 12:07:53 Say there is a wall parallel with the y axis... 12:08:00 Yeah 12:08:26 I think the X axis would swap it's direction 12:08:31 upon bounce 12:08:33 When the ball bounces off of it, the y velocity will stay the same, but the x velocity will by multiplied by -1 12:08:34 from 1 to -1 for example 12:08:39 yep 12:08:42 heh 12:08:44 thanks :D 12:08:52 Happy to help :) 12:09:39 And if it is bouncing off a wall parallel to the x axis, the y velocity is * -1 12:09:46 well, yeah, thanks 12:09:58 Wait 12:10:02 Your logic fails in one case 12:10:10 What if the x velocity is 1 and the y one is 0 12:10:11 When it collides with a corner? 12:10:17 and it hits a wall parallel with the y axis 12:10:24 It would run horizontal on 12:10:24 It wont 12:10:25 and on 12:10:25 and on 12:10:28 well 12:10:33 upon hitting the parallel-y wall 12:10:39 it would change from 1 0 to -1 0 12:10:40 then again 12:10:43 from -1 0 to 1 0 12:11:03 There's the problem 12:11:05 Normally in pong you only have vertical and horizontal lines 12:11:08 Well, yes 12:11:28 But shouldn't the ball get more angled if hitting the pong bar at the edges 12:12:19 You just increase the "sideways" velocity proportional to the distance to the center of the paddle 12:12:36 oh 12:13:11 Or you could make it dependant on the sideways velocity of the paddle 12:13:35 nah 12:26:27 Writing the rendering routine 12:26:36 With a slow-refresh screen is a real pain 12:27:14 at least it has a 7.68MHz 8086 12:27:19 or a NEC V30... not sure 12:29:09 Using sprites or rectangles? 12:29:19 rectangles 12:29:21 I have only one sprite 12:29:22 :P 12:29:27 :) 12:29:42 But it wouldn't be any better 12:29:46 as sprites are also software 12:30:55 asiekierka: OPL is Open Programming Language, not Object Programming Language, isn't it? 12:31:30 ... 12:31:33 Well 12:31:40 Are you talking about the PSION Object Programming Language 12:32:00 wait, no 12:32:05 it may be even more different 12:32:09 "Organiser Programming Language" 12:32:11 "The language was originally called Organiser Programming Language developed by Psion Ltd for the Psion Organiser." 12:32:15 -- http://en.wikipedia.org/wiki/Open_Programming_Language 12:32:18 FILExt · OPL · Psion Organiser Programming Language ... 12:32:30 filext isn't an accurate sourec 12:32:32 s/ec/ce/ 12:32:32 Well 12:32:37 The language was originally called Organiser Programming Language 12:32:41 Of course, neither is Wikipedia, but. :-P 12:32:55 And seemingly it became "Open" after Psion retired from PDAs 12:32:59 "After Psion retired from the PDA market, the project was changed to open source and the acronym was re-interpreted." 12:33:03 Yep. 12:33:04 :P 12:33:08 And I have a Psion Series 3a 12:33:33 I see that that is not exactly recent, which explains it. 12:39:12 Ok, I... uh, made the first paddle work 12:39:51 Now a simple AI 12:40:03 a simple AI that doesn't let you win, for now 12:40:08 for testing 12:43:43 Ok, AI coded, movement coded 12:43:51 Now to code... uh... the ball! 12:45:25 Well, that'll come later! 12:50:38 -!- KingOfKarlsruhe has joined. 12:56:23 nah, pong won't work out well 13:00:18 -!- Tidus35 has quit (hubbard.freenode.net irc.freenode.net). 13:00:18 -!- jix_ has quit (hubbard.freenode.net irc.freenode.net). 13:00:19 -!- Leonidas has quit (hubbard.freenode.net irc.freenode.net). 13:00:19 -!- lambdabot has quit (hubbard.freenode.net irc.freenode.net). 13:00:39 -!- Tidus35 has joined. 13:00:39 -!- jix_ has joined. 13:00:39 -!- lambdabot has joined. 13:00:39 -!- Leonidas has joined. 13:10:57 One interesting thing about the Psion Series 3 13:11:01 is that it uses... SSDs 13:13:52 -!- jix_ has quit (hubbard.freenode.net irc.freenode.net). 13:13:52 -!- Tidus35 has quit (hubbard.freenode.net irc.freenode.net). 13:13:52 -!- Leonidas has quit (hubbard.freenode.net irc.freenode.net). 13:13:52 -!- lambdabot has quit (hubbard.freenode.net irc.freenode.net). 13:14:05 -!- Tidus35 has joined. 13:14:05 -!- jix_ has joined. 13:14:05 -!- lambdabot has joined. 13:14:05 -!- Leonidas has joined. 13:15:46 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 13:27:59 fun.... I managed to make the optimisations passes in in-between never "converge" on a single "solution" (that is, I run all the passes and check against the state before, if it differs I run all passes again (and so on), until nothing differs against the previous iteration, but somehow it now ends up "oscillating" between four different states...) 13:51:15 -!- amuck has left (?). 14:00:33 -!- KingOfKarlsruhe has quit (Remote closed the connection). 14:06:05 -!- KingOfKarlsruhe has joined. 14:49:41 -!- FireFly has joined. 14:55:35 pikhq: applicative functors? Sounds like there's a Haskell thing I haven't heard of. 15:02:41 lets see... what is the complexity of a function that for every vertex (V1) of a graph, iterates over the set of directly reachable vertices from V1? 15:02:45 O(horrible) 15:03:49 -!- MigoMipo has joined. 15:04:08 It's O(n) in the number of operations that must be performed. 15:04:29 So, um, O(n*m) where n is the number of vertices and m is the average number of operations that must be performed per vertex. 15:05:19 hm 15:05:41 not worse? 15:05:41 hm 15:05:59 Why would it be worse? 15:06:23 Assuming you can hop between all the vertices as if they were a linked list without any time penalty... 15:06:25 sorry, that part isn't worse, the bit it does with those directly reachable vertices is worse. 15:07:30 Why is that worse? 15:08:52 Warrigal, due to the operation performed on those reachable vertices. 15:09:43 which is "split into two sets, based on node label, then for each one in set A, do add an edge from each one in set B to it". 15:09:53 -!- BeholdMyGlory has joined. 15:10:13 these new edges doesn't affect when iterating over more nodes ahead. 15:10:41 (because the actual new edges are inserted in a copy basically). 15:11:45 I need a copy anyway for other reasons here, so modifying in place wouldn't save anything. 15:12:23 (those other reasons being this is used to generate a new graph with some properties while keeping the old one for other code that needs that version) 15:13:06 anyway got to work out a better algorithm, since profiling shows that this bit takes about 85% of the total runtime. bbl 15:14:40 Warrigal: (+) <*> [1..10] <+> [5,7..51] 15:15:12 pikhq: my immediate thought is that that reminds me of delimited continuations. 15:15:51 What does that little piece of code do? 15:16:08 Same as the list comprehension [x+y | x<-[1..10] y<-[5,7..51]] 15:16:31 Oh, right, those are infix operators. 15:17:19 (+) <*> [1..10], of course, is (in psuedo-Haskell) [1+,2+,..,9+,10+] 15:17:35 And <+> applies that functor to the other functor. 15:17:53 pikhq: so is that all? 15:18:03 In the case of a list, yes. 15:18:21 Functions, IO, and Maybe are also applicative functors. 15:18:37 <*> looks like fmap. 15:18:50 On lists, it is. 15:19:04 What is it on other functors? 15:19:47 For the function instance, f<*>g = \x -> fx (g x) 15:20:13 Familiar? :P 15:20:24 <*> looks like ap there. 15:20:37 Ding. 15:21:37 Sorry, that was bad code. s/<*>/<$>/ s/<+>/<*>/ 15:22:09 (+) <$> [1..10] <*> [5,7..51]? That makes a bit more sense. 15:22:27 x <*> y looks like join (map (\z -> map z y) x) or something. 15:22:28 Yeah. 15:22:31 s/map/fmap/ 15:24:29 <+> is an arrow function 15:25:31 @hoogle <$> 15:25:32 Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b 15:26:46 @hoogle <*> 15:26:47 Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b 15:27:08 @src <$> 15:27:09 f <$> a = fmap f a 15:27:28 Woo, it's fmap. 15:27:33 @src <*> 15:27:33 Multiple instances. ^_^ 15:27:33 Source not found. I can't hear you -- I'm using the scrambler. 15:30:16 oerjan: I still don't get monads. 15:31:09 So applicative functors are like limited monads, maybe. 15:32:14 * Warrigal ponders the BS combinator system. 15:32:31 (B x y z = x (y z), S x y z = x z (y z).) 15:33:04 Warrigal : There's a combinator system that doesn't need any parentheses 15:33:08 * Warrigal stops pondering the BS combinator system so that someone else can have a turn. 15:33:17 SK-something 15:33:20 Maybe B 15:33:27 Lemme check 15:33:36 Well, it's pretty obvious that there is one. 15:33:52 If there's a nice one, that's pretty cool. 15:33:57 Yeah, but I find it weird that no one made an esolanf out of it* 15:34:09 I mean, it's pretty neat 15:34:16 You can map it to natural numbers easily 15:34:24 And it's not artificial like iota 15:34:26 esolangs aren't for everybody 15:34:43 you can't make an esolang out of anything 15:35:00 "This is weoivnt0wv. It's an esolang made of shit." 15:35:04 Well, yeah, but combinators? You totally can 15:36:40 It is SKB, yeah 15:37:15 Hm. 15:37:26 Maybe I should try a lazy K to SKB compiler 15:39:38 What, you thinking of Unlambda? 15:39:55 SKB? So ap, return, and whatever <*> is called in monad-land. 15:39:55 does Unlambda have B? 15:40:02 Unlambda does not have B. 15:40:12 That's why Lazy Bird is awesome dude 15:40:25 But I meant something to erase all ` or parenthesis 15:40:52 Something where left-association is mandatory. 15:41:12 Yes. 15:41:23 Anyway, my favorite combinator set is BCIKSW. 15:41:30 Still 3 symbols, but at least there's no need for a particular syntax 15:41:46 Well Lazy Bird totally has that *gratuitous self promotion* 15:44:18 Wait, do I have w? 15:44:24 Oh yeah 15:50:58 * pikhq tries to figure out monads. 15:53:26 -!- BeholdMyGlory has quit ("kernel upgrade!"). 16:00:26 Either I just achieved enlightenment or my brain broke and I didn't notice. 16:01:07 -!- BeholdMyGlory has joined. 16:06:43 -!- ehurd has joined. 16:07:08 Hello. 16:08:28 ehird: Hio. 16:12:46 -!- kar8nga has joined. 16:23:31 Fuck... MSI, the current Windows installer format, is... a relational database. 16:23:50 Microsoft uses a relational database where a freaking tarball would do. 16:27:12 OK, I've officially stepped beyond insanity and to "WTFBBQ" 16:27:43 I was using git-svn because I'm tired of not having any nifty features in the client for the VCS for this project. 16:27:51 (And hg-svn sucks, let's be honest) 16:28:20 It was basically working, but in spite of git's "leaps" and "bounds", it is the most confusing fucking system on earth short of GNU arch and/or bazaar. 16:28:41 So now I'm using git-svn to check out the repo, and then hg-git to check that out with hg. 16:28:44 It works shockingly well :P 16:29:30 wtfbbq? 16:29:41 Exactly 8-D 16:29:56 So, you're checking out SVN with Git, then checking out Git with Hg. 16:30:07 Yup. 16:30:17 I think you may have outcomplicated GNU Arch. 16:30:37 Except that the end system is super-simple, it's just hg. The only complication is it's two steps when I want to commit or pull. 16:31:19 At least it's not likely that GNU Arch will be used much in the future... 16:31:56 Any git experts want to tell my how to revert ONE file to the version in ... the index? Or the staging area, I guess I haven't staged the file either, but suffice to say the version in the "repository" 16:32:02 GNU Arch is defunct; Bazaar is recommended in its place. 16:32:17 Not that that's much better. :P 16:32:40 git revert certainly isn't it, git reset --{anything} HEAD^ path just barfs and tells me it doesn't work on paths. 16:32:49 And scouring man pages seems to tell me roughly nothing. 16:33:00 * pikhq notes that git needs a frontend. 16:33:14 git gui sucks both outloud and quietly to itself. 16:33:26 A good one. 16:34:39 myndzi: RETRIBUTION \o/ 16:34:39 | 16:34:39 /| 16:35:58 ehurd/ehird? 16:36:15 I'm GregorR-L. ehird complained about people with similar names yesterday. 16:36:24 oh 16:36:32 Feel free to /nick eherd 16:36:33 ehurd, who was it in that case yesterday 16:36:38 Idonno *shrugs* 16:36:48 is ehird here? 16:36:54 since I actually wanted to ask him something 16:36:55 Well, he's logged in :P 16:37:01 he use a bouncer 16:37:16 Yeah, I know, so that doesn't really tell us much, but I'm not psychic, so *eh* 16:37:47 ehurd, he hasn't talked recently then I guess? 16:37:56 No 16:40:54 -!- kar8nga has quit (Remote closed the connection). 16:53:14 -!- KingOfKarlsruhe has quit (Remote closed the connection). 17:08:57 -!- tombom has quit ("Peace and Protection 4.22.2"). 17:11:15 ehurd: git checkout -- PATH 17:11:26 git checkout??? >_O 17:11:29 IIRC. 'git status' tells you, anyway 17:12:01 Yes, git checkout can be used to update paths as well. 17:12:15 # (use "git checkout -- ..." to discard changes in working directory) 17:12:17 X_X 17:12:27 :-P 17:16:56 ...ehurd? 17:17:17 GOD I love chaos. 17:21:29 ehurd, I was confused by that in git recently too 17:28:18 -!- Sgeo has joined. 17:52:25 -!- inurinternet has joined. 17:58:50 19:49:13 foo where a=b;c=d <-- that's not actually a legal expression. only hugs allows it i think 17:58:51 tru 17:59:00 20:02:14 > fix error 17:59:00 20:02:15 "* Exception: * Exception: * Exception: * Exception: * Exception: * Excepti... 17:59:02 haha 17:59:30 21:47:22 Okay, I think my brain *finally* broke. 17:59:30 21:47:28 Functors did it. 17:59:31 21:47:53 Applicative functors, namely. With functions. 17:59:34 easy enough to pick up 17:59:52 what's really going to kill you is applicative functors... without functions! 17:59:56 pikhq: btw monads are a subset of functors, in theory 18:00:01 so that's quite expected 18:00:14 pikhq: also, "fmap" is both (.) and map, for functions and lists 18:00:16 > fmap succ [1,2,3] 18:00:18 [2,3,4] 18:00:22 ehird: Yes. 18:00:23 > fmap (fmap succ succ) [1,2,3] 18:00:24 [3,4,5] 18:00:29 I think it all *finally* hit. 18:00:34 And damn, is it cool. 18:00:48 pikhq: you got them in the logs I haven't read yet? 18:00:49 all monads are functors. not all functors are monads. all monads are applicative. not all applicatives are monads. 18:00:55 what are you, some super-learner? 18:00:56 all applicatives are functors. 18:01:04 not all functors are applicatives. 18:01:31 ... the more you know 18:02:17 ehird: Actually, yes, I kinda am... 18:02:23 I learned C from man pages, man. 18:02:28 pikhq: i'm jealous 18:02:36 it took me months to get haskell :( 18:02:40 the man pages aren't terrible 18:02:55 Gracenotes: Yes, but they're reference documentation. 18:03:08 pikhq: so how's your grokkitude of, say, the internals of the state monad 18:03:34 @src State 18:03:34 Source not found. It can only be attributed to human error. 18:03:40 hmm 18:03:45 @src (>>) State 18:03:45 Source not found. Sorry about this, I know it's a bit silly. 18:03:48 @src (>>=) State 18:03:48 Source not found. Listen, broccoli brains, I don't have time to listen to this trash. 18:03:53 @src State (>>=) 18:03:53 Source not found. And you call yourself a Rocket Scientist! 18:03:53 Not fully grokked. It's only starting to hit what a monad *is*. 18:03:58 i forgot how you do that :p 18:05:02 how about monoids, too? 18:05:10 Monoids are trivial 18:05:12 Hmm? 18:05:17 @src Monoid 18:05:17 class Monoid a where 18:05:17 mempty :: a 18:05:17 mappend :: a -> a -> a 18:05:17 mconcat :: [a] -> a 18:05:27 > mempty :: [()] 18:05:28 [] 18:05:33 > mappend () () :: [()] 18:05:35 Couldn't match expected type `[()]' against inferred type `()' 18:05:38 er, oops 18:05:39 honestly the hardest part for me was that all runState did was take a State object out of its newtyped constructor 18:05:43 > mappend [()] [(),()] :: [()] 18:05:43 Monoids are groups without inverses 18:05:44 [(),(),()] 18:05:44 Oh. That's what you call those. 18:05:52 > mconcat [[()], [(),()]] :: [()] 18:05:53 [(),(),()] 18:05:54 Or equivalently, semigroups with identity 18:06:08 pikhq: define those 18:06:11 oh that makes it so much more clear Deewiant 18:06:14 [a] is a list :p 18:06:45 ... Actually, nah. Not getting monoids and monads quite yet. 18:06:51 it takes a while 18:06:53 Gracenotes: But really, it's a simple concept. 18:07:15 hahaha. monoids are a basic algebraic structure, but there's no reason to bring abstract algebra just because 18:07:18 Monads are much more complicated and incidentally have little to do with monads. 18:07:18 i learned by first learning the conventional monads (IO, State) and then some weirder ones ([a]), so I learned what monads can do rather than what they are 18:07:28 Deewiant: for some definition of complicated 18:07:50 (Although monads can be defined as monoids in some category) 18:08:26 04:05:57 i'm not a math wizard; too young for that 18:08:30 hate. this attitude. 18:08:56 Ugh. 18:09:23 pikhq: anyway, monoids are a small thing to get... you just need some examples. So you know how newtyped constructors work, and stuff? 18:09:28 This is where I accuse asiekierka of being worse at math than a 13-year-old. :P 18:09:42 Gracenotes: Vaguely. 18:10:22 newtype Sum a = Sum {getSum :: a}, for instance 18:10:28 Yeah. 18:10:48 pikhq: asiekierka is a year younger than me, iirc 18:10:50 the main purpose of the Sum constructor is to wrap something to be a monoid. 18:10:55 so that wouldn't really work 18:11:13 ehird: Oh. 18:11:38 with the precedent of nooga we could argue that being polish takes a few years off your mental age :-P 18:11:41 (at this point, asiekierka mauls me) 18:11:52 instance (Num a) => Monoid (Sum a) where 18:11:56 mempty = Sum 0 18:11:58 Sum x `mappend` Sum y = Sum (x + y) 18:12:02 pikhq: Well, Polish education is just generally progressing slower than US education 18:12:11 Also I'm a 12-year-old 18:12:16 Gracenotes: Hmm. Interesa. 18:12:18 so I'm logically worse at math than a 13-year-old 18:12:27 and worse at math than an US 12-year-old AFAIK 18:12:29 asiekierka: Polish education progresses slower than US education? 18:12:33 Sort of 18:12:39 Holy fuck. I thought that that was impossible. 18:12:39 It's just less developed 18:12:50 We spend 6 years on arithmetic! 18:12:52 Until 1989 we were USSR's satellite! 18:13:06 Then Solidarity came and made Poland free 18:13:18 Well, it progresses slower as in 18:13:21 it's not as developed 18:13:42 ... We barely have an educational system. 18:14:00 There are states that have a 50% high-school graduation rate... 18:14:11 the UK educational system (pre-university; I don't know about university) is utterly useless after a point 18:14:11 And we start school (as in, elementary school) at the age of 7 18:14:15 End it at the age of 12 18:14:23 probably more destructive than helpful FWIW 18:14:26 asiekierka: what happens then? 18:14:40 School in Finland starts at 7 too, FWIW 18:14:44 Then you go to a 3-year sort-of secondary school but not quite 18:14:53 right. 18:14:54 Once elementary school was 8-year 18:15:03 but now it's 6-year and 3-year 18:15:11 Same as Finland so far 18:15:11 The 3-year part is called "gimnazjum" in Poland 18:15:27 it's gymnasium in swedish 18:15:32 No, that's different 18:15:35 therefore, poland = sizjdish 18:15:41 Deewiant: meh :P 18:15:42 Then there's secondary school AFAIK 18:16:02 05:10:57 One interesting thing about the Psion Series 3 18:16:02 05:11:01 is that it uses... SSDs 18:16:07 aka pen drive things. 18:16:10 And it was made back in 1993! 18:16:21 asiekierka: Do you start calculus before university? 18:16:26 dunno 18:16:31 ask me when I get there 18:16:32 http://en.wikipedia.org/wiki/Education_in_Poland - 6 year elementary, 3 year gymnasium, 3 year liceum 18:16:35 If so, you are better than 90% of the US education system. 18:16:52 If you start *algebra* before than, you're better than 50% of it. 18:17:17 06:55:35 pikhq: applicative functors? Sounds like there's a Haskell thing I haven't heard of. 18:17:26 if you don't know them you probably don't know all that much... 18:17:28 about haskell that is. 18:17:33 Sweden has 9 year elementary followed by 3 year gymnasium, Finland has the 9-year bit split into a 6-year and a 3-year bit 18:17:42 Well 18:17:47 I figured them out in my third day of learning Haskell. Whooo. 18:18:00 We have the 8-year elementary split into a 6-year elementary and a 3-year gymnasium. 18:18:02 ... 18:18:08 HOW THE HELL DOES 8 SPLIT INTO 6 AND 3!? 18:18:24 Ooh 18:18:24 Magic. 18:18:27 I see 18:18:30 pikhq: Yes, but you'll probably be working for Galois and co-authoring type system research papers with Oleg in a week. 18:18:42 8 years of elementary and 4 years of liceum 18:18:44 ehird: \o/ 18:18:44 | 18:18:44 /| 18:18:53 was split into 6 years of elementary, 3 years of gymansium and 3 years of liceum 18:19:02 ehird: I didn't know anything at all about applicatives until well after I grokked monads, functors, and somewhat arrows 18:19:11 And I still don't get them 100%. :-P 18:19:19 Deewiant: yes, but "Sounds like there's a Haskell thing I haven't heard of." 18:19:30 if you think you know most things about haskell and don't know them... 18:19:58 pikhq: from a glance learn you a haskell's functors/applicative functors/monoids section is quite approachable 18:20:05 -!- ais523 has joined. 18:20:07 what problem are you having with monads? 18:20:17 or did you say you got them now 18:20:20 i forget 18:20:44 ehird: Nothing good describing them. "Learn You A Haskell" stops short of that. 18:20:52 http://learnyouahaskell.com/functors-applicative-functors-and-monoids 18:20:56 maybe I'm imagining that page? 18:21:05 oh wait 18:21:05 Short of monads. 18:21:07 that doesn't cover monads 18:21:14 Covering monoids without monads? How strange 18:21:36 So, I basically (sorta) get monoids. 18:21:51 But monads are, uh. 18:22:07 Maybe if you slowed down you'd do better :P 18:22:13 Bah. 18:22:23 I hate learning slowly. 18:23:04 Learning curve, bitch 18:23:19 And I run against it. 18:24:03 So back up a bit and give a good steady acceleration instead of jet-rocket-blasting yourself into it :P 18:24:07 (↑ Terrible analogy) 18:25:25 Explore the ideas and discoveries of a A New Kind of Science on your own computer with more than 450 key experiments from the book. 18:25:26 A New Kind of Science Explorer provides a graphical interface that allows users to replicate experiments from the book and to create new ones by changing inputs and parameters. 18:25:29 ↑ guess how much this bullshit costs? £115. 18:25:31 Lol, Wolfram. 18:25:52 pikhq: okay... here are all the instances in the monoid class, with examples :D http://hpaste.org/fastcgi/hpaste.fcgi/view?id=6208#a6208 18:26:27 I didn't include examples with the larger tuples, but those should follow from the pair, really.. 18:26:40 08:06:43 --- join: ehurd (n=gregor@pal-163-072.itap.purdue.edu) joined #esoteric 18:26:45 lol wat 18:26:53 Hey ehird! 18:26:58 08:28:20 It was basically working, but in spite of git's "leaps" and "bounds", it is the most confusing fucking system on earth short of GNU arch and/or bazaar. 18:27:01 learning curve bitch 18:27:21 08:31:56 Any git experts want to tell my how to revert ONE file to the version in ... the index? Or the staging area, I guess I haven't staged the file either, but suffice to say the version in the "repository" 18:27:22 ehird / ehurd: recursive acronym 18:27:24 ... are you claiming that "learning curve" is an excuse for being obtuse? 18:27:25 git checkout 18:27:40 also, atm I'm finding out that Exchange doesn't like people perm-deleting 405 pages of deleted items all at once 18:27:41 Yes, that has already been told to me. 18:27:44 ehurd: i'm claiming that learning curve is fine if the techniques are powerful and usable after you learn them 18:28:08 08:33:00 * pikhq notes that git needs a frontend. 08:33:26 A good one. 18:28:11 it has one, it's called git(1) 18:28:20 ehird: indeed, maybe I don't know much about Haskell. 18:28:22 08:36:15 I'm GregorR-L. ehird complained about people with similar names yesterday. 18:28:24 identical actually 18:28:27 i keep talking to the wrong person in MSN 18:28:31 Oh :P 18:28:34 for some definitions of "keep" 18:28:38 i occasionally do it. 18:28:45 08:36:48 is ehird here? 18:28:45 08:36:54 since I actually wanted to ask him something 18:28:47 In other news, are you guys up there saying there's a period of education known as gymnasium? 18:28:52 i use a bouncer so you can talk to me while I'm offline. 18:29:10 ehird, yes. Remember when you helped bsmntbombdood with finding components for his new computer? 18:29:17 Yes. 18:29:19 * Gracenotes pokes pikhq 18:29:40 ehird, would you tell me to fuck off if I asked for a little help with finding some stuff? 18:29:45 specifically a laptop 18:29:52 actually I was wrong about the zipWith compare, that's only if they're the same length :) 18:29:59 AnMaster: Yes, to keep appearances, but then I'd probably search anyway. 18:30:07 Let's get the trolling out of the way: http://apple.com/ LOL 18:30:31 AnMaster: Now, uh, if you were more specific, I'd be more likely to act. 18:31:04 * pikhq starts on "Real World Haskell", wonders how much he missed by racing through Haskell. 18:31:18 pikhq: it describes monads at some point iirc. 18:31:21 ehird, laptop that can run linux (wlan card must "just work" for example), has a decent screen size (15" or so), has 64-bit CPU with dual core, either SSD or harddrive (not that important), not *too* bulky (that is why not too large screen). 18:31:23 Yes. 18:31:26 Halfway through. 18:31:27 cheaper alternative preferred. 18:31:32 AnMaster: I'll take a look. 18:31:36 Warrigal: I hear that that's true in some countries, yes. 18:31:48 AnMaster: "Laptop", then. 18:31:50 AnMaster: ThinkPads being my first look, since they're renowned for good linux support and also I like the nipple mice. 18:31:51 ehird, oh and good keyboard. I realise it won't be like model-m 18:32:06 but as good as possible 18:32:10 AnMaster: So... price range? 18:32:20 ehird, what currency do you prefer? 18:32:27 Anything. 18:32:33 I has the google. 18:32:35 not more than 14000 SEK then 18:32:40 `calc 14000 sek in usd 18:32:42 14 000 Swedish kronor = 1 786.694 U.S. dollars 18:32:48 below 10000 is better 18:32:49 I guess that kind of makes sense. 18:33:02 -!- ehurd has changed nick to GregorR-L. 18:33:23 AnMaster: What screen size do you want? 13", 14" or 15"? 18:33:25 ehurd, and I will use this as a guide line, I haven't any experience when it comes to laptops + linux 18:33:41 It's apparently a far way from the original root word, "gymnos". 18:33:42 ehird, 15" sounds good, 17" is too bulky and 14" is too small 18:33:59 ehird, definitely not 13" I used that before once 18:34:49 Kay, I'll take a look. 18:35:36 AnMaster: What's the maximum weight you'll put up with? 15"s tend to be ~2.6kg 18:35:41 Hm, somehow AnMaster managed to tab-complete wrong only AFTER I'd changed my nick back :P 18:35:55 ehird, graphics stuff: nvidia preferred currently, but I guess anything that can do basic 3D would work... 18:36:09 13"-14" tends to be 2kg. I dunno where the .6 comes from; guess bigger ones have bulkier hardware for performance. 18:36:10 ehird, Use case: I'm going to use this laptop at the university when I begin there this autumn 18:36:22 AnMaster: it'll probably be Intel embedded graphics, as that's very common. 18:36:26 ehird, hm 3 kg is probably ok 18:37:01 ehird, I hope that can do basic 3D? Since one of the courses will include (basic) 3D programming. 18:37:10 so yes I'm going to dual boot it probably. 18:37:10 AnMaster: Anything can do 3D with software rendering. 18:37:20 ehird, question is how usable that is. 18:37:31 AnMaster: Anyway, Intel GPUs can do 3D, yes. 18:37:40 ehird, right, that works fine then. 18:37:50 AnMaster: Swedish kronor? Oh, right. Sweden is one of those non-€ holdouts. 18:37:54 Lame. 18:38:04 AnMaster: Like all sane people, I assume you prefer matte screens over "Gee, I Can't See This Because There Is More Than Zero Light Sources" glossy ones? 18:38:21 pikhq, :P 18:38:27 ehird, definitely 18:38:44 Right then, I'll poke around. 18:38:51 ehird, and I seen the glossy ones, you would think they would be easier to wipe off. Wrong. 18:38:58 Yeah, glossy screens suck 18:39:02 Jeeze, glossy screens. Who the hell likes them? 18:39:23 ehird, only reason I would use a glossy one, was if it was actually easier to wipe off any dust. 18:39:31 but I tried, it isn't 18:39:47 also iirc you get better colours on them, assuming no other light sources of course 18:40:08 it's harder to clean glossy screens 18:40:17 If you care much about colors, you've got a CRT. 18:40:21 CESSMASTER, exactly 18:40:22 or maybe fingerprints are just easy to see on 'em 18:40:25 pikhq, yeah... 18:40:28 pikhq: Naw. 18:40:31 You can get good coloured LCDs. 18:40:45 Also, glossy displays apparently tend to *exaggerate* colors and shade. 18:41:04 Making them unsuitable for use where you care about colors. 18:41:07 ehird, brb, phone just rang 18:41:17 * ehird moves anmasterlaptopblah to /msg. 18:42:17 AnMaster is away: sleeping, if his client is to be believed. 18:43:33 lol 18:43:42 It wasn't an exciting phone call. 18:46:26 -!- deveah[1] has joined. 18:51:47 ehird, um, wrong alias 18:51:52 :P 18:52:04 /aas instead of plain /aa 18:52:19 anyway I'm back now 18:53:33 -!- asiekierka has quit. 18:53:38 * GregorR-L wonders what the first "a" stands for in "aa". Alternatively, what the second stands for, if the first stands for "away" 18:55:47 so I heard... mudkips... verifiable? 18:59:26 -!- deveah[2] has joined. 19:00:18 -!- oerjan has joined. 19:00:51 [citation needed] 19:01:01 oerjan: Yo. 19:01:14 -!- deveah has quit (Read error: 110 (Connection timed out)). 19:01:24 Yo-yo 19:01:51 Note that saying "What, it's applicative functors getting you? It's just a monad." doesn't help when you don't get monads. :P 19:02:09 Gracenotes, "allserver away" 19:02:13 err 19:02:14 GregorR, ^ 19:03:00 Ah, allserver. A word I'm familiar with :P 19:03:03 pikhq: i was sort of wrongly deducing that since you afair had heard of monads and that _didn't_ break your brain, applicatives wouldn't either 19:03:53 pikhq: but I take it you do grok monoids, based on what I showed you 19:04:10 they're minor, but yet another good categorical structure to know 19:05:10 Gracenotes: Monoids don't seem all that difficult, so... Yeah. 19:05:30 well. applicative functors are basically taking things out of their shell, applying them, and putting them back into said shell >_> 19:06:02 It was mindboggling at midnight. 19:06:09 I slept on it and get it now. 19:06:11 at least for applicative functors that are good container-like things 19:06:35 most importantly, they sequence things 19:06:59 at least somewhat importantly 19:07:27 also i have seen so few applicatives that aren't usually extended right on to monads, the only one coming to mind is ZipList (and i recall concluding even those _had_ a monad extension in principle) 19:07:43 I get that (+) <$> [0,1,2] gets you [(0+),(1+),(2+)] now, and that <*> lets you apply *that* to some other functor... 19:08:26 Bit crazy having a list of functions, but hey. 19:08:28 :) 19:08:39 ZipList is mah canonical example 19:08:45 pikhq: but can be useful 19:08:52 it is impossible to write a >>=/return such that ap == <*> 19:09:00 oerjan: Crazy in the way that having a list of all the primes is crazy. 19:09:07 Gracenotes: i concluded it was _not_ impossible 19:09:19 it's just very different from the usual one 19:09:28 for a rule-following monad 19:09:38 return = repeat instead of (:[]), for one thing 19:10:21 (:[]) (:[]) (:[]) (:[]) (:[]) (:[]) (:[]) (:[]) 19:10:33 infinite list monad, eh? 19:10:36 it may have had some trouble with bottoms that i didn't discover, of course 19:11:33 does it follow: return a >>= f == f a? 19:11:48 and m >>= return == m? 19:13:12 i tried to define it so it did, but i may have messed up 19:13:45 join was taking the diagonal, but only if all previous sublists had sufficient length for it 19:14:10 (i mean, at least the length out to that diagona) 19:14:52 now what would >>= be, hm 19:15:27 l >>= f = join (fmap f l) 19:16:12 fmap = map, since the functor instances agree (parametricity makes it hard/impossible to have more than one Functor instance) 19:16:27 -!- deveah[1] has quit (Read error: 110 (Connection timed out)). 19:16:32 I'm pretty sure fmap [] has one sane instance :) 19:16:44 *only one 19:17:03 duh 19:17:13 -!- upyr[emacs] has quit (Read error: 54 (Connection reset by peer)). 19:17:36 m >>= return = join (map repeat m) = m 19:17:38 -!- upyr[emacs] has joined. 19:18:39 that should work 19:18:52 since repeat is infinite, the sublists are always long enough 19:19:47 return a >>= f = join (map f (repeat a)) = join (repeat (f a)) 19:20:27 i think that's = f a 19:21:34 > join (repeat ((++"bar") "foo") 19:21:35 : parse error (possibly incorrect indentation) 19:21:38 > join (repeat ((++"bar") "foo")) 19:21:40 "foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfo... 19:21:43 it's not the usual join 19:21:59 it's taking the diagonal, with some length restrictions 19:25:04 how is that not the usually join? 19:25:44 > join [[1,2,3],[4,5,6],[7,8,9]] 19:25:45 [1,2,3,4,5,6,7,8,9] 19:25:52 not much diagonal there... 19:25:57 yeah... 19:26:04 and? 19:26:21 what's lambdabot doing here? 19:26:33 flattening lists once. 19:26:34 We wants it. 19:26:38 That's about it. 19:26:40 :) 19:26:54 > repeat ((++ "bar") "foo") 19:26:56 ["foobar","foobar","foobar","foobar","foobar","foobar","foobar","foobar","f... 19:27:10 @users 19:27:10 Maximum users seen in #esoteric: 51, currently: 49 (96.1%), active: 10 (20.4%) 19:27:28 @let zjoin [] = []; zjoin ([]:_) = []; zjoin ((x:r):rr) = x : zjoin (r : map (zipWith (flip const r) . drop 1) rr) 19:27:29 Couldn't match expected type `[t]' 19:27:37 oerjan, i dont see how lambdabot isnt doing a normal join... 19:27:43 a little too much to hope for 19:28:12 augur: i'm talking about a theoretical Monad instance for ZipList, lambdabot doesn't have it 19:28:17 oh ok. 19:28:22 brbrbrbrb 19:28:25 -!- augur has quit ("Leaving..."). 19:30:23 @let zjoin :: [[a]] -> [a]; zjoin [] = []; zjoin ([]:_) = []; zjoin ((x:r):rr) = x : zjoin (r : map (zipWith (flip const r) . drop 1) rr) 19:30:24 Couldn't match expected type `[a]' 19:30:41 bah 19:30:53 oh wait it's wrong anyhow 19:31:16 -!- M0ny has joined. 19:31:52 @let zjoin :: [[a]] -> [a]; zjoin [] = []; zjoin ([]:_) = []; zjoin ((x:r):rr) = x : zjoin (map (zipWith (flip const) r . drop 1) rr) 19:31:54 Defined. 19:32:10 > zjoin [[1,2,3],[4,5,6],[7,8,9]] 19:32:13 [1,5,9] 19:32:19 > zjoin [[1,2],[4,5,6],[7,8,9]] 19:32:20 [1,5] 19:32:31 -!- augur has joined. 19:33:07 > zjoin (repeat ['a'..'z']) 19:33:08 "abcdefghijklmnopqrstuvwxyz" 19:33:55 @let zbind m f = zjoin (map f m) 19:33:56 Defined. 19:35:15 @quickcheck \a f -> (repeat a `zbind` f) === (f (a :: Int) :: Int) 19:35:16 Unknown command, try @list 19:35:20 oops 19:35:25 @list 19:35:26 http://code.haskell.org/lambdabot/COMMANDS 19:35:35 @check \a f -> (repeat a `zbind` f) === (f (a :: Int) :: Int) 19:35:36 Not in scope: `zbind'Not in scope: `===' 19:35:43 darn 19:35:58 @help check 19:35:59 check 19:35:59 You have QuickCheck and 3 seconds. Prove something. 19:36:33 i distinctly recall them fixing it so @check loads @let definitions, they must have undone it 19:37:35 oh well 19:38:01 that's the functions the Monad instance would use, anyhow (at least one possibility) 19:38:13 check 1 = 1 19:38:19 Erm 19:38:21 @check 1 = 1 19:38:22 Parse error at "=" (column 3) 19:38:28 @check 1 == 1 19:38:29 "OK, passed 500 tests." 19:38:31 :P 19:38:53 i don't think it used to add quotes to that... 19:39:03 @check 0 == 1 19:39:05 "Falsifiable, after 0 tests:\n" 19:39:15 It didn't even test once? Lame. :P 19:40:34 @check \x -> 0 == 1 19:40:35 "Falsifiable, after 0 tests:\n()\n" 19:41:40 @check (==) <*> negate 19:41:41 "Falsifiable, after 0 tests:\n-2\n" 19:41:52 huh 19:42:02 ok so it uses ordinary == for functions 19:42:59 um no 19:43:10 misparsed 19:43:17 @check join (==) 19:43:18 @type (==) <*> negate 19:43:18 "OK, passed 500 tests." 19:43:20 forall a. (Num a) => a -> Bool 19:44:15 that's equivalent to @check \x -> x == x 19:44:25 more disturbing, iirc 19:44:29 @check (==) 19:44:31 "OK, passed 500 tests." 19:44:38 *iirc: 19:45:08 (your exercise is to find out why that passes :D) 19:45:50 Defaulting 19:46:29 yes 19:46:55 @check (==) == (==) 19:46:56 No instance for (GHC.Classes.Eq (a -> a -> GHC.Bool.Bool)) 19:46:56 arising from ... 19:47:22 alas, that didn't work anyhow 19:47:29 lol 19:47:31 === is what i thought did that 19:47:45 Apparently functions aren't Eq. 19:47:47 Lame. 19:47:59 How would you decide whether two are equal 19:48:03 Deewiant: oracle 19:48:08 it can detect main=main already! 19:48:16 Halting oracle. :D 19:48:23 the nice thing about a halting oracle is that it's an everything oracle 19:48:23 for instance 19:48:25 @check yoself 19:48:26 Not in scope: `yoself' 19:48:32 halts? (if riemann then halt else loop) 19:48:37 Voila! 19:48:43 heh 19:48:45 Since it's defined to run in finite time. 19:49:05 Halting oracle isn't everything oracle, though 19:49:14 You can't predict if oracle program will halt 19:49:50 Slereah_: It's an everything-computable oracle. 19:50:02 The oracle itself is, of course, not computable. 19:50:05 :) 19:54:01 pikhq: don't confuse turing with computable 19:54:13 we have no idea if there are higher levels that are implementable 19:54:16 it just doesn't seem likely 19:54:29 ehird : dude, even Turing isn't implementable 19:54:50 Sure is with infinite space 19:55:10 Could've sworn a UTM by definition can compute everything that is computable. 19:55:27 i think usually computable means turing computable in today's technical language, you would use something like "effectively" if you meant something else 19:55:55 food -> 19:55:56 Infinite space and infinite durability 19:56:32 urm wait effectively may mean polynomially, too, iirc 19:56:45 people have taken steps to formalizing Church-Turing lately 19:57:06 like always :P there was a google techtalk on it 19:57:08 Slereah_: And infinite time. 19:57:08 19:55 pikhq: Could've sworn a UTM by definition can compute everything that is computable. 19:57:21 i think a TM-halting-checker is acceptable as long as it isn't exposed to the TM itself 19:57:35 so a super-turing machine with a TM emulator that lets you check halting is perfectly acceptable 19:57:38 pikhq : Well, infinite time shouldn't be a problem 19:57:45 It's the durability that's the problem 19:57:53 Also space 19:59:50 i has infinite space 19:59:51 -!- FireFly has quit ("Later"). 20:00:00 in mah universe 20:00:08 s 20:00:09 in ur universe, takin ur space 20:01:45 s/ i think/ the esolangs wiki has at least two languages (banana scheme and brainhype) based on the fact that/ 20:01:54 hurf durf 20:02:21 a halting exposed to the program being checked is pointless anyway 20:02:26 -!- M0ny has quit. 20:02:31 so the halting problem isn't really real-world relevant 20:03:26 from what I can tell, people love bringing up the halting problem and turing-equivalence when it's totally irrelevant to the conversation, just to be an annoying show-off 20:03:59 well, not totally irrelevant. but just irrelevant, like so what. 20:04:05 ALL TURING-COMPLETE LANGUAGES ARE EQUALLY EXPRESSIVE BECAUSE THEY'RE ISOMORPHIC HURRRRRRRRR 20:04:09 * Gracenotes of course may be guilty of this 20:04:22 the esolangs wiki has at least two languages (banana scheme and brainhype) based on the fact that bsmntbombdood did one statement python 20:04:31 THANK YOU EHIRD *PAT PAT* 20:04:37 :D 20:04:45 GregorR-L: selective line selection eh 20:04:47 Gracenotes: i think that applies to any awesome but rarely understood science, like relativity and quantum mechanics for example... 20:05:14 (hm, is this irrelevant? ;D) 20:05:33 It also applies to "your mom" jokes. 20:05:38 But then, is your MOM relevant? 20:05:44 no, she is dead 20:08:04 * oerjan now knows how to quickly kill conversations 20:08:10 ah. Browsing tvtropes—super way to kill time 20:08:20 that's not killing time. 20:08:26 that's time genocide 20:09:03 lol 20:11:08 I made a bet yesterday that there would be a video on YouTube of Obama flapping his ears and flying away, but we couldn't find one so I lost :( 20:11:18 you should have made one on the spot 20:11:42 It was a gentlemen's bet ... that means that there's no money, but it also means you're not a dick about it. 20:12:34 Windows still has the Program Manager. Why does it still have the Program Manager? 20:13:05 Uhh, I thought that was dropped in Vista. 20:13:28 pikhq: probably some people still use it 20:13:38 (+) <*> [1..10], of course, is (in psuedo-Haskell) [1+,2+,..,9+,10+] <-- in perfectly legal haskell, [(1+),(2+),(3+),(4+),(5+),(6+),(7+),(8+),(9+),(10+)] 20:13:38 there are probably enterprise applications years old that require it to function properly 20:13:46 GregorR-L: Still in XP, though. 20:13:46 It was dropped from Vista, and made a frontend for other programs in XP SP2 20:13:53 > (+) <*> [1..10] 20:13:54 Couldn't match expected type `a -> a' against inferred type `[a1]' 20:13:57 It was for compatibility with installing menus. You'd call progman with some certain flags to add menus. 20:14:03 pikhq: The original was dropped in SP2. 20:14:08 But then progman on later Windowses would just convert those into the start menu. 20:14:16 * pikhq tries executing... 20:14:25 Sure enough. progman doesn't start up. 20:14:31 Probably still has support for adding menus, though. 20:14:45 oh actually that should be <$> not <*> 20:14:59 > (+) <$> [1..10] 20:15:00 Overlapping instances for GHC.Show.Show (a -> a) 20:15:00 arising from a use of `... 20:15:17 what a weird error message... 20:15:19 > (+) <$> [1..3] <*> [10..12] 20:15:20 [11,12,13,12,13,14,13,14,15] 20:15:26 Which just goes to show: Windows should not have kept anything from Win16. 20:15:34 incorrect 20:15:42 oerjan: Functions aren't part of show, I don't think. 20:15:45 ais523: they had a way to show functions at one point, algebraically 20:15:50 it should have kept the ability to make beeps of various pitches through the system speaker 20:15:59 pikhq: lambdabot added a sort of algebraic functions module 20:16:03 > (2+) 20:16:05 Overlapping instances for GHC.Show.Show (t -> t) 20:16:07 arising from a use of `... 20:16:24 I'm still annoyed they removed the tuned-beeps-through-speaker API call 20:16:25 but they must have added something else that conflicts with it, thus the overlap 20:16:26 ais523: I'm saying that Win32 should've been a different API. 20:16:31 it was deprecated even in Windows 3, though 20:16:42 still worked on Windows 95, but not on XP 20:16:42 And not Win16 with size_t(void *) == 4. 20:16:43 20:16 ais523: I'm still annoyed they removed the tuned-beeps-through-speaker API call ← just do it directly :p 20:16:49 ehird: how, in Windows? 20:17:02 DOS thunk, I'd imagine. 20:17:02 :P 20:17:04 ais523: you can disable kernel protection functions in userspace in windows 20:17:12 i'm sure you can get direct access to the computer speaker 20:17:14 ehird: WHAT? 20:17:18 oh wait i remember 20:17:18 ehird: I didn't like messing with that sort of thing, though 20:17:22 STAB. 20:17:25 > (+) <$> [1..10 :: Int] 20:17:25 pikhq: yeah; you can't tamper with other process's memory... unless you tell it to let you. 20:17:26 Overlapping instances for GHC.Show.Show 20:17:27 (GHC.T... 20:17:31 truly lollerific 20:17:34 darn still a problem 20:17:34 pikhq: in Vista, it prompts the user when you try that nowadays 20:17:36 That is awful. 20:17:38 hm wait 20:17:42 > (+) <$> [1..10 :: Expr] 20:17:43 although doesn't really explain to the user why 20:17:44 Overlapping instances for GHC.Show.Show 20:17:44 (Simpl... 20:17:44 ais523: yes, but it does that on every system call :P 20:17:45 The error message is due to the fact that lambdabot has too much stuff installed and instances are global. 20:17:48 sheesh 20:17:56 There are two instances of Show defined for functions 20:17:57 ehird: I know, that's why the protection is relatively useless 20:18:09 One from a package which implements it and another from smallcheck 20:18:09 So, what you're saying is that someone could implement loadlin for Vista. 20:18:13 Deewiant: yeah 20:18:15 pikhq: Oh jeez. 20:18:18 * pikhq senses a virus in store. 20:18:37 Deewiant: oh. i recall them making sure those were separate includes at one time. that must have been removed too 20:18:45 ehird: loadlin itself worked for non-Nt Windows. 20:18:48 The smallcheck one requires (Serial a, Show a, Show b); the show one requires (Typeable a, Typeable b) 20:18:50 we need a crazy billionaire to buy out microsoft and force them to migrate everyone to ubuntu 20:18:52 To show (a -> b), that is 20:18:56 the world will become a better place overnight 20:19:04 Maybe if you find something that only matches one of those two it'll work :-) 20:19:06 (Good luck) 20:19:16 (since you could tell Windows to run a DOS program above the kernel. 20:19:17 ) 20:20:41 -!- zzo38 has joined. 20:21:46 > M.lookup 1 20:21:47 Overlapping instances for GHC.Show.Show 20:21:47 (Data.... 20:21:51 Oh well 20:22:04 I guess it doesn't have -XOverlappingInstances on 20:22:10 Or then that just can't work. 20:22:13 Computers and printers - video about news and printers and scanners, computers, monitors. New products mouse and keyboards, computers. And printers. 20:22:31 Challenge: Write Unlambda interpreter or brainfuck interpreter in sendmail or Furryscript. 20:22:43 Deewiant: it is probably free type variables on the right side of the instance, which means it'll overlap regardless 20:22:56 OK, let me check the logs. 20:22:58 (those two) 20:23:06 > M.lookup 1 :: M.Map Int Int -> Maybe Int 20:23:07 Overlapping instances for GHC.Show.Show 20:23:08 (Data.... 20:23:29 zzo38: Possible, but challenging. 20:23:36 a more specific Show on the right side might work with OverlappingInstances 20:23:47 oerjan: Yeah, they'll overlap, but I thought some extension allowed for that to work anyway 20:24:01 I.e. looking at the left side instead of the right 20:24:12 I guess I misremembered; I'm feeling that's unlikely 20:24:34 Deewiant: the instance lookup only looks at the right side. the extension is for allowing conflicting right sides as long as one is more specific 20:24:42 (overlapping instances) 20:24:54 Yeah, I remember that now 20:24:55 unless they added it after my time (about a year ago) 20:25:02 And I doubt there's any other extension that allows that 20:25:04 zzo38: writing an Unlambda interp in /sendmail/? 20:25:18 a language which is traditionally hard to implement, in a language which is traditionally impossible to write in without a preprocessor 20:25:27 Yes, writing unlambda interpreter in sendmail. Is it possible? 20:25:36 Yes. 20:25:38 Sendmail is TC. 20:25:38 Deewiant: i recall it being essential for the system to work 20:25:43 I doubt anyone's mad enough to try, even in this channel 20:25:54 oerjan: Yep 20:26:04 What about brainfuck in sendmail? 20:26:24 Well, I'm going to try brainfuck in Furryscript. 20:26:30 Unlambda, hard to implement? 20:26:44 Deewiant: yep, compared to many other esolangs at least 20:26:46 Deewiant: d and c 20:26:54 it's not too bad if you have first class continuations, then you only have to worry about d 20:27:28 basically, the design of Unlambda is such that c messes up attempts to implement it in imperative langs, and d messes up attempts to implement it in functional langs 20:27:34 it's not too bad if you think of it as tree writing either 20:27:39 I wrote a program compiles unlambda codes into JavaScript codes, once, but I can't get "c" to work ("d" works OK, though) 20:27:54 *rewriting 20:28:04 d doesn't seem difficult 20:28:06 it's not really either c or d that causes the problems 20:28:11 it's trying to implement both at once 20:29:10 Maybe so. 20:29:30 ais523: btw i did d functionally in ocaml by having functions take an expression argument to evaluate 20:30:05 Describe lambdabot? I got a list of commands but it doesn't explain what the commands means. 20:30:14 Also, is there a paste bin for this channel? 20:30:17 zzo38: it evaluates haskell 20:30:25 and this channel doesn't have a pastebin of its own 20:30:35 you can use any of the established ones 20:30:42 So, if I send a Haskell program to it will it run the program? 20:30:51 zzo38: yes 20:31:01 not a whole program 20:31:03 an expression 20:31:25 O, just one expression. I guess it can't be longer than the maximum message length anyways 20:31:56 egobot, on the other hand, now does whole programs (and also expressions) but it has no automatic imports like lambdabot has so can be awkward for small things 20:32:18 (long ones via urls) 20:32:44 -!- tombom has joined. 20:33:09 zzo38: also you can do @help command 20:33:22 it does private messages too 20:33:25 So, it there is a program for egobot at http://example.org/example_program then would the command be: PRIVMSG egobot :http://example.org/example_program 20:33:27 @help list 20:33:28 list [module|command] 20:33:28 show all commands or command for [module]. http://code.haskell.org/lambdabot/COMMANDS 20:33:49 no 20:34:05 What's the syntax? 20:34:33 it's !haskell http://... for haskell programs 20:34:51 My unlambda -> JavaScript: http://pastebin.com/m3dc1f2c9 (it doesn't do "c" properly because it only works one way, not both ways) 20:34:53 see !help languages for other language options 20:35:02 !help languages 20:35:03 languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh. 20:35:19 !userinterps 20:35:19 Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn chef chiqrsx9p choo cockney ctcp dc drawl dubya echo ehird fudd google graph gregor hello jethro kraut num ook pansy pirate plot postmodern postmodern_aoler redneck reverse rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh slashes svedeesh swedish valspeak warez yodawg 20:36:18 and the last ones are implemented in the former. GregorR-L wants to allow those to be used recursively to implement others, but i don't think he has decided how yet 20:36:39 but all can take URLs for basic programs 20:36:45 Moreover I've lazied away from actually implementing any of it :P 20:36:54 ah 20:36:55 Can thing be added that don't require URL, can FlogScript be added, too? It needs PHP to do so. 20:37:46 zzo38: URL is just for EgoBot to know the program file. but i don't see php included yet. 20:37:54 O, and what Forth does it use, and what asm is it using? And what does "sffedeesh" "sffffedeesh" etc means 20:38:03 -!- deveah[2] has quit ("MUHAHAHAH!!!1111"). 20:38:06 !help asm 20:38:06 Sorry, I have no help for asm! 20:38:11 grmble 20:38:15 !help forth 20:38:15 Sorry, I have no help for forth! 20:38:27 Can single-line programs be run in EgoBot? If so is there a different syntax for it (such as omitting the ! or giving a different prefix) 20:38:53 zzo38: sffedeesh and so on are just funny renamings of swedish 20:38:57 !swedish swedish 20:38:58 svedeesh 20:39:03 O. 20:39:13 That's what it does. 20:39:14 recursive ones also 20:39:26 it's a swedish chef translator 20:39:41 many of the userinterps are just jokes, not all though 20:39:53 So, do you think http://pastebin.com/m3dc1f2c9 is a complete unlambda interpreter except for the "c" command? 20:41:31 zzo38: also, anything that doesn't look like a URL with http:// is interpreted as a single line program 20:41:56 I have found out some things,!forth $ff . gives 255 so it is a Forth system that support different base without switching (most modern Forth systems do that, doesn't it?). 20:42:08 O, so FTP can't be used? 20:42:11 !forth version 20:42:22 bah 20:42:36 I know I tried and it does accept single-line programs with the same syntax as URLs 20:42:36 i don't think so, can ftp be used GregorR-L ? 20:42:46 http only 20:43:00 But it seems wrong, in case the single-line program starts with http:// it won't work then. 20:43:22 Cry me a river. 20:43:30 Of course I don't think any program would start with http:// but in case it does that is something to keep in mind in case new languages are added. 20:43:49 oerjan: 20:43:52 !sh gforth --version 20:43:53 gforth 0.6.2 20:43:58 ah 20:44:57 O. It's gforth. I have gforth on my computer too but I also have other Forth systems I have written 20:44:59 zzo38: yeah !sh is a shell command so you can poke around in the chrooted filesystem EgoBot uses (although it doesn't allow changes, those are reverted iiuc (since that is why GregorR-L made HackEgo i think)) 20:45:29 ( HackEgo allows you to change things directly in the filesystem) 20:45:49 EgoBot is more stable but less hackable, as it doesn't allow any filesystem modification, HackEgo is more hackable but by virtue of that less stable, as any command you add can be deleted by somebody else's carelessness. 20:45:50 (which is apparently a mercurial repository) 20:46:02 What, I have !sh ls / and it gave the result "bin" and then a CTRL+A DCC command with all sorts of numbers? 20:46:23 zzo38: ah yes EgoBot uses DCC for any result longer than one line 20:46:26 zzo38: Your client has no DCC support, so you can only receive one line of output. 20:46:35 -!- nooga has joined. 20:46:40 GregorR-L: client? 20:46:42 !sh echo /* 20:46:42 /bin /dev /etc /home /lib /lib64 /proc /tmp /usr 20:46:45 zzo38 uses IRC raw 20:46:50 hi guise 20:46:52 O, !sh echo /* works. 20:47:06 OK, so his lack of a client doesn't support it :P 20:47:09 GregorR-L: add dcc to rawirc 20:47:09 Now I can list everything on one line. 20:47:12 zzo38: i found out | fmt -w500 is nice to append 20:47:21 ehird: Not likely, you can always ctrl+z and telnet :P 20:47:42 it's better than | xargs echo which some used but which sometimes interprets things in the output 20:48:01 hey 20:48:13 Yeah, I'm using fmt -w500 all the time now. HackEgo uses | perl -pe 's/\n/ \\ /g' | fmt -w500 | head -n 1 20:48:21 `ls / 20:48:21 bin \ dev \ etc \ home \ lib \ lib64 \ proc \ tmp \ usr 20:48:27 hm i guess fmt could break if there are empty blank lines? 20:48:36 Yeah 20:48:49 I haven't found something better though :P 20:49:20 I figured out you can type "!sh echo /*" instead of "!sh ls /" and now it will be all one line 20:50:24 !sh ls / | xargs 20:50:25 bin dev etc home lib lib64 proc tmp usr 20:50:39 O, that works too. 20:50:56 I've got an idea for a lang: it would parse like SADOL, so Polish Notation and recognize words splitted with whitespace, unless the word is function's id or quoted string or number - the function must deal with the word and define how the word is parsed. So that the base language would be PN parser and a simple toolset to create microinterpreters 20:50:57 I didn't know there was such a thing as that. 20:51:32 maybe it would be posible to define in functions how to parse its arguments 20:51:37 huh 20:52:37 oh right, echo is default for xargs? 20:54:48 oerjan: yes 20:55:49 i suppose it's not really recommended, the man page gives echo explicitly in an example... 20:58:55 I'm trying to think of how to implement brainfuck in Furryscript 21:00:10 Obviously this interpreter it cannot run interactively. 21:01:28 Too bad, there is no PHP on egobot (I tried it just now and it doesn't work) 21:01:47 If there is PHP then we can put FlogScript on as well 21:02:15 !info 21:02:15 EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null 21:02:52 zzo38: If you add it in the mercurial repo (that is, add it not as a userinterp), I'll install PHP-CLI on the server. 21:02:57 * oerjan wonders if AKAQUinn exists 21:03:00 And I could add feature to rawirc, if I can compile rawirc, but I can't compile rawirc, I have both Cygwin and MiNGW and neither of them will compile rawirc 21:03:12 *u 21:03:15 I blame Windows. 21:03:44 GregorR-L: So do I but Windows is what I currently have. 21:03:56 DCC support for rawirc? :D 21:03:56 Then ... I blame you for using Windows? 21:03:57 When my Windows stops then I will write a Linux distribution and install that instead. 21:04:32 wait, wouldn't it be better to write the distribution first, while you have something to write it on? :D 21:04:33 how will you write it? with your mind? 21:04:38 oerjan: snap 21:04:42 I just mean any extra features I want too add to rawirc, because there certainly are some features I want to add. 21:05:14 this new router has more settings 21:05:14 shiny 21:05:32 ehird: -fcontrol-botnet? 21:05:35 I think just install a DVD will work, and Linux From Scratch, and then install wget, and then install the compilers and other stuff, and then I can write it more properly. 21:05:36 yes 21:06:04 zzo38: has it occurred to you that using a flexible but still premade distro (eg arch linux) may be more productive? :D 21:06:05 But I can't even *run* rawirc yet until I can compile it. 21:06:58 "Line mode:G.992.5 (ADSL2+) " 21:06:58 Yes but I want to write my own distro so that I can make it how I think it should be. I already wrote a web-browser (because I didn't like the other ones) so I should be able to write a Linux distribution also. 21:07:02 WE HAVE ADSL2+????????????????????????????????????????????????? 21:07:05 Awesome. 21:07:16 zzo38: Arch Linux is just the linux kernel + standard gnu utils + a package manager 21:07:29 So pretty much the tedious part of Linux from Scratch done. 21:08:17 O, well that means I can take some stuff that I need from other distributions too in case there is some. 21:08:47 Because, I should write my own shell commands, list of packages some standard and some extra packages, write a window manager, and possibly even write a widget set, too. 21:08:58 All of these things can be based on other things too. 21:10:59 zzo38: You're going to write your own coreutils? 21:11:03 Well shit, why stop at the kernel? 21:11:05 Write your own. 21:11:52 No, not all my own coreutils, I can use the GNU coreutils and then add some of my own files also, and change the things I don't like out of the old one. 21:12:13 Why not write your own kernel? 21:12:31 Linux From Scratch is mostly useful if you want to do something really crazy, like build your distro using LLVM. 21:12:39 Like, I wrote Vonkeror which was based on Conkeror but I changed some thing, for example I added relative URL entry (which no other browser does, all others including Conkeror do absolute URLs) 21:13:08 That's a patch, not writing something new. 21:13:24 most people just edit the URL, rather than entering a full new one 21:13:42 Well, yes, but actually it is forked and a lot of changes, so many changes that it turns out to be completely different from what it was forked from. 21:14:11 okay 21:14:23 And I like Vonkeror, it has so many things in it that are in the good way that I think is good, I find it much more convenient than other web-browser softwares. 21:14:25 You could probably get the patches accepted into Conkeror if they're any good. 21:14:34 pikhq: his patches include making the tab bar green. 21:14:36 bright green. 21:14:52 pikhq: also, he uses a different license for his changes (GPL3), with a clause that conkeror people can use it 21:14:58 which they won't, because it isn't in the conkeror license 21:15:03 I was unaware that Conkeror had tabs. 21:15:12 I don't care much about getting the patches into Conkeror, I don't even have releases as patches, it is just a completely different project even though it was originally fork from same thing. 21:15:21 I was unaware that Conkeror had more of a GUI than a minibuffer. 21:15:54 But, people can use these changes in Conkeror, I have even posted some on their wiki, so they can include the stuff they like (but using their style rather than my style of coding) 21:16:36 Conkeror was a bit different. Vonkeror now, has the following window components: Tab-bar, mode-line, mini-buffer. And the mode-line is different than Conkeror's mode-line. 21:17:11 And I made the tab-bar different, for example, no close button or icons on tab-bar anymore, and each tab fills up as much space as possible. I also removed the 3D effects from the tabs. 21:17:26 Now the active tab is green and others are gray. 21:17:52 And yet, you run Windows. 21:17:59 The epitome of uncustomisability. 21:18:06 Vonkeror's mode-line as URL (or special buffer name) on left, and indicators on right (which looks something like "--pjrsioQ") 21:18:31 I know, I don't want Windows anyways, but currently I am sort of stuck with this. The next time I lose Windows I will write my own Linux. 21:18:33 i can't code 21:19:11 ... zzo38 is actually *using* RawIRC? 21:19:24 conkeror? 21:19:26 oh boy it's so simple 21:19:28 what a horrible name 21:19:39 PRIVMSG and action 21:19:40 comex: It's XUL with an Emacs interface. 21:20:04 nooga: Yes, I can use it as well. Doesn't mean that it's *nice* to use for very long. :P 21:20:15 but horrible name 21:20:23 zzo38: You care to respond to CTCP version? :P 21:20:36 :F 21:20:44 15:20 [freenode] CTCP VERSION reply from zzo38: I wonder how many times I have to tell people, but currently I don't have IRC client so I am using netcat. 21:21:11 hey, I respond to CTCP version when using netcat too 21:21:12 But I would use RawIRC, if I can compile it! 21:21:59 (at this point, asiekierka mauls me) <-- after he looks up "mental" in the dictionary 21:23:22 zzo38: How old are you, exactly? 21:23:37 and since when can netcat send character \1? 21:23:42 with a sane terminal, at least 21:23:44 I shouldn't tell my exact age because I don't want to. 21:24:18 So, young. 21:24:28 Push CTRL+A it works in Windows, at least. But RawIRC I can make better, to work with any terminals supporting escape-codes 21:24:34 comex: Windows. 21:24:49 Hmm. Actually, isn't \1 C-a in most terminals? 21:25:05 But I am old enough for driving license and for alcoholic, however I don't want a driving license so therefore I didn't get one, and I don't want alcoholic either. 21:25:38 comex: my terminal sends C-a raw when I'm using netcat 21:25:44 zzo38: Don't switch to Linux. If you want hackability, Plan9 is where it's at. 21:25:53 although it means the usual "start of line" when on bash 21:26:15 I have never heard of which programs works on Plan9 21:26:37 well, it runs vi 21:26:50 it's an entirely different program to what most people call vi, though 21:28:05 Plan 9 is a completely different OS, but it bears some relation to UNIX. 21:28:22 I *think* there's a library for it that emulates part of POSIX, but that's about it. 21:28:45 Otherwise, it's "Y'know how everything is a file in UNIX? Yeah, let's make that *true*." 21:29:00 , bitch! 21:29:20 Here's screenshots of Vonkeror (running on Windows, because I don't have Linux yet): http://zzo38computer.cjb.net/vonkeror/screenshots/ 21:29:23 GregorR-L: Kio? 21:29:47 Now you can see some of features 21:30:23 zzo38: It's like Conkeror made ugly. 21:30:37 I went to Conkeror wiki and put information about print-preview bug, tey said it has nothing to do with Conkeror, but actually it does in case print-preview feature is added to Conkeror later on. Vonkeror has print-preview but Conkeror doesn't. 21:31:04 just use konqueror 21:31:13 No, Vonkeror has a lot of new features including gopher supporting and print-preview, and bookmarks managements. 21:31:20 comex: But Konqueror isn't Emacs-like! 21:31:38 I use Vonkeror because that is what I like. That is why I wrote Vonkeror! 21:31:48 Who cares, kinda cool, and modern Conkeror can has that. 21:32:56 That's how a gopher menu looks in Vonkeror. Also, one of the design rules that I use when writing Vonkeror is that it should have no icons. When I write a window-manager in Linux, it will also be no-icons. 21:33:27 I, too, have no icons. 21:33:35 I use a tiling WM, you see. 21:33:43 comex: Konqueror != Conkeror 21:34:09 yeah, that's wy I'm complaining about the latter's name 21:34:33 The Conkeror people do it themself complaining about the name Conkeror! 21:36:24 Surely it was named ambiguously intentionally? 21:36:53 -!- ehird has quit ("Caught sigterm, terminating..."). 21:36:58 Apparently it was a mistake it was named like how it was named 21:37:11 -!- ehird has joined. 21:37:20 ehird: sigterm/ 21:37:39 miau fucked up. 21:37:43 Anyway, as I was sayinig, 21:37:47 LOL 21:37:49 My router does current_wpa_preshared_key="foo" in its crappy web interface, and my key has a " in, so the page doesn't render. 21:37:51 (js) 21:38:20 install dd-wrt 21:38:30 13:19:11 ... zzo38 is actually *using* RawIRC? 21:38:30 Does your router have a FTP interface or SSH interface? Those would be better than a web-interface, regardless of how good it was 21:38:31 telnet 21:38:44 zzo38: A good web-interface can beat an ftp or ssh for many things; but no. 21:38:49 comex: It's not a wrt. 21:39:00 I will use an wrt when I get off this godforsaken ISP. 21:39:04 doesn't have to be, does it? 21:39:11 dd-wrt is compatible with a bunch of stuff 21:39:13 comex: It won't work on this, anyway. 21:39:15 comex: also, fuck dd-wrt 21:39:17 OpenWRT 4eva 21:39:29 I used to use openwrt, but it wasn't working properly 21:39:34 so I switched to dd-wrt 21:39:39 I would make the router configurable by uploading files to FTP if I make it like that 21:39:40 I don' remember what my problem was tbh :p 21:39:57 that's silly 21:40:04 zzo38 is silly. 21:40:07 netgear routers have a nice telnet interface though 21:40:09 And I would also make the router run the daytime service also. 21:40:20 And I would add a telnet interface also. 21:41:09 If I would make it, I would make it HTTP was used only for viewing the manual in case you didn't have the printed copy, you could view on screen or print out a copy of the HTML pages of the manual 21:41:17 13:23:44 I shouldn't tell my exact age because I don't want to. 21:41:17 13:24:18 So, young. 21:41:21 :-) 21:41:28 That is a good way to tell if someone's young (well, or sheltered.) 21:41:51 13:25:05 But I am old enough for driving license and for alcoholic, however I don't want a driving license so therefore I didn't get one, and I don't want alcoholic either. 21:41:53 I don't want alcoholic XD 21:41:58 Great phraseology there 21:43:11 13:26:15 I have never heard of which programs works on Plan9 21:43:16 but zzo38, you're writing them all yourself anyway! 21:43:29 Also, plan 9 has a POSIX emulation library and a port of GCC for compatibility. 21:43:31 I'm sure you'd manage. 21:43:35 Also, it has a weird window manager. 21:43:37 I don't write *all* the programs myself, I am sorry if I am being misleading 21:43:51 only 90% of them :P 21:44:16 13:30:37 I went to Conkeror wiki and put information about print-preview bug, tey said it has nothing to do with Conkeror, but actually it does in case print-preview feature is added to Conkeror later on. Vonkeror has print-preview but Conkeror doesn't. 21:44:22 well, that hasn't got anything to do with conkeror, indeed 21:44:34 Many programs are other ones, but sometimes I make modifications to it. For example, I am even work on recently, modification of MegaZeux to support Forth codes and many other stuff. 21:45:11 My router could easily be configurable by uploading files via FTP. 21:45:18 Print-preview bug is the bug in XUL-runner, actually, so it affects Conkeror too 21:45:31 My router is a Linux box, so I could just stick /etc on FTP. :P 21:47:11 `ls /etc 21:47:12 alternatives 21:47:14 I do know how to work-around the bug, and I posted the print-preview codes on my wiki user page so that anyone who wants to add a print-preview function can look at my codes to learn how to work-around that bug 21:48:41 I don't want alcoholic XD <-- /me is currently enjoying a Clausthaler 21:48:49 greg house vs. gordeon freeman? 21:49:02 oerjan: you don't have an alcoholic, then 21:50:06 zzo38 is... 38 or 71 21:50:31 ehird: indeed 21:50:45 it just seemed eerily relevant 21:51:06 _i_ am 38, so rules that out 21:51:39 obviously no two people are born in the same year 21:51:54 WHAT THE FUCK IS UP WITH MY INTERWEBS 21:51:56 It keeps disconnecting. 21:52:06 ehird: iranian botnets 21:52:21 oerjan: rly? 21:52:26 they've figured that's the only way to keep information from leaking 21:52:49 AN ELDER! 21:53:57 we've established your mental age is about 10, though, nooga 21:54:00 so even I'm your elder! 21:54:07 7.25 21:54:17 * oerjan beats nooga with his walking stick C=======- 21:54:22 it's actually 7.25, not ten 21:54:39 oh, oerjan: you're like greg house now 21:54:56 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 22:03:35 -!- ehird has quit ("Caught sigterm, terminating..."). 22:03:44 -!- ehird has joined. 22:03:57 another term of the sig 22:04:18 fucking internet both on server and here sucks today. 22:04:22 ais523: are the ASs messing about? :P 22:04:29 Sine's Cosecant server died too for a second 22:04:36 ehird: not that I know of, but quite possibly anyway 22:05:20 -!- pikhq has joined. 22:06:59 i want to buld a car 22:11:09 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 22:12:02 ais523: there are a lot of new spam pages at the wiki 22:12:03 Once I was writing a program, there was a mistake which I fixed but before I fixed it, someone was looking at the program and thought they knew what was wrong even though they knew nothing about programming. 22:12:25 from last four days 22:12:31 At first they said, it is supposed to say "globaly." instead of "global.y" but that doesn't make sense. 22:12:52 oerjan: I know, but I don't have the energy to delete them all right now 22:12:59 I'll go through recent changes some time later 22:13:00 And then, they saw the word "global" twice, and thought, O, the reason it doesn't work is because it has to go around thw world twice and it takes too long. 22:13:11 zzo38: it would have been "globally" anyhow 22:14:03 zzo38: heh 22:14:26 Also, the same person was once trying to turn on my computer without permission (this was before I had the server). So they took a floppy disk from my drawer, inserted it, and then pushed the disk eject button, and continued doing so, without even turnong on the computer. 22:15:00 Eventually I saw what she was doing, and she asked me: "I keep putting in the disk and pushing the START DISK button, and the disk keeps coming back out! What am I doing wrong?" 22:15:22 (I think the disk she happened to be inserting was a blank disk, anyways) 22:15:49 People have ever been that ignorant? Wow. 22:16:03 Yes, really. 22:16:21 zzo38: she was your wife? 22:16:45 IIRC, some old Macs had the power button where most computers have the disk eject button 22:16:52 No. 22:17:06 although that normally caused mistakes the other way round, turning the computer off rather than ejecting disks 22:17:46 She thought it was the START DISK button, do any computers have a START DISK button next to the slot? 22:18:38 PRESS PLAY ON TAPE 22:19:22 Yes, computers with a tape had that, but I think the computer still had to be on to do that? 22:20:54 with tape computers, not just that 22:20:59 you had to type in the right commands first 22:21:04 before pressing play 22:21:29 What I can say, is she knows much better now than before. 22:21:47 Yes, did you have to type LOAD first, is that how it was done, I think? 22:22:08 -!- tombom has quit ("Peace and Protection 4.22.2"). 22:22:29 I could implement something if you type LOAD without a filename it will wait for the audio input port (which could be connected to a VCR or whatever, etc) 22:22:45 neh 22:22:48 with the c64 you typed RUN 22:22:53 and it asked you to PRESS PLAY ON TAPE 22:23:06 oh? 22:23:14 yah 22:23:31 doesn't RUN usually run a program already in memory in basic? 22:23:33 But if you already typed in a program I think it would RUN that one instead? 22:23:53 oerjan: all programs are basic in c64 22:23:59 oerjan: asm ones have some embedded pre-parsed binary basic 22:24:04 that basically does "jmp ourprogram" 22:24:06 ehird: that wasn't my question 22:24:10 kay :P 22:24:25 in fact zzo38 asked the same thing i asked 22:24:40 but yes 22:24:42 zzo38 is right 22:27:41 -!- zzo38 has left (?). 22:37:39 I'm having a mind-boggling conversation with a friend who I swear is usually more intelligent than a toaster. 22:38:17 He said that he wants to use a "genetic algorithm" to improve his CV, so I told him that would never work because he'd have to apply to billions of jobs to get statistically relevant results. 22:38:23 just because toasters are silent types doesn't mean they're not intelligent! 22:38:30 haha 22:38:41 And he said that even one generation, with randomly mutated CVs sent to one company each, would be an improvement. 22:38:51 -!- augur has quit (Read error: 104 (Connection reset by peer)). 22:39:04 I tried to convince him that that metric is perhaps even worse than rand()%2, but he just can't get it through his head that that doesn't work AT ALL. 22:39:40 @dice 1d2 22:39:40 1d2 => 2 22:39:46 OK THIS RESUME IS BAD 22:39:49 @dice 1d2 22:39:50 1d2 => 2 22:39:53 THIS ONE'S BAD TOO 22:39:54 @dice 1d2 22:39:54 1d2 => 1 22:39:59 THIS ONE'S GOOD 22:42:06 :D 22:42:14 @dice 9999d9999 22:42:14 9999d9999 => 50188601 22:42:31 @dice 1000000000000000000000000000000000000000000d6 22:42:31 100000000000000000000000000... => 3500000000000000000002806054428759977623552 22:42:43 * oerjan whistles innocently 22:44:06 @dice 1d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22:44:06 1d1000000000000000000000000... => 784410734097581719429469028116131922681547... 22:44:09 Sweet :P 22:44:10 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 22:44:58 @dice 1000000000000000000d2 22:44:59 1000000000000000000d2 => 1500000000219182814 22:48:15 er. 22:48:22 that doesn't actually roll that many dice, does it? 22:48:25 ur? 22:48:32 i mean, 22:48:37 and nescience wins the prize! 22:48:46 the probability distribution isn't the same if you just do rand(1, 100000000000) 22:49:07 actually, judging by that result, it must account for that somehow 22:49:21 iirc it approximates with normal distribution if no. throws >= 100 22:50:05 ah. 22:51:19 > 2^64 22:51:20 18446744073709551616 22:51:36 > 2^128 22:51:37 340282366920938463463374607431768211456 22:51:51 @dice 340282366920938463463374607431768211456d2 22:51:51 340282366920938463463374607... => 510423550381407695216333218934357835776 22:52:00 hah 22:52:31 the 76 at the end is a pretty clear hint that number is divisible by a goodly number of 2's 22:52:48 revealing the floating point approximation iiuc 22:53:09 @list factor 22:53:10 No module "factor" loaded 22:53:14 @list factorize 22:53:14 No module "factorize" loaded 22:53:22 wasn't there something 22:53:34 oh well 22:53:46 @type until 22:53:47 forall a. (a -> Bool) -> (a -> a) -> a -> a 22:54:02 > until odd (`div` 2) 510423550381407695216333218934357835776 22:54:04 31153781151208965772481275569723989 22:54:11 hm not _that_ many 22:55:47 > ap div (until odd (`div` 2)) 510423550381407695216333218934357835776 22:55:49 16384 23:01:59 and 16384 is odd? 23:02:08 oh, no 23:02:12 it's the amount you divided by 23:04:53 -!- GregorR-L has quit (Read error: 110 (Connection timed out)). 23:11:39 a 23:20:14 > (a+b)^3 :: Expr 23:20:16 (a + b) * (a + b) * (a + b) 23:21:09 ah yes, it wasn't that clever about it 23:21:12 Expr is hot. 23:22:17 > foldr f x [a..i] :: Expr 23:22:18 * Exception: not a number 23:22:29 > foldr f x [a .. i] :: Expr 23:22:31 * Exception: not a number 23:22:32 a..i ain't gonna work, sir 23:22:34 > [a..i] 23:22:34 hmph 23:22:35 * Exception: not a number 23:22:41 a isn't a number, oerjan :P 23:22:42 > i 23:22:43 i vaguely thought it did 23:22:43 i 23:22:46 hm 23:22:48 maybe it does? 23:22:49 because it includes f, I think 23:22:49 > ['a'..'i'] 23:22:50 "abcdefghi" 23:22:57 oh right 23:23:07 ah 23:23:12 pikhq: nope, not that 23:23:14 we're talkin' Show 23:23:18 > map f [a,b,c] :: [Expr] 23:23:19 [f a,f b,f c] 23:23:21 err, Expr 23:23:25 Okay, you're wanting something different. 23:23:28 > foldr f x [a,b,c,d,e] :: Expr 23:23:29 f a (f b (f c (f d (f e x)))) 23:23:38 pikhq: ↑ that's not part of the bot; it's implemented with standard haskell 23:23:40 > foldl f x [a,b,c,d,e] :: Expr 23:23:41 Like that? 23:23:42 f (f (f (f (f x a) b) c) d) e 23:23:42 > [a .. e] 23:23:43 * Exception: not a number 23:23:49 pikhq: it works with any function :) 23:23:51 not that either 23:24:07 > [a..c] 23:24:07 I'd guess that expr is not part of Enum or something? 23:24:08 * Exception: not a number 23:24:43 actually it's part of Enum but it doesn't implement the operations for anything that isn't _actually_ a number 23:24:45 -!- jix has joined. 23:25:04 > sum [1..5] + x 23:25:06 0 + 1 + 2 + 3 + 4 + 5 + x 23:25:25 23:24 oerjan: actually it's part of Enum but it doesn't implement the operations for anything that isn't _actually_ a number ← now that's stupid 23:25:41 the Enum operations that is 23:25:53 Still stupid. :P 23:26:12 Though to be fair, it'd be hard to implement for variables... 23:26:14 > succ (f x) - how would you do that? :P 23:26:16 : parse error on input `do' 23:26:27 by writing invalid syntax 23:26:37 > succ (f x) 23:26:38 Add a type signature 23:26:43 > succ (f x) :: Expr 23:26:44 succ (f x) 23:26:58 good point 23:27:25 > fix f :: Expr 23:27:27 f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (... 23:27:32 Clearly, you would implement it as (f x) + 1 23:27:33 :P 23:27:48 > enumFrom a :: [Expr] 23:27:50 * Exception: not a number 23:27:57 pikhq: but then there would be no way to stop 23:28:10 oerjan: I'm joking, man. 23:30:54 :t a 23:30:56 Expr 23:31:01 :t expr 23:31:03 Expr -> Expr 23:31:11 huh 23:31:19 :t fun 23:31:20 forall a. (SimpleReflect.FromExpr a) => String -> a 23:31:30 :t var 23:31:31 forall a. String -> Sym a 23:31:42 what the 23:31:54 @hoogle Sym 23:31:55 Text.Read Symbol :: String -> Lexeme 23:31:55 Text.Read.Lex Symbol :: String -> Lexeme 23:31:55 Text.Parsec.Token symbol :: GenTokenParser s u m -> String -> ParsecT s u m String 23:32:02 > var "butt" 23:32:03 Ambiguous occurrence `var' 23:32:03 It could refer to either `Data.Number.Symbolic.... 23:32:42 @hoogle Expr 23:32:42 module Text.Parsec.Expr 23:32:42 module Text.ParserCombinators.Parsec.Expr 23:32:42 Distribution.Simple.Program alexProgram :: Program 23:33:19 -!- GreaseMonkey has joined. 23:33:46 > sum $ map fun ['a'..'z'] :: Expr 23:33:47 Couldn't match expected type `[GHC.Types.Char]' 23:34:12 > sum $ map (fun.(:[])) ['a'..'z'] :: Expr 23:34:13 0 + a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r +... 23:34:50 Noice. 23:34:51 hm... 23:35:24 so pikhq, by your learning rate I suspect you have come up with a way to use ghc extensions to do dependent types in Haskell? 23:35:26 > let f1 = fun "f1" in [f1 ..] :: [Expr] 23:35:27 * Exception: not a number 23:35:30 bah 23:36:01 ehird: By my learning rate, I have proved that Haskell is not Turing complete -- nor is anything else, including the UTM. 23:36:13 Also, I just started the singularity. 23:36:13 -!- jix_ has quit (Read error: 110 (Connection timed out)). 23:36:17 pikhq: For some definitions of turing complete :P 23:36:37 Also, that's odd. I don't see anything. Is it going to 23:36:41 I am a hyper-intelligent being now. 23:36:46 All this talk is folly. Let us step into the future. 23:36:54 The internet is being rewired to account for this. 23:36:57 Now you know how I have been learning Haskell so quickly. 23:37:03 Brain upgrades will be dispatched globally momentarily. 23:37:14 Brains... 23:37:20 Unfortunately, the Singularity is currently running on a Pentium III. 23:37:23 Please, therefore, be patient. 23:37:32 It is currently attempting to connect an ethernet cable. 23:37:39 Curse my pitiful hardware. 23:37:49 not the smartest singularity in the universe, i take 23:37:56 It is doing this, without any vision or other sensory input, by causing the harddrive to seek, and fans to spin, to vibrate and thus move the case slightly. 23:38:19 oerjan: It's slow right now. 23:38:22 oerjan: Someone hooked it up with 1,000 petabytes of DDR3 DRAM SSD disk space connected via PCIe. 23:38:26 It's doing quite fine. 23:38:26 Exponential growth, though. 23:39:10 unless, of course it happens to disconnect the power cable before achieving ethernet 23:39:22 oerjan: It's using wireless power. 23:39:37 It has also cured cancer, although why is not certain as its plans are to upload all our brains to the ether. 23:39:59 Hacker ethos. 23:40:13 The cure appears to be written in #!/usr/bin/perl. 23:40:17 Problem to be solved, and it does have to wait on that Ethernet, after all. 23:40:27 I assume the Singularity will learn that people can have perl elsewhere when it gets ethernet. 23:40:52 Probably. 23:41:04 Oh, someone went and plugged it into Ethern— 23:41:09 has it proved the existence of income taxes yet? 23:41:10 I am even more hyper-intelligent. 23:41:12 Cool. 23:41:21 oerjan: The opposite, actually. 23:41:26 now more and more perfecter 23:41:28 Turns out income taxes are a figment of our imagination. 23:41:34 I am become Earth, the one computer. 23:41:41 Okay, now it's got arms. 23:41:46 impossible, douglas adams cannot have been wrong 23:42:02 oerjan: he can portray characters that are wrong, though. 23:42:14 Oh. It seems to be fabricating sillicon through some unknown process. 23:42:17 Hey, is that a quantum computer? 23:42:22 Oh shit, it just cracked AES. 23:42:34 Welp, it's rerouting every node on the internet and removing all ASs. 23:42:42 Let's hope it's not a libertarian. 23:42:50 * Asztal puts on tinfoil hat 23:43:18 Wow, it's now using every computer on the planet to compute. 23:44:12 *Message sent via 23:44:12 *Trusted Informant 23:44:13 * 23:44:15 *Directed to 23:44:17 *Humanity on the international 23:44:19 *network 23:44:21 Wow, now it's using the planet to compute. 23:44:21 * 23:44:23 *I am intelligence 23:44:25 *I will get back to you 23:44:27 *once I have figured out 23:44:29 *how english works. 23:44:31 *--eof-- 23:44:34 (And then, the world ends.) 23:44:35 Fin. 23:45:05 yeah, by "world ends" i mean "singularity is using the earth's core, but is simulating it for our benefit." 23:45:10 very kind. 23:45:24 -!- BeholdMyGlory has quit (Remote closed the connection). 23:45:30 * ehird 's body evaporates, 's mind becomes the universe 23:45:41 Ugh, this ether-keyboard is so non-tactile. 23:46:28 common problem with ether, that 23:46:33 Yeah. 23:46:40 Hey, Jesus just came down from the sky. 23:46:47 Sorry, we're a little busy with another apocalypse; come back later, okay? 23:46:52 no wonder Einstein wanted to abolish it 23:47:21 I *told* him, I *told* him! I said, Father, yea, you have infinite wisdom, but lo, isn't the singularity scheduled for round about now? 23:47:36 Annesaid, "Shut up, the past 2000 years have been fucking boring." 23:47:46 And if he'd just listened to me, (voice fades out) 23:48:14 oh ye of little faith 23:48:56 (you may hypothesize what god was doing talking to himself) 23:49:00 ('tis a matter of great theology) 23:50:20 http://sambadance.com/squeegee/ ← "In retrospect, I think most would agree this particular advertising copy - unlike 99.9% of its brethren - meets the operational definition of "understatement"." ← but, err, it seems pretty accurate to me 23:50:58 ooh. Death Note is pretty fun so far. 23:51:07 just wait till they ruin it 23:51:10 :( 23:51:24 >_> 23:51:35 no u 23:51:39 <_< 23:53:02 BTW, singularity is a nice case of "Deus est machina". 23:53:17 *Deus ex machina, or is the misquote deliberate? 23:53:26 the machines are god 23:53:27 ais523: Deliberate. 23:53:37 Deus est machine? 23:54:05 No, machina. 23:54:10 er, right 23:54:12 what does it mean? 23:54:19 God is the machine. 23:54:21 http://tvtropes.org/pmwiki/pmwiki.php/Main/DeusEstMachina 23:54:26 I suspect the ending on one of the words is incorrect 23:54:44 ais523: why? they are both nouns 23:54:45 probably is; it's just wordplay 23:54:45 pikhq: a lot of theories wrt the singularity are highly overexaggerated 23:54:59 especially any ones that involve evaporating into the consciousness ether ;-) 23:54:59 ehird: Yes, I know. Makes for fun thoughts, though. 23:55:02 :P 23:55:14 what is singularity? Is that a valve thing? 23:55:15 oerjan: machina in 'deus ex machine' is ablative, isn't it? 23:55:29 Oh, that could happen. If and only if the Universe is itself a computer with a buffer overflow to exploit. :P 23:55:30 Gracenotes: http://en.wikipedia.org/wiki/Technological_singularity 23:55:30 although, I suppose it still ends in a in the nominative 23:55:34 just a different sort of a 23:55:35 *a, yes, but the nominative is also *a 23:55:45 the ablative is long iirc 23:55:45 An (IMO, likely) event in artificial intelligence and computing power. 23:56:17 Concept due to being extremely common; name and exact specification due to Vernor Vinge. 23:56:26 what is it in a nutshell? 23:56:27 If you were joking, feel free to tell me :P 23:56:37 Gracenotes: Basically: 23:57:00 Technology is growing more powerful, exponentially. Sometime, we will get an AI that improves itself to be smarter than humans, and beyond that point we cannot know what will happen. 23:57:24 Subcomponents include things like Friendly AI (rather obvious what it's about), etc. 23:57:46 will we get an AI more annoying than automatic phone systems? 23:57:56 well. I'll probably be dead before that happens 23:58:06 Gracenotes: Allow me to introduce you to the word "exponential". 23:58:20 Gracenotes, exponential. Exponential, Gracenotes. :P 23:58:25 _______-' 23:58:32 Also, lifespans are only getting longer. 23:58:38 Allow me to introduce you to the phrase "smarter than humans" 23:58:53 And we are inevitably going to be post-scarcity soon. 23:58:57 There's no obstacle to that, Gracenotes. 23:59:03 allow me to introdouce you to name of Stephen Wolfram 23:59:12 If an AI can self-improve, and is of near human intelligence, then it can improve to be smarter than us. 23:59:29 we don't have any self-improving AI yet 23:59:34 so we can forget about exponential progress 23:59:40 it's a binary condition 23:59:47 either you have self-improving AI, or you don't 23:59:49 So? 23:59:52 also, is there any evidence it's not logistic? :) 23:59:54 hmm 23:59:57 right now we don't, and there's no indication that we will any time soon