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