00:02:10 Methinks that doing that on zsh would be slightly saner. If still completely nuts. 00:02:39 @src head 00:02:40 head (x:_) = x 00:02:40 head [] = undefined 00:02:53 @src undefined 00:02:54 undefined = error "Prelude.undefined" 00:03:07 > undefined 00:03:09 *Exception: Prelude.undefined 00:03:18 > head [] 00:03:19 *Exception: Prelude.head: empty list 00:03:28 wat 00:03:47 Lymee: that head source is not canonical, implementations are allowed to use more specific error messages 00:04:35 I know. 00:04:42 it's just unexpected when the source says one thing and the result is another. 00:05:12 i think @src is a bit of a mishmash of haskell report and ghc source 00:05:28 Yeah, it seems to do source from the Report except when it's really misleading. 00:05:59 And a different _|_ value is not very misleading. :) 00:07:02 > fix error 00:07:03 "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E... 00:11:34 @src == 00:11:34 x == y = not (x /= y) 00:11:40 @src /= 00:11:41 x /= y = not (x == y) 00:11:54 Must be messy when neither is implemented.. 00:12:09 :t error 00:12:10 forall a. [Char] -> a 00:12:23 oerjan, how does that work? 00:13:41 Lymee: error is a bottom value. Which, incidentally, is the only kind of value which is of every type. 00:13:44 Simple. :) 00:13:55 > fix error 00:13:57 "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E... 00:14:07 It's clearly returning a [Char] 00:14:14 no 00:14:15 One that makes /sense/ at that. 00:14:17 :t fix error 00:14:18 [Char] 00:14:21 oh 00:14:29 oh right yeah 00:14:30 :t fix 00:14:32 forall a. (a -> a) -> a 00:14:33 > error error "wat" 00:14:34 Couldn't match expected type `[GHC.Types.Char]' 00:14:35 against inferred ty... 00:14:35 im dumb 00:14:37 Lymee: It's not actually making sense. 00:14:46 > error $ error "wat" 00:14:47 *Exception: *Exception: wat 00:14:57 @src error 00:14:57 Lymee: The show routine is printing out the initial " for the string. 00:14:57 error s = throw (ErrorCall s) 00:15:20 Lymee: And then the RTS starts outputting that it got an exception, so it prints *Exception: . 00:15:30 Lymee: And then, it tries to output the error message for that. 00:15:36 Lymee: And then the RTS starts outputting that it got an exception, so it prints *Exception: . 00:15:42 Lymee: And so on. 00:15:58 Makes sense. 00:16:31 And so you get an infinite number of error messages. 00:17:23 > [1,2,3,4,(error "5")] 00:17:24 [1,2,3,4,*Exception: 5 00:17:30 > take 4 $ [1,2,3,4,(error "5")] 00:17:31 [1,2,3,4] 00:17:33 > take 5 $ [1,2,3,4,(error "5")] 00:17:34 [1,2,3,4,*Exception: 5 00:17:34 > error undefined 00:17:35 *Exception: *Exception: Prelude.undefined 00:17:46 > take 0 $ reverse $ [1,2,3,4,(error "5")] 00:17:47 [] 00:19:37 @src throw 00:19:38 throw exception = raise# exception 00:19:42 @src raise# 00:19:43 Source not found. Are you on drugs? 00:19:47 ;-; 00:19:56 :t raise# 00:19:58 Not in scope: `raise#' 00:20:01 :t \x -> raise# x 00:20:02 Not in scope: `raise#' 00:20:14 Is raise# an internal function? 00:20:23 That's what # is used to indicate, yes. 00:29:09 > let blah# = 1 in blah# + blah# 00:29:10 2 00:30:16 -!- FireFly has quit (Quit: swatted to death). 00:34:18 -!- augur has joined. 00:37:06 Yeah, it's just a convention. 00:40:44 > let # = 1 in # + # 00:40:46 : parse error on input `#' 00:40:54 > let _ = 1 in _ + _ 00:40:56 Pattern syntax in expression context: _Pattern syntax in expression context... 00:41:05 Aww. 00:41:17 > let # = 1 in (#) + (#) 00:41:19 : parse error on input `#' 00:41:22 Balls. 00:46:32 > let (#) = 1 in (#) + (#) 00:46:33 : parse error on input `)' 00:47:06 it would appear that lambdabot has MacicHash set, anyway 00:47:15 *MagicHash 00:50:00 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:51:55 > let _# = 1 in _# + _# 00:51:56 2 00:52:03 > let #_ = 1 in #_ + #_ 00:52:04 : parse error on input `#' 00:52:06 wah 00:54:12 -!- BeholdMyGlory has joined. 00:54:34 with MagicHash # is treated essentially as an alphanumerical character, but not one that can be at the beginning of an identifier (i.e. more like a number than like a letter) 00:55:03 > let _#_#_ = 1 in _#_#_ 00:55:04 Pattern syntax in expression context: _ 00:55:14 well so much for that theory 00:55:17 hm... 00:55:34 > let _# = 1 in _# 00:55:36 1 00:55:41 > let _ # = 1 in _ # 00:55:42 : parse error on input `=' 00:55:48 > let _# = 1 in _ # 00:55:50 : parse error (possibly incorrect indentation) 00:55:56 hm weird 00:56:05 > let _#_ = 1 in _#_ 00:56:06 Pattern syntax in expression context: _ 00:56:15 > let _#a = 1 in _#a 00:56:16 1 00:56:54 > let _* = 1 in _* 00:56:55 : parse error on input `=' 00:57:32 > let _#a = a+b in _#a 00:57:33 a + b 00:57:41 um 00:58:04 > let _#a = a+b in _#b 00:58:06 b + b 00:58:13 aaaaaaah 00:58:38 > let _# a = a+b in _#b 00:58:40 b + b 00:59:00 ok so somehow the # _always_ ends the identifier 00:59:31 > let a#b = a+b in c#d 00:59:32 Not in scope: `c#' 01:00:03 > let **/** = blah in **/** 01:00:04 : parse error on input `**/**' 01:00:07 What 01:00:14 > let * = 1 in * 01:00:15 : parse error on input `*' 01:00:17 * Lymee boggles 01:00:27 > * 01:00:29 : parse error on input `*' 01:00:34 http://www.weather.com/maps/maptype/currentweatherusnational/uscurrentheatindex_large.html The US midwest: because OH GOD MY FLESH IS BOILING 01:00:39 no, # really is special, it is not an operator character in this use 01:00:52 > let a # b = a+b in 2 # 2 01:00:52 > let **/** = \x y -> x * y in 1 **/** 2 01:00:53 4 01:00:54 : parse error on input `**/**' 01:00:59 > let (**/**) = \x y -> x * y in 1 **/** 2 01:01:00 2 01:01:01 although it seems to be there 01:01:53 > let x **/** y = x * y in 1 **/** 2 01:01:55 2 01:02:09 (for non-Americans; those are °F; 30°C = 86°F) 01:02:46 86 F is not bad. 01:02:51 100+ is. 01:02:57 such is texas 01:03:02 > let (#) = \x y -> x * y in 1 # 2 01:03:03 Yes. And the US midwest. 01:03:04 : parse error on input `)' 01:03:08 # is weird. 01:03:23 pikhq, I wonder what Flordia is like. 01:04:12 pikhq: http://s3.amazonaws.com/files.posterous.com/haggis/GAhuydjnactzJByDuEBnhFbDleICnFGGiFwbyctAFhibnccygAlcFybAECye/media_httptdwgeeksfil_EyJDb.jpg.scaled500.jpg?AWSAccessKeyId=AKIAJFZAE65UYRT34AOQ&Expires=1311124134&Signature=tHe1WUqs4692fTb%2BKjKr84%2FuYbk%3D 01:04:23 goddamn that was a long URL 01:04:34 :D, though. 01:06:19 Lymee: # is only weird if the MagicHash flag is set, otherwise i believe it's an ordinary operator char 01:07:34 What does it do? 01:07:52 and normally the MagicHash flag is only set if you want to import and use ghc internal/primitive functions 01:08:06 (those containing # in their name) 01:08:43 well, or if you want to define them, but that's for the ghc implementers 01:09:18 * Phantom_Hoover → sleep 01:09:26 > let throw# = \x -> x in error 'this wont work i dont think" 01:09:27 : 01:09:27 lexical error in string/character literal at chara... 01:09:29 although many of them probably aren't defined in haskell at all 01:09:34 > let throw# = \x -> x in error "this wont work i dont think" 01:09:36 *Exception: this wont work i dont think 01:09:36 86 F is not bad. 01:09:41 !sanetemp 86 01:09:44 30.0 01:09:48 O.o 01:09:52 sanetemp? 01:09:53 =p 01:09:55 Nice function. 01:10:02 !insanetemp 30 01:10:05 you fail. 01:10:10 !show sanetemp 01:10:10 sh dc -e "1k?32-5*9/p" 01:10:15 Lymee: well duh haskell is lexically scoped (except for ?x implicit parameters) 01:10:30 oerjan, I'm aware. 01:10:30 =p 01:10:56 !sanetemp 105 01:10:56 40.5 01:10:59 That was a few days ago. 01:11:00 Yeah. 01:11:07 aaaaaaaaa 01:11:58 !addinterp insanetemp sh dc -e "1k?9*5/32+p" 01:11:58 ​Interpreter insanetemp installed. 01:12:08 !insanetemp 30 01:12:09 86.0 01:12:12 !userinterps 01:12:12 ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo eehird ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish ustemp valspeak warez w 01:12:26 bah always running out of space in that list 01:12:30 !pikhq hello, world 01:12:31 hello, world 01:12:37 !show pikhq 01:12:37 sh sed 's/th/þ/g ; s/Th/Þ/g ; s/s/ſ/g ; s/ae/æ/g ; s/Ae/Æ/g ; s/oe/œ/g ; s/Oe/Œ/g' 01:12:41 Ah. 01:13:15 !pikhq The rain in Span falls mainly on the encyclopaedias of foetuses. 01:13:15 ​Þe rain in Span fallſ mainly on þe encyclopædiaſ of fœtuſeſ. 01:13:44 Gregor: EgoBot needs a better listing method for !userinterps 01:13:55 !pi 01:13:56 3.14156 01:14:16 I should probably do something about that last digit. 01:14:19 !show show 01:14:19 That is not a user interpreter! 01:14:23 * Lymee runs 01:14:26 !show warez 01:14:27 sh warez 01:14:32 !warez 01:14:39 !warez hello world 01:14:39 h3lLo worl|) 01:14:41 !sh cat warez 01:14:42 ​/bin/cat: warez: No such file or directory 01:14:47 !sh where warez 01:14:47 ​/tmp/input.16017: line 1: where: command not found 01:14:51 !sh cat `which warez` 01:14:51 ​ELF... 01:14:53 *clap clap clap* 01:14:57 !sh which warez 01:14:58 ​/usr/bin/warez 01:15:10 !sh cat /usr/bin/warez | paste 01:15:10 ​ELF... 01:15:15 ... 01:15:21 !sh which paste 01:15:21 ​/usr/bin/paste 01:15:40 !sh cat /usr/bin/warez 2>&1 | paste 01:15:41 ​ELF... 01:15:41 it's HackEgo which does that pasting stuff 01:15:44 Lymee: man paste por favor. 01:15:51 !sh man paste 01:15:52 ​/usr/bin/man: can't open the manpath configuration file /etc/manpath.config 01:15:54 NOPE 01:15:58 *On your own system*. 01:16:18 I'll give you a hint; it's in GNU coreutils, and mandated by POSIX. 01:16:29 opps 01:16:40 um. 01:16:40 !sh sprunge 01:16:41 ​/tmp/input.16456: line 1: sprunge: command not found 01:16:51 What was the function to post things into pastebin again? 01:16:51 !ls 01:16:59 !paste cat /usr/bin/warez 01:17:11 curl -F 'sprunge=<-' http://sprunge.us 01:17:28 !sh cat /usr/bin/warez 2>&1 | curl -F 'sprunge=<-' http://sprunge.us 01:17:28 ​/tmp/input.16593: line 1: curl: command not found 01:17:30 You lie. 01:17:37 !sh cp /usr/bin/warez warez 01:17:38 ​/bin/cp: cannot create regular file `warez': Permission denied 01:17:45 !sh cp /usr/bin/warez ./test 01:17:45 ​/bin/cp: cannot create regular file `./test': Permission denied 01:17:48 ;, 01:17:49 ;, 01:17:51 :< 01:17:54 !sh pwd 01:17:54 ​/home/egobot/egobot.hg/multibot_cmds 01:18:01 !sh ls -l 01:18:01 ​/bin/ls: interps: Function not implemented 01:18:11 !sh cat /usr/bin/warez > warez 01:18:12 ​/tmp/input.16852: line 1: warez: Permission denied 01:18:15 What. 01:18:24 `run cat /usr/bin/warez > warez 01:18:26 No output. 01:18:37 `paste /usr/bin/warez 01:18:38 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.26123 01:18:48 `paste warez 01:18:50 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.6501 01:19:02 `run which paste 01:19:03 ​/tmp/hackenv.17049/bin/paste 01:19:24 !sh ls /tmp 01:19:25 input.17146 01:19:55 Dammit, I kind of hoped they both ran in the same environment. 01:20:12 Anyway. 01:20:16 * Phantom_Hoover → sleep 01:20:18 -!- Phantom_Hoover has quit (Quit: Leaving). 01:23:11 -!- azaq23 has quit (Ping timeout: 258 seconds). 02:04:27 oerjan: Suggestions/patches welcome. 02:04:58 Gregor: ? 02:12:17 elliott: EgoBot's !userinterps list keeps overflowing 02:13:31 !userinterps 02:13:32 ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo eehird ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish ustemp valspeak warez w 02:13:34 :( 02:14:45 maybe making a different list for the things that aren't really interpreters? 02:15:17 !userutils or something 02:15:31 !fudd the best utility 02:15:32 de best utiwity 02:15:50 !ehird what does this one do 02:15:51 wut does this one do 02:15:56 clever 02:16:02 !show ehird 02:16:02 sh funetak 02:16:10 !show fudd 02:16:10 sh fudd 02:16:13 !show elmer 02:16:14 perl for (<>) {lc; s/l(?!e\W)/w/g; s/\Ber|(? !show eehird 02:16:23 haskell main = interact (let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines $ map ((" " ++) . unwords . words) $ food $ map toLower) 02:16:24 oh those aren't actually equal 02:17:13 and possibly another list for all those respelling commands 02:17:32 !eehird is this one any good 02:17:36 hm 02:17:40 mh too 02:18:01 !eehird what happened there? 02:18:16 ah lots of missing imports 02:18:44 isAlpha and isSpace? 02:18:55 or is dropWhile not in Prelude either 02:19:12 !delinterp eehird 02:19:12 ​Interpreter eehird deleted. 02:19:32 !addinterp eehird haskell import Data.Char; main = interact (let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines $ map ((" " ++) . unwords . words) $ food $ map toLower) 02:19:32 ​Interpreter eehird installed. 02:19:43 !eehird let's see now 02:19:43 !eehird Does it work now? 02:20:02 type errors galore 02:20:25 that thing probably never worked in the first place 02:21:14 !delinterp eehird 02:21:15 ​Interpreter eehird deleted. 02:21:27 !addinterp eehird haskell import Data.Char; main = interact (let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines . map ((" " ++) . unwords . words) . food . map toLower) 02:21:28 ​Interpreter eehird installed. 02:21:34 !eehird now then? 02:21:39 now then 02:22:02 hm ugly second line 02:23:50 wat 02:24:11 and EgoBot doesn't support multiline output to the channel 02:24:36 elliott: i think it may be intended to simulate your habit of breaking things into tiny lines 02:24:48 !eehird Like. This. Maybe so! Hm? 02:24:53 like 02:24:59 indeed 02:25:05 !delinterp eehird 02:25:05 ​Interpreter eehird deleted. 02:25:05 * elliott gets his gun. 02:25:26 you cannot do that with EgoBot anyhow 02:25:48 !userinterps 02:25:48 ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish ustemp valspeak warez wc yodaw 02:26:07 http://esolangs.org/w/index.php?title=Special:Recentchanges&limit=500 <-- talk about recent changes spam 02:26:57 multiple varieties of spam 02:28:08 ok i fixed the part that wasn't Nthern :P 02:29:01 the Nthern was the problem :P 02:29:43 you don't say 02:30:08 http://esolangs.org/wiki/Special:Contributions/46.21.144.51 a good person 02:31:48 oh hm 02:31:53 !show ustemp 02:31:53 haskell (print . (+32) . ((9/5)*) . read) =<< getLine 02:32:03 !show sanetemp 02:32:04 sh dc -e "1k?32-5*9/p" 02:32:09 !show insanetempt 02:32:09 That is not a user interpreter! 02:32:10 !show insanetemp 02:32:11 sh dc -e "1k?9*5/32+p" 02:32:20 !ustemp 13 02:32:23 55.400000000000006 02:32:31 !insanetemp 13 02:32:31 55.4 02:32:36 !delinterp ustemp 02:32:36 ​Interpreter ustemp deleted. 02:32:46 !userinterps 02:32:46 ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish valspeak warez wc yodawg 02:32:59 !show yodawg 02:32:59 unlambda (sending via DCC) 02:33:35 nice 02:34:13 -!- azaq23 has joined. 02:36:46 Elizacat: *eh*, it's a User: page 02:37:40 WHO DARETH PING ME 02:37:49 Errrgh 02:37:53 Gregor, I will eat your soul 02:37:55 Elizacat: You 'el' people 02:37:58 All the same. 02:38:04 I'm not elliott and do not compare me to him 02:38:06 elliott: *eh*, it's a User: page 02:38:07 I am not a troll :) 02:38:12 elliott: some guy whose client is too stupid to complete nicks by last-speaking 02:38:12 and I'm probably not the right gender :p 02:39:01 wtf :P 02:39:14 oerjan: hi 02:39:37 elliott: the irony demons appear to be haunting me 02:40:16 oerjan: try doing something really ironic and they'll go away 02:40:32 Elizacat: can't you just be cateliza or something 02:40:35 elliott: but they just _made_ me do something ironic 02:40:48 oerjan: you have to do it of your own accord 02:40:49 elliott: poor CakeProphet 02:41:14 no conflicts with something though 02:41:47 GreatEliza. see, it's perfect. 02:41:50 CakeProphet deserves it for his crimes against Haskell. 02:41:54 oerjan: ElizaTheGreat? 02:42:00 elliott: whoosh 02:42:46 Elizacat: can't you just be cateliza or something 02:42:48 no 02:42:49 I can't 02:43:01 I'm capitalised. I'm more important. 02:43:12 catEliza 02:43:19 i was just about to say 02:43:22 cat_eliza 02:43:27 :( 02:43:29 if I were to do that 02:43:34 but I am a cat in the Eliza namespace 02:43:37 Are you just in here in case you ever need to ping Vorpal again :P 02:43:44 not an Eliza in the cat namespace. 02:43:50 does it matter why I'm here 02:43:56 namespace who what 02:44:05 elliott, Vorpal and I are already good mates I can get ahold of him elsewhere :3 02:44:12 well you never say anything and you're squatting on valuable name territory >:( 02:44:17 -!- BeholdMyGlory has quit (Remote host closed the connection). 02:44:19 I'm standing up 02:44:20 not squatting 02:44:54 elliott, I don't have much to say, no, I'm quiet. 02:45:05 elliott, but esoteric programming languages interest me. 02:45:19 elliott, also I'm here for fizzie for some mcmap-related stuff if I can ever find him awake 02:45:20 :p 02:46:16 monqy, confused? good, good... 02:46:17 :p 02:46:28 Elizacat: wrong channel, and I'm also an mcmap developer, so just tell me. 02:46:29 confused? 02:46:37 :p 02:46:40 elliott, there is another channel? 02:46:50 elliott, Vorpal was like "go to #esoteric" and I'm like "sure" 02:46:51 Well, yeah, but it's really semi-private, so I guess here is on-topic enough :-P 02:46:58 Well yes, but Vorpal is wrong about most things. 02:47:05 no shit 02:47:05 I mean 02:47:10 no he's always right what do you mean 02:47:18 please do not remove my ovaries with a pear knife 02:47:26 ok 02:48:00 is swearing allowed or is this place family-friendly 02:48:03 by that I mean adult-hostile :p 02:48:17 Well, "fuck off and die in a fire" is farily common here, so. :) 02:48:20 Erm, fairly. 02:48:21 im children 02:48:25 -!- augur has quit (Remote host closed the connection). 02:48:38 pikhq: It is? 02:48:40 Maybe from you 02:48:44 monqy, watch out for elliott he seems to linger 501 feet outside a playground a lot... 02:48:44 :p 02:48:45 elliott: Mostly me, yes. 02:48:58 monqy: Elizacat killed my family 02:48:59 I'm quick to express nonexistence rage. 02:49:03 i'm an orphan now 02:49:04 they had it coming 02:49:08 that's why i linger outside the playground 02:49:09 because 02:49:10 Existent, even. 02:49:11 nobody will accept me 02:49:12 :'( 02:49:18 Jeeze, I swear. I can't spell worth shit today. 02:49:23 * elliott curls into fetal position; cries self to sleep. 02:49:24 I don't like playgrounds 02:50:00 anyways 02:50:03 sorry for not talking enough 02:50:08 I don't believe in talking unless I really have something to say 02:50:09 haha 02:50:29 if anyone can ping me when fizzie is around, I'd like to speak to him about mcmap :p 02:50:48 Elizacat: Like I said, just ask me :P 02:50:50 I found a strange crash, I think it's related to multi-block updates 02:50:52 but I'm not sure 02:50:56 it segfaults in different places each time 02:50:57 *segfaults 02:51:17 Using latest git commit? (Vorpal's update patch is OK; it touches none of that stuff.) 02:51:24 yes 02:51:30 same version Vorpal does. 02:51:32 There's a lot of weird behaviour mostly at high altitudes, but it's never segfaulted for me recently. 02:51:39 it usually happens with //regen 02:51:41 I don't know why 02:51:44 it's 100% reproduceable 02:51:50 I just can't pinpoint why 02:51:56 What the heck does //regen do? That's not an mcmap command 02:51:59 Or wait, WorldEdit 02:52:08 worldedit yes 02:52:08 Someone needs to tell WorldEdit to stop stealing our command prefix back in time 02:52:22 I'll go tell sk89q 02:52:27 THX 02:52:32 I'll get Lymee to as well 02:52:35 Can't fail 02:52:52 Use /// 02:52:56 Or >///< 02:53:08 ///////////////////// 02:53:42 Elizacat: Anyway, I'm not so hot on the protocol side of things, but is there such a thing as a multi-block update? I thought there was just "single block update" and "whoops lol I replaced an entire chunk here you go". 02:54:10 Vorpal always gets about ten times more crashes and weird behaviour with mcmap than anyone else, though; you could try cutting all ties with him and see if that helps. 02:54:33 !slashes /\\/\/\/\/\/\/\/\//\\\\\\ 02:54:41 Program received signal SIGSEGV, Segmentation fault. 02:54:41 [Switching to Thread 0x7ffff3eb5700 (LWP 31277)] 02:54:41 0x00007ffff6af6a50 in ?? () from /lib/libc.so.6 02:55:00 oh hm 02:55:09 Elizacat: Well that's not helpful :P 02:55:12 yeah 02:55:13 :p 02:55:17 this bt is not helpful at all 02:55:20 Except that it means we're passing invalid data to libc, I guess 02:55:27 Elizacat: You have got a debug build right? 02:55:32 !slashes /\\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\//\\\\\\\\\\\\\\\\ 02:55:32 ​//////////////////////////////////////////////////////// 02:55:50 Elizacat: make debug=1 02:55:54 Then build-debug/mcmap 02:57:11 http://pastebin.com/M12qLcrr 02:57:55 That's more helpful 02:57:57 hmm 02:57:59 memcpy 02:58:12 memcpy(&c->blocks[CHUNK_XOFF(x)][CHUNK_ZOFF(z)][y0], zb, yupds); 02:58:12 memcpy(&c->blocks[CHUNK_XOFF(x)][CHUNK_ZOFF(z)][y0], zb, yupds); 02:58:13 Line in question 02:58:14 that looks suspect 02:58:15 Snap 02:58:34 Hmm 03:00:54 c = 0x73a730 03:00:57 Helpful, gdb, helpful 03:02:00 z = 10016 03:02:01 x = 10000 03:02:06 Those look kind of suspect, unless you actually are that far out 03:03:01 I am 03:03:36 http://img.thedailywtf.com/images/201101/err/death.png 03:03:46 Elizacat: You could printf-debug above the memcpy printing &c->blocks[CHUNK_XOFF(x)][CHUNK_ZOFF(z)][y0], zb and yupds 03:03:56 Maybe one of them is NULL or something easy like that :-) 03:09:30 23:09:16 [DEBUG] CHUNK_XOFF(x) CHUNK_XOFF(z) y0 yupds 0 0 0 -126 03:09:30 > 03:09:31 Program received signal SIGSEGV, Segmentation fault. 03:09:48 Well -126... is not right. 03:10:27 #define CHUNK_XOFF(coord) ((coord) & (CHUNK_XSIZE-1)) 03:10:27 #define CHUNK_ZOFF(coord) ((coord) & (CHUNK_ZSIZE-1)) 03:10:40 Hmmmmmm 03:10:50 I'm tempted to blame this on some sort of overflow, but that's just my excuse for not really knowing :) 03:11:50 those are fine 03:11:58 Yeah 03:11:58 Hmm 03:12:02 elliott, it's the chunk beneath me 03:12:04 the offset is correct 03:12:07 Right 03:12:07 elliott, yupds is not correct 03:12:12 Indeed :) 03:12:29 I don't know what the fuck jint is though 03:12:33 Elizacat: java int 03:12:35 it's just thirty-two bit int 03:12:36 ah. 03:12:37 :p 03:12:38 jint yupds = ys; 03:12:39 if (y0 > CHUNK_YSIZE) 03:12:39 stopf("too high chunk update: %d..%d", y0, y0+ys-1); 03:12:39 else if (y0 + ys > CHUNK_YSIZE) 03:12:39 yupds = CHUNK_YSIZE - y0; 03:12:41 hmm 03:12:46 well CHUNK_YSIZE obviously isn't wrong 03:12:55 so... y0 must be wrong 03:13:01 Or that entire logic, but it works most of the time so probably not 03:13:19 23:09:04 [DEBUG] CHUNK_XOFF(x) CHUNK_XOFF(z) y0 yupds 15 14 0 128 03:13:19 23:09:04 [DEBUG] CHUNK_XOFF(x) CHUNK_XOFF(z) y0 yupds 15 15 0 128 03:13:22 here are some samples :) 03:13:30 Right 03:13:34 So y0 is zero every time 03:13:41 Elizacat: Can you print ys too? 03:13:54 I have a suspicion that 03:13:55 else if (y0 + ys > CHUNK_YSIZE) 03:13:55 is false 03:13:59 so yupds is just getting set to ys 03:14:00 which is negative 03:14:20 what's ys though 03:14:28 God knows 03:14:34 It's probably wrong though, that's what's important :-) 03:16:21 p = &packet->bytes[packet->field_offset[6]]; 03:16:21 handle_chunk(packet_int(packet, 0), packet_int(packet, 1), packet_int(packet, 2), 03:16:21 packet_int(packet, 3)+1, packet_int(packet, 4)+1, packet_int(packet, 5)+1, 03:16:21 (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3], &p[4]); 03:16:23 hmmmmmm. 03:16:31 -!- augur has joined. 03:16:32 something looks suspect here 03:16:55 I'm still fairly certain that ys is the only thing that could be wrong 03:17:00 Which probably means one of two things: 03:17:07 - Notch is incompetent as ever, fucked something up, we have to work around it 03:17:11 - We're interpreting the protocol wrongly 03:18:54 AHA 03:18:55 it's size 03:19:02 worldedit is sending invalid size 03:19:09 Elizacat: See, I knew it was somebody else's fault 03:19:11 Lymee: I blame you 03:19:14 http://mc.kev009.com/Protocol#Map_Chunk_.280x33.29 03:19:30 Hmm 03:19:45 Elizacat: Oh well, simple fix: bail out of handle_chunk if the size is invalid 03:19:51 That'll cause it not to update the chunk, but what can you really do? 03:19:57 Or does WorldEdit always update the entire hcunk 03:19:57 chunk 03:20:04 In which case we can detect WorldEdit's invalid value and set it to the entire chunk size 03:21:31 hmm 03:21:54 I'll hopefully see about getting Vorpal's patched merged in soon 03:22:02 Maybe in ten years when I finish the Scheme integration 03:22:03 :P 03:22:38 -!- azaq231 has joined. 03:22:52 23:22:41 [DEBUG] sx sy sz 16 -126 16 03:23:09 then crash 03:23:10 so 03:23:11 hm 03:23:11 yeah 03:23:14 -!- azaq23 has quit (Ping timeout: 240 seconds). 03:23:16 it's sending invalid sizes. 03:23:33 if (sy < 0) { log_print("sk89q sucks"); sy = 127; } 03:23:39 Official patch :-P 03:25:46 But yeah, either WorldEdit or CraftBukkit needs fixing 03:26:02 (If the latter, almost certainly the Minecraft server itself, but what good does reporting bugs to Mojang achieve?) 03:27:09 that workaround doesn't seem to work properly 03:27:11 it just clobbers it 03:27:15 I don't know what the official notch client does 03:27:26 Clobbers it how? 03:27:30 like 03:27:33 the chunk looks all fucked up 03:27:36 on the map 03:27:39 after regen 03:27:47 I think maybe abs() is the right thing to do 03:27:47 Hmm, try if (sy < 0) { log_print("sk89q sucks"); sy = 126; } 03:27:53 If that works, then yeah, try abs 03:28:11 I'm tempted to just say "return;" until WorldEdit or whatever is fixed but that doesn't really help :) 03:29:08 hmm still trashed 03:29:10 yeah it doesn't help 03:29:16 Yeah, just drop it 03:31:58 elliott, I could re-request the chunk, I think 03:32:04 elliott, not sure how to go about that 03:32:10 elliott, not sure if that's wise, but that could be a workaround 03:32:18 Elizacat: I don't think you can 03:32:25 The server decides when you be needin' dem chunks 03:34:53 elliott, I'd be really curious asto how the notchian server behaves in this regard 03:35:04 s/server/client/ 03:35:08 I mean 03:35:11 obviously the client doesn't crash :) 03:35:14 -!- derrik has joined. 03:35:18 so we're doing something different from them, clearly 03:35:35 I don't know, it seems to handle every situation, including the impossible-to-handle situation where the server sends a truncated chunk due to Notch thinking that compression can never enlarge data 03:35:46 I can only assume it asks Notch himself what it has to do 03:35:59 Patented brain-in-a-digital-jar technology 03:38:49 https://github.com/sk89q/worldedit/blob/master/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java 03:38:50 hmm 03:39:46 * elliott idly considers porting mcmap to another language again. 03:39:50 Say, one without segfaults. 03:40:39 I'm going to remain silent on the issue 03:40:40 :p 03:40:45 let's just say C is a reasonable compromise 03:41:01 sure it sucks, but it's the only thing anyone can agree on 03:41:11 my language of choice is not up for debate here :) 03:41:17 I never addressed you :) 03:41:22 I'd probably just port it to Haskell and quarter the line count 03:41:34 and reduce your dev pool by about 90% :P 03:41:42 thing about C is it's accessible 03:41:47 even if yes, it blows 03:41:50 :( 03:42:09 The dev pool is already two people 03:42:21 elliott, port it to Java and quadruple the line count and add a bunch of useless shite to it and increase RAM use tenfold and leak but 03:42:26 elliott, hey, it's OO now!!11111 03:42:27 ZOMG 03:42:31 "Accessible" seems ill-defined; I would say that a majority of mcmap's users have some experience with Haskell :-P 03:43:11 But yeah, certainly more people know C; I'm not sure a random open source project in Haskell is likely to get any fewer developers than one in C, though; Haskell might actually be "hipper" 03:43:49 The chances of me actually bothering to port it are insanely low, mind you :P 03:44:15 But it is annoying how hard most of the bugs are to track down and then they turn out to be stupid low-level stuff 03:45:11 Haskell is mostly for hippies and CS students 03:45:12 :p 03:45:20 I'm neither of those, though you wouldn't know by how well I'm kept 03:45:20 lol 03:45:53 Also CS graduates; also people who have been bitten too many times by the bugs and lack of high-level abstraction that imperative languages have :p 03:46:05 "when was the last time you had a haircut Elizabeth?" "when did the columbia blow up... '03? yeah about then" 03:46:05 :p 03:46:32 elliott, I'm no functional language monkey 03:46:37 I am :D 03:46:41 elliott, I'm no CS student. I'm just a biologist who does this in her spare time 03:46:54 BUT I RESERVE THE TERM "MONKEY" FOR INFERIOR LIFE-FORMS SUCH AS PYTHON CODERS THANK YOU VERY MUCH. 03:47:06 biologists who program tend to program more awesomely than other people who program, IME 03:47:08 * Elizacat mumbles 03:47:21 elliott, let's just agree that ruby sucks :D 03:47:26 ais523: Physicists on the other hand... (Isn't it physicists?) 03:47:35 Elizacat: Dunno, if Python is in the race... 03:47:35 elliott: I don't know 03:47:36 physicists :p 03:48:07 I thought about doing CS 03:48:09 elliott, *cough* 03:48:10 but honestly 03:48:11 You can't to be in #esoteric without your taste in languages mercilessly deconstructed >:) 03:48:12 modern CS is crap 03:48:17 Sgeo: Whu 03:48:24 Elizacat: I teach in a CS department, and at the undergraduate level, I think I agree with you 03:48:27 and well, if I had to live in that cesspit any longer 03:48:31 Elizacat: They went downhill after they started releasing their lectures on CD 03:48:32 I would just shoot myself 03:48:33 so I went to bio 03:48:34 Vinyl all the way, baby 03:48:37 and I have never regretted it :) 03:48:39 I'm a bit of a Python fan >.> 03:48:45 * elliott one true CS gangsta 03:48:46 Sgeo, o/\o 03:48:58 Sgeo: Quiet the adults are talking. 03:49:00 * Elizacat hifive, bro/sisfist etc. 03:49:49 hey is this a lajgauage war 03:50:09 yes its a lajgauage war 03:50:15 only the finest lajgauages will survive 03:50:27 i'm gonna get my mind out of the gutter brb 03:50:32 I misread "lajgauge" 03:50:33 :p 03:50:52 (seriously don't ask >.<) 03:50:53 I hope you didn't misread it as something as dirty as "language" 03:51:01 I'm afraid we'd have to ban you 03:51:07 "lajgauages" was misread as something very naughty 03:51:08 haha 03:51:34 well when you hang out with men all day and the primary joke is "that's what she said *looks at Elizabeth*" 03:51:35 :p 03:51:38 im a functional lajgauge monkey too. a functional lajgauge monqy. 03:51:50 * Elizacat gives monqy banans 03:51:53 fucantoinsal 03:51:58 fuacnoiewatsdjkslfghv 03:52:02 I'm just gonna leave that accidental typo :p 03:52:04 fuck no IE wat sdjkslfghv 03:52:10 a biography 03:52:26 fucantoinsal 03:52:29 run for US president 03:52:30 you'll win 03:52:35 they elected bush 1 1/2 times 03:52:53 I mean with words like that 03:53:03 He's not a native citizen. 03:53:09 we can fix that 03:53:11 * Elizacat gets a pen 03:53:31 "No Person except a natural born Citizen, or a Citizen of the United States, at the time of the Adoption of this Constitution, shall be eligible to the Office of President" 03:53:32 * Elizacat writes "elliott, native US citizen, signed me" 03:53:34 * Elizacat has friend write 03:53:40 "oh yeah she's definitely telling the truth. Definitely legit" 03:53:43 sorry, i wasn't an american citizen at the time of the adoption of the constitution 03:53:48 i cant be president :( 03:53:53 obambmb must be rely old 03:53:54 He'll have to follow Schwarzenneger. 03:54:25 the governator? 03:54:35 Yeah. 03:54:39 i hear it's sperminator these days 03:54:41 you mean the asshat who fucked up California because the so-called liberal people of that fine state elected a dickwad like him 'cause he's famous? 03:54:42 I mean hi 03:54:43 :p 03:55:04 if he could run for president I bet he'd win tho 03:55:15 Elizacat: The reason I'm saying him is just that he'd be the most likely impetus for a repeal of that clause of the constitution. 03:55:16 they voted for reagan, and he was an asshat, so surely the terminator has a good shot. 03:55:20 Not that I like him. 03:55:21 did that cartoon ever come out 03:55:22 pikhq, :D 03:55:26 pikhq, yeah :p 03:55:27 NOOOoooooOOOOOoooOOOOoooOOOooOOOOOOooooooo its on hold 03:55:31 * Elizacat is US expat 03:55:34 im going to cry myself to death and punch everyone in here to death 03:55:39 you all ruined the world 03:55:40 that's hot 03:55:43 * pikhq is US citizen & resident 03:55:44 me first 03:55:55 "Hours after Arnold Schwarzenegger announced he's halting his acting career, TMZ reported that his animated The Governator series is on indefinite hold. 03:55:55 "In light of recent events, A Squared Entertainment, POW, Stan Lee Comics and Archie Comics have chosen to not go forward with the Governator project," a rep told the website." 03:55:57 literally suicide forever 03:55:59 -> 03:56:02 pikhq, I left the US for political reasons :p 03:56:11 see also: left 03:56:11 :p 03:56:16 first two words sum it up :D 03:56:17 i left the us because i had teleported there by way of pure impossible quantum 03:56:36 pureimpossiblequnatbm.com 03:56:37 elliott, well you sound some sort of European 03:56:41 Elizacat: It's rapidly getting to the point where you'll be leaving the US for the ability to have a standard of living *at all*. 03:56:46 elliott, gonna venture a guess you're either british or scandinavian 03:56:48 do only european know about quantum 03:56:52 i totally left the us too guys 03:56:54 well they have the LHC 03:56:54 :'( 03:56:56 Good guess, BTW. 03:57:00 elliott isn't a very scandinavian name is it 03:57:03 pikhq, yeah 03:57:10 compare "vorpal" very scandinavian name 03:57:12 elliott, I know a girl in sweden by the name of Elliott 03:57:13 she is like 03:57:19 "it's a girl's name I'm telling you" 03:57:21 I am like 03:57:25 "what are you on and I want some" 03:58:05 "Although the given name was historically given to males, females named Elliott have seen an increase in recent years.[when?][citation needed]" 03:58:06 vorpal olson 03:58:08 your friend edits wikipedia 03:58:23 elliott, Vorpal's real name is not Vorpal obv :p 03:58:28 yes it is 03:58:31 *GASP* 03:58:31 elliott, I'm not telling his real name! I know it though. 03:58:32 :) 03:58:37 so does everyone else 03:58:40 elliott, let's just say his name is very swedish 03:58:43 An "Arvid" Master "Norlander" 03:58:46 "Vorpal" 03:58:48 ahh :P 03:58:49 AnMaster 03:58:51 you knew him 03:58:51 that's his full name 03:58:52 haha 03:58:56 An "Arvid" Master "Norlander" "Vorpal" 03:58:56 AnMaster always bugged me 03:58:58 I always wanted to say 03:58:59 AMaster 03:59:00 Elizacat: i brought him here >_> 03:59:00 :p 03:59:02 (INADVERTENTLY) 03:59:08 elliott, I'll bring YOU here if you get my drift 03:59:11 (except not really) 03:59:20 i dont want a drift its nice and warm in here.......... 03:59:26 that's a draft 03:59:28 not a drift 03:59:31 oh.............. 03:59:35 :( 03:59:48 its too warm in here 03:59:50 drift please 03:59:59 * Elizacat turns down the thermostat 04:00:04 Elizacat: give monqy some drift so he can catch it 04:00:07 "0K" 04:00:09 seems cold enough to me 04:00:29 im all the kelvins 04:00:30 Elizacat: So, what, if anything, was it that finally made you get up and leave the US, anyways? 04:00:33 Elizacat: a snow drift in the room would make it chilly 04:00:41 pikhq, "I left the US" - see first two words 04:00:42 the coolvins 04:00:55 Elizacat: terrible unforgivable puns are restricted to oerjan. 04:00:56 usa makes my head hurt and i hope the rest of the world is better 04:01:03 pikhq, Americans do not really... appreciate... European-style socialists. 04:01:05 sorry. you will have to get a license (no license applications are accepted) 04:01:08 Elizacat: Ah, so not a specific event, just "The right-wing is nuts". 04:01:10 cease and desist cease and desist 04:01:11 yes 04:01:12 cease and desist cease and desist 04:01:13 exactly 04:01:14 "And the 'left-wing' isn't." 04:01:17 pikhq, also the country is going to shit. 04:01:21 also cease and desist 04:01:26 pikhq, oh not I'm crazy I'm just not "kill the gays" crazy 04:01:27 oerjan: he;lp they arent cesing nad desting 04:01:30 Well, yes. It's been pretty obvious for the past 10 years or so. 04:01:39 oerjan: use your wiki admin powers 04:01:58 elliott: well be careful so they don't dest _your_ 'nads 04:02:11 And utterly *astounding* the past 4 years. 04:02:17 oerjan: ok 04:02:23 pikhq, everyone blames the black dude for it 04:02:26 pikhq, stupid morons 04:02:36 black people,,,,,,,,,,,,,,,,,,, are all dead,,, in the future 04:02:39 It's like every single bad financial decision made in the past 30-40 years hit at once. 04:02:44 well, yes. 04:02:46 reagan started it 04:02:46 I'm remarkably coherent today! 04:02:49 bush really put the nail in the coffin 04:02:51 obama isn't helping 04:02:59 so yeah :D 04:03:02 makes me glad I'm not there 04:03:14 contaroversila opinion: bushc was a bad persident!!! 04:03:23 Makes me wish I could freaking finish college. 04:03:29 everyone agrees on that due to his shit ability to publicly speak 04:03:29 well, not true...fdr started it, carter added to it, and then everyone else just added their little chunk 04:03:33 I almost typed pubicly speak 04:03:35 and then I realised 04:03:38 I'll have to stay in usa for a few more years at least. this upsets me. 04:03:40 that would be accurate too 04:04:21 quintopia, FDR wasn't so bad, tbh, although him dragging the US into WWII was kinda ehhh... it did kick off the whole "huge military-industrial complex" crap 04:04:25 monqy: how was an zepto master born in unzepto country... 04:04:28 I mean I can see the US reasons for doing so 04:04:29 it is.... mystery of ages 04:04:31 and it's better that they did 04:04:35 let us pray now to zepto /pray 04:04:36 but the cold war bullshit 04:04:38 yeah 04:04:39 quintopia: Uh, Reagan's to blame for the top tax rate being below 70%. (far, far below). ;) 04:05:21 hmm everyone always gets in my face about higher tax rates in Europe, but the reality is the poor pay far less tax in Europe than they do in America 04:05:24 sure, but there were plenty of tax exemptions in existence before reagan. the upper crust have never been hurting in the us 04:05:25 most people only pay the VAT if they are poor 04:05:29 elliott: this is explained by how true mastery of zepto requires suffering 04:05:31 and in some countries you can get a VAT refund 04:05:35 oerjan: oh 04:05:41 Bush gets a lot of blame for taking Clinton's slight budget surplus and running it into this shit. 04:05:44 oerjan: makes sense 04:05:47 pikhq, yeah 04:05:50 oerjan: but the pure state of zepto is unsuffering itself..... 04:05:56 pikhq, though Clinton was a neolib, truthfully not a fan of him either! 04:06:05 pikhq, and DMCA = unforgivable in my book 04:06:14 clangton 04:06:16 he was a clanger 04:06:17 (secretly) 04:06:21 although 04:06:27 oh god dmca :( 04:06:28 Elizacat: One needn't be a fan to admit that he did better financially than any Republican has in the past 50 years. :P 04:06:30 I don't get why America gave a shit who he was having oral sex with 04:06:31 I mean 04:06:32 hmm, is an Elizacat what you get if you cat ELIZA into itself, so it keeps responding to its own comments? 04:06:35 that's alway hilarious 04:06:35 how is it anyone's business 04:06:38 I go out and give a blowjob 04:06:40 I don't fucking make the news 04:06:45 when the president gets one, the one who did it does! 04:06:46 Elizacat: slow news month 04:06:47 you're not trying hard enough 04:07:05 The Republicans are utterly *amazing* at setting a media narrative. 04:07:12 quintopia, haha 04:07:17 quintopia, oh god I can see the headlines now 04:07:21 quintopia, actually it sounds like an Onion headline 04:07:27 "Scottish woman gives her boyfriend a blowjob" 04:07:36 sexism 04:07:37 sexism 04:07:37 sexism 04:07:42 "boyfriend: I did not have sexual relations with that woman" 04:07:43 :P 04:07:44 zepting 04:08:01 pikhq, they are 04:08:13 pikhq, though, I see America is fed up with both by their rapid cycling crap 04:08:38 Elizacat: lemme check my onion archives. ig may have happened. 04:08:38 pikhq, I mean, if they hate both parties, pray tell, why do they keep electing them? 04:08:41 do they expect change? 04:08:43 quintopia, haha 04:08:44 quintopia, awesome 04:08:57 The thing most screwing us, though, is that we act like the prosperity we had since WWII was because we did something right. 04:09:02 i can tell you why they continue to elect them 04:09:13 its because people dont vote for losers 04:09:19 The only thing we "did" right was not have our industry razed to the ground along with the rest of the world. 04:09:23 pikhq, we only have it because of bullying everyone else 04:09:27 and everyone knows only one of the two big parties can win 04:09:32 pikhq, essentially yes 04:09:40 It's very, very easy to prosper when everyone else is in a few decades of economic recovery from WWII. 04:09:49 quintopia, they could change things but they are too stupid to realise that :) 04:09:56 quintopia, it's as simple as voting "not republican or democrat" 04:09:56 although 04:09:58 I kinda fear 04:10:01 what they would actually vote for... 04:10:04 probably libertarian 04:10:07 and I am not a fan of the libertarians 04:10:14 because don't you know, everyone on welfare is a lazy slob 04:10:34 i dont think they are so bad as far as policy goes. 04:10:40 welfare abuse happens but for god's sake it's onlyt he norm in America due to the lack of ANY sort of auditing due to slashing the welfare budget. Idiots. 04:10:43 i've never seen the written platform 04:10:44 quintopia: They're certainly *less* bad. 04:10:55 quintopia: At least they don't give a fuck about what happens in people's bedrooms. 04:10:57 -!- Arkanhell27 has joined. 04:11:03 who is Arkanhell27 04:11:05 are they a ghost 04:11:09 hi Arkanhell27 04:11:26 welfare abuse doesnt happen *much* here. it's very low level compared to where it once was 04:11:34 yaeh 04:11:35 *yeah 04:11:37 audits fix that 04:11:39 :) 04:11:44 The US is also quite astoundingly high in income inequality... 04:11:46 America is too stupidt o realise that 04:11:47 pikhq, yeah 04:11:52 pikhq, it is because the rich pay no tax 04:12:00 pikhq, despite what the republicans will tell you 04:12:01 when you don't have an explanation for something, blame it on people being stupid 04:12:03 Near the top, in fact. 04:12:16 hi 04:12:26 stupid people made me who i am today. this distresses me. 04:12:28 And *the top* for developed countries. 04:12:34 elliott, never attribute to malice what can be adequately explained by stupidity 04:12:35 *stupidity 04:12:44 pikhq, America is a developed country...? 04:12:45 Well, "developed"; honestly, our infrastructure will probably fall apart if you look at it wrong. 04:12:46 i want to dispute that america's prosperity since ww2 is entirely because infrastructure remained in place 04:12:58 pikhq, last time I was in Florida I saw people living in tin shacks 04:13:01 quintopia: Not entirely, but that had a hell of a lot to do with it. 04:13:07 pikhq, I couldn't help but wonder how that shit can happen in a first-world country 04:13:21 zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto 04:13:25 that's my contribution 04:13:26 also monqy's 04:13:30 mine too 04:13:33 quintopia: Obviously, that doesn't help you if your infrastructure is utterly *awful*. 04:13:40 quintopia, large military to back it up + large infrastructure 04:13:44 quintopia, but we're coming on an interesting point 04:13:48 ^ul ((zepto )S:^):^ 04:13:49 zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto ...too much output! 04:13:50 quintopia, America is trying to reinvent itself as a huge "services country" 04:14:01 a large part of it was an increased focus on r+d pretty much across the board, even in private industry, and also with the previous half century's heavy importing of the world's brightest minds wherever possible 04:14:03 quintopia, which is why it has VERY strong IP law now 04:14:21 quintopia, the folly in this though is that the government is saddled with debt and the currency is collapsing 04:14:30 and it doesn't help when few people can actually get into these jobs 04:14:31 -!- Arkanhell27 has left. 04:14:39 look what youve done 04:14:51 r.i.p. arkanhell27 "a hood guy" 04:14:53 * Elizacat gives monqy a scone 04:14:53 a good guy, sorry 04:15:05 h is just so close to g you see 04:15:06 quintopia: But now we don't have *any* of that. 04:15:07 let's hope it was a satanist or something 04:15:13 quintopia: Pretty much all we have is inertia. 04:15:21 oerjan, hey now I used to be pagan! 04:15:28 oerjan, for certain values of pagan yes but still 04:15:34 pikhq: no worries tho. at least our children are getting world class educations! 04:15:40 quintopia, haha 04:15:41 :P 04:15:45 *Hahahahah*. 04:15:50 Elizacat: yeah but that's not why you came to this channel i assume 04:15:50 America's education is being privatised 04:15:52 in front of us 04:15:54 I mean 04:15:58 sorry, that is what is happening 04:16:03 this is why there is so much emphasis on going to university now 04:16:05 pagans are hilarious 04:16:09 because primary and secondary education blows 04:16:14 Now even our colleges are starting to decline in quality. 04:16:15 elliott, I said ex pagan 04:16:22 elliott, I grew out of the whole pagan phase when I was 15 :p 04:16:44 pikhq, because tuition is so high and nobody can afford to fucking go? 04:16:48 does any pagan not grow out of the whole pagan phase when they're fifteen 04:17:00 pikhq, I mean people in the UK bitched about the tuition hike to £9000 and that's still half of what you'll pay at a decent US uni 04:17:14 pikhq, unless you're poor/ghetto and go to a community college 04:17:27 Elizacat: half? hahahahahahaha 04:17:31 pikhq, but few people can really advance beyond that without owing the government thousands of $$$ in debt which will stalk them for life 04:17:34 due to laws designed to lock it in 04:17:34 Elizacat: And our colleges also are focused on giving you what amounts to a more expensive high school diploma. 04:17:41 quintopia, probably less than half. 04:17:41 :P 04:17:49 quintopia, that's about $12k USD or so 04:17:54 try a third to a fifth, depending on whether its a public or private university 04:18:03 Elizacat: That's a semester at some schools. 04:18:15 yeah 04:18:17 monqy: so ante-zepto... 04:18:26 does any pagan not grow out of the whole pagan phase when they're fifteen 04:18:33 We are *screwed*. 04:18:43 elliott, my boyfriend is wiccan for certain values of wiccan so... 04:18:44 :p 04:18:52 elliott, not that it matters to me as I'm not a bigot 04:18:59 so he's fourteen? ;D 04:19:03 elliott, he's 24 04:19:03 Quite honestly, my only hope is to graduate soon and hope that US degrees still have *some* standing whilst trying to leave the country. 04:19:15 my twos can look line ones sometime :P 04:19:18 s 04:19:34 it's more the philosophy he's into than the actual pagan nature itself 04:19:35 but I mean 04:19:39 who cares what someone else's religion is :D 04:19:40 I mean 04:19:43 that's why I left the US 04:20:09 hey guys im back from being away what did i miss 04:20:10 same way you might care what someone's political beliefs are? anything that forms the underlying fabric of someone's beliefs is something to be interested in, surely 04:20:11 pikhq, go to norway! well, actually I would be careful... 04:20:22 pikhq, norway's economy is swimming in money due to oil, but that's only got another 30 years... 04:20:41 I would go to norway right now, but be prepared to move out in 30 years. 04:20:47 though I like scotland, very nice. 04:20:48 Elizacat: Norway's also Schengen, making leaving fairly easy. 04:20:51 and politically ok right now 04:20:57 it's not great or shitting unicorns, but it's ok 04:20:57 monqy: literally nothing 04:21:01 relative to the rest of the UK at least 04:21:04 pikhq, yeah 04:21:16 pikhq, and nordic union :D 04:21:33 pikhq, honestly i think the only country aligned with myself politically is Iceland, more or less, but well... their economy is kinda shit. 04:21:34 but 04:21:35 I mean 04:21:42 whats politics 04:21:44 what do you expect with a country with less than 400k people... 04:21:45 :p 04:21:49 : my opinion 04:21:55 Elizacat: monaco's economy isn't too bad i gather 04:21:55 * Elizacat gives monqy another scone 04:22:10 elliott, if you're a rich hipster it's a great plcae to live 04:22:11 *place 04:22:18 elliott, but I don't fancy that :p 04:22:30 avoid Italy btw, it's very catholic. unless you don't mind that sort of thing. 04:22:32 :p 04:22:34 Elizacat: re what do you expect with a country with less than 400k people... 04:22:50 elliott, they have about a million people I think 04:22:56 bah :P 04:23:23 oh 04:23:24 35k 04:23:25 but 04:23:28 Monaco boasts the world's highest GDP nominal per capita at $215,163 and is the most densely populated country in the world. Monaco also has the world's highest life expectancy at almost 90 years, and the lowest unemployment rate 04:23:28 ha 04:23:29 so this means 04:23:34 you will be living with a bunch of rich assholes 04:23:35 sounds nice. 04:23:38 except not really 04:23:41 oerjan: what's RWS again? ReaderT WriterT State? 04:24:04 elliott: yeah basically 04:24:24 i should go to bed soon like a normal person 04:24:32 elliott: You lie. 04:24:35 :( 04:25:04 is RWS any good 04:25:45 monqy: presumably it diminishes overhead when you have all those monads to combine 04:29:28 combining monads, that sounds really hot 04:29:43 wanna come back to my place and combine moands with me? :) 04:29:56 although I gotta admit I'm not very functional 04:29:57 :p 04:30:10 * Elizacat has now reached quota for puns for the month 04:30:24 the two first panels of today's xkcd ironically describes how haskell was made 04:31:42 Elizacat: borrow some from oerjan, he has an unlimited pun quota 04:31:56 ais523, won't that cost money 04:32:02 yes. 04:32:10 see 04:32:14 :( 04:32:19 indeed, :( 04:32:25 I could steal them 04:32:29 -!- ralc has quit (Read error: Connection reset by peer). 04:32:29 er 04:32:31 s/them/some of it/ 04:32:47 oerjan: how to avoid ST's additional type argument, a short guide: 04:32:49 - use IO instead 04:32:59 who here's used Agda, btw? my new coworker has apparently been implementing it in Epic 04:33:12 ais523: I've sort of used it 04:33:21 -!- copumpkin has changed nick to skewness. 04:33:34 ais523: is your coworker Edwin Brady? 04:33:37 a simple parser written in Agda took, with the impl, well over an hour to parse an expression with six operands and five operators, all of which were numbers or arithmetic respectively (with single-character names) 04:33:39 elliott: no 04:33:57 Agda is very slow :) 04:34:16 runGen :: Gen a -> IO a 04:34:16 runGen = unsafePerformIO . unGen 04:34:16 at least I've avoided the type argument 04:34:20 hmm, this may actually be unsafe, cool 04:34:35 elliott: the more traditional compiler took only a couple of seconds to run the code, but over an hour to compile it 04:34:37 I thought this was #esoteric not #functional 04:34:38 * Elizacat ducks 04:34:50 it's #everyoneinhere 04:34:53 Elizacat: well, we look at existing languages to inspire our own 04:35:00 noddle :p 04:35:01 we also look at gay sex 04:35:03 it just so happens that all of us are functional programmers because FUNCTIONAL LANGUAGE RULE WOOOOOOOO 04:35:06 I'm not much of a functional language monkey 04:35:15 monqy, male or female or shemale on shemale 04:35:17 if you keep saying it enough it becomes true Elizacat 04:35:39 how should i know im just a monqy 04:35:41 elliott, I will have a million quid by the end of the month 04:35:50 elliott, thanks I will now keep saying this. 04:35:54 I think knowing a couple of functional languages is important to be able to design languages well yourself, or at least compilers 04:36:04 even if the language itself isn't functional 04:36:21 move 04:36:21 :: (R inp1 a1, 04:36:21 R inp2 a2, 04:36:21 R inp a, 04:36:21 RW out2 a2, 04:36:22 RW out a, 04:36:23 monqy, you said you look at gay sex I was asking for what kind 04:36:24 RW out1 a1) => 04:36:26 (out, out1, out2) -> (inp, inp1, inp2) -> Gen () 04:36:28 good types 04:36:55 monqy, how can you say you look at gay sex all day if you don't even know what kind of gay sex you're looking at! 04:36:56 Elizacat: I've mostly only heard rumours but I think it's male???? 04:37:01 ah 04:37:03 that's hot 04:37:30 monqy: hey, you can't derail the conversation with that any more, that meme died out years ago 04:37:34 and wasn't particularly interesting even then 04:37:54 I usually derail a conversation with a non-sequitor 04:37:58 repeat until conversation is derailed 04:38:06 I wasn't here years ago so I'm going to forgive myself on this one 04:38:18 http://www.flickr.com/photos/openfly/5948018975/lightbox/ 04:38:22 *Redsynth.Test> let x = runGen newVar in runGen (writeVar x 9 >> readVar x) :: [Integer] 04:38:22 [] 04:38:25 that neatly describes it 04:38:25 yay, i broke the type system 04:38:27 elliott, we're ot vim 04:38:28 *we're not 04:38:29 :p 04:38:36 Elizacat: emacs 04:38:36 elliott, or $EDITOR 04:38:37 :p 04:38:42 elliott, we're not $EDITOR 04:38:51 that was ghci, not editing 04:39:03 anyway i know what we are /shakes cane at the weeks-oldie 04:39:51 I will end you 04:39:56 exit(0); 04:39:57 like so 04:40:02 what does that mean 04:40:31 i dont feel very ended 04:41:07 monqy, how many scones do I have to feed you 04:41:09 god's sake 04:41:11 monqy: it means success 04:41:15 * Elizacat shoves another scone into monqy's mouth 04:41:24 i am going to get fat stop it 04:41:30 even on VMS, contrary to popular opinion 04:41:50 nothing is a success as long as you are using VMS 04:41:53 just a hollow victory 04:41:59 heh 04:42:41 vorpal was right, I do seem to fit in a bit here :P 04:43:03 although I'm not much for functional languages alas, to me it felt like bondage and discipline :P 04:43:07 which is hot, but not in programming 04:43:24 I do like esolangs tho :p 04:43:29 do you like 04:43:31 functional 04:43:32 esolangs 04:43:39 no :p 04:43:47 I counter with "I am not a maths major" 04:43:49 :P 04:43:49 funny, python feels more like bondage and discipline 04:43:51 to me 04:43:53 what about esolangs that aren't functional, but end up being used that way by uncreative people? 04:44:01 (e.g. Underload; I'm uncreative, but apparently oerjan isn't) 04:44:06 that's kind of funny :p 04:44:07 want this control structure? why no you can't have it. Guido doesn't like it. 04:44:10 you like Guido, don't you? 04:44:18 a lot of esolangs don't have for 04:44:19 just noting 04:44:24 ah. folds? yes. Guido doesn't want you to use that. 04:44:25 er 04:44:28 s/esolang/functional langs/ 04:44:30 -!- skewness has quit (Ping timeout: 240 seconds). 04:44:34 :t forM 04:44:35 forall a (m :: * -> *) b. (Monad m) => [a] -> (a -> m b) -> m [b] 04:44:44 scheme has for-each too 04:44:44 I said a lot, not all :P 04:44:55 -!- skewness has joined. 04:44:56 -!- calamari has joined. 04:44:57 lots of imperative languages don't have structured control structures at all :) 04:44:59 names escape me atm, it's been too long 04:45:07 as I said 04:45:08 underload has no for 04:45:11 I'm a biologist who happens to code 04:45:15 by "for" do you mean built-in or what 04:45:15 :) 04:45:20 p.s. for sucks 04:45:24 see 04:45:25 :p 04:45:36 well yeah but that isn't the point monqy :-P 04:45:40 now silence about this nonsense or I shall make you use Java 04:45:54 hmm, mo' typeclass problems 04:45:55 may your days be free of downward-fungargs and function pointers 04:46:22 lol @ plebians who don't understand lexical scope 04:46:31 also lol @ plebians who use pointers 04:46:35 those people still exist? 04:46:42 the not understanging lexical scope ones 04:46:43 yes, newLISP exists after all 04:46:47 oh newlisp 04:46:47 outside of CS academia I'm afraid! 04:46:50 although I like lisp :x 04:46:52 I'm weird 04:46:58 what lisp 04:46:59 well, somewhat like lisp 04:47:02 well 04:47:08 I haven't used lisp in a while, but I used to use clisp 04:47:23 back in the days when I was just a young adolescent, struggling with my sense of identity... 04:48:07 I will point out though that there's nothing wrong with liking esolangs but not liking functional languages, nor is there anything wrong with not wanting to be in the CS cesspit :( 04:48:25 everything wrong 04:48:27 I don't like buttsex so that probably has something to do with not liking CS as you take it in the ass a lot in that field 04:48:27 elliott, Picolisp doesn't use lexical scoping, but you like it 04:48:41 picolisp has several zepto properties 04:49:04 cs is bad in that everyone misses the point ugh 04:49:20 I don't know what the point is all I know is that everyone misses it 04:50:02 well 04:50:03 maybe I should have been a mathematics major 04:50:09 I remember what I heard once 04:50:16 CS is just the post-Turing decline in formal systems theory 04:50:17 :) 04:50:24 :'( 04:50:30 ^ul (( )*S:):((What)~^(do)~^(you)~^(mean)~^(no)~^(for)~^)^ 04:50:30 What do you mean no for 04:50:38 -!- cheater_ has joined. 04:50:42 haha 04:51:14 anyways 04:51:19 my boyfriend is calling 04:51:21 ta ta :) 04:51:43 Later. 04:51:49 just be thankful I'm not like my bf 04:51:52 he likes logo 04:51:52 :( 04:51:57 he likes turtle graphics :/ 04:52:01 logo is cool 04:52:02 it's like scheme 04:52:06 whats wrong with logo 04:52:07 in fact it almost is scheme 04:52:08 M-expression Lisp, you mean? 04:52:09 :) 04:52:18 pikhq: logo is fixed-arity but close enough 04:52:19 :P 04:52:47 i think logo may have been my first language 04:52:54 I think part of the reason too I don't like funclangs is because I simply prefer to get things done rather than study about theory all day long :P 04:52:59 elliott: Meh, variable arity isn't all taht essential to Lisp, anyways. 04:53:04 Elizacat: that's why i never bothered to learn programming 04:53:05 CS theorists think about programming, as for myself, I prefer to do :) 04:53:06 I just write BASIC with gotos 04:53:17 elliott, well Vorpal tells me you overengineer :P 04:53:20 or maybe he was thinking someone else 04:53:28 i'm shocked and offended :-) 04:53:32 maybe I"m thinking someone else 04:53:37 im shocked and offended too 04:53:42 but seriously, it is basically just wilful ignorance to say that thinking about programming stops you getting things done. 04:53:45 monqy, look at goatse 04:53:50 monqy, you'll be even more so 04:53:53 if you don't think, you can't accomplish anything. programming is a science. 04:53:56 what if i dont want to 04:53:57 look 04:53:57 at 04:53:58 goatse 04:54:05 you're not hip 04:54:24 elliott, sorry it's both an art and science, it transcends both 04:54:32 lol 04:54:43 uh, i'm assuming that was a joke at least 04:54:44 and yet you dislike functional 04:54:46 elliott, algorithimic study is a science, I think the languages themselves are more of an art :) 04:54:48 im shcoekd 04:54:50 ofyneded 04:55:01 why does programming have to be both an art and a science 04:55:06 physics is science, isn't it beautiful? 04:55:08 I say this as someone who has a disdain for the arts too 04:55:09 :p 04:55:12 it seems well enough just to say that science is art 04:55:21 -!- calamari has quit (Quit: Leaving). 04:55:34 programming relates to language. language relates to literature 04:55:41 hi 04:55:51 amazing 04:56:03 it's a fine line 04:56:07 elliott, I think physics are a mess actually 04:56:23 elliott, standard model is *awful* I don't care who you are 04:56:26 it was an example, but w/e 04:56:27 if you think otherwise you are on some good shit 04:56:28 physics isn't my style. my groove. it isn't. 04:56:46 i should have said biology >:) 04:57:00 "what is" vs "what if" 04:57:04 -!- skewness has changed nick to variants. 04:57:25 hi again 04:57:44 oh, hey, I need Data.Generics 04:57:46 ummm, I think 04:57:50 biology's a good field to be in, because as long as your methodology is good pretty much any experiment leads to publishable results 04:57:51 gah 04:57:54 even if they're "nothing happened" 04:58:06 because that's notable and interesting in biology, especially if you think something should have done 04:58:13 bf: "get to bed please" me: "I'm having a discussion on IRC" bf: "carry on :P" 04:58:14 <3 04:58:15 and there are more or less infinitely many unsolved problems 04:58:17 ais523: also you get to torture frogs 04:58:29 it's not torture when their brain is the size of a pea 04:58:30 just noting 04:58:43 ais523: Not "infinitely many", just a very large unsolved problem space. 04:58:48 it's torture iff they can feel pain 04:58:52 the size of their brain is irrelevant 04:58:55 iff eh? 04:58:58 if and only if? 04:59:01 yes. 04:59:05 Large *and easy to access*, more-like... 04:59:06 if it can feel pain, you can torture it. 04:59:08 pikhq: that's what the more or less was for 04:59:12 if it can't feel pain, you can't torture it. 04:59:17 what if I told you by severing the right nerves in the spine they can't feel pain eh? 04:59:18 :) 04:59:24 do forgs feal pain....... 04:59:28 they do, alas. 04:59:30 Unlike physics, where you pretty much *need* to spend your career on it to get a notable result. 04:59:33 well 04:59:36 chess is a popular standard. but surely the specific rules are of more historic than mathematical interest. 04:59:37 Elizacat: then that wouldn't be torture, that would just be relatively pointless messing about 04:59:37 it is arguable whether or not they feel pain 04:59:40 in the sense that humans feel pain 04:59:41 are frogs people too 04:59:45 probably ending in death, which of course is bad, but not torture 04:59:46 they obviously wish to avoid the negative stimulous 04:59:47 an open question 04:59:50 *stimulus 04:59:55 monqy: no, frogs are cats 05:00:02 but nobody really knows if it is "suffering" in the sense humans or mammals have it 05:00:04 TRUE FACTS 05:00:08 their brains are quite small 05:00:15 so who knows 05:00:27 class Struct a where 05:00:27 makeMut :: (RW v) => Gen (a v) 05:00:27 readMut :: (RW v, R v') => a v -> Gen (a v') 05:00:28 I think this is it?????? 05:00:30 monqy help 05:00:33 uhhhhhhhhhh 05:00:34 my project is exploding under its own complexity 05:00:43 hey it's called a pastebin 05:00:44 :P 05:00:47 nope 05:00:51 Elizacat: it was three lines 05:00:57 elliott: what does this mean???? 05:01:02 monqy: I DONT KNOW;W 05:01:06 ;_; 05:01:09 give monqy another scone 05:01:10 :p 05:01:14 im stufed 05:01:20 stp;dufed 05:02:03 ah bloody hell, AIM imploded 05:02:04 again 05:02:14 rest in peace 05:02:21 rip aim 05:02:23 " p.s. for sucks" <<< this would make a great saying 05:02:25 I think that the reason programming becomes science/engineering is that it can't be wrong. The way a program is required to work. 05:02:26 * oerjan hangs the stuffed monkey on the wall 05:02:26 dead on arival 05:02:30 i did it for sucks 05:02:35 https://gist.github.com/1091803 ... Wow. 05:02:42 oklopol: heh, we both parsed for as a preposition there rather than a noun? 05:02:46 oerjan, can we hang the stuffed monqy on the wall 05:02:51 pikhq: without looking, is that the comparison of echo impls between UNIX variants 05:02:59 Whereas art can always be approximate 05:03:06 plus GNU 05:03:06 -!- variants has changed nick to copumpkin. 05:03:07 -!- copumpkin has quit (Changing host). 05:03:07 -!- copumpkin has joined. 05:03:07 ais523: yep 05:03:39 ais523: Yes. 05:03:41 Elizacat: that's the joke.jpg 05:03:42 GNU echo is my favourite program it does everything 05:03:42 I think they're all good, for their own purposes 05:03:50 ais523: haha 05:03:55 GNU for printing help messages and version information? 05:04:04 elliott: GNU is the only one there which supports the -e flag 05:04:04 ais523: The comparison of GNU echo isn't entirely fair. 05:04:19 ais523: It's omitting a few dozen other files. 05:04:22 which I've found myself wishing for in Busybox before now 05:04:34 I solved the problem with printf in the end, but it was messy 05:04:41 ugh, Data.Generics makes this a real pain 05:04:55 ais523: busybox has catv for that purpose 05:04:59 I think that gaming will eventually prove to be "software as art" 05:05:03 aha, I didn't know about that 05:05:05 can you run it in reverse? 05:05:17 as in, echo -n -e is sort of the reverse of cat -v 05:05:23 (echo -e without -n will just print -e) 05:05:27 oh, it's echo 05:05:29 ais523: not sure 05:05:33 printf is probably the thing to use 05:05:52 ^echo here 05:05:52 here here 05:06:02 (the problem, incidentally: you have a serial terminal on a system that contains only Busybox, and the terminal will garble non-ASCII characters you send; you have Busybox sh running in the terminal; how do you send a binary?) 05:06:35 Uh, uuencode. 05:06:55 ... No, not commonly in Busybox. :/ 05:07:02 No, wait, yes it is. Right there. 05:07:03 :) 05:07:16 ais523: You overthought the problem. 05:07:17 ais523: btw, I've re-added the VHDL-style monadic DSL back in to my synthesiser toy; now the only problem is finding an actual /use/ for it 05:07:38 pikhq: it was a stripped-down version, that didn't have uudecode 05:07:43 in fact, the binary we were trying to send was uudecode 05:07:59 elliott: heh 05:08:04 " Unlike physics, where you pretty much *need* to spend your career on it to get a notable result." <<< then there's stuff like number theory where you have to spend your career to find out you weren't good enough to ever get a norable result in the first place 05:08:18 ais523: the functional style seems nicer in all cases I've tried so far :P 05:08:23 ais523: No base64 either? 05:08:28 oklopol: you really have an obsession with number theory's difficulty 05:08:30 pikhq: I'm not sure 05:08:31 oklopol: broken? 05:08:41 in the end I wrote a script that translated things to a series of printfs 05:08:46 Hmm 05:09:04 calibre works fine on the command line on Linux, right? 05:09:12 * Sgeo wonders how to make a Nook publication 05:09:25 hmm, given that someone mentioned xkcd earlier, I've actually been looking back through it trying to find a good one 05:09:31 " oklopol: heh, we both parsed for as a preposition there rather than a noun?" <<< well yes, but i only did if for sucks 05:09:38 I rather like http://xkcd.com/887/ which has what I want in an xkcd 05:10:00 oerjan: how do i get an infinite list of iorefs 05:10:03 even if it isn't a joke in that there's no punchline, there's a bunch of intriguing research, and the results are quite amusing 05:10:16 elliott: unsafeInterleaveIO 05:10:20 oerjan: :D 05:10:22 theres a punchline its just really bad 05:10:25 oerjan: doesn't recursive do work 05:10:52 elliott: no, that gives you only a cyclic list with _one_ ioref in it :P 05:10:58 (*notable) 05:11:16 oerjan: doesn't sequence (repeat newIORef) work 05:11:18 oh, strict 05:11:20 or wait actually you don't even need recursive do for that 05:11:31 ?ty replicateM_ 05:11:32 forall (m :: * -> *) a. (Monad m) => Int -> m a -> m () 05:11:36 ?ty replicateM 05:11:37 forall (m :: * -> *) a. (Monad m) => Int -> m a -> m [a] 05:11:53 -!- azaq231 has quit (Quit: Leaving.). 05:11:57 elliott: what's wrong with unsafeInterleaveIO, this is the kind of stuff it's _for_ 05:12:19 also, i used both that and recursive do in Malbolge Unshackled 05:12:48 ?hoogle replicateM 05:12:49 Control.Monad replicateM :: Monad m => Int -> m a -> m [a] 05:12:50 Control.Monad replicateM_ :: Monad m => Int -> m a -> m () 05:12:50 oerjan: yeah yeah i know :P 05:12:55 turns out I don't need it :D 05:12:56 elliott: broken? 05:12:57 (maybe) 05:13:01 oklopol: soul 05:13:10 ah 05:13:13 Redsynth/Test.hs:54:10: 05:13:13 Illegal instance declaration for `GenF (mut -> Gen ()) pure' 05:13:13 (the Coverage Condition fails for one of the functional dependencies; 05:13:13 Use -XUndecidableInstances to permit this) 05:13:16 :( 05:13:22 yes, obviously the reason is i'm not in number theory myself 05:13:24 elliott: if it's in IO, you won't be able to get an infinite number of IORefs without, i believe 05:13:24 oh 05:13:53 INSTEAD I SHALL JUST FAIL IN A SIMPLER FIELD 05:14:23 oerjan: i know 05:14:38 ais523: didn't you say you were sleeping like a normal person 05:14:52 [a',b',c'] <- sequence [readVar a, readVar b, readVar c] 05:14:55 oerjan: what's wrong with this?? 05:14:56 actually i realized one of my best results is essentially the same as this famous theorem in symbolic dynamics, or at least the proofs are very similar 05:15:01 readVar is Var a -> Gen a 05:15:25 if my result follows from that, i'm switching to biology 05:15:42 oklopol: sshhhh, Elizacat is around 05:15:48 elliott: I was, but that pattern is easily breakable 05:16:00 also, restorable, astonishingly 05:16:17 oh hmm... 05:16:24 ais523: i share your maybe-not-pain 05:16:36 oh duh 05:16:48 elliott: i don't see anything wrong... 05:16:56 oerjan: wrong type :) 05:17:00 in my typeclass, i mean 05:17:05 ah 05:17:30 Elizacat: sorry i didn't mean to imply your field is inherently simpler than mine, more that it has more hot chicks 05:18:41 there's this hot biology chick at uni who i'd prolly ask out if she didn't have kids :-d 05:18:44 ?. pl undo do m <- newMut; f m; readMut m 05:18:44 liftM2 (>>) f readMut =<< newMut 05:18:47 gross 05:18:53 oklopol: don't you have a girlfriend? 05:18:58 oh wow 05:19:01 no i don't 05:19:21 hmm, I must be confused 05:19:28 he used to, but then he un-got a girlfriend 05:19:35 explanations w/ elliott 05:22:29 maybe i could ask the biology chick out for casual sex tho 05:24:55 hahaha time vultures 05:25:29 *Redsynth.Test> let ID x = addS (addition (one,zero,zero,zero) (one,zero,zero,zero)) in x 05:25:29 *** Exception: Maybe.fromJust: Nothing 05:25:30 not good 05:26:51 I think fromJust is actually inexpressible in Agda 05:27:21 and in Anarchy, it'd require you to either override the compile error, or put it in a context where only Just was possible and where that was inferrable by the compiler 05:27:37 Agda reminded me a bit of Anarchy, even though they're moving in opposite directions in another sense 05:28:01 Is Anarchy intended to be a real language? I know Agda is 05:28:02 I think fromJust is actually inexpressible in Agda 05:28:04 indeed 05:28:09 well 05:28:11 ?pl \a b c -> a a a a b b b b c c c c a b c a a b b c c 05:28:14 Elizacat: sorry i didn't mean to imply your field is inherently simpler than mine, more that it has more hot chicks 05:28:15 Let's see what this does! 05:28:15 flip flip id . fmap ap . flip flip id . (ap .) . join . (flip .) . join . (flip .) . (flip =<< (flip .) . join (flip . (flip .) . flip flip id . (ap .) . join . (flip .) . join (flip . (flip .) . 05:28:15 flip flip id . (ap .) . flip flip id . (ap .) . flip flip id . (ap .) . join . join . join . join (join (join id))))) 05:28:15 optimization suspended, use @pl-resume to continue. 05:28:17 Sgeo: I'm not sure 05:28:18 you can assume it as an axiom 05:28:19 not as many as you would hope oklopol 05:28:22 oklopol, I'm not hot myself 05:28:23 it's intended to be usable 05:28:23 just like in coq 05:28:24 oklopol, I'm just ordinary 05:28:27 Axiom yay : forall a, a. 05:28:28 @pl-resume 05:28:29 that doesn't quite rule it out from being an esolang 05:28:31 flip flip id . fmap ap . flip flip id . (ap .) . join . (flip .) . join . (flip .) . (flip =<< (flip .) . (flip =<< (flip .) . flip flip id . (ap .) . join . (flip .) . (flip =<< (flip .) . flip 05:28:31 flip id . (ap .) . flip flip id . (ap .) . flip flip id . (ap .) . join . join . join . join (join (join id))))) 05:28:33 Theorem foo : forall a, a. Admitted. 05:28:38 it has esoish features, but also a lot of concessions to practicality 05:28:51 e.g. I plan to steal OCaml's standard library so that there is actually a standard library 05:29:04 Theorem trollLogic : forall a, b. 05:29:07 oklopol, I went into this field simply because 1) I love biology, 2) CS is a sausagefest, 3) modern CS is just crap 05:29:08 :( 05:29:10 ais523: how about stealing not Ocaml's 05:29:30 oklopol, joke's on me, #1 and #3 still hold true, but #2, bio is a sausagefest too! 05:29:31 :( 05:29:38 it is like 05:29:53 I get hit on constantly, and I am not even that good looking 05:29:58 elliott: because I plan to write the compiler using OCaml as a backend 05:30:06 ais523: but 05:30:14 (ladies and gentlemen, swamp thing! *points to self*) 05:30:17 -!- Lymee has set topic: correlation causes causation | Troll programming languages | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 05:30:19 * Lymee runs 05:30:22 ais523: should i go to bed... 05:30:49 "CS is a sausagefest" being a reason not to go into it is a great self-fulfilling prophecy. 05:31:04 elliott: I will soon, I think 05:31:20 Gregor, many things are... 05:31:21 :< 05:31:49 Gregor: it's not like making the decision to go into CS would fix that overnight 05:32:02 so it depends how much patience you have :-P 05:32:13 ais523: i hate people who have as terrible a sleeping pattern as me, because i use them being awake as an excuse not to sleep yet 05:32:40 I hate going to sleep when elliott wakes up. 05:32:47 elliott: the best advice I can give is to work out which sleep pattern you /want/ to have 05:32:49 then use it 05:32:53 ais523: the one i don't have 05:32:56 elliott, I'd say I have unpaid work to do, but I'm now going to get paid for it. Less than minimum wage, but still 05:33:05 my sleep pattern was really bad before I found to my surprise that that actually worked 05:33:12 Sgeo: better than nothing :) 05:33:35 Also, wow. Of those various echo implementations, only *one* is actually POSIX-compliant. 05:33:35 ais523, does this include the output of my brain's built in random number generator? 05:33:40 The V5 one. 05:33:41 Only explanation I can find. 05:33:55 (though its source is not) 05:33:58 pikhq, how can /echo/ fail? 05:34:16 Lymee: It is forbidden for echo to take options. 05:34:24 ais523: i would say i want to get up when i get up and go to bed when i go to bed, but that's stupid because I'm about 90 percent sure I have ridiculously low melatonin levels 05:34:30 and also terrible willpower 05:35:00 elliott: well, it's more, figure out what sleep time and wake time allows you to get the most done in a day 05:35:03 possibly by experiment 05:35:29 I've been finding that 9pm sleep, 6am wake (with some hours in it spent not sleeping) is easy to stick to, but not very useful for actually getting work done for some reason 05:35:48 that sounds impossible to stick to for me 05:35:57 early morning kills me 05:36:02 ais523: Perhaps because you're not a farmer. 05:36:21 elliott: in my case, I can't really get work done in the afternoons 05:36:21 he's a code farmer! 05:36:29 nor immediately after I wake up 05:36:36 Or, more to the point, work amongst humans implies comradery, and comradery implies being awake when other people are awake. 05:36:46 which leaves only a few hours in the sane-people sleep schedule 05:36:49 "work amongst humans implies comradery" <-- this is complete bullshit 05:36:54 the insane one where I go to bed at 9am is a lot more productive 05:37:11 ais523: i'm useless for hours after I wake up 05:37:19 my body sucks :( 05:37:32 elliott the black hole 05:37:45 i'd just like to be awake constantly, except i can press a button and it makes me feel really tired but not like I haven't slept and then I would have a sleep if I felt like it 05:37:50 the life o/ elliott 05:38:30 -!- cheater_ has quit (Ping timeout: 255 seconds). 05:38:37 i wish i could go unconscious and hallucinate at will this would be pretty cool 05:38:54 yeah that's pretty much the only reason i'd want to be tired 05:39:02 falling asleep is nice and also unconscious hallucination is nice 05:39:06 hmm, I bet ais523 is terrified of dreams 05:39:27 elliott: nah, I think we've discussed dreams in here before 05:39:33 they often leave me disoriented afterwards 05:39:40 do they not count because you can't take real-world actions in them? 05:39:49 after I realise beliefs I thought I held while dreaming were completely nonsensical 05:39:52 I know you're scared of hallucinogens and anything that impairs thoughts 05:39:58 Well, sacred 05:40:01 "scared" 05:40:02 I dunno what term to use 05:41:22 that's a reasonable term 05:43:12 a dream can influence a waking thought 05:43:50 infact, all dreams which get mentioned in waking time have influenced communication 05:43:56 indeed, you can remember dreams, although usually only the end of one 05:44:01 itidus20: citation needed 05:44:09 my dreams, if described, often sound like the sort of thing zzo38 would come up with 05:44:11 and have about as much context 05:44:23 e.g. I was dreaming of Chess vs. Missigno. a few days ago 05:44:26 :D 05:44:30 best game 05:44:32 *Missingno. 05:44:34 /thing/whatever 05:44:41 elliot: the concept of the word dream is based on collective experiences of dreams 05:44:45 I even worked out some of the rules after I woke up 05:45:01 then realised it was an obvious win for the Chess player; it might be interesting if you added a second Missingno., but I doubt it 05:46:38 i know that Missingno is a pokemon but how can it "vs" Chess? a pokemon battle? 05:46:43 (summary of the rules: played on a chessboard; the chess player starts with a standard set of 16 pieces arranged in the usual way, but the king has no royal powers because they're permanently in checkmate; the missingno. player starts with two missingno.s on d8 and e8, and a missingno. can teleport to any square of the board and captures as it moves) 05:46:45 wow, this is definitely the most confusing code I've wirten ... today 05:47:05 ais523: are the pieces lovingly handcrafted marble missingnos 05:47:19 (and the chess player wins by capturing both missingno.s or having a king (including a pawn promoted to king) on the 8th rank at the start of the turn, the missingno. player wins by capturing all the chess pieces) 05:47:29 elliott: I didn't get that far, but I assume so 05:47:40 when I dream, details don't exist unless I wonder about them, and I didn't 05:47:49 it'd be great if they were, though 05:47:57 or maybe Staunton pattern missingno.s in wood 05:48:08 note that missing the dot in missingno. is as bad as capitalising the b in brainfuck 05:48:59 What I think is that the best features of Nintendo glitches is the fact that the code was too optimized to allow for conditional guards against them. 05:49:07 Like they left the gates open for glitches. 05:49:29 I may be doing a glitchrun of Pokémon Blue as part of a Let's All Play next month, and I've been practicing 05:49:35 that's presumably why Missingno. surfaced in my mind 05:49:35 Or maybe they just didn't realize 05:49:45 not sure why chess was involved 05:49:53 "The GNU version is best. none of the other's implement --help to print the program's usage, including specifics on the (also not implemented) -E and -e options, which are useful depending on how your script uses echo. Also, vs the SYS V and other older versions, this version of echo doesn't require a shell to properly handle escape sequences or quotes. It also properly detects and uses locales and characters sets. The FreeBSD version does almost 05:49:54 none of these things. Also, given the source code above, it would be a simple matter to reimplement echo more simply. Be careful. Some of that extra functionality may be neccesary for your system to function." 05:50:19 But so.. is it ethical/moral to knowingly leave out conditional guards just incase a glitch occurs 05:50:31 no you should be put in prison for it 05:50:36 for making a GAME that is BUGGY OMG 05:50:41 elliott: To that I say: only SysV makes echo "$FOO" safe. :) 05:50:43 with super mario you see... they were fighting over every byte 05:50:59 elliott: I'd have to object to that on the basis that it isn't generally /useful/ for echo to implement locales unless it has help/version info 05:51:18 so the code was "truer" because it allowed glitches 05:51:23 its kind of ironic 05:51:34 itidus20: did you see ksplice's vulnerability report against Super Mario Bros., complete with hotpatch 05:51:45 it was one of the better April Fools jokes from last April 1, IMO 05:51:46 -!- cheater_ has joined. 05:51:50 i don't know who ksplice is :D 05:51:55 lol but ok lol 05:52:03 hahahaha 05:52:16 they're basically a Linux kernel security company; they sell a product that allows for kernel updates without rebooting 05:52:22 and also talk about related stuff on their blog 05:52:40 here we go: http://blog.ksplice.com/2011/04/smb-1985-0001-advisory/ 05:52:49 i'll click it soon.. 05:52:56 -!- paskill has joined. 05:52:58 but yeha.. this has been on my mind for a while. 05:53:09 I love the patch. 05:53:12 paskill: hello 05:53:13 so do I 05:53:25 the reason for the cool glitches in games is simply they don't add code to prevent them. 05:53:31 I was talking to a bunch of SMB1 speedrunners about it, they suspected that it probably had unintended side effects but weren't sure what 05:53:42 itidus20: or... for mistakes 05:53:44 good morning 05:54:06 What does the patch actually do, anyways? 05:54:20 pikhq: we weren't entirely sure 05:54:22 like.. theres a mario glitch which allows small mario to have the pallete of fire mario 05:54:40 one of its effects is to prevent rightwards horizontal zipping from working 05:54:41 now nintendo could have included code which says "small mario should never be allowed to have the fire mario pallete" 05:55:00 as it's a one-line change that replaces a variable with a constant, it probably makes leftwards zipping really easy or something 05:55:03 but since they never formally said it can't happen... it ended up happening 05:55:11 itidus20: that... isn't how coding works 05:55:16 you don't have to put conditionals for impossible conditions in 05:55:20 itidus20: well, the strange thing there is that something that should be stored in one variable is actually stored in two 05:55:25 the problem is that /some other/ code has a bug that deliberately sets it that way 05:55:32 the bug is not in the lack of condition, it's in the other code changing 05:55:33 it 05:55:38 and the problem happens when they get out of sync 05:55:46 well its not "entirely" a bug 05:56:24 but most modern games i think will just say "somethings wrong lets abort" 05:56:32 maybe im wrong here 05:56:52 itidus20: Part of it is that many such conditions are actually *security flaws*. 05:56:55 itidus20: it's very rare for a game to abort on detecting an internal consistency, except for multiplayer games that use reproducability in order to reduce bandwidth 05:57:16 On retro games, there are actually errors that let you patch memory. 05:57:17 most will spout debug messages but otherwise try to continue 05:57:25 pikhq: my favourite is in SML2 05:57:30 test :: Gen (Var Bit, Var Bit) 05:57:30 test = toLocs `fmap` struct (undefined::Bit, undefined::Bit) 05:57:35 i've forgotten completely why i'm doing this 05:57:36 ais523: Yeah, that was an *amazing* run. 05:57:39 it's possible to glitch out of a level's boundary, which has the result of making the entire ROM and RAM a playable level 05:57:47 and you can break blocks in order to change RAM 05:57:56 ais523: Detecting an "internal consistency"? "Oh no, I'm in a consistent state! Abort! Abort!" 05:58:07 umm, inconsistency 05:58:11 The Pokémon Yellow save glitch is pretty awesome, too. 05:58:47 Restarting the game at the right time in the save process makes it think your inventory is unbound, making the inventory screen into a memory patcher. 05:58:48 pikhq: the same trick's been done without resetting during a save, but it requires a Ditto 05:59:09 to be precise, it's known as the ZZAZZ glitch, because it changes three out of every four bytes in memory to 153 05:59:23 which happens to be Z in the crazy character set that Pokémon first gen used 05:59:42 Aaaah. 05:59:45 also, Bulbasaur or Explosion, with other methods of interpreting it 05:59:56 in particular, it overwrites the "number of Pokémon in party" counter with 153 06:00:03 which is quite the buffer overflow 06:00:10 I was obsessed with glitches ever since I read about guile's glitches in street fighter 2 06:00:17 Gotta love Pokémon's glitches. 06:00:31 It's like a TASer's wet dream or something. 06:00:34 I thought "is this real?" "which street fighters will this work on?" 06:01:05 pikhq: the funny thing is, they've been really different version-to-version 06:01:34 and so, i learned about the chinese word ira waza 06:01:38 As for the palette thing, I'd assume (not that I recall anything about NES graphics) that the "second variable" where the palette is stored, separate from the character state, is just some sort of a sprite palette control register, which is what's getting out of sync. 06:01:41 i mean japanese 06:01:44 especially Ruby/Sapphire, which have no known exploitable glitches and basically no glitches altogether, compared to Emerald, which has a huge number of fun exploitable glitches 06:01:47 sorry.... not concentrating 06:02:01 itidus20: Could you write that in kanji? 06:02:07 no 06:02:15 As it is, that's parsing as a random conglomeration of morae for me. 06:02:22 was it ura waza i meant i think 06:02:26 yeah.. ura waza 06:02:35 Ah, looked it up. 06:02:42 裏技 06:02:42 means something like.. underhanded technique 06:02:44 fizzie: IIRC that glitch is actually different, but I can't remember the details 06:03:02 Meaning "underhanded trick", or (computer terminology) "exception". 06:03:04 ais523: do you have a link with all the glitches? 06:03:12 coppro: in which game? 06:03:16 Makes perfect sense with the kanji. 06:03:23 ais523: Pokemon games 06:03:24 pikhq: the word has an awful lot of meaning 06:03:33 including how to fold a tshirt in split seconds 06:03:51 itidus20: No, it only has a single but general meaning. :) 06:03:55 coppro: for speedrun-exploitable ones in the first two generations, http://tasvideos.org/GameResources/GBx/Pokemon.html is pretty good 06:04:04 but it doesn't document Emerald or DPP glitches well 06:04:17 ok 06:04:21 and Black/White, although they have a few known glitches, haven't really been researched fully 06:04:28 I thought there were *some* Ruby/Sapphire glitches... 06:04:36 Though it's not like I've seen that run recently. 06:04:43 It may have just been a heavy luck manipulation run. 06:04:44 pikhq: indeed, but none are used in a speedrun 06:04:49 *Aaah*. 06:04:52 it's just luck manipulation and lag manipulation 06:05:11 things like undiving while going through a door let you go out of bounds, but that doesn't accomplish anything useful 06:05:17 pikhq: ok one meaning but richly laden with things 06:05:25 because out of bounds is just a few tiles and then blackness you can't walk in 06:05:39 (as opposed to DPP, where you /can/ walk in the blackness, which lead to huge projects with people "mapping the void" 06:05:40 ) 06:05:47 the word "ura" is especially potent 06:05:51 Unlike RGB, where "out of bounds" is "level in arbitrary memory". :) 06:05:57 especially re: nintendo 06:06:01 Or possibly "lot of stuff that's inexplicably there". 06:06:10 itidus20: "ura" just means "back". 06:06:12 pik i don't know japanese though.. 06:06:23 and back is an exceedingly general word 06:06:27 Yeah. 06:06:43 but back in japan means different things than back in english 06:06:48 oh man golden sun 06:06:49 some very culturally specific things 06:06:54 I need to see a TAS of that 06:07:26 Nah, it's just that it's also a morpheme which gets composed with things, unlike English where it's pretty much standalone. 06:08:08 Nothing mystical or magical 'bout it. 06:08:12 shame there aren't any on tasvideos 06:08:23 i wouldn't go that far 06:08:24 that game's luck engine is so utterly ridiculous 06:09:21 itidus20: I would. Japanese tends to have extremely general morphemes which get composed into more complex yet general words. It really is just how the language works. :) 06:09:42 ok, the morpheme is mysterious then 06:09:51 -!- ais523 has quit (Remote host closed the connection). 06:12:40 No more so than any other. 06:13:18 heres an interesting one: http://www.aikiweb.com/forums/showpost.php?s=27fc6a9bcfa745aac1fa09ae1afaa5b3&p=99677&postcount=6 06:13:30 -!- oerjan has quit (Quit: Good night). 06:14:13 from, big debate about 2 words omote and ura: http://www.aikiweb.com/forums/showthread.php?t=7802 06:15:07 You're one of those people that goes "NEKO NEKO KAWAII DESU DESU", aren't you? 06:16:02 no 06:16:23 :-s 06:16:42 Hmm? 06:17:57 i wish i knew it better, but i know i don't know it 06:19:04 i find it mystical due to it being the term associated with glitches which only occur in japanese software 06:19:32 that is basically what i am stuck on 06:20:19 Hi guys, I'm thinking about arranging an esolang course for the University of Helsinki, but my connection with the community ceased around 2004... so... can you enlighten me on the highlights after that, preferably languages that had new ideas and were not just addons / encodings for already existing esolangs, and interesting findings (such as the discovery of first loop in Malbolge)? 06:20:24 wiki says: The term itself became globally popularized when video gamers in the 1980s began sharing their game-related urawaza online.[1] 06:20:33 of "ura waza" 06:20:58 atehwa: heh; any relation to fizzie, Deewiant? 06:21:01 oh wait 06:21:09 can check 06:21:10 aalto is a different thing isn't it... 06:21:25 you wacky finns. and your universities 06:21:34 :P 06:21:51 I can try and give a comprehensive-ish answer but it'll have to wait until tomorrow 06:22:06 oh ais has left unfortunately 06:22:13 he'd be a good person to ask 06:22:19 (ais523) 06:22:40 ok 06:22:56 atehwa: I will say that Underload is one of the most interesting esolangs since 06:23:01 also BCT 06:23:11 see esolangs.org/wiki 06:23:36 yes, Aalto is a combined college of technical, artistic and economic schools 06:24:17 elliott: well, I know the wiki, but it seems that the number of langs / year has been going up ever since 2002, and most of the new languages are really uninteresting. 06:24:29 -!- SgeoN1 has joined. 06:26:12 -!- Sgeo has quit (Ping timeout: 255 seconds). 06:26:46 but anyway, thanks already, I'll check Underload, BCT and Grasp. 06:27:35 -!- elliott has quit (Ping timeout: 252 seconds). 06:31:30 I like Glass, but that's mostly personal language preference, not out of some sort of inherent amazingivity. 06:32:30 Also Feather would be a good language to cover, if it just existed. 06:33:12 -!- Sgeo has joined. 06:33:16 ... 06:33:17 The Befunges are probably worth mentioning due to seeing most "real-world" use 06:33:20 ^source 06:33:20 http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 06:33:22 Etc. 06:33:36 fungot: How do you feel to be an example of "real-world" use? 06:33:36 fizzie: " works here now. the point is 06:33:46 fungot: ...the point is? 06:33:46 fizzie: but since it runs in sandbox mode... i never thought of that myself 06:33:56 Aw, he's being incoherent again. 06:34:15 No, fungot, we are not letting you out of the box. We don't trust you to be Friendly. 06:34:16 Sgeo: i understand why it's distracting. and i did both an fnord and running it on ' fnord' 06:35:24 DAMMIT ABIWORD HAS NO AUTORECOVERY 06:35:56 Oh, everything's still here, good 06:36:00 abiword? 06:36:05 are we still in the 90s? 06:36:29 WordPerfect is the 90's 06:37:15 WordPerfect is also the 80s. 06:38:47 WP42 is from 1986; the very popular WP51 is from 1989; I don't think the Windows versions in the 1990s were ever all *that* popular. 06:39:58 throughout the first half of the 90's i didn't even know windows 06:40:08 i know windows since v. 95 06:42:05 Through the first half of the 90's I didn't even know my ABCs. :P 06:42:14 Piet might also be a notable "image-based language" example to mention, though it's not "after 2004" so it's not part of the question. 06:42:39 Your abstract base classes. 06:48:07 -!- Nisstyre has quit (Quit: Leaving). 06:49:09 -!- monqy has quit (Quit: hello). 06:50:07 I am in a good mood now. 06:50:15 Just read what I actually typed up 06:50:20 -!- sebbu has quit (Read error: Connection reset by peer). 06:50:22 Apparently my step-mother's losing this case 06:50:48 -!- sebbu has joined. 06:50:49 -!- sebbu has quit (Changing host). 06:50:49 -!- sebbu has joined. 06:50:58 Hmm, actually, wow that sounds like a nasty thing for me to say 06:51:33 divorce case? 06:52:28 No 06:53:10 Something against a car insurance company. 06:54:58 Deewiant: oh, I'll definitely include fungeoids, especially Befunge, because it continues to fascinate people 06:56:05 And, uh... BF Joust? There was a veritable flurry of BF Jousting going on on-channel some time ago. It's at least different. 06:56:55 Only if you count Redcode, methinks 06:57:31 Deewiant: Well, it's sort-of a real world use case too. :p 06:57:55 But it's not /really/ the same language 06:58:15 Closely inspired by, at least. 06:58:19 I have a vague feeling I have some (possibly qualified as "former" in my case) acquaintances shared with atehwa. Possibly from the direction of the irtie/bC! circles? The name rings a bell. 06:58:53 I recognize the name but probably just from some random netplace 06:58:59 fizzie: I was still there when Piet came, didn't look properly into that, though. I can check Glass out. 06:59:11 Deewiant: Were you on the mailing list? 06:59:39 No, but I've read through the few archives that mtve handed over (where's the rest‽) 06:59:47 atehwa: Didn't you run the mailing list? 07:00:19 yes, I did. :) 07:00:29 I didn't shut it down properly, though. 07:00:45 And the failure of 2004 Essies was my fault, too. 07:01:22 Deewiant: the archives are at http://esoteric.sange.fi/archive/ 07:01:31 but that does not include the times @ cats-eye 07:01:55 Right, I meant the cats-eye ones 07:04:14 fizzie: and good that you mentioned bf joust, I wasn't aware of that, either 07:04:49 they just had competitions for the shortest bf program to do task 07:04:55 in 2002, I think 07:05:21 BF Joust: the brainfuck-based competitive programming game that has had the most plots plotted out of it. [citation needed] 07:05:54 It seems to me that enthusiasm on CoreWars is declining, too. 07:06:03 http://frox25.no-ip.org/~mtve/tmp/bef_maillist_0_520.txt is a 1996-1997 mailing list log so I'm missing 5 years :-P 07:06:09 There was a really creative time period in that, after the invention of imp rings. 07:11:54 Deewiant: I have a vague feeling I managed to subscribe before the sange.fi times, but I can't find anything older than April 2001 in these old tarballs. 07:12:48 -!- derrik has quit (Quit: gone). 07:18:06 I could check if I have messages from the 90's :) 07:23:08 jeez, my old emails are a terrible mess :( 07:29:22 I saw this on another channel, it has some relevance here so had to post: http://redmine.ruby-lang.org/issues/5054 07:29:52 http://www.youtube.com/watch?v=NM51qOpwcIM ... Lady Gaga actually has talent? Like, she can actually sing? Holy crap. 07:30:20 Fuck you, RIAA, for turning that into a vapid pop star. 07:31:19 itidus20, that's eeeeeeeeeeeeeeeeeeeeeeeeend! 07:32:07 itidus20: seems they're reinviting Lisp's super brackets 07:32:16 Okay, it's not utterly *amazing*, but it's not utterly terrible and artificial. 07:32:25 frankly speaking, i prefer the general super-end token (e|en|end)*end. 07:33:05 (e(nd?)?)*end 07:33:24 at least Interlisp-D still had those 07:33:32 if the tab size is 4 or more then the existing (end\s+)*end should suffice. 07:34:08 An interesting sociological phenomenon that thread mentions is "I wouldn't mind it since I wouldn't use it." vs "I would have to endure it when someone else used it." 07:34:18 [define (foo x) (let [(bar (1+ x] (* foo bar] 07:34:37 they don't put it that way though 07:36:31 -!- copumpkin has quit (Ping timeout: 252 seconds). 07:37:38 -!- copumpkin has joined. 07:39:40 *reinventing 07:39:47 atehwa: i'm just a newbie here. no math skills. etc. it's quite that you're considering an esolang course 07:40:15 i reckon it would be popular 07:40:33 ^interesting 07:40:37 I hope it will :) 07:40:50 it's like the programming underground 07:41:18 If it gathers enough momentum, it would be one thing more for the dpt of computer science to be proud of :) 07:42:21 the department of computer science in the University of Helsinki budgets some of its course money to "courses that are in the interest of students" 07:42:26 so I hope this could be one 07:42:33 How're you justifying it to the higher-ups? 07:42:36 Oh, okay 07:43:01 (yes I'm lagged) 07:43:06 -!- Sgeo_ has joined. 07:43:32 It's pretty easy to justify anyway, though, because not only tend esolangs motivate people and demonstrate the joy of programming, they also have direct connections to the foundations of computing, in a (relatively) tangible form. 07:43:36 -!- SgeoN1 has quit (Ping timeout: 255 seconds). 07:45:24 -!- Sgeo has quit (Ping timeout: 255 seconds). 07:47:58 -!- Taneb has joined. 07:48:05 Hello! 08:01:44 but seriously, it is basically just wilful ignorance to say that thinking about programming stops you getting things done. <-- agreed. 08:01:49 -!- copumpkin has quit (Ping timeout: 252 seconds). 08:02:02 hi Taneb 08:02:14 -!- copumpkin has joined. 08:02:19 i'm now working on something like this: http://codepad.org/DI3V1Tcb 08:02:47 Nice 08:04:06 it'd be a flow graph where the vertex is a pair of step number mod 9 and program index, and the remaining part is to reduce the graph so that i can figure out the actual meaning of it 08:33:41 -!- foocraft_ has joined. 08:36:51 -!- foocraft has quit (Ping timeout: 258 seconds). 08:38:32 -!- paskill has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]). 08:40:18 -!- Taneb has quit (Ping timeout: 252 seconds). 08:48:38 atehwa: s/one more thing for your CS department to be proud of/one more thing for our CS department to be ashamed of/ 08:49:16 There has been talk for a "functional programming in general" course here for years, but it has never materialized. 08:49:50 There was that Scheme course last summer (or the summer before that?), as a special case. 08:49:52 The closest we got was that one final SICP go-through summer thing, and that was more of a memorial service for the abandoned Scheme-based introductionary course. 08:49:53 Yes. 08:51:14 I hear there was even a Coq-using course on theorem proving at their CS department a while back. 08:52:01 I hear their classrooms are paved with gold. 08:52:21 I... don't hear that. 08:52:35 Me neither, to be honest. 08:53:35 T-79.5305 Formal Methods P can sometimes have interesting topics at our place too, though. (And doesn't seem to have been organized after autumn 2008 or so.) 08:55:23 :D 08:55:29 lol @ you guys 08:55:47 I don't have all that much to do with TKTL, really, but there's a lot of friends there 08:56:30 the last time I had something to do with them was when Lambda ry arranged a course on lambda calculus and I gave part of its lectures :) 08:56:50 http://wiki.helsinki.fi/display/haskell/Johdatus+lambda-kalkyyliin 08:57:17 I think I must have seen an advertisement for that somewhere. 08:57:43 wow, it's been three years already :O 09:09:26 -!- pingveno has quit (Ping timeout: 258 seconds). 09:34:02 -!- pingveno has joined. 09:56:06 -!- Phantom_Hoover has joined. 10:02:36 -!- foocraft_ has quit (Quit: So long, and thanks for all the fish!). 10:18:48 oh! There _still_ isn't a spec for a language where the only computation mechanism is colored undirected graph rewriting? 10:19:23 ... but eodermdrome takes the case of uncolored undirected graph rewriting... 10:25:10 -!- jcp|other has joined. 10:25:34 -!- pingveno has quit (Ping timeout: 252 seconds). 10:27:14 -!- jcp- has quit (Ping timeout: 260 seconds). 10:27:36 -!- jcp has quit (Ping timeout: 276 seconds). 10:33:26 -!- jcp has joined. 10:37:26 http://cosmic.mearie.org/tmp/crazy6.png ... oh well. 10:38:03 this is a lot more complex than i expected. 10:39:43 looks like a state graph. 10:40:05 yes that is. 10:40:31 that is a behavior of the instruction 3 in Numberwang, plotted for one subcase out of nine. 10:40:52 \o/ 10:40:52 | 10:40:52 |\ 10:40:59 |/ 10:41:00 | 10:41:04 /o\ 10:41:05 | 10:41:05 /'\ 10:44:42 -!- pingveno has joined. 10:48:03 -!- FireFly has joined. 11:35:21 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 11:35:26 HELP!! THAT MAN HAS NO HEAD!! 11:48:34 -!- Phantom_Hoover has joined. 11:58:42 -!- boily has joined. 12:06:47 > 1563 / 251 12:06:48 6.227091633466135 12:06:48 Phantom_Hoover: You have 15 new messages. '/msg lambdabot @messages' to read them. 12:07:37 Dammit elliott. 12:10:19 !bfjoust test_ish >>>>>>>++[>>[-]<-] 12:10:27 ​Score for atehwa_test_ish: 10.0 12:10:59 tadaaa 12:16:20 !bfjoust test_ish >>>>>>>++[>>[--.]<-] 12:16:23 ​Score for atehwa_test_ish: 3.0 12:17:05 !bfjoust test_ish >>>>>>>++[>>[-.]<-] 12:17:07 ​Score for atehwa_test_ish: 12.2 12:17:38 !bfjoust test_ish2 (>)*7++(>>[-.]<-)*22>[[-.]] 12:17:40 ​Score for Deewiant_test_ish2: 11.5 12:18:05 !bfjoust test_ish >>>>>>>++[>>[----.]<-] 12:18:08 ​Score for atehwa_test_ish: 6.9 12:20:54 heheh 12:20:55 69 12:21:27 !bfjoust test_ish (>)*7(>>[-]<-)*22>>[-] 12:21:30 ​Score for atehwa_test_ish: 9.4 12:22:39 atehwa: That >> will make you run off the end of the tape on odd tape lengths 12:22:53 !bfjoust test_ish (>)*7(>>[-]<-)*22>>[[-]<+++] 12:22:55 ​Score for atehwa_test_ish: 9.4 12:23:01 Deewiant: I think it is balanced out by < 12:23:15 atehwa: No it's not, because you only do the < afterwards 12:23:27 !bfjoust test_ish (>)*7(>>[-]<-)*22>[[-]<+++] 12:23:27 atehwa: You will lose as soon as you exit the tape, whether you write there or not 12:23:29 ​Score for atehwa_test_ish: 9.4 12:23:37 (Or read) 12:24:10 Oh, but you only move 7 at the start, fair enough 12:24:13 My bad 12:24:16 yes, but how does it depend on the tape length being _odd_, because the loop only proceeds one tape place per iteration? 12:24:25 Yeah, I was confusing myself 12:24:28 ok 12:24:50 !bfjoust test_ish (>)*7(>>[-.]<-)*22>[[-]<+++] 12:24:52 ​Score for atehwa_test_ish: 10.5 12:24:58 Did I miss anything good? 12:25:02 one can only wonder... :) 12:25:19 no, I'm just testing this thing out for the first time. 12:26:08 Plugin `tell' failed with: thread killed 12:26:15 04:53:53: if you don't think, you can't accomplish anything. programming is a science. 12:26:27 No it isn't, it's maths mixed with the odd bit of engineering. 12:27:04 They're like the exact opposite things. 12:28:14 04:56:23: elliott, standard model is *awful* I don't care who you are 12:28:33 Oh, look, a biologist who codes hates the standard model. 12:28:41 Clearly this means we should all jump ship. 12:30:21 !bfjoust test_blah (>)*9([(-)*120[-]]>)*21[[-]<+++] 12:30:23 ​Score for atehwa_test_blah: 27.1 12:31:01 yay I made it on the hill :) 12:31:42 !bfjoust test_blah (>)*9([(-)*120[-]]>)*21[[+]<--] 12:31:45 ​Score for atehwa_test_blah: 27.4 12:32:29 !bfjoust test_blah (>)*9([(-)*120[-.]]>)*21[[+]<--] 12:32:31 ​Score for atehwa_test_blah: 23.1 12:32:38 !bfjoust test_blah (>)*9([(-)*120[-]]>)*21[[+.]<--] 12:32:41 ​Score for atehwa_test_blah: 27.4 12:33:01 !bfjoust test_blah (>)*9([(-)*110[-]]>)*21[[+]<--] 12:33:04 ​Score for atehwa_test_blah: 29.0 12:33:18 !bfjoust test_blah +(>)*9([(-)*110[-]]>)*21[[+]<--] 12:33:21 ​Score for atehwa_test_blah: 28.6 12:33:35 !bfjoust test_blah (+>)*9([(-)*110[-]]>)*21[[+]<--] 12:33:38 ​Score for atehwa_test_blah: 23.6 12:33:48 !bfjoust test_blah (>)*9([(-)*100[-]]>)*21[[+]<--] 12:33:51 ​Score for atehwa_test_blah: 28.3 12:33:58 !bfjoust test_blah (>)*9([(-)*105[-]]>)*21[[+]<--] 12:34:00 ​Score for atehwa_test_blah: 27.4 12:34:07 !bfjoust test_blah (>)*9([(-)*90[-]]>)*21[[+]<--] 12:34:10 ​Score for atehwa_test_blah: 26.8 12:34:21 atehwa: I'd say you probably spend way too much time decrementing in that loop. 12:34:24 I wonder if one could make a binary search on the optimal value. 12:34:40 One could, but it's not that useful. 12:34:46 It's based on the current hill. 12:34:49 you will be rushed at that point by most jousters. 12:34:52 true. 12:35:15 another take... 12:35:50 !bfjoust test_blah (>)*9([-[-[-[-[(-)*115[-]]]]]]>)*21[[+]<--] 12:35:53 ​Score for atehwa_test_blah: 18.7 12:36:18 !bfjoust test_blah (>)*9([(-)*110[-]]>)*21[[+]<--] 12:36:21 ​Score for atehwa_test_blah: 29.0 12:36:21 115 is still a lot 12:36:27 still wayy too much time spent making decoys. 12:36:29 Make it less than 20 12:37:24 Deewiant: but if the flag reaches zero during (-)*x, it won't even stay down for two cycles? 12:37:33 True 12:37:57 What you should really do is have that be (+)*x where x is smalish 12:37:59 smallsih* 12:38:01 smallish* 12:38:07 With the idea of taking out decoys 12:38:38 As it is, you're spending over 115 cycles on a lot of initially-blank cells 12:38:43 And thus not getting anywhere. 12:38:49 I see. But that's not the point, the point is to speed up the rush, and not care about decoys. 12:38:57 and most of the current jousters are pretty sophisticated and will just skip your decoys. 12:39:06 no no, initially-blank cells are skipped over by [] 12:39:26 Initially-blank cells will quickly be set to non-initially-blank by faster rushers 12:39:38 that I can believe. 12:39:39 And then you can end up stuck on them for a long time if they did it with a - instead of a + 12:39:58 I think the choice of sign is mostly irrelevant, right? 12:40:09 Using different signs helps 12:40:09 since the polarities flip on half of the matchups. 12:40:16 oh, yes, ina single program 12:40:19 of course, I can see if this decoy-thinking helps 12:40:20 switching the sign is good. 12:40:29 !bfjoust test_blah (>)*9([(+)*10[-]]>)*21[[+]<--] 12:40:32 ​Score for atehwa_test_blah: 21.6 12:40:41 what's the link to that place where you can submit your jouster and then watch an animation of the tape? 12:40:44 atehwa: You can use http://codu.org/eso/bfjoust/egojsout/ for some visual testing 12:40:48 CakeProphet: That 12:40:52 yes, that. quite helpful. 12:41:16 !bfjoust test_blah (>)*9([(-)*115[-]]>)*21[[+]<--] 12:41:19 ​Score for atehwa_test_blah: 26.6 12:41:47 !bfjoust test_blah (>)*9([(-)*110[-]]>)*20[-] 12:41:49 though, I quickly became discouraged after I could actually see how difficult it was to beat anything. 12:41:50 ​Score for atehwa_test_blah: 28.4 12:42:48 atehwa: My bots are fairly simple, I think they're nice to test against since they don't have complex behaviour (or complex-to-understand simple behaviour) 12:43:06 !bfjoust test_blah (>)*9([++++[-[-[-[-[-[-[-[(-)*110[-]]]]]]]]]>)*20[-] 12:43:09 ​Score for atehwa_test_blah: 0.0 12:43:17 I've considered having a declaritive style domain-specific language to specify properties of a jouster. 12:43:23 :) 12:43:23 *declarative 12:43:25 that would be interesting. 12:44:03 you should really consider using smaller numbers for decrement 12:44:12 also using preset numbers for decoy-clearing / flag-clearing is a bad idea. 12:44:54 atehwa: That's a syntax error 12:44:57 but really, (+)*10[-] is a different idea than (-)*110[-] 12:44:59 Which is why it lost so much 12:45:14 they have a different goal 12:45:31 Yes, and the (+)*10[-] just works better in practice :-P 12:45:40 did not this time, I tested it already. 12:45:59 egojsout says "Unmatched loop" 12:46:00 could work better, of course, in a different context. 12:46:12 I miscounted the brackets. 12:46:16 Yep 12:47:13 !bfjoust test_blah (>)*9([++++([-{[(-)*110[-]]}])%8>)*20[-] 12:47:15 ​Score for atehwa_test_blah: 0.0 12:48:02 ([+++ the [ isn't closed 12:48:11 !bfjoust test_blah (>)*9([++++([-{[(-)*110[-]}])%8]>)*20[-] 12:48:14 ​Score for atehwa_test_blah: 0.0 12:48:21 jeez 12:48:23 Deewiant, doesn't )*20 close it? 12:48:43 No 12:48:50 what does that close then 12:49:02 oh wait the ] isn't matched 12:49:03 right 12:49:36 !bfjoust test_blah (>)*9([++++([-{(-)*110[-]}])%8]>)*20[-] 12:49:39 ​Score for atehwa_test_blah: 26.3 12:50:15 !bfjoust test_rush (>)*9([(-)*110[-]]>)*21[-] 12:50:17 ​Score for atehwa_test_rush: 29.8 12:50:29 that's still the best one I could come up with so far. 12:50:36 Again, "best" for the current hill 12:50:40 yes. 12:50:42 They have different characteristics 12:50:51 I prefer this one because it doesn't push allegro down to fourth place ;-) 12:50:59 yes, I played koth sometime :) 12:51:25 sometimes you could get back on the hill with a warrior that had been dropped :) 12:51:33 it all goes in cycles 12:51:36 Yep 12:52:45 !bfjoust (>)*8(>[(<)*8(-)*33(>)*8([-[++[(+)*9[-]]]]>)*21])*21> 12:52:45 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 12:52:52 !bfjoust copypasta (>)*8(>[(<)*8(-)*33(>)*8([-[++[(+)*9[-]]]]>)*21])*21> 12:52:54 ​Score for CakeProphet_copypasta: 16.5 12:53:10 one could also automate the fine-tuning. 12:55:39 !bfjoust test_rush (-)*123(>)*9([(-)*110[-]]>)*21[-] 12:55:42 ​Score for atehwa_test_rush: 33.4 12:55:54 !bfjoust shudder (++-)*100000 12:55:59 ​Score for CakeProphet_shudder: 15.3 12:56:02 heh. 12:56:05 :D 12:56:12 That's an old classic 12:56:23 atehwa: Do you really want to special-case the last cell on 30-long tapes? :-P 12:57:03 actually, I was too lazy to calculate for off-by-one mistakes :) 12:57:44 Make it *8 instead of *9 and put the > in front and drop everything after the *21 12:58:23 !bfjoust test_rush (-)*123(>)*8(>[(-)*110[-]])*21 12:58:25 ​Score for atehwa_test_rush: 33.4 12:58:53 it's almost the same what I append at the end of the program... 12:59:08 -!- copumpkin has quit (Ping timeout: 250 seconds). 12:59:32 -!- copumpkin has joined. 13:03:35 Updated that http://zem.fi/egostats/ too, though it's quite a few programs out-of-date again already. It's very slow in the plotting. 13:04:32 in advance to all apple fanboys: stfu 13:08:10 atehwa: Re. automating fine-tuning, ais523_waterfall or some version of it was originally tuned with a genetic algorithm until it beat all programs on the hill 13:08:30 I'm not surprised. :/ 13:10:32 -!- BeholdMyGlory has joined. 13:12:20 -!- Taneb has joined. 13:17:32 !bfjoust test_rush (-)*123(>)*12(+)*40<<<<(>[(-)*110[-]])*21 13:17:34 ​Score for atehwa_test_rush: 18.6 13:17:52 my program wins by joining the ends of the tape together, moving a step back, and performing a careless clear. 13:17:54 (>)*12 --> auto-lose on three tape lengths 13:18:09 !bfjoust test_rush (-)*123(>)*8(>[(-)*110[-]])*21 13:18:12 ​Score for atehwa_test_rush: 33.4 13:18:28 Deewiant: yeah, I just wanted to see if it will pay off. 13:18:42 Auto-losing generally doesn't pay off :-) 13:18:56 !bfjoust suicide < 13:18:59 ​Score for CakeProphet_suicide: 0.0 13:19:12 fasted losing program. 13:19:12 It could, if it's for statistically few enough cases. 13:19:14 *fastest 13:19:28 It could, yes, but it generally doesn't. 13:19:54 !bfjoust foo (-)*123(>)*8(+)*40(>[(-)*110[-]])*21 13:19:57 ​Score for Deewiant_foo: 32.8 13:20:16 the best solution is to add hundreds of intricate loops that account for every tape length / enemy strategy / blah blah 13:20:21 A bit better. 13:20:24 !bfjoust foo < 13:20:27 ​Score for Deewiant_foo: 0.0 13:20:45 CakeProphet: Yeah, see waterfall3 13:21:11 bfjoust? 13:21:22 http://www.esolangs.org/wiki/BF_Joust 13:22:41 Interesting 13:42:07 Hey, people who live in random European countries get to watch movies and read books in English. 13:42:18 That's neat. I wish I lived in a random European country. 13:42:36 Clearly, that will happen to me if I continue Finnishly babbling. 13:42:58 Povistaa malamutii täypin. 13:43:31 Why babble 13:43:39 tswett, but you get to see Australian things before the rest of us! 13:43:57 Because I don't know enough actual Finnish to actually speak Finnish. 13:44:05 Phantom_Hoover: lies. I actually live in India. 13:46:08 I don't see the chain of reasoning from "I don't speak Finnish" to "I should babble Finnish-sounding nonsense" 13:47:14 it sounds like a good idea, though. 13:47:34 Of course it does. 13:47:38 Pitää. 13:47:53 See, that was a real word. 13:47:56 I'm improving. 13:48:11 Maa. Kotimaa. 13:48:22 mmm palindromes. 13:48:39 Äatipitää. 13:48:39 I am quite satisfied with this palindrome generator thing I wrote a few days ago. 13:49:13 "Äati" is a no-go 13:49:37 i'm sure it was a typo 13:54:48 -!- quintopia has quit (Remote host closed the connection). 13:58:09 @src scanl 13:58:10 scanl f q ls = q : case ls of 13:58:10 [] -> [] 13:58:10 x:xs -> scanl f (f q x) xs 13:58:54 isn't it also map (foldl f q) (inits ls) 14:01:00 @check \q xs -> scanl subtract q xs == map (foldl subtract q) (inits xs) 14:01:00 "OK, passed 500 tests." 14:01:21 -!- copumpkin has quit (Ping timeout: 246 seconds). 14:01:45 -!- copumpkin has joined. 14:08:07 > concat . inits $ [0..] 14:08:09 [0,0,1,0,1,2,0,1,2,3,0,1,2,3,4,0,1,2,3,4,5,0,1,2,3,4,5,6,0,1,2,3,4,5,6,7,0,... 14:08:39 > sum . concat . inits $ [0..10] 14:08:42 220 14:09:08 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:09:27 > zipWith (*) [0..10] (reverse [10..0]) 14:09:28 [] 14:09:54 > sum $ zipWith (*) [0..10] (reverse [0..10]) 14:09:55 165 14:10:11 > sum $ zipWith (*) [1..10] (reverse [1..10]) 14:10:12 220 14:11:17 > map length $ inits [0..10] 14:11:18 [0,1,2,3,4,5,6,7,8,9,10,11] 14:12:24 > iterate (map length . inits) [0..1] 14:12:26 [[0,1],[0,1,2],[0,1,2,3],[0,1,2,3,4],[0,1,2,3,4,5],[0,1,2,3,4,5,6],[0,1,2,3... 14:23:19 > iterate (map length . inits) [0..] 14:23:21 [[0,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... 14:25:00 interesting idea because map length . inits seems to increase the length of the list by one. 14:25:07 -!- mundi has joined. 14:25:22 -!- cheater_ has quit (Ping timeout: 250 seconds). 14:26:11 -!- cheater_ has joined. 14:28:05 -!- mundi has left ("Ex-Chat"). 14:37:04 -!- cheater_ has quit (Ping timeout: 250 seconds). 14:38:01 -!- cheater_ has joined. 14:41:14 hmmm, seems that Haskell has lost its 4th place status in the Great Language Shootout. 14:41:19 it was apparently second at one point. 14:43:58 -!- NihilistDandy has quit (Read error: Connection reset by peer). 14:44:49 -!- copumpkin has joined. 14:51:33 -!- cheater_ has quit (Ping timeout: 255 seconds). 14:52:28 -!- jcp|1 has joined. 14:52:48 -!- jcp has quit (Ping timeout: 276 seconds). 14:52:53 !bfjoust random [+-.+..].[>>>>.<->[>]-.-<].[<-..<.][[]<><]-<<[[>.-><>.+[[-+]..-+[>+<>]>[+]]]]+>[.[+.-<-<+.<+[<>[[<[.->]]]]]] 14:52:55 ​Score for Taneb_random: 12.7 14:54:03 That did better than I thought it would 14:54:12 -!- jcp|other has quit (Ping timeout: 246 seconds). 14:55:26 -!- jcp has joined. 14:57:58 Did you really submit a fully random program? 14:58:30 !bfjoust random-reduced [+-.+..] 14:58:33 ​Score for Lymee_random-reduced: 12.5 15:00:08 Taneb, did you write an evolver? 15:00:37 Nah, just made a few random ones and used the best one 15:00:47 Lymee: That's not quite reduced, if the opponent does a -- or ++ style clear, the ] can pass 15:00:58 An evolver would probably be better 15:01:09 !bfjoust random-reduced [+-+] 15:01:12 ​Score for Lymee_random-reduced: 11.7 15:01:39 How about "dead code eliminated" 15:01:53 It's not equivalent, is what I meant 15:01:58 That code isn't necessarily dead 15:02:03 It doesn't do anything useful. 15:02:05 Although in practice is likely to be 15:02:42 If the opponent comes to your flag and does (-)*100000, that code will be executed :-P 15:02:55 Well, if it does it at the right time 15:03:12 It's unlikely to do anything helpful, at least. 15:03:22 That much is true 15:04:20 -!- cheater_ has joined. 15:05:00 What does . do in bfjoust? 15:05:36 noop 15:05:36 nop 15:05:44 noöp 15:08:00 Now, if I had actually written an evolver 15:11:31 Rather than taken one of the worst approaches to BFJoust programming possibl 15:11:33 e 15:11:56 I may have been higher on the highscore list 15:14:15 > [0..] >>= (`replicateM` "<>[]+-.") 15:14:17 ["","<",">","[","]","+","-",".","<<","<>","<[","<]","<+","<-","<.","><",">>... 15:14:27 run this until you beat everything on the hill. 15:14:43 you could add a filter to ensure brackets are balanced. 15:16:25 > sum . map (7^) $ [0..1000] 15:16:27 146213274662667137112548063777985657385914925426115053337407750877446569570... 15:16:35 yeah that shouldn't take very long. 15:17:17 -!- quintopia has joined. 15:17:18 -!- quintopia has quit (Changing host). 15:17:18 -!- quintopia has joined. 15:18:04 hmmm, well, you could treat a pair of balanced brackets as a single character for the purposes of counting possibilities. 15:18:10 > sum . map (6^) $ [0..1000] 15:18:12 169993231486018340685555030298982692999685661970922295867882569185687427371... 15:18:41 see? that's not very many possibilities at all within set of bfjoust programs less than or equal to 1000 characters long. 15:18:43 And discount programs that have a < before any >s 15:18:57 ah, yeah I can't calculate that number easily.. 15:19:58 who knows it might be a viable solution that won't take 1 billion years to execute. 15:20:44 it would be interested to see the winning program. It would be literally be one of the most optimal bfjoust programs, pulled out of the realm of possibility. 15:20:49 *interesting 15:21:05 I've exceeded my typo limit. Thats means I have to go to sleep now. good night. 15:21:44 -!- jcp|other has joined. 15:22:17 (Future plan: create virus. establish botnet. find optimal bf joust programs from the set of all bfjoust programs 15:22:20 ) 15:23:21 -!- jcp has quit (Ping timeout: 276 seconds). 15:23:36 -!- jcp|1 has quit (Ping timeout: 246 seconds). 15:25:31 Select four programs: A, B, C, and D. Pit A against B and C against D. WLOG, assume A and C win. Kill B and D and replace them with A and C's offspring. 15:29:56 -!- jcp has joined. 15:33:43 -!- monqy has joined. 15:34:22 -!- pikhq has quit (Ping timeout: 240 seconds). 15:34:27 -!- pikhq_ has joined. 15:36:52 The fizzie_evo_4 program was evolved against some old hill a bit like that; it's quite close to one of the members of the starting population, which were the wiki's BF Joust article's examples. 15:55:27 -!- cheater_ has quit (Ping timeout: 255 seconds). 15:55:52 -!- cheater_ has joined. 16:05:23 -!- Phantom_Hoover has quit (Quit: Leaving). 16:23:39 -!- Nisstyre has joined. 17:31:36 -!- Taneb has quit (Ping timeout: 252 seconds). 17:36:44 -!- MigoMipo has joined. 17:40:51 -!- CakeProphet has quit (Ping timeout: 240 seconds). 17:52:52 -!- CakeProphet has joined. 17:52:53 -!- CakeProphet has quit (Changing host). 17:52:53 -!- CakeProphet has joined. 17:53:50 Serafina Pekkala. 17:58:46 halp 17:58:48 http://satwcomic.com/ 17:58:54 someone translate :( 18:00:48 Apparently, it's all done by Google Translate. So, use Google Untranslate to get it back to English. 18:04:32 oic 18:06:20 Ooh, I can almost read that first sentence. "Jag har undrat, varför har du en fisk på huvudet?" 18:06:49 It's, like... "I ___ ______, wherefore hast thou an fish __ _______?" 18:07:53 "An boat? Wherefore will thou have an boat __ _____ ____?" 18:08:40 på huvudet -> on [your] head. 18:08:58 Wherefore hast thou an city upon head? 18:09:03 The Finnish is not terribly correct, but, well, Google Translate. 18:09:28 har undrat -> have wondered. 18:10:08 fizzie: do you always translate into shakepearean english 18:10:28 Not me, tswett. 18:10:39 Only when translating from Germanic languages. 18:10:46 oh god you people with your names that are the same length 18:10:55 WHEREFORE ART THOU JOHN 18:11:12 Oh, it's easy to tell us apart. My name is white, everyone else's is gray. 18:11:14 FOR THINE MOBILE RINGETH NOT 18:11:19 AND GOETH STRAIGHT TO VOICEMAIL 18:12:14 -!- Taneb has joined. 18:12:54 What's happening in the world of esoteric programming? 18:13:48 Taneb: dependently typed befunge 18:14:38 How does that work? 18:15:44 who knows, i just made it up 18:16:12 brb 18:22:57 -!- elliott has joined. 18:23:11 Hello 18:23:13 hi 18:23:13 elliott: You have 6 new messages. '/msg lambdabot @messages' to read them. 18:23:17 wow 18:23:36 elliott, can you whitelist me on the Minecraft server? 18:24:11 yep; gimme a minute first though, I just got online 18:24:18 Fair enough 18:28:46 elliott: My request is still pending. 18:29:17 Though, I've got shit I should probably doing ATM, so whatever. :P 18:29:55 pikhq_: I know; it's just that we've only really tested the server up to the limits of the people who were on during testing, so I'm trying to make sure everything will run stably with lots of RAM left over, etc. with more people before I let anyone else on... 18:30:04 Don't worry, there's nothing much at all on the server right now. Not even a house. :p 18:30:30 elliott: Hooray, everyone being too lazy to play a game! :P 18:31:27 pikhq_: It's been up with the real map for exactly two days; we've been focusing on mining a bunch of resources and trying to find a spot to build a civilisation :P 18:32:38 More like one day, actually 18:33:45 And then my speaker decided to take a suicide leap off my desk. 18:34:38 -!- elliott has quit (Read error: Connection reset by peer). 18:35:17 -!- azaq23 has joined. 18:36:50 -!- CakeProphet has quit (Ping timeout: 264 seconds). 18:36:50 -!- CakeProphet has joined. 18:36:51 -!- CakeProphet has quit (Changing host). 18:36:51 -!- CakeProphet has joined. 18:37:34 http://www.coltech.vnu.edu.vn/~hoangta/jvse2010/Sakai-JVSE2010.pdf looks like this link never appeared in this channel. 18:39:40 -!- elliott has joined. 18:39:45 -!- elliott has quit (Changing host). 18:39:45 -!- elliott has joined. 19:11:31 -!- CakeProphet has quit (Ping timeout: 240 seconds). 19:18:00 -!- CakeProphet has joined. 19:18:00 -!- CakeProphet has quit (Changing host). 19:18:00 -!- CakeProphet has joined. 19:23:15 -!- CakeProphet has quit (Ping timeout: 240 seconds). 19:24:18 00:13:55: > fix error 19:24:19 00:13:57: "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E... 19:24:19 00:14:07: It's clearly returning a [Char] 19:24:19 00:14:14: no 19:24:19 00:14:15: One that makes /sense/ at that. 19:24:21 Lymee: not in the way you think 19:24:26 00:14:57: Lymee: The show routine is printing out the initial " for the string. 19:24:26 00:14:57: error s = throw (ErrorCall s) 19:24:27 00:15:20: Lymee: And then the RTS starts outputting that it got an exception, so it prints *Exception: . 19:24:29 00:15:30: Lymee: And then, it tries to output the error message for that. 19:24:31 00:15:36: Lymee: And then the RTS starts outputting that it got an exception, so it prints *Exception: . 19:24:34 00:15:42: Lymee: And so on. 19:24:36 yeah 19:24:40 note how there's no closing quote in error (error "wat") 19:25:14 So... 19:25:21 You can have an exception while displaying the exception string. 19:25:47 > let evilValue = fix error in True || evilValue 19:25:48 Couldn't match expected type `GHC.Bool.Bool' 19:25:48 against inferred type ... 19:26:17 Lymee: you can have an exception while evaluating any value 19:26:23 an error string happens to be a value :) 19:26:28 fix error is of type String 19:26:29 because 19:26:33 fix :: (a -> a) -> a 19:26:37 error :: String -> a 19:26:47 so (String -> a) has to become (b -> b) 19:26:52 b=String is the only thing that fits 19:27:03 I see. 19:27:04 Makes sense 19:27:20 > let evilValue = fix error `seq` False in True || evilValue 19:27:22 True 19:27:33 that's not really an evil value any more than an infinite loop is 19:27:53 Lazy evaluation gets confusing. 19:28:07 that case is very obvious :P 19:29:22 I'm making an observation. 19:29:27 :) 19:29:31 01:09:34: > let throw# = \x -> x in error "this wont work i dont think" 19:29:31 01:09:36: *Exception: this wont work i dont think 19:29:31 thankfully, haskell is lexically scoped 19:31:14 I'm aware. 19:33:45 :t fix 19:33:46 forall a. (a -> a) -> a 19:36:55 -!- oerjan has joined. 19:37:16 haha nonlexical scoping 19:40:44 -!- CakeProphet has joined. 19:41:50 04:56:23: elliott, standard model is *awful* I don't care who you are 19:41:50 Oh, look, a biologist who codes hates the standard model. 19:41:50 Clearly this means we should all jump ship. 19:41:53 hey now 19:41:58 I'm a polymath 19:42:02 just mostly focused on biology :) 19:42:07 would I be programming if that were my sole interest 19:42:10 it's just not my life 19:42:21 besides I find most hard CS people are really just closet lambda calculus nerds 19:42:23 no offense :P 19:43:16 yep, you don't understand functional programming so all CS is just \calculus nerding, reasonable conclusion to make 19:45:43 this again? 19:45:58 apparently 19:46:55 i still need to learn it. there must be an easy way to understand functional programming 19:47:11 Elizacat: and is this why CS is an awful thing? 19:47:36 i think possibly it's because lambda calculus is the simple model of computation which corresponds closest to high-level mental concepts 19:47:58 no that's goto and print 19:48:18 goto isn't high-level 19:48:28 i mean TMs are TC, but programming them is still essentially esoteric 19:48:29 here oerjan discovers sarcasm 19:48:52 second best only to puns 19:48:58 elliott: you need to use the new reddit convention of embedding /s in the alt text of your punctuation 19:49:14 oerjan: but then we'd know for _sure_ that elizacat was serious 19:50:11 while lambda calculus is just very thin syntactic sugar from actually being usable 19:50:45 oerjan: if that: /me links to http://tinyconcepts.com/invaders.html again :P 19:51:02 (ok so the "array" code is pretty ugly, but that's just the fault of the choice of datatype :P) 19:52:07 I'm only half serious 19:52:12 that code has no line breaks in my browser :( 19:52:15 trust nobody but me 19:52:20 taking me seriously may be hazardous to your health 19:52:26 harmful or fatal of swallowed 19:52:35 if you have an erection lasting more than four hours seek immediate medical help 19:52:43 all very sound advice. 19:52:46 elliott: that already is a bit of syntactic sugar, you have equations and multiletter identifiers :P 19:53:16 oerjan: well ok :P 19:53:17 although the latter might be all you really need for some readability 19:53:29 oerjan: I consider identifiers irrelevant for \calculus 19:53:40 The form with explicit variables is just defined on a set of variable names :P 19:53:47 In any circumstances, unless battling a mime, do not attempt to punch yourself in the face. 19:54:04 oerjan: top-level letrec is probably the important thing 19:54:11 elliott: "usable" includes readability considerations 19:54:12 I know this from personal experience. 19:54:27 elliott: yeah easy recursion is somewhat important 19:54:33 oerjan: yes, I'm just saying that multi-letter variables aren't a change IMO 19:54:39 That's how I consider the lambda calculus normally 19:54:45 ok 19:55:01 oerjan: well fix is easy enough, but mutual recursion is very hard in the lambda calculus, you basically have to inline all the mutual functions within each other... 19:55:26 you can formulate letrec in the lambda calculus though, so the only sugar is not having to name every bound variable as a parameter to the bound variable, pretty much 19:55:37 by giving them directly-associated names instead 19:55:44 de-sugaring is trivial 19:56:53 I know this from personal experience. <-- i am starting to get an inkling you use this phrase a lot 19:57:27 oerjan: do you know that from personal experience? 19:57:35 damn it elliott I was going to say that 19:57:55 now im cyring 19:58:10 do you ever not cry 19:58:16 Look, I often walk my dog through a field with cows in it. And I punched myself in the face once. 19:58:25 `addquote Look, I often walk my dog through a field with cows in it. And I punched myself in the face once. 19:58:28 519) Look, I often walk my dog through a field with cows in it. And I punched myself in the face once. 19:59:03 monqy: you snooze, you lose 19:59:13 Taneb: is that your life story 19:59:22 i dropped my lunch and was picking it up off of the floor this is my excuse 19:59:30 No, I also grew a moustache when I was twelve 20:02:52 Well, in less than a year I'll be thinking about choosing what to do at university 20:03:09 elliott: well if you can use fix you should also be allowed to use letrec (since both can be defined) 20:03:32 oerjan: I'm just saying that you can have a top-level set of mutual bindings in the lambda calculus almost directly 20:04:01 you can define a letrec such that (with [...] sugar for lists because I'm lazy) `letrec [\[a,b,c]. ..., \[a,b,c]. ..., \[a,b,c]. ...]` works 20:04:07 with the first being a, second b, third c 20:04:18 so basically, top-level mutual bindings are just thin syntactic sugar 20:04:22 and that's all you really need 20:04:52 hm i was about to write something like that, but without lists 20:05:06 oerjan: how could you do it without lists? 20:05:13 well, actually 20:05:15 that's just fix 20:05:23 well the letrec would then depend on number of functions 20:05:24 fix (\[a,b,c]. [..., ..., ...]) 20:07:56 -!- olsner has quit (Read error: Operation timed out). 20:08:33 fix (\l a b c -> l (def. a) (def. b) (def. c)), or something like that 20:09:13 hm that won't work i think 20:09:28 or does it 20:10:10 there should be something that can replace fix there to make it work, anyway 20:15:14 fix (\t f -> t (\a b c -> f (def. a) (def. b) (def. c))) 20:16:00 i think that may be it. t now represents a 3-tuple and f a function for unwrapping it 20:16:34 pretty 20:20:27 > fix (\t f -> t (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a) 20:20:43 thread killed 20:20:52 that did not seem to work very well :P 20:21:06 but it did type 20:21:21 > let a = 1:b; b = 1:zipWith (+) a b in a 20:21:26 [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,1... 20:21:28 Now, I promised myself when I was 7 that I would do maths at University 20:21:30 hmph 20:21:32 lessee 20:21:35 http://i.imgur.com/GXlwe.jpg 20:21:44 But you guys have made me want to do Computer Science 20:21:44 > take 4 $ fix (\t f -> t (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a) 20:22:13 thread killed 20:22:32 they're researchers :P 20:22:33 elliott: i guess that becomes an infinite loop instead :( 20:22:35 (I think) 20:22:38 oerjan: rip :( 20:22:45 oerjan: wait, it looks very wrong 20:22:46 research would probably be the better way to go for CS 20:22:47 Now, Oxford offers a Maths and Computer Science course 20:22:51 oerjan: fix (\t f -> t ...) looks wrong 20:22:53 :p 20:22:59 oerjan: isn't that necessarily an infinite loop 20:23:12 oh hm right 20:23:19 Taneb: maths and computer science is a good thing to do, I think they do Haskell at Oxford 20:23:24 also Oberon for some reason? so weird 20:23:44 -!- olsner has joined. 20:23:48 http://i.imgur.com/GXlwe.jpg 20:23:53 if objective c gives you a magical sense of childlike wonder 20:23:57 you're a really boring person 20:24:40 i do not like this list 20:24:48 -!- NihilistDandy has joined. 20:24:52 And if Malbolge makes programming like breathing, ask the nurse for more oxygen. 20:25:16 hm... 20:35:56 elliott: i think the problem is that the obvious church representation of tuples isn't actually lazy... 20:36:20 um isn't it? 20:37:05 no, when doing t (\a b -> f a b) f doesn't get to start running until the tuple function is evaluated 20:37:08 -!- Taneb has quit (Ping timeout: 252 seconds). 20:37:34 *evaluating 20:37:38 hm right 20:37:54 -!- boily has quit (Ping timeout: 252 seconds). 20:38:43 might actually have to define fst and snd to apply inside f 20:38:47 lessee 20:39:30 oh hm 20:39:42 so I take it you're not doing normal order 20:39:58 monqy: um yes i am, this is haskell... 20:40:35 normal order doesn't mean _every_ data type representation becomes automatically lazy (is the moral of this) 20:42:29 > fix (\t f -> (\f -> f (t (\a b -> a)) (t (\a b -> b))) (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a) 20:42:33 mueval-core: Time limit exceeded 20:42:41 > take 4 $ fix (\t f -> (\f -> f (t (\a b -> a)) (t (\a b -> b))) (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a) 20:42:43 [1,1,2,3] 20:42:45 yay 20:42:58 still slow as molasses :P 20:43:42 and not as pretty any longer 20:45:39 well... 20:46:52 > take 4 $ fix (\t f -> (\a b -> f (1:b) (1:zipWith (+) a b)) (t (\a b -> a)) (t (\a b -> b))) (\a b -> a) 20:46:53 [1,1,2,3] 20:51:38 atehwa: Didn't you run the mailing list? 20:51:40 ooh right 20:51:44 * oerjan waves 20:52:06 :O 20:52:11 sup atehwa 20:52:46 I forgot all about that, heh 20:52:46 06:24:17: elliott: well, I know the wiki, but it seems that the number of langs / year has been going up ever since 2002, and most of the new languages are really uninteresting. 20:52:48 yeah, this is very true 20:53:08 elliott: i saw you mention underload, did you mention /// yet? :P 20:53:17 oerjan: oh right. you do it. 20:53:55 taneb: i would say that anyone who can follow this room without skipping a beat doesn't need a CS bachelors 20:54:01 atehwa: /// (Slashes) is the best esolang ever. or something. 20:54:11 they can jump straight to phd 20:54:14 sadly i don't think he's present at the moment. 20:54:32 itidus20: "Hey, lemme in to your grad school. Degree? I don't need no stinkin' degree, I'm an ESOIST." 20:54:55 I considered mentioning ///, but assumed he already knows about Thue, and one string-rewriting thing might be enough. 20:55:09 lol 20:55:14 -!- pumpkin has joined. 20:55:18 oh, eodermdrome maybe. but of course my memory is biased toward the languages i've worked on 20:55:30 fizzie: /// is far more elegant than thue :( 20:55:33 Thue suxxxe 20:55:51 (although that may be somewhat caused by thue's sucky syntax and IO) 20:55:55 eodermdrome he seemed to find. 20:56:00 ah 20:56:24 im very serious 20:56:44 hehehehe 20:56:45 :) 20:57:06 itidus20: are you having a reverse Dunning-Kruger effect here? :P 20:57:20 i can't follow the room without skipping a beat 20:57:40 or would that be dunning-kruger by proxy 20:57:52 itidus20: i realize that, therefore "reverse" :P 20:58:08 hmm 20:58:13 -!- copumpkin has quit (Ping timeout: 252 seconds). 20:58:13 ("since i don't understand half what they say, they must know _everything_") 20:58:26 i am a dropout but it's more for sociological reasons than intellectual 20:58:52 -!- ais523 has joined. 20:58:56 lol, comparing thue to /// 20:59:08 bit of both 20:59:31 at the end of the degree they start expecting you to do things like teamwork and projects 20:59:31 oklopol: they're not that different, but the major difference is a really really significant one 20:59:37 sup ais523 20:59:46 also, it's not that they're dissimilar 20:59:47 elliott: I finally finished the Big PvP Ban 20:59:50 the rest of it is a joke 20:59:51 it's that it's like comparing php to scheme 20:59:52 ais523: wut 20:59:56 which I've been working on for 5 days noe 20:59:58 *now 21:00:02 what is that? 21:00:04 it's a NetHack-related project 21:00:13 mostly interesting because banning PvP in NetHack implies I'm implementing multiplayer 21:00:22 yes, I made that conclusion-jump too 21:00:28 ais523: why ban PvP? PvP is fun :-P 21:00:40 pvp pvp 21:00:40 ais523: Are you doing that fancy -- what was it -- roguelike relativity thing? 21:01:07 elliott: because PvP doesn't work 21:01:19 banning it is necessary to prevent the game crashing 21:01:30 ais523: haha 21:01:31 if I wanted PvP to work, I'd have to follow up by reimplementing it on a different codepath 21:01:38 -!- pumpkin has changed nick to copumpkin. 21:01:53 rewrite nethack 21:01:56 ais523: Are you doing that fancy -- what was it -- roguelike relativity thing? 21:02:14 What, and call it githack? 21:02:41 elliott: I'm not sure what you mean by that 21:02:43 you can't learn to cope with a degree by doing a degree 21:02:51 ais523: How are you handling it 21:02:52 it's a fallacy 21:03:03 Multiplayer Doesn't Work in roguelikes in any naive way 21:03:04 Oh wait 21:03:06 monqy: after spending 5 days editing well over half of the files in the distribution, I'd be inclined to agree with you, but I fear a rewrite would be even harder 21:03:09 Unless you just mean like 21:03:12 Hmm 21:03:13 No 21:03:16 ais523: So how are you doing it 21:03:31 elliott: behind-the-scenes, via peer-by-peer where there's one process per player, which handles everything that happens involving that player 21:03:44 12:26:15: 04:53:53: if you don't think, you can't accomplish anything. programming is a science. 21:03:44 12:26:27: No it isn't, it's maths mixed with the odd bit of engineering. 21:03:45 12:27:04: They're like the exact opposite things. 21:03:45 That's what "a science" means, generally :-P 21:03:45 from the player's point of view, by putting both players into the turn order, and you have to wait for your turn to come round 21:03:56 ais523: Right, so you have to have everybody awake to play 21:03:59 Not MMORPG-style or anything 21:04:52 yep, it's small-party multiplayer 21:04:58 and cooperative only 21:05:07 So lame :P 21:06:00 13:04:32: in advance to all apple fanboys: stfu 21:06:01 /ahem 21:06:08 HEY GUYS DID YOU HEAR ABOUT THE NEW APPLE PRODUCTS 21:06:08 GUYS 21:06:09 GUYS 21:06:10 NEW APPLE PRODUCTS 21:06:10 GUYS 21:06:11 GUYS 21:06:12 cheater_ 21:06:16 THEY CAME OUT WITH NEW APPLE PRODUCTS 21:06:17 hi guys 21:06:32 hi elliott 21:06:33 (Heh, I just checked; and so my computer becomes obsolete already) 21:06:43 Time to throw it out the window 21:06:54 genetic engineered apples? 21:07:00 Aww what, it has an i7 now? 21:07:01 dont hit anyone with it that might hurt 21:07:12 I demand a free upgrade 21:07:29 apple juice, apple cider, ringo starr 21:08:05 elliott, i'm happy you've read my very important PSA 21:08:34 ipad2.0, it's worth giving up your kidney for 21:09:34 -!- pumpkin has joined. 21:09:54 how many kidney 21:10:30 -!- copumpkin has quit (Ping timeout: 258 seconds). 21:10:39 9 kidney 21:10:41 also I don't understand tablets what's so good about them 21:10:43 am i unhip 21:10:57 yes ur hip bone 21:10:57 it's marketing 21:11:05 by tablets I mean the gimmicky touchscreen computers 21:11:17 -!- Taneb has joined. 21:11:23 thanks. also, whoosh. 21:11:25 well, mice kind of suck. direct touch is one answer to that. 21:11:30 Hello again 21:11:34 and at least the ipad doesn't have a (visible) filesytem. 21:11:34 wrong window 21:11:36 filesystem 21:11:40 but direct touch also sucks 21:11:41 by isolating certain hardware configurations and naming them platforms, a company can get rich 21:12:10 monqy: for typing sure, dunno about for other things 21:12:28 you have to obscure the screen, for one 21:12:51 how's that any different to, i dunno, a whiteboard, or a book, or anything else 21:12:55 -!- pumpkin has changed nick to copumpkin. 21:13:01 i'm pretty good at keeping my fingers out of the way 21:13:11 I guess it depends on what's happening 21:13:29 I haven't worked out what I'd use a tablet computer for, if I had one 21:13:30 if the interface designers aren't idiots 21:13:32 i'm not convinced touch is a good idea and the ipad has apple lockdown shit but 21:13:40 they're not really properly portable, and the keyboard's aren't good enough for serious programming work 21:13:44 *keyboards 21:13:59 ais523: IMO, the iPad is basically Apple releasing its next computer model a decade early 21:14:07 -!- Nisstyre has quit (Quit: Leaving). 21:14:14 elliott: I think they found a genuine gap in the market 21:14:18 but I'm not sure it's a very large one 21:14:28 next computer model: not for serious programming work????? 21:14:31 which means more unacceptable Apple lockdown, and lots of other crap, but it seems clear to me that the current path of computer evolution is a dead-end 21:14:37 monqy: Apple care about developers? 21:14:46 all they need to do is release XCode for iPad and they're done 21:15:21 elliott: you'd really need to design a new language syntax for being easily written on a tablet 21:15:25 I'd hate to write, say, C on one 21:15:33 -!- Nisstyre has joined. 21:15:42 typing is pretty much the main issue with direct touch 21:15:56 flowcharts flowcharts flowcharts 21:17:36 elliott: there have been interesting suggestions that what's needed is a force-feedback touchscreen 21:17:39 Well, I managed to humiliate myself IRL today 21:17:43 that could form physical keys that you could feel and press 21:17:48 so it'd work like a mechanical keyboard 21:18:02 it seems like a nifty idea, especially if you can make it into a Braille display too 21:19:12 ais523: yes; it's not clear how you can do that, though, but if it was done, at a sufficiently good resolution, that would be amazingly impressive 21:20:01 I suppose the other problem with tablets is, if you're using a large portion of it as a keyboard, why not put a keyboard there rather than a screen? 21:20:12 amazingly impressive useless gimmick. why can't it have a port for keyboardery 21:20:22 or a builtin keyboard yeah 21:20:29 monqy: the trend nowadays is for systems to have fewer and fewer ports 21:20:40 and peripherals generally 21:20:42 bad trend 21:21:09 I happen to own a USB floppy drive (and have had to use it on occasion), but I bet most people have no way to read floppy disks nowadays unless they have a desktop PC or really old laptop 21:21:18 amazingly impressive useless gimmick. why can't it have a port for keyboardery 21:21:24 monqy: You realise that there are other uses for tactile feedback? 21:21:30 no 21:21:30 It would be nice if GUI buttons gave actual feedback, for intsance 21:21:31 instance 21:21:51 monqy: And assuming it had multiple levels, you could do all sorts of stuff 21:21:59 i also hate gui buttons 21:22:21 Well if you just want a linguistic-style interface of course nothing to do with touch at all will interest you 21:22:36 -!- Taneb has quit (Ping timeout: 252 seconds). 21:25:08 You can have an exception while displaying the exception string. 21:25:38 that's a function of how lambdabot is programmed. i recall a previous version bailed out on a second one. 21:25:41 wow, someone found an exploit on Google Webmaster Tools that let them remove arbitrary sites from the Google index 21:25:52 * elliott checks GitHub notifications 21:25:53 haha 21:25:55 apparently, you could change the query string of an otherwise valid removal request 21:26:17 that's a pretty silly mistake to make 21:26:23 although a moderately common one 21:26:44 (the tool in question's been temporarily disabled until it could be fixed) 21:26:46 basically, it's just about putting catch in the function handling an exception from an outer catch 21:27:10 ais523: "if you're using a large portion of it as a keyboard, why not put a keyboard there rather than a screen?" -- because in very many use cases (browsing...) you're for the most part not using a keyboard. Having a physical one would be comparable to having the virtual one always-on. 21:27:18 fizzie: indeed 21:27:48 (I'm sure they don't mind the fact that there's then also no need to consider different regional keyboard layouts in hardware.) 21:27:55 FireFly: monqy is who said that 21:27:56 fizzie: 21:29:07 elliott: That was a direct copypasta from an ais523 comment. 21:29:34 yep, I was thinking about that 21:29:59 incidentally I'd prefer browsing with keys over fingers 21:30:30 ah 21:30:58 I normally browse with a mouse 21:31:09 but I've been wondering if using a keyboard to navigate would work better 21:31:15 my guess is no, but I'm not sure 21:31:25 I browse with my nose. (Not really, but it sorta-rhymes.) 21:31:33 I imagine fingers would be clumsy 21:31:42 links too close together, touch the wrong one 21:32:56 monqy: meh; that's a problem with my iPhone, but tablets are much bigger 21:32:59 And even with my iPhone I rarely misclick 21:42:26 theres nothing wrong with keyboards... they don't like this idea 21:42:37 they can't kill the keyboard with a touchscreen 21:42:52 its all a conspiracy man 21:43:30 and keyboards are cheap 21:43:42 and as far as computers go they're a commodity 21:43:54 they're fairly perfect 21:44:12 except for being out and about 21:45:53 depends what the kb is for 21:46:59 im sure if research was done between writing a 3000 word essay on an ipad vs writing it on a laptop the laptop would win 21:47:21 but then people would argue that it's due to familiarity with the keyboard that they like the keyboard. 21:47:49 the question then is whether there is any level at which a person could enjoy a touchpad keyboard more than a regular keyboard 21:48:22 and it may turn out the ipad is for writing things like urls or using 140 character twitter 21:49:00 im sure if research was done between writing a 3000 word essay on an ipad vs writing it on a laptop the laptop would win 21:49:05 yes because the only thing people do on computers is type 21:49:08 the ONLY THING 21:49:17 that's why they're called typewriters 21:50:51 well, I'd prefer a laptop to a tablet because most of what I do on a computer is in fact typign 21:50:53 *typing 21:51:00 but I acknowledge that other people might do other things on theirs 21:51:03 -!- pikhq has joined. 21:51:10 and that different systems might be better for them as a result 21:51:42 hm 21:51:53 * atehwa waves back at oerjan, elliott. 21:52:31 oerjan: I managed to find out about /// myself, because it had enough backreferences :) 21:52:37 ah 21:53:03 well the patent hounds are gnashing over these "gestures" 21:53:27 ais523: Do you make TASes yourself? 21:53:34 coppro: I'm working on a NetHack TAS 21:53:49 oerjan: actually, funny how you started by mentioning /// and eodermdrome, because those two were exactly the ones I found valuable myself. :) 21:53:52 I'm a bit unusual in the TAS community in that I don't make TASes without a license from the game's developers to use the ROM for the purpose 21:54:10 there could be lots of more interesting graph-rewriting languages for undirected graphs, though. 21:54:21 ais523: Which leaves you only working on Nethack? :P 21:54:28 atehwa: if you look carefully, you'll note i wrote most of the programs in them :) 21:54:32 pikhq: indeed 21:54:38 ais523: if you own the game and rip the ROM yourself, you can do that legally without asking anyone, AFAIK 21:54:40 -!- pikhq_ has quit (Ping timeout: 276 seconds). 21:54:49 elliott: Quite. 21:54:58 elliott: I think so, in the UK (although I'm not completely sure); but I don't have ROM-dumping equipment 21:55:07 I tried to define a rewriting from SK combinator calculus to Eodermdrome graphs, but I couldn't define graph duplication, which I'd need to implement S. 21:55:18 I suppose modern enough games, which come on CD or whatever, don't even need ROM-dumping, you can just read the CD directly 21:55:28 -!- quintopia has quit (Ping timeout: 255 seconds). 21:55:43 Yeah, though most of the CD-based systems are a pain to emulate. 21:55:52 Personally, I'm surprised they're TASing Playstation games now. 21:55:54 yes, and I agree that /// is far more elegant than Thue, mainly because it has first-class rewrite rules. 21:56:07 atehwa: like i said, you might want to ask ais523 too (he created underload and eodermdrome, FWIW) 21:56:42 pikhq: psp,ps2,gamecube is the main challenges lately in emulation field i believe 21:56:51 atehwa: graph duplication is a pain to do in Eodermdrome; you can't do it on general graphs 21:57:10 Really the area of ROM duplication is fuzzy 21:57:11 everything else is basically done 21:57:14 <3 This Is Gallifrey 21:57:15 itidus20: No. 21:57:22 http://www.youtube.com/watch?v=idQRiLZukG0 21:57:27 but you're only using a subset, so you could match against those 21:57:33 itidus20: "Abandoned" doesn't mean "finished". 21:57:49 pikhq: ok i admit they never crafted them to perfection. 21:57:52 the major issue in Eodermdrome is that after a while you run out of letters 21:57:59 Though, SNES emulation is *pretty close* to perfection. 21:58:10 As is NES and Gameboy... 21:58:19 The whole gameboy series is great 21:58:28 pikhq: i lost myself there 21:58:36 The Playstation and N64 emulators are utterly *horrible* thus far. 21:58:46 pikhq: psp,ps2,gamecube is the main challenges lately in emulation field i believe 21:58:48 surely wii, not gamecube 21:58:51 gamecube emulation is pretty good IIRC 21:59:02 elliott: Wii and Gamecube emulation are nearly the same problem. 21:59:05 right 21:59:06 :P 21:59:12 with wii there's always the controller 21:59:17 they're done on the same emulator 21:59:18 making an emulator not even that useful without it 21:59:18 -!- quintopia has joined. 21:59:18 -!- quintopia has quit (Changing host). 21:59:18 -!- quintopia has joined. 21:59:29 elliott: maybe it's just that for one thing, hardware needs are advancing a lot. 21:59:29 sure, but it's bluetooth 21:59:33 interestingly, there's an accepted Wii TAS, but not an accepted GameCube TAS 21:59:38 or even a submitted one 21:59:53 it would be cheaper to buy the console in question than to upgrade your hardware enough to emulate it better 22:00:12 itidus20: Actually, Wii emulation is playable on commodity hardware ATM. 22:00:22 depends on your definition of commodity 22:00:27 No, it's true 22:00:32 the Wii is quintopia quite weak 22:00:40 ais523: yes, well, this time I'd only need graph duplication for a well-defined subset of graphs, but that's tricky enough anyway 22:00:42 The Wii is definitely easier to emulate than the PS2. 22:00:48 Probably easier than the PS1, actually. 22:00:57 the Wii is quintopia quite weak --coppro 22:01:12 Having a dozen processors to emulate in sync is pretty much asking for painful emulation. 22:01:12 elliott: you have seen through my subliminal messaging 22:01:41 atehwa: the real issue with Eodermdrome, other than implementing it, is working out which operations you can and can't do 22:01:55 Which, incidentally, is why there's still an unemulated game for the SNES. 22:02:06 gamecube emulation is more of a mess than ps1 22:02:29 atehwa: you might want to take a look at deadfish, possibly not for the language itself (;D) but for all the other langs that implement it 22:02:30 the reasons are fair enough of course 22:02:50 hardware power is always important. 22:03:05 I didn't realise that the Gamecube had a dozen CPUs that needed emulation. 22:03:31 Sgeo_: http://www.youtube.com/watch?v=0hl1Trh1aZo 22:03:35 you will find that the dolphin emulator community is a bubbling soup of incompatibility reports 22:03:45 maybe I should try it, though, because eodermdrome -> SK would be much more straightforward than eodermdrome -> BCT -> Tag system -> string rewriting -> TM -> lambda calculus 22:04:00 oerjan: ok 22:04:07 coppro, I kind of like Vale Decem less than This is Gallifrey 22:04:08 its getting better perhaps i dunno 22:04:09 The PS1 community would be, too. If it hadn't all been abandoned in unison a while back. 22:04:19 Sgeo_: ... leave 22:04:24 pikhq: what caused that? 22:04:31 ais523: No *idea*. 22:04:53 hmm, that looks almost like you're trying to hint at something, and I don't get it 22:05:11 ais523: Though I suspect it's somewhat similar to what happened to zsnes; a few developers left and nobody stepped in to replace them. 22:05:17 Leaving it all a stagnant wasteland. 22:05:31 fair enough 22:05:40 my pc is sub-commodity 22:05:53 With the only real development happening being random UI tweaks here and there. 22:05:53 -!- Sgeo__ has joined. 22:05:55 mednafen seems to be the hotspot these days 22:05:57 OH FOR FUCKING FUCK"S SAKE 22:06:51 14:52:49 Sgeo_: ... leave 22:07:02 Well, coppro seems to have control over my Internet connection now 22:07:06 ais523: what are your favourite languages / findings since 2004? BCT, eodermdrome, ///, underload already mentioned. 22:07:19 coppro: Uh, that's just a frontend for a bunch of emulators. 22:07:47 atehwa: hmm... I don't think I'll ever top Underload, and that was mostly an accident 22:08:07 pikhq: I thought it was an infrastructure? 22:08:11 :) what about others' work? 22:08:31 coppro: No, it's a bunch of emulators tied together into a single interface. 22:08:38 This is a brand new router 22:08:43 hmm 22:08:47 So I guess it's not likely the router's fault 22:09:10 Though at least they tend to use best-in-class emulators. 22:09:17 pikhq: huh; I'd heard there were multiple frontends. But then again, I know little 22:09:35 The "hotspot" for emulator development varies based on the system. 22:10:17 Some of the older ones are abandoned for having basically *finished*. 22:10:24 e.g. NES, Genesis. 22:10:31 atehwa: in case you can't tell, 99 percent of esolangs nowadays are bad brainfuck derivatives 22:10:34 or complete nonsense 22:10:46 the only weapon we have left is snarky comments on the wiki 22:10:46 Some have a single crazy bastard as the only real development. e.g. SNES. 22:10:54 atehwa: I'm trying to remind myself of what's been created recently 22:11:01 Others last had major emulator improvements a decade ago. e.g. N64, PS1. 22:11:12 it's rare that I'm impressed by an esolang 22:11:35 most are boring derivatives rather than new concepts 22:11:39 (said crazy bastard is also astoundingly good at it.) 22:13:43 atehwa: oh right, I rather liked BF Joust 22:13:57 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 22:13:58 (it's not originally mine, but I ended up mostly responsible for maintaining/promoting it) 22:15:51 I have a few ideas but I need to flesh them out more and I'm a bit afraid they're boring or too similar to other things. also I'm horrible at describing things. 22:16:20 with my languages, I spend years designing them, then put a half-baked description on the wiki when people beg me for details 22:16:43 (I think Feather is the most infamous case, where it wasn't even me who created the page, and the language is nowhere near finished, and probably will never be finished because ouch, Feather) 22:20:24 well, sounds familiar 22:20:51 and already in 2000, most "new" esolangs were like, "hey guys I know how we can improve on brainfuck" 22:21:09 I still think genuinely great and innovative esolangs can be designed 22:21:21 beerfest showed how... name it: headfuck 22:21:21 but I'm having difficulty thinking of one, and there may not be another one for years 22:21:29 Feather is mythology :-P 22:21:34 heh 22:21:47 I'm glad that I admitted its existence, though 22:22:01 and in the beginning, the LORD created Feather, and saw that it was good; but could not disclose it to the mortal people, for their minds were weak and not sufficiently malleable 22:22:02 it's added a fun meme, even if it's a headscrewy one 22:22:09 Sarumpaet. The program is an unlabeled, undirected graph. The program executes by applying one rewriting rule. 22:22:15 headfuck is what you call someone while chewing on a glass beer mug intimidatingly 22:22:21 but by the way, if you guys _haven't_ checked out kayak, I find that quite a remarkable one. 22:22:29 tswett: that's a bit like Eodermdrome, isn't it? 22:22:45 atehwa: oh right, I remember that one 22:23:14 ais523: a bit, yes. 22:23:17 I liked ABCDXYZ's (and BackFlip's) investigation of the same concepts, but the execution on ABCDXYZ was really off 22:23:20 so have any esolangs ever been referenced in other media? eg. comics, animations, cinema, novels 22:23:45 I'm not aware of any examples 22:23:47 -!- CakeProphet has quit (Ping timeout: 250 seconds). 22:23:52 other than the occasional art 22:23:54 i guess that even regular langs haven't 22:24:01 I have a very unfinished esolang-based computer game somewhere 22:24:03 we also spent a lot of time designing a language for rewriting labeled undirected graphs, but nothing much came out of that (since we thought a reference implementation would be essential) 22:24:17 sheldon on big bang theory definitely would know at least 1 22:25:01 computer games have quite a few esolang references, actually; Enigma has a brainfuck-related problem; and Rubicon is based around RUBE (it's a pretty good and fun free computer game, but it no longer runs on my computer) 22:25:19 atehwa: lets not forget that sometimes the use for something only occurs decades later :D 22:25:24 I've also tried esolang-generated music, but it doesn't come out too well 22:25:45 Fugue really needs some optimisation for mass stack moves, otherwise Lost Kingdoms comes out too repetitive 22:25:56 Repelago. There's an infinite hexagonal grid, populated with polyhexes. They move around randomly, with the condition that no two polyhexes can ever become adjacent. 22:26:16 ooh, noit o' mnain worb, that's a great language 22:26:23 based on much the same principle 22:27:14 I'm still unsure of what its probabilistic computational class is like 22:27:34 it'd be nice to tweak it to make it TC (by infinitely repeating the arena to start with and possibly making semantics changes) 22:27:44 actually, you wouldn't even need to break symmetry, the randomness does that for you 22:27:47 atehwa: by the way, you should contact oklopol, he's a world-renowned esolangs professor 22:27:55 (note: claim may be about to be made reasonable by ais523) 22:28:10 elliott: meh, if you treat the claim as relative rather than absolute, it's a good one 22:28:53 NOMW is quite different, really. It has bobules, which are just monominoes. I don't really see how it's possible to compute at all, though I wouldn't be surprised. 22:29:18 you mentioned backflip, that was a nice one, which also reminds me of smatiny (which is nice even if it's a simple variation of smetana) 22:29:40 so, Repelago, ABCDXYZ. 22:29:43 smatiny is great, indeed 22:29:47 and also somewhat accidental, I think 22:29:58 tswett: you compute probabilistically 22:30:25 btw, does noit o' mnain worb have a fixed lowercase n at the start, like brainfuck? 22:30:31 IIRC it does 22:30:31 ais523: yeah, it does. 22:30:42 what about at the start of a sentence? 22:31:37 ais523: noit o'mnain worb is old enough that I know it "well" 22:31:47 ais523: how do you make something like an AND or NOT gave in NOMW? 22:31:56 atehwa: are those scare quotes or emphasis quotes 22:32:24 tswett: the idea is to do it along a similar line to electronics; concentration of bobules is the equivalent to potential, motion to current 22:32:42 the basic debate is as to whether you can make a sufficiently-high-quality transistor to do calculation 22:32:51 ais523: ah. 22:32:57 if you can make an amplifier that amplifies by a factor of more than 1, everything is fine 22:33:03 -!- MigoMipo has quit (Quit: Quit). 22:33:40 if that's possible, you do it by making a weak signal block the exits of a one-way strip, so that a stronger signal doesn't flow through it and instead comes to the output 22:33:50 once you have amplification, you can do the other logic operations based on that 22:34:01 not trivially, but I think it's doable 22:35:03 wow, our latest batch of spambots have a real headlight addiction 22:35:04 Whoa, that sounds accurate. 22:36:51 Yeah, it's like. Suppose you've got a T-shape. Inputs come in from the right and from below. There are diodes in front of the path below preventing bobules from moving upward. 22:37:57 If the bottom input is 1, then it will pass the signal. If the bottom input is 0, it will (mostly) suppress the signal. If the bottom input is Z, it will, again, pass the signal. 22:39:35 now, the issue that makes me wonder if that really works, is that you're going to need to drain bobules from the bottom, or the top input will fill the region up and then conduct 22:39:40 you need to drain fast enough to drain the top input 22:39:50 but if you do that, then maybe the bottom input won't be strong enough to actually block the diodes 22:40:33 What do you mean? Either you're draining, or you're not. If you're not draining, the signal passes. If you are, it doesn't. 22:40:50 http://esolangs.org/w/index.php?title=Talk:FALSE&curid=1448&diff=23951&oldid=21346 22:40:53 ok, _this_ is really irksome 22:41:00 fixing links is one thing, changing /spelling/? 22:41:01 tswett: well, you have a weak signal going into the below 22:41:12 which has to be drained, or the transmitter will conduct even if it isn't there 22:41:26 if you drain it too fast, it won't actually allow the right input to continue 22:41:47 * tswett nods. 22:42:26 real-life transistors don't have this issue, because they can create energy barriers, a phenomenon that doesn't exist in NOMW at all 22:42:32 So. 1 and Z both pass. 0 forces a 0. 22:43:00 ooh, ingenious; the bottom "signal" is in fact whether or not you're draining? 22:43:04 http://esolangs.org/wiki/Brainbool#Converting_Brainbool_to_Brainfuck umm, isn't this really excessive? 22:43:08 [--]+ seems an adequate logical not 22:43:15 ais523: pretty much, yes. 22:43:37 so then you've designed a field-effect rather than bipolar transistor, but that's still enough for semiconductor-completeness 22:44:09 elliott: um [--]+ isn't guaranteed to halt 22:44:37 also it always gives a 1 22:44:50 unsafePerformIO :: IO a -> a < um 22:44:52 oerjan: oh right [] is while not if :D 22:44:59 Lymee: keyword "unsafe" 22:45:08 What situations would it be used in? 22:46:10 Lymee: it's original intended use was for FFI functions, which are imported as in IO but sometimes they're real effect is pure... 22:46:18 Lymee: ones you're not qualified to encounter :D 22:46:19 *their 22:46:31 but it has been used for many more evil things 22:46:42 Obfuscation? 22:47:03 if you want to map 8-bit to 1-bit BF, just change + and - to (+)*128 and (-)*128 respectively 22:47:05 Lymee: it's used as a brittle hack for getting global variables, for example 22:47:26 (mutable variables, that is) 22:47:41 I thought it was added just because they could 22:47:44 ais523: so, I know of one potentially useful binary gate, and two potentially useful unary gates: http://pastebin.com/iXNJmkDD 22:48:25 ais523: it was part of the ffi addendum afair 22:48:45 I think the T-gate is probably the basis of any sensible NOMW program 22:48:58 together with wire connection 22:49:10 we probably also need the logic level L and H, which correspond to a weak signal 0 or 1 22:49:22 I notice that it's not apparently possible to discriminate betwen 1 and Z. 22:49:32 as in, if you wire an L to a 1, you get a 1, as the L can't sink fast enough to keep up with the 1 22:49:42 that's how you discriminate between 1 and Z 22:49:43 > fst (1,unsafePerformIO $ printStrLn "teehee") 22:49:43 Then again, you could probably do that with an interved T-gate. 22:49:44 Not in scope: `unsafePerformIO'Not in scope: `printStrLn' 22:49:49 because 1 wired to L = 1, 0 wired to L = L 22:49:51 Oh, and that, too. 22:49:51 Aww. 22:49:56 *Z wired to L = L 22:50:07 and 1 is typically quite easy to distinguish from L 22:50:14 Lymee: that would defeat half of lambdabot's approach to sandboxing :P 22:50:29 you might need to end up going fully analog at least to start with 22:50:32 also it's putStrLn 22:51:20 ais523: I dunno, let me see what can be done if you toss in the inverted T-gate. 22:51:34 !haskell import System.IO.Unsafe; main = print $ fst (1,unsafePerformIO $ putStrLn "teehee") 22:51:41 a T-gate with the diodes going the other way is clearly possible, if you change from n-type to p-type wire 22:51:41 1 22:51:56 (as in, whether you change the program from starting with empty wire to changing with full wire) 22:51:56 Lymee: as you see the unsafePerformIO is not triggered 22:51:58 Suppose you have diodes going upward instead of downward. 0 or Z as the lower input will make it simply conduct, but 1 as the lower input will saturate it with 1s. 22:52:42 tswett: not quite; if you have 1 as the lower input and 0 as the upper input, you end up with about 0.5, a state known as X in VHDL 22:52:51 (VHDL has named more or less every value for a boolean that you might think of) 22:53:03 ais523: oh, that's true. 22:53:30 Lymee: another use for unsafePerformIO is for implementing things like Debug.Trace.trace 22:53:37 Or is it... 22:54:12 Depends on how strong the upper input is, I think. 22:54:37 -!- Nisstyre has quit (*.net *.split). 22:54:37 -!- Vorpal has quit (*.net *.split). 22:54:44 !haskell import System.IO.Unsafe; main = print $ snd (1,unsafePerformIO $ putStrLn "teehee") 22:54:51 teehee 22:55:03 oh hm 22:55:08 !haskell import System.IO.Unsafe; main = print $ snd (1,unsafePerformIO $ putStr "teehee") 22:55:12 teehee() 22:55:57 If the T and RT gates act as I expect, then these are our gates: http://pastebin.com/hLsUGri6 22:57:16 AND and OR on 0 and 1 are there plain as day. NOT couldn't be too difficult... 22:59:34 -!- Vorpal has joined. 22:59:35 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: String) 22:59:39 ​"" 22:59:42 heh 22:59:49 I wonder how that even works 23:00:24 -!- Nisstyre has joined. 23:00:42 No, NOT is impossible using these gates. They're all increasing, given the ordering 0 < Z < 1. 23:02:51 ais523: any idea whether it's possible to make a non-increasing function? 23:03:11 I would be surprised if it were. 23:03:21 tswett: you can do minus a constant 23:03:30 ais523: that's still an increasing function. 23:03:46 by putting a drain past a narrow wire so it can only drain a fraction of the signal 23:04:02 oh, I see 23:07:22 elliott: that was weird hm 23:07:30 ? 23:07:33 oh 23:07:42 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: String) 23:07:47 ​"" 23:07:54 and repeatable too... 23:08:21 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: [Maybe Bool]) 23:08:25 ​[] 23:08:46 elliott: it seems to be interpreted as an empty list 23:08:54 I'm pretty sure that the presence of a bobule can never cause the absence of one later on. 23:09:31 elliott: maybe it has to do with the tag bits on ghc pointers 23:09:42 Well, there's a really marginal case where that sort of thing can happen, I think. 23:09:52 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Maybe Bool) 23:09:57 Nothing 23:10:17 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (Nothing :: Maybe Bool) :: String) 23:10:22 ​"" 23:10:43 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (Nothing :: Maybe Bool) :: Int) -- >:) 23:10:48 1113251472 23:10:58 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (Nothing :: Maybe Bool) :: Int) -- >:) 23:11:03 1107496592 23:11:11 elliott: not quite as repeatable :P 23:11:19 elliott: maybe it has to do with the tag bits on ghc pointers 23:11:20 oh right 23:11:23 it probably means "first constructor" 23:11:24 i.e. [] 23:11:28 and doesn't even look at the rest 23:11:30 No, that can't happen. Essentially, a bobule picks a random one of its 9 surrounding squares. If that square is impassable, nothing happens; otherwise, it swaps places with that square. 23:11:34 yeah 23:11:59 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either () Bool) 23:12:03 Left () 23:12:12 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either () Bool) 23:12:12 Ooh, but wait. Under the "bobules swap instead of colliding" model, a bobule can go through a diode in the wrong direction, by being replaced with a bobule going the other way. 23:12:16 Left () 23:12:29 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either Bool Ordering) 23:12:34 Left True 23:12:40 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either Bool Ordering) 23:12:45 Left True 23:15:15 oerjan: Ordering? :D 23:15:45 > [minBound..maxBound :: Ordering] 23:15:47 [LT,EQ,GT] 23:17:25 > zipWith compare [2, 4..20] [10..20] 23:17:26 [LT,LT,LT,LT,LT,LT,LT,LT,EQ,GT] 23:17:42 um 23:18:01 > zipWith compare [0, 2..20] [5..15] 23:18:02 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:18:03 [LT,LT,LT,LT,LT,EQ,GT,GT,GT,GT,GT] 23:18:43 > sortBy (const $ const GT) [1..20] 23:18:44 [20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1] 23:19:06 > sortBy (const $ const LT) [1..20] 23:19:08 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] 23:19:30 > sortBy (const $ const GT) "pumpkin brigade" 23:19:32 "edagirb nikpmup" 23:22:02 > sortBy (\x y -> case (ord x + ord y) `mod` 3 of 0 -> LT; 1 -> EQ; 2 -> GT) "pumpkin brigade" 23:22:03 "pmprin buikdage" 23:22:42 Hm. If you subtract instead of adding, you get a rock-paper-scissors ordering. 23:22:47 > sortBy (\x y -> case (ord x - ord y) `mod` 3 of 0 -> LT; 1 -> EQ; 2 -> GT) "pumpkin brigade" 23:22:48 "epmpgaduirikn b" 23:24:20 your case can be replaced with toEnum btw 23:25:09 Oh, true. 23:25:22 Wait, this isn't an RPS ordering. This is: 23:25:43 > sortBy (\x y -> case (ord x - ord y) `mod` 3 of 0 -> EQ; 1 -> GT; 2 -> LT) "pumpkin brigade" 23:25:44 "adkn beuiripmpg" 23:49:32 !haskell import System.IO.Unsafe; main = print $ snd (1,unsafePerformIO . sequence . replicate 3 $ putStrLn "teehee") 23:49:36 teehee 23:51:38 there's a reason i changed it to putStr :) 23:51:52 also 23:51:59 @src replicateM 23:52:00 replicateM n x = sequence (replicate n x)