←2013-01 2013-02 2013-03→ ↑2013 ↑all
2013-02-01
00:04:46 -!- Nisstyre-laptop has quit (Quit: Leaving).
00:32:03 -!- epicmonkey has quit (Ping timeout: 248 seconds).
00:33:17 -!- WeThePeople has quit (Quit: Leaving).
00:34:31 <kmc> what's the /topic program? SUBLEQ interpreter or something?
00:34:47 <kmc> or is it actually a linux rootkit? *fucked*
00:39:12 <pikhq> Looks to be a SUBLEQ interpreter, yeah.
00:40:52 <elliott> it's a linux rootkit
00:40:53 <elliott> for qnx
00:40:56 <elliott> on the amiga
00:41:28 <ais523> can something be a linux rootkit for qnx?
00:41:37 <ais523> I guess it could be a program that roots qnx if you run it on Linux
00:42:08 <TeruFSX> or a rootkit that runs on a linux kernel modified to run at the same time as qnx
00:42:09 -!- DHeadshot has quit (Read error: Connection reset by peer).
00:42:39 <kmc> maybe you can build UML for QNX
00:42:50 <kmc> HackEgo's shameful secret
00:42:56 -!- DHeadshot has joined.
00:43:08 -!- ais523 has quit.
00:43:24 <kmc> apparently blackberry OS is based on QNX?
00:43:28 <kmc> nobody told me
00:45:41 <TeruFSX> 10 and playbook are
00:45:46 <TeruFSX> previous versions are not.
00:45:50 <kmc> ah
00:45:56 -!- Phantom__Hoover has quit (Ping timeout: 248 seconds).
00:46:58 -!- Phantom__Hoover has joined.
00:47:50 -!- TeruFSX has quit (Read error: Connection reset by peer).
00:50:24 -!- Nisstyre has joined.
01:14:15 -!- augur has joined.
01:17:51 -!- monqy has joined.
01:28:44 -!- Phantom__Hoover has quit (Remote host closed the connection).
01:39:33 <Bike> more inappropriate haskell questions: is "main" a standard thing or what because I can't find it
01:40:43 <oerjan> yes it is
01:41:49 <pikhq> Bike: Yes: "main" is the Haskell entry point, just like main is the C entry point.
01:42:06 <oerjan> http://www.haskell.org/onlinereport/haskell2010/haskellch5.html#x11-980005
01:42:09 <Bike> "A Haskell program is a collection of modules, one of which, by convention, must be called Main and must export the value main" aha
01:42:16 <Bike> thanks
01:42:50 <oerjan> (there's a flag to call it something else, naturally >:) )
01:43:02 <Bike> a standard flag?
01:43:05 <oerjan> (mostly intented for running test suites and the like)
01:43:09 <oerjan> no, in ghc
01:43:17 <Bike> nooooo
01:48:22 <oerjan> hm has Taneb revealed his email...
01:48:40 <elliott> taneb@taneb.taneb
01:48:46 <elliott> taneb@ngevd.atriq?
01:48:59 <Bike> elliott i don't think taneb is even a real tld are you lying
01:49:55 <elliott> im sure it is
01:51:42 <oerjan> oh there is an email on his webpage
01:57:31 -!- quintopia has quit (Ping timeout: 246 seconds).
01:58:31 -!- quintopia has joined.
02:05:19 <oerjan> @tell Taneb I sent an email to your gmail account.
02:05:19 <lambdabot> Consider it noted.
02:11:46 -!- NihilistDandy has joined.
02:22:06 <kmc> lecture went well
02:22:10 <kmc> the crabputer was a crowd pleaser
02:22:29 <kmc> thanks Bike
02:22:54 -!- madbr has joined.
02:23:22 <madbr> trying to design a "trace CPU"
02:23:23 <Bike> crabputers know what's hip
02:24:31 <madbr> like, instead of just executing the code
02:24:59 <madbr> it allocates a new execution unit (ALU, multiplier, etc...) for each instruction
02:25:27 <madbr> once it reaches a loop, it just lets data stream through the already allocated units
02:27:17 <kmc> nice
02:27:51 <kmc> are there any really good tracing JITs for VLIW architectures
02:27:57 <kmc> that could be kind of an approximation of that
02:28:06 <kmc> where's my V8 for itanium =( =( =(
02:32:57 <Sgeo> Is it reasonable to look at a language mostly because of its implications for how one would structure a program written in it
02:33:03 <Sgeo> Actually, yes
02:33:30 <kmc> yes
02:33:57 <Sgeo> Haskell tends to imply a certain structure (IO layer using non-IO layer)
02:34:08 <kmc> yes
02:34:09 <Sgeo> So, why not try to get a grasp of how Erlang programs are structured
02:34:13 <Sgeo> I still don't understand it :/
02:34:19 <shachaf> What about Ada?
02:35:15 <madbr> kmc: it's kinda scary how VLIW architectures tend to bomb :o
02:35:53 <kmc> Sgeo have you seen Erlang: The Movie
02:36:50 <Sgeo> I think part of it, I don't remember if I've seen the whole thing. If I have, I don't remember it
02:36:54 <Sgeo> I know I've heard of it
02:37:12 <kmc> i think erlang programs involve lots of small concurrent agents which interact through semi ad-hoc algebraic-data-ish protocols
02:37:13 <Sgeo> It's kind of ... dry and old, isn't it?
02:37:45 <kmc> one point of it being dynamically typed is that you can restart small parts independently from each other
02:38:15 <Sgeo> Not sure that dynamic typing is a requirement for that
02:38:17 -!- copumpkin has quit (Ping timeout: 252 seconds).
02:38:18 <kmc> harder to migrate a distributed system piecemeal if your protocols are very rigid
02:38:30 <kmc> it's not a requirement but it makes things easier
02:38:34 * elliott doesn't think that argument makes much sense
02:38:43 <elliott> but I guess I would say that all protocols are rigid
02:38:45 <kmc> anyway i don't know erlang
02:38:51 <elliott> it is just a question of how much your code acknowledges that fact
02:39:34 <madbr> I'd like to see more languages structured like zzt-oop (or megazeux's "robotic")
02:39:38 <Bike> all protocols are rigid but their implementations are crazed nuttiness?
02:39:47 <Bike> zzt, isn't that something for games
02:40:02 <madbr> bike : yes!
02:40:10 <shachaf> zomg moreutils has /usr/bin/errno -l?
02:40:24 <madbr> bike : so it would probably work well for GUI
02:40:57 <Bike> «Note the use of an invisible "timer" object to send a periodical ShootDownward message to the Shooter.» man this reminds me of game maker
02:41:01 <Bike> i'm... not sure if that's a good thing
02:41:13 <Sgeo> "They are neither operating system processes nor operating system threads, but lightweight processes[citation needed]."
02:41:22 <Sgeo> 1+1=2[citation needed]
02:41:58 <elliott> hi
02:42:20 <Bike> Sgeo: principia mathematica, done
02:42:26 <shachaf> > monoidize "threads"
02:42:29 <lambdabot> "are threads like monoids? I love monoids"
02:42:34 <monqy> shachaf
02:42:36 <monqy> no
02:42:45 <shachaf> monqy: i didn't write monoidize.......................................
02:42:51 <Sgeo> > monoidize "monoids"
02:42:54 <lambdabot> "are monoids like monoids? I love monoids"
02:42:58 <monqy> sgeo.....
02:43:02 <monqy> no..............................
02:43:09 <shachaf> > monoidize "monqy"
02:43:12 <lambdabot> "is monqy like monoids? I love monoids"
02:43:17 <shachaf> "ok maybe thats enough....."
02:43:17 <madbr> mostly, they have very simple languages yet they're fairly usable actually
02:43:17 <Sgeo> oh nice
02:43:27 <Sgeo> > monoidize "people"
02:43:30 <lambdabot> "is people like monoids? I love monoids"
02:43:33 <madbr> megazeux didn't have any functions or even subroutines
02:43:34 <monqy> @undefine
02:43:39 <monqy> :'(
02:43:43 <madbr> or objects/structs
02:43:44 <shachaf> monqy
02:43:48 <madbr> or strings
02:43:53 <shachaf> did you just @undefine!!
02:43:59 <monqy> who knows
02:44:03 <monqy> but i sure said @undefine
02:44:04 <Bike> madbr: if i'm reading the zzt-oop article right it has objects?
02:44:50 <shachaf> monqy: "thats what @undefining is"
02:44:55 <kmc> shachaf: nice re errno
02:45:01 <kmc> <3 moreutils
02:45:22 <shachaf> kmc: I've spent way too much time hunting down the lesser-known errno mappings in some cases.
02:45:39 <shachaf> I mean e.g. pretty-printed message to number.
02:46:21 <kmc> there's at least one errno that can only be produced by a single point in the Linux kernel
02:46:37 <shachaf> EACHIEVEMENTUNLOCKED
02:47:00 <oerjan> each and every ievement
02:48:29 <shachaf> kmc: I came to the conclusion that mkaing an MD5 collision under those constraints would be hard.
02:48:36 <shachaf> So I just posted a bug.
02:48:48 <Bike> kmc: what is it?
02:49:14 <oerjan> `olist #I don't think shachaf was here when I did this
02:49:18 <HackEgo> shachaf oerjan Sgeo
02:50:22 <monqy> is this the super mega list
02:50:52 <oerjan> it's the oots list
02:50:57 <elliott> `smlist
02:51:01 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: smlist: not found
02:51:13 <shachaf> oerjan: I saw it.
02:51:33 <oerjan> okay!
02:51:46 <shachaf> Someone should just echo echo `/names` > bin/smlist
02:51:55 <shachaf> Because who wouldn't want to read super mega comics?
02:52:15 <Bike> hm does irssi have interpolation like that i wonder
02:56:44 -!- sebbu has quit (Ping timeout: 255 seconds).
02:57:51 -!- oerjan has quit (Quit: Good night).
03:05:03 <madbr> bike: objects? yes and no
03:05:20 <madbr> it has objects but objects can't store any data
03:05:35 <madbr> each object has its own code
03:05:45 <madbr> and it runs once per frame
03:06:25 <madbr> and when it runs it essentially keeps running until it reaches a command that has a pause in it
03:06:47 <madbr> such as "wait 1" (megazeux, zzt-oop has an equivalent)
03:07:02 <madbr> and then next frame it continues from there
03:07:13 <madbr> so they're really kindof like cooperative threads
03:07:33 <madbr> also objects are part of the tile map and the player can't go through them
03:20:42 <kmc> Bike: http://livegrep.com/search?q=ETOOMANYREFS
03:20:49 <kmc> it's in the UNIX socket garbage collector >_<
03:21:47 <kmc> and yeah it was a bit ACHIEVEMENT UNLOCKED when i wrote code which hit this error
03:25:00 <Bike> "Too many references: cannot splice" informative
03:26:57 <kmc> shachaf: LC_ALL=de_DE.utf-8 errno -l
03:28:28 <kmc> Veraltete NFS-Dateizugriffsnummer
03:29:06 <kmc> Eingabe-/Ausgabefehler
03:29:29 <kmc> "Unterbrechung während des Betriebssystemaufrufs" i think that was in the Ring Cycle
03:34:25 -!- madbr has quit (Quit: Radiateur).
03:37:02 * TwilightSpockle tests something.
03:37:10 <TwilightSpockle> Did that show up as a /me to y'all?
03:37:36 <kmc> yes
03:38:24 <elliott> what did you do
03:38:43 <TwilightSpockle> I actually typed in the \x01.
03:38:49 <TwilightSpockle> To me it showed as messages with \x01 X-D
03:38:57 <TwilightSpockle> So I thought maybe it'd actually sent something weird.
03:39:12 <Bike> there was a bot in another channel such that we had it send arbitrary CTCPs with its echo command
03:39:15 <Bike> that was fun
03:39:33 <TwilightSpockle> Yeah, you could do that with HackEgo until somebody whinged about it.
03:40:08 <elliott> (you should put that back)
03:40:39 -!- Arc_Koen has quit (Quit: Arc_Koen).
04:17:15 -!- esowiki has joined.
04:17:19 -!- esowiki has joined.
04:17:20 -!- esowiki has joined.
04:18:04 -!- esowiki has joined.
04:18:09 -!- esowiki has joined.
04:18:09 -!- esowiki has joined.
04:19:06 -!- esowiki has joined.
04:19:11 -!- esowiki has joined.
04:19:11 -!- esowiki has joined.
04:20:00 -!- esowiki has joined.
04:20:01 -!- glogbot has joined.
04:20:01 -!- glogbackup has left.
04:20:04 -!- esowiki has joined.
04:20:04 -!- esowiki has joined.
04:21:29 -!- RodgerTheGreat has quit (Quit: RodgerTheGreat).
05:27:17 -!- kmc has set topic: char*a,b[9999];main(){gets(a=b);while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);} | fiat luxembourg http://codu.org/logs/_esoteric/.
05:35:55 <quintopia> kmc: what does that program do mannnnnn
05:36:08 <quintopia> it cant be the shortest missing subscript
05:36:15 <quintopia> *string
05:36:17 <elliott> it hecks your aim
05:36:59 <quintopia> elliott: halp i is too unsmart
05:37:09 <elliott> nobody can avoid the aim hecking
05:37:25 * quintopia dodges
05:44:27 <kmc> it's a SUBLEQ interpreter or similar
05:44:28 <kmc> i think
05:44:31 <kmc> so it was said
05:44:36 <kmc> i didnot invent it
05:45:59 <quintopia> who said it
05:46:17 <Bike> gregor.
05:46:29 <quintopia> gregor says lots of things
05:52:23 -!- Bike has quit (Ping timeout: 260 seconds).
05:54:06 -!- Bike has joined.
06:05:39 <elliott> @admin - shachaf
06:05:40 <elliott> @admin + shachaf
06:05:48 <elliott> shachaf: It's official now.
06:05:50 <shachaf> help
06:05:59 <shachaf> It's actually not official.
06:06:07 <elliott> Um, I'm the office.
06:06:16 <shachaf> I think the configuration file is the office.
06:06:39 <Bike> hello
06:06:44 <shachaf> Hike
06:07:07 <Bike> seven hundred and sixty one armless and legless corpses
06:07:24 <shachaf> Bike: do you love monoids yet
06:08:14 <Bike> there will be no love, except for love of monoids
06:10:01 <monqy> btw congratulations shachaf
06:10:31 <Bike> congratulations!!!
06:11:04 <monqy> what are you going to do with this new “power„
06:12:29 <shachaf> maybe rule with an "iron fist"
06:12:37 <shachaf> or just a copper fist??
06:13:10 -!- clog has joined.
06:13:15 <Bike> rule with a fencyclidine fist
06:13:27 <Bike> wow that was some shitty spelling
06:13:51 <elliott> hi clog
06:13:53 <elliott> wasup
06:14:04 <shachaf> `wehlcohme clog
06:14:09 <HackEgo> clohg: Wehlcohme to the ihntehrnahtiohnahl huhb fohr ehsohtehrihc prohgrahmmihng lahnguahge dehsihgn ahnd dehployhmehnt! Fohr mohre ihnfohrmahtiohn, chehck ouht ouhr wihki: http://ehsohlahngs.ohrg/wihki/Maihn_Pahge. (Fohr the ohthehr kihnd ohf ehsohtehrihca, try #ehsohtehrihc ohn ihrc.dahl.neht.)
06:24:02 <Sgeo> Of course it is mandatory for me to join #ehsohtehrihc on Freenode
06:24:28 <Sgeo> `cat wehlcohme
06:24:31 <HackEgo> cat: wehlcohme: No such file or directory
06:24:32 <shachaf> #ifdef _CPLUSPLUS
06:24:33 <Bike> `run echo "esoteric" | ?hh
06:24:36 <Sgeo> `cat bin/wehlcohme
06:24:37 <HackEgo> ​? ¯\(°_o)/¯
06:24:40 <HackEgo> welcome "$@" | h
06:24:42 <Sgeo> Oh
06:24:45 <Bike> oh
06:24:47 <Bike> `run echo "esoteric" | h
06:24:51 <HackEgo> ehsohtehrihc
06:24:52 <Deewiant> #endif
06:24:57 <Sgeo> `run echo "char*a,b[9999];main(){gets(a=b);while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);} | fiat luxembourg http://codu.org/logs/_esoteric/" | h
06:24:59 <Bike> holy -
06:25:00 <HackEgo> chahr*a,b[9999];maihn(){gehts(a=b);whihle(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puhts(b+1);} | fiaht luhxehmbouhrg http://cohdu.ohrg/lohgs/_ehsohtehrihc/
06:25:52 <Sgeo> Bike, hm?
06:42:04 <kmc> the Y combinator has a similar structure to a typical quine
06:42:11 <kmc> they're based on the same trick of implicit self-reference
06:42:27 <kmc> as is the proof by contradiction of the undecidability of the halting problem
06:42:33 <kmc> so that's fun
06:43:08 <Bike> what about kleene recursion
06:56:32 <kmc> yeah
06:56:47 <kmc> kind of mentioned that too but not really
06:57:09 <kmc> you need it to do the halting proof in full rigor
06:57:43 <Bike> diagonalization?
06:57:52 <kmc> what about it?
06:58:10 <Bike> is that what you mean by "full rigor"
06:58:34 <Bike> personally i just like the intuitive loop scooper thing but that's not as useful...
06:59:39 -!- sebbu has joined.
06:59:39 -!- sebbu has quit (Changing host).
06:59:39 -!- sebbu has joined.
07:01:59 <kmc> well in this lecture i just went with the good old (define (f x) (if (halts? x x) (loop-forever) 0))
07:02:07 <Bike> right, that
07:02:27 <kmc> i think, if you want to do that proof in full rigor on turing machines specifically, you need kleene's recursion theorem
07:02:30 <kmc> not sure though, it's been a while
07:02:37 <Bike> @google scooping the loop snooper
07:02:40 <lambdabot> http://www.lel.ed.ac.uk/~gpullum/loopsnoop.html
07:02:40 <lambdabot> Title: Scooping the Loop Snooper — Geoffrey K. Pullum
07:03:06 <Bike> hm, i don't think i've actually read turing's original paper.
07:03:07 <kmc> i did talk about diagonalization but not specifically about halting, just showing that the set of functions is uncountable while the set of programs is countable
07:03:10 <kmc> heh
07:03:26 <Bike> actually just about the only turing i've read is the test paper. that's probably not good
07:03:33 <kmc> yeah that article is great
07:03:42 <Bike> my favorite part is the ESP speculation
07:03:43 <kmc> Bike: did you like the part where he speculates about beating the turing test using ESP
07:03:46 <kmc> yesssss
07:04:00 <Bike> i just imagine singulatarians reading it dumbfounded
07:04:30 <kmc> i think nobody is quite sure if he was joking or not
07:05:06 <Bike> i read a nice article on turing's article from a lit perspective once
07:05:16 <Bike> guy thought turing was a pretty funny guy overall
07:05:56 <Bike> ...i can never find it again when i want it, though.
07:05:56 <kmc> heh, that sounds interesting
07:06:08 <kmc> did you see the article about how maybe turing didn't kill himself on purpose
07:06:22 <Bike> no, i've heard rumors about that however
07:06:33 <kmc> http://www.bbc.co.uk/news/science-environment-18561092
07:06:38 <Bike> http://www.furtherfield.org/features/articles/why-arent-we-reading-turing here we go
07:07:43 <kmc> huh, i didn't know he wrote about the chemical basis of morphogenesis
07:07:55 <kmc> that's cool
07:08:03 <Bike> oh yeah there was a bit of news stuff about that last year when they actually found some turing morphogens
07:10:06 <kmc> is it numberwang? we'll have to check with the boffins.
07:11:04 <Bike> "In a man of his type, one never knows what his mental processes are going to do next." one can only hope he meant "genius" and not "teh ghey"
07:11:21 <elliott> saying "what if it wasn't suicide??" seems to have an uncomfortable whiff of downplaying the awful treatment turing was going through at the time to me
07:11:49 <kmc> elliott: the article i linked doesn't downplay it really
07:12:22 <kmc> it's more like "what if he had the strength to endure awful treatment in relatively good spirits"
07:12:30 <kmc> i mean if the facts stated are true, we will never know if it was suicide or not
07:12:41 <Bike> elliott: the professor made a point of saying "no this was still horrible"
07:12:50 <kmc> it shouldn't affect whether the treatment was unjust or the legacy of his life before his death
07:13:52 <Bike> http://www.kcl.ac.uk/newsevents/news/newsrecords/2012/02Feb/Scientists-prove-Turings-tiger-stripe-theory-.aspx it is apparently impossible to find the actual goddamn paper
07:14:56 <kmc> speaking of the classics, it's funny that Gödel never got around to publishing part 2 of the paper on incompleteness
07:15:00 <kmc> because part 1 was such a bombshell
07:15:23 <Bike> you've seen his letter to von neumann, right?
07:15:25 <kmc> i also think it's kind of weird that all this theory developed in super abstract form just a decade or so before people started building actual computers
07:15:29 <kmc> don't think so
07:16:03 <Bike> http://rjlipton.wordpress.com/the-gdel-letter/ "hey i heard your sick but whatever let me talk about proofs"
07:17:16 <Bike> haha he even mentions type theory as foundational
07:18:18 -!- FreeFull has quit.
07:18:38 <Bike> "ramified" is still the silliest goddamn word
07:18:51 <kmc> yeah type theory is an alternative to set theory, or something
07:19:00 <kmc> not sure if it's exactly the same thing programmers mean by 'type theory'
07:19:42 <Bike> well i mean the math. people do that as foundational nowadays.
07:19:50 <Bike> not that that has much to do with ramified types any more.
07:22:15 <shachaf> greecallister
07:29:55 <kmc> hichaf
07:29:57 <kmc> going to bed tho
07:51:10 -!- Taneb has joined.
07:52:02 <Taneb> @tell oerjan Thanks for your Fueue fix!
07:52:02 <lambdabot> Consider it noted.
07:52:46 <shachaf> thoerjan
07:53:39 <Taneb> Anyway, the balloons have returned
07:53:39 <lambdabot> Taneb: You have 1 new message. '/msg lambdabot @messages' to read it.
07:53:52 <Bike> happy birthday!!
07:54:02 <Taneb> Turns out they didn't come for me
07:54:05 <Taneb> I am still only 18
07:54:29 <Bike> ugh, that's such a shitty age though.
07:54:31 <Bike> you're sure?
07:54:40 <Taneb> Yeah
07:54:44 <Taneb> It's my mum's birthday
07:55:03 <Bike> wait i thought you said that if you were fifty you'd be older than your parents
07:55:06 <Bike> !!?!?!!!???
07:56:03 <Taneb> That was yesterday
07:56:17 <shachaf> hi Taneb
07:56:40 <Taneb> Hi shachaf
07:56:53 <Taneb> Explain the meaning of your "hi"
07:57:16 <shachaf> Happy bIrdthay
07:57:20 <shachaf> (to your mum)
07:57:46 <shachaf> (here in america there aren't any mums)
07:58:07 <Bike> There are mumps though.
08:13:44 -!- Taneb has quit (Quit: Leaving).
08:16:50 -!- Bike has quit (Quit: memorize).
09:13:18 -!- DHeadshot has quit (Ping timeout: 264 seconds).
09:17:11 <shachaf> @ask zzo38 What about newtype Foo b s a r = Foo (Either b (s, a -> r)); CodensityAsk (Foo b s a) t?
09:17:11 <lambdabot> Consider it noted.
09:24:08 -!- epicmonkey has joined.
10:01:31 <Sgeo> http://literallyunbelievable.org/post/41195269567/theres-no-such-thing
10:01:32 <Sgeo> I just
10:01:54 <Sgeo> One particular xkcd comes to mind
10:10:12 -!- TwilightSpockle has quit (*.net *.split).
10:13:12 -!- TwilightSpockle has joined.
10:47:14 -!- TodPunk has quit (Read error: Connection reset by peer).
10:47:48 -!- Tod-Autojoined has joined.
11:13:34 <shachaf> Hmm, #haskell-lens is bigger than #esoteric
11:17:29 -!- impomatic has quit (Ping timeout: 255 seconds).
11:19:08 -!- epicmonkey has quit (Read error: Operation timed out).
11:25:37 <Sgeo> "Let's imagine that utilities are radioactive; If we are careful with out containment procedures, we can safely combine and compare them, but if we interact with an unshielded utility, it's over, we've committed a type error."
11:25:45 <Sgeo> oh god utilities are monads
11:25:51 <Sgeo> (note: utilities probably not monads)
11:48:03 -!- sebbu has quit (Ping timeout: 245 seconds).
11:55:14 -!- sebbu has joined.
11:55:30 -!- sebbu has quit (Changing host).
11:55:30 -!- sebbu has joined.
12:13:27 -!- Phantom_Hoover has joined.
12:14:50 <Jafet> unsafeNmap :: MonadIO m => m Utility -> m ()
12:15:02 -!- augur has quit (Remote host closed the connection).
12:22:31 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds).
12:26:18 -!- epicmonkey has joined.
12:31:44 -!- monqy has quit (Quit: hello).
12:40:50 -!- Phantom_Hoover has joined.
12:49:06 -!- salehkamali999 has joined.
12:49:30 -!- salehkamali999 has quit (Client Quit).
12:54:44 -!- Arc_Koen has joined.
12:55:30 -!- Arc_Koen has quit (Client Quit).
12:55:48 -!- Arc_Koen has joined.
12:58:13 -!- Arc_Koen has quit (Client Quit).
12:58:29 -!- Arc_Koen has joined.
12:59:45 -!- augur has joined.
13:11:03 -!- Kosova has joined.
13:11:27 -!- copumpkin has joined.
13:20:40 -!- Kosova has quit.
13:31:26 -!- Taneb has joined.
14:45:27 -!- boily has joined.
15:02:13 -!- Frooxius has joined.
15:15:41 -!- Jafet has quit (Quit: Leaving.).
15:24:35 -!- Frooxius has quit (Quit: ChatZilla 0.9.89-rdmsoft [XULRunner 1.9.0.17/2009122204]).
15:26:34 -!- Taneb has quit.
15:28:23 -!- Tod-Autojoined has changed nick to TodPunk.
15:29:55 -!- Frooxius has joined.
15:38:17 -!- noam__ has changed nick to noam.
15:58:26 <nortti> can anyone ping nortti.dy.fi now?
16:00:01 <c00kiemon5ter> yep
16:00:38 <nortti> great
16:10:48 -!- oonbotti has quit (Ping timeout: 256 seconds).
16:12:09 -!- Frooxius has quit (Quit: ChatZilla 0.9.89-rdmsoft [XULRunner 1.9.0.17/2009122204]).
16:14:59 -!- Frooxius has joined.
16:22:59 <boily> nortti: what kind of server are you running? the only response header I get by visiting http://nortti.dy.fi/ is "Content-Type: text/html"
16:24:38 <nortti> boily: my own http server written in python
16:24:51 <nortti> boily: what is your exact request?
16:25:39 <boily> nortti: I tried firefox first, just to see if you had anything running, then raw telnet to get a pretty list of all headers.
16:25:54 <boily> (and I admit running a fast nmap against your domain.)
16:26:00 <nortti> what is the request you used with telnet
16:26:29 <nortti> oh, that's ok. I used to have "run nmap here if you want to test it" on my homepage
16:26:30 <boily> telnet nortti.dy.fi 80, then GET / HTTP/1.1.
16:26:58 <nortti> what kind of line terminator?
16:27:19 <boily> eeeeh... I hope CR+LF, but probably only LF.
16:27:30 <boily> I can see your stub web page just fine, too.
16:27:39 <nortti> very strange
16:28:04 <nortti> do you have your telent in char or in line mode?
16:28:23 <boily> no idea. bog standard vanilla telnet on my machine.
16:28:37 <nortti> what os your machine runs?
16:28:57 <boily> arch linux, Linux njorun 3.7.5-1-ARCH #1 SMP PREEMPT Mon Jan 28 10:03:32 CET 2013 x86_64 GNU/Linux.
16:29:06 <nortti> have you tried netcat?
16:29:26 <boily> no, not yet.
16:30:43 <boily> same behaviour with netcat: echo -e "GET / HTTP/1.1\r\n\r\n" | nc nortti.dy.fi 80
16:31:07 <boily> by the way, telnet (GNU inetutils) 1.9.1 and GNU netcat 0.7.1.
16:31:22 <nortti> very, very strange
16:31:34 <nortti> so you only see the headers?
16:31:49 <nortti> and not the page itself=
16:31:51 <boily> oh, no. I was just wondering what was the webserver and stuff and anything.
16:31:59 <boily> the pages renders correctly.
16:32:09 <boily> s/pages/page/, as I only saw a single page for now.
16:32:14 <nortti> oh. then it works just as it shoudl
16:33:09 <nortti> I tried to make it compatible with normaly used subset of HTTP 1.0
16:34:29 <nortti> boily: in case you are interested these files are available: foo.txt mcsnapshot strace_failed_config.log index.html os_cars.html
16:35:33 <boily> playing with slitaz?
16:35:42 <nortti> using it as my main os
16:36:50 <nortti> well slitaz 3.0 with all kind of crap put on top of it like toybox and my own coreutils replacing parts of busybox, pkgsrc and jpkg package managers and a lot of hand compiled stuff
16:37:04 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
16:37:38 -!- Phantom_Hoover has joined.
16:42:29 -!- epicmonkey has quit (Ping timeout: 255 seconds).
16:49:11 -!- oonbotti has joined.
17:09:51 <TwilightSpockle> How are there people who don't program for fun.
17:09:53 <TwilightSpockle> I don't get it.
17:16:06 <kmc> programming is a combination of mentally challenging and tedious
17:16:27 <kmc> plus some people like things like being outside or interacting with humans in person
17:16:31 <kmc> and would rather spend free time on that
17:17:37 <TwilightSpockle> All I'm hearing is that people like to fritter their potential away on completely nonproductive uses of time.
17:17:37 <kmc> "hacker" communities have a huge amount of prejudice against people who don't spend every waking hour thinking about programming
17:17:52 <kmc> i think it's largely unfounded
17:17:59 <kmc> http://geekfeminism.org/2013/01/21/re-post-hiring-based-on-hobbies-effective-or-exclusive/
17:18:09 <kmc> "I’ve seen other people imply that there’s something even morally suspect about somebody working an engineering job just for the money, and that someone who doesn’t do the same stuff in their free time is obviously just in it for the money. Of course, that’s classist. It’s easier to feel like you’re motivated by the sheer love of your work if you don’t really need the money."
17:18:36 <kmc> TwilightSpockle: oh yeah because writing the 2,000th toy Lisp interpreter or Python webapp framework nobody will ever use is so productive
17:18:52 <kmc> anyway i think you're trolling
17:19:00 <TwilightSpockle> No shiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiit X-D
17:19:16 <kmc> glad that's settled then
17:29:25 -!- impomatic has joined.
17:31:40 -!- WeThePeople has joined.
17:45:26 <tswett> I propose that we use the prefix "wyo-" to denote the fixed point of a word.
17:45:33 <tswett> So that, for example, a wyopicture is a picture of a wyopicture.
17:46:16 <tswett> Wyothinking is the act of thinking about wyothinking.
17:47:04 <TwilightSpockle> And Wyoming is... waaaaait
17:48:53 <tswett> A wyoprinter is something that prints a wyoprinter. So, a quine is a type of wyoprinter.
17:50:27 <Phantom_Hoover> kmc, that wasn't obviously a joke from the start?
17:50:50 <shachaf> Some people just love monoids, Phantom_Hoover.
17:51:03 <Phantom_Hoover> what is it with you and monoids
17:51:13 <Phantom_Hoover> (DON'T SAY "THEY'RE SO EASY")
17:53:11 <shachaf> it's not easy being a monoid :(
17:54:30 <Phantom_Hoover> You used to think that it was so easy?
17:55:45 -!- FreeFull has joined.
17:56:38 -!- Bike has joined.
17:57:58 <Phantom_Hoover> someone explain this monoid thing shachaf has developed, for god's sake
18:05:03 -!- noam has quit (Read error: Connection reset by peer).
18:05:13 <tswett> shachaf developed a monoid thing?
18:05:27 -!- noam has joined.
18:06:47 <Phantom_Hoover> tswett, yes, he developed a condition where he inexplicably brings monoids up all the time.
18:07:46 <boily> but I like monoids. they are ea... NOOOOOOOOOO! I think it's contagious!
18:11:26 -!- cuttlefish has joined.
18:12:27 <boily> ~fortune
18:12:28 <cuttlefish> Kent's Heuristic:
18:12:28 <cuttlefish> Look for it first where you'd most like to find it.
18:13:32 <boily> hm. hoping to get useful guidance from a fortune DB is like trying to find a needle in a wyohaystack.
18:16:25 <Phantom_Hoover> finding a needle in a wyohaystack is pretty easy
18:16:38 <Phantom_Hoover> almost all of it is empty space, after all
18:18:03 <boily> Phantom_Hoover's method to find a needle in a wyohaystack: 1. Remove all empty space; 2. Whatever isn't empty in what's left is a needle
18:18:22 -!- mroman has left.
18:18:36 <Phantom_Hoover> pretty efficient
18:19:03 -!- AnotherTest has joined.
18:20:45 -!- AnotherTest has quit (Client Quit).
18:20:59 -!- AnotherTest has joined.
18:21:34 <boily> `learn wyohaystack is that which hasn't been sifted for emptiness yet. Easily needled.
18:21:38 <HackEgo> I knew that.
18:22:32 <Phantom_Hoover> hmm
18:22:54 -!- epicmonkey has joined.
18:23:20 <Phantom_Hoover> if you allow the -irth form to be used as a gerundive you can express a contradiction pretty easily
18:23:45 <shachaf> Phantom_Hoover: You should encourage Sgeo to learn Ada.
18:23:49 <shachaf> He's been giving up on it.
18:23:55 <Phantom_Hoover> Sgeo, don't give up!
18:24:30 <boily> Phantom_Hoover: wyohaystackirth?
18:24:45 <Phantom_Hoover> boily, nonono, the -irth form is applied to verbs
18:24:59 <Bike> whyohaystacksearchirth
18:26:17 -!- DHeadshot has joined.
18:27:36 <boily> and its French cognate, ouaillohéstaqueseurtchirtant.
18:28:08 <kmc> Phantom_Hoover: i don't know, maybe it is obviously a joke here
18:28:17 <kmc> on Hacker News such things are said in apparent seriousness
18:28:20 <kmc> but poe's law etc
18:28:40 <shachaf> cole's law etc
18:28:47 <kmc> monoid's law
18:28:49 <kmc> also hichaf
18:29:06 <shachaf> hellogan international airport
18:29:14 <elliott> kmc: did shachaf tell you ~the news~
18:29:18 <Phantom_Hoover> man coleslaw is such a weird word
18:29:19 <elliott> (i'm saying he's pregnant)
18:29:21 <kmc> what is the news
18:29:25 <shachaf> help
18:29:29 <elliott> he's pregnant with #haskell ophood
18:29:29 <kmc> congratschaf
18:29:30 <shachaf> don't spread the news
18:29:42 <kmc> http://www.gcmap.com/mapui?P=kmc
18:29:50 <Phantom_Hoover> corridor
18:29:55 <Phantom_Hoover> now there's an amazing word
18:30:21 <kmc> 'The term "coleslaw" arose in the eighteenth century as an Anglicisation of the Dutch term "koolsla", a shortening of "koolsalade", which means "cabbage salad"'
18:30:31 <boily> in the space of about 2 minutes, I'm now completely confused. I love Fridays.
18:30:32 <kmc> 'koolsalade'
18:30:59 <Phantom_Hoover> cabbage salad?
18:30:59 <TwilightSpockle> Cole slaw is some pretty cool salad.
18:31:00 <Phantom_Hoover> eugh
18:31:09 <kmc> sauerkraut is better
18:31:13 <boily> here you can buy bright neon nite-glo aggressive toxic green coleslaw in small plasting containers.
18:31:17 <Bike> dutch always sounds like that
18:31:24 <boily> it tastes weird.
18:31:28 <kmc> shachaf: what do you think of LC_ALL=de_DE.UTF-8 errno -l
18:31:43 <shachaf> When I run it I just see English. :-(
18:31:49 <shachaf> is my computer racist ☹
18:31:49 <kmc> try having more locales
18:32:02 <shachaf> can i just get a globale and have it done with
18:32:34 <impomatic> Is there a better way to do this regex? ((mul|add|sub)(\.i|\.f|\.x)?) I just watch to match and return mul mul.i mul.f mul.x add add.i add.f .... etc
18:32:40 <kmc> shachaf_SHACHAF.UTF-8
18:32:59 <shachaf> shachaf_SHACHAF.UCS-2.625
18:33:00 <kmc> impomatic: you could factor the dot out
18:33:23 <kmc> oh but you want the .f .i etc to be optional?
18:33:53 <kmc> then it would be like ((mul_add_sub)(\.(i|f|x))?) which is kinda ugly
18:34:06 <kmc> pretend those underscores are bars
18:34:10 <shachaf> kmc: Now it works!
18:34:18 <impomatic> kmc: Yes, optional
18:34:58 <impomatic> I'm writing a JavaScript syntax highlighter for Redcode :-)
18:34:58 <Bike> ((mul|add|sub)(\.i|\.f|\.x)?) seems perfect to me
18:35:08 <kmc> yeah it's fine
18:35:30 <kmc> oh I guess (i|f|x) could also be [ifx]
18:35:36 <impomatic> Thanks... never used regular expressions before.
18:35:42 <kmc> not a biggie though
18:35:52 <kmc> impomatic: congrats then :)
18:36:06 <Bike> ((mul|add|sub)(\.[ifx])?)
18:36:56 <shachaf> kmc: I'd install a funpuns locale.
18:37:25 <kmc> hm
18:37:30 <kmc> how about an anagrams locale for error messages
18:37:41 <Bike> just to make linux harder to understand
18:39:34 <elliott> kmc: I don't even have an errno(1).
18:39:39 <kmc> install moreutils
18:39:45 <kmc> moreutils is the greatest
18:39:47 <elliott> That sounds like work.
18:39:49 <kmc> bow down before moreutils
18:40:00 <impomatic> Now I need to figure out to to not exclude any matches preceded by a semicolon
18:40:04 <kmc> but then you'll have 'parallel' and 'ts' and 'sponge'!
18:40:04 <shachaf> moreutils is "rly good" elliott
18:40:18 <Phantom_Hoover> but is it easy
18:40:23 <shachaf> remember the time when you first found out about moreutils
18:40:29 <shachaf> it's just man page after man page of greatness
18:40:47 <kmc> yes
18:40:48 <coppro> sponge is the only really great one
18:40:57 <kmc> 'parallel' is very handy
18:41:06 <kmc> though xargs can almost do the same thing
18:41:06 <shachaf> xargs can do that, though.
18:41:21 <shachaf> Oh, it has ts
18:41:37 <coppro> sl is the best unix utility
18:41:50 <shachaf> zomg
18:41:53 <shachaf> Copyright 2006 by Joey Hess <joey@kitenet.net>
18:42:05 <kmc> mm ls typos
18:42:08 <shachaf> that's the same JoeyH!!
18:42:19 <kmc> i admin'd a server once where if you typed 'lsd' it would open the TiHKAL page about LSD inside links
18:42:24 <coppro> nice
18:42:27 <coppro> sl is still better
18:42:38 <shachaf> The best thing about Ubuntu is that it has the "command-not-found" handler such that when you type ls, it waits a couple of seconds anyway.
18:42:44 <shachaf> Er, whne you type sl
18:42:47 <shachaf> Even if it's not installed.
18:42:52 <Phantom_Hoover> counterpoint: moreutils' favicon is esr's stupid glider emblem thing
18:42:56 <Phantom_Hoover> (fuck that guy)
18:42:57 <kmc> Phantom_Hoover: :(
18:44:48 <elliott> well I am pretty sure esr was just a loudmouth rather than a self-admitted awful racist loudmouth when that emblem was popularised
18:44:54 <elliott> less bad than it could be???
18:45:04 <kmc> it's also just a dumb idea though
18:45:16 <kmc> hackers aren't already enough of an elitist cult, we need a logo to be smug about too
18:45:53 <Phantom_Hoover> also it uses the ugly phase of the glider
18:46:26 <shachaf> Which phase would you prefer?
18:47:52 <Phantom_Hoover> the... other one
18:48:20 <shachaf> I was afraid you'd say that.
18:48:32 <shachaf> It sounds like you're just wrong here.
18:48:50 <Phantom_Hoover> uh
18:48:56 <Phantom_Hoover> that phase is way better
18:48:58 <Phantom_Hoover> no question
18:49:15 <shachaf> Don't be wrong, Phantom_Hoover.
18:49:23 <shachaf> I'm trying to save your soul here.
18:49:52 <kmc> http://www-rohan.sdsu.edu/~rcarrete/teaching/M-596_patt/images/glider.gif so which one is better here
18:50:18 <shachaf> 0/2/4 are equally good
18:50:30 <shachaf> 1/3 are just is that even a glider??
18:50:56 <kmc> shachaf: what do you think about HighLife
18:50:56 <Phantom_Hoover> kmc, 3
18:51:02 <Phantom_Hoover> 2 is sort of eh
18:51:05 <kmc> "i don't like life, it's too mainstream"
18:51:20 <Phantom_Hoover> 1 isn't as good as 3 but it's still strong
18:51:21 <shachaf> kmc: that's just normal life for me, man
18:51:24 <Phantom_Hoover> 4 is just wtf
18:51:29 <Bike> hackers are pentacellular protists that can't do anything but plod along in one direction, and die when they hit the slightest resistance
18:51:32 -!- DHeadshot has quit (Ping timeout: 248 seconds).
18:51:48 <kmc> mm protists
18:51:54 <Phantom_Hoover> Bike, but in HighLife they sometimes explode!
18:51:54 <shachaf> hi Bike
18:52:06 <kmc> shachaf: the LED sign that i programmed uses HighLife on a projective plane
18:52:17 <Bike> hi shachaf
18:52:24 <shachaf> That sounds nifty.
18:52:33 <boily> exploding protists high on life?
18:52:44 <Phantom_Hoover> (fun fact, you can turn the highlife replicator into an n-length spaceship by tacking a traffic light to one end)
18:52:44 <kmc> the rule is similar enough to Life that it looks the same, except the probability of getting various still-lifes is different
18:53:10 <Phantom_Hoover> also the boat is notably absent
18:53:11 <elliott> Day & Night is the coolest CA imo
18:53:28 <kmc> also I programmed it to spawn gliders occasionally, to keep the world from settling into a boring state
18:53:45 <elliott> Phantom_Hoover: are you with me
18:54:03 <Phantom_Hoover> def. the coolest moore-type ca
18:54:13 <shachaf> kmc: did you also use the monster all the time in simcity
18:54:28 <kmc> i was kind of wondering how the poisson rate of glider generation affects the entropy over time of the system
18:54:31 <elliott> kmc: instead of gliders it sohuld have spawned replicators
18:54:42 <Bike> shachaf: who didn't?
18:54:42 <kmc> whether there's a specific best rate for interesting patterns, or whether lots of different rates are roughly equivalent
18:54:59 <elliott> *should
18:55:03 <shachaf> Bike: Causing various disasters is the only thing I remember about SimCity.
18:55:24 <kmc> since it wraps around, if you spawn gliders on an empty plane they will live forever until they hit something
18:55:25 <boily> the most bestest CA is wireworld.
18:55:51 <kmc> so i hypothesize that there's some natural feedback between the complexity of existing patterns and the ability of created gliders to add complexity
18:55:54 <kmc> Phantom_Hoover: that's a fun fact
18:56:00 <Bike> i like von neumann's because it's so ridiculous
18:57:42 <Phantom_Hoover> Evoloop is best CA.
18:58:26 <Bike> http://en.wikipedia.org/wiki/File:Pixel_golly.gif efficient
19:01:16 <Phantom_Hoover> I wonder if anyone's gotten around to building a true replicator in Life
19:02:40 <shachaf> imo the most bestest CA is the one everyone should live in
19:02:51 <shachaf> and monqy already lives in??
19:05:01 <Bike> Phantom_Hoover: http://www.argentum.freeserve.co.uk/lex_u.htm#universalconstructor yeah
19:05:45 <Phantom_Hoover> that's outdated
19:06:05 <Phantom_Hoover> since then someone gave an explicit pattern for something that's almost, but not quite, a true replicator
19:06:41 <Phantom_Hoover> http://b3s23life.blogspot.co.uk/2013/01/replicator-redux.html
19:06:46 -!- monqy has joined.
19:08:09 <shachaf> hi monqy
19:08:13 <shachaf> welcome to our little channel
19:08:31 <shachaf> #haskell-lens was bigger than #esoteric earlier
19:09:00 <Phantom_Hoover> shachaf, uh, shut up?
19:09:12 -!- oerjan has joined.
19:09:19 <shachaf> oerjan: Should I?
19:09:26 <shachaf> I think Phantom_Hoover might be right.
19:09:52 <oerjan> certainly not!
19:09:53 <lambdabot> oerjan: You have 1 new message. '/msg lambdabot @messages' to read it.
19:10:41 <oerjan> now to go see what i was answering ->
19:18:11 <oerjan> `addquote <kmc> shachaf: LC_ALL=de_DE.utf-8 errno -l <kmc> Veraltete NFS-Dateizugriffsnummer <kmc> Eingabe-/Ausgabefehler <kmc> "Unterbrechung während des Betriebssystemaufrufs" i think that was in the Ring Cycle
19:18:15 <HackEgo> 946) <kmc> shachaf: LC_ALL=de_DE.utf-8 errno -l <kmc> Veraltete NFS-Dateizugriffsnummer <kmc> Eingabe-/Ausgabefehler <kmc> "Unterbrechung während des Betriebssystemaufrufs" i think that was in the Ring Cycle
19:19:54 <oerjan> <Bike> there was a bot in another channel such that we had it send arbitrary CTCPs with its echo command
19:20:09 <oerjan> ^ctcp ACTION can do that too
19:20:18 <oerjan> ...well, could.
19:20:23 <oerjan> ^show
19:20:24 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list
19:20:42 <oerjan> ^me easily does this
19:20:43 * fungot easily does this
19:21:46 <oerjan> i guess ^ctcp wasn't saved.
19:22:57 <oerjan> ^tell what now
19:22:57 <fungot> I think you mean @tell instead?
19:23:11 <oerjan> ^pow2 5
19:23:11 <fungot> 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864 134217728 268435456 536870912 1073741824 2147483648 42949672 ...
19:23:21 <oerjan> ^show pow2
19:23:21 <fungot> +2[[<+7[-<+7>]>[-<+<+>>]<[->+<]<-2.[-]<]+4[->+8<]>.[-]>>[-[>+2<-[>+2<-[>+2<-[>+2<-[>-8>+>[->+>+<2]+>>[<2->>[-]]<2[>+<-]>[-<+>]<4-[>+2<-[>+2<-[>+2<-[>+2<[-]]]]]]]]]]<[->+<]>+>[-<+>]>>]<3]
19:24:13 <oerjan> ^reverb verily brevity
19:24:13 <fungot> vveerriillyy bbrreevviittyy
19:24:19 <oerjan> or not.
19:24:38 <oerjan> ^rev obvious?
19:24:38 <fungot> ?suoivbo
19:24:39 <lambdabot> Unknown command, try @list
19:24:45 <oerjan> ^rev2 obvious?
19:24:46 <fungot> ?suoivbo
19:24:46 <lambdabot> Unknown command, try @list
19:24:58 <oerjan> ^echo fib
19:24:58 <fungot> fib fib
19:25:02 <oerjan> wat
19:25:08 <oerjan> er
19:25:12 <oerjan> ^show fib
19:25:13 <fungot> >+10>+>+[[+5[>+8<-]>.<+6[>-8<-]+<3]>.>>[[-]<[>+<-]>>[<2+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<3-[>+<-]]]]]]]]]]]+>>>]<3][]
19:25:17 <oerjan> ^fib
19:25:17 <fungot> 0.1.1.2.3.5.8.13.21.34.55.89.144.233.377.610.987.1597.2584.4181.6765.10946.17711.28657.46368.75025.121393.196418.317811.514229.832040.1346269.2178309.3524578.5702887.9227465.14930352.24157817.39088169.632459 ...
19:26:17 <oerjan> ^eval
19:26:20 <oerjan> ^eval what
19:26:25 <oerjan> ^show eval
19:26:25 <fungot> ()!
19:26:30 <oerjan> fancy.
19:27:47 <shachaf> ^show echo
19:27:47 <fungot> >,[.>,]<[<]+32[.>]
19:46:17 <fizzie> ^show
19:46:17 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list
19:46:27 <fizzie> The best "eval" ever.
19:46:42 <fizzie> ^show ul
19:46:42 <fungot> >,[>,]<[<]>[<+4[>-8<-]+>-[-7[-2[<+3[>-4<-]+>[<+4[>-5<-]+>[-11[-3[[-]<2[>[-]>+<2-]>>[<2+>>-]+<[->-<3[[>+<-]<]>>[>]]>[->[>]<[[>+<-]<]<2[[>+<-]<]<[[>+<-]<]>>[>]>[[[>]>+<2[<]>-]<2[[>+<-]<]>>[>]>[>]>[<2[<]<[<]<+>>[>]>[>]>-]<2[<]>]>>[[<+>-]>]<2[<]]]<[->>[>]<[[>>+<2-]<]<2[[>+<-]<]>+>[>]+5[>+8<-]+2>-[<+[<]>+[>]<-]]>]<[->>[[<2+>>-]>]<3[[>+<-]<]]>]<[-<[[<]>.[-]>[[<+>-]>]>>[[<+>-]>]<2[<]<2]>>>[[<+>-]>]<2[<]<]>]<[->>[>]<[[>+<-]<]<2[>>>>[>]
19:46:49 <fizzie> That's probably what ^ul used to be.
19:47:09 <oerjan> i vaguely recall that
19:51:57 -!- NihilistDandy has quit (Quit: Textual IRC Client: www.textualapp.com).
19:53:48 <fizzie> ^rev foobar
19:53:48 <fungot> raboof
19:53:50 <fizzie> ^rev2 foobar
19:53:50 <fungot> raboof
19:53:51 <fizzie> ...
19:53:54 <fizzie> ^show rev
19:53:54 <fungot> >,[>,]<[.<]
19:53:55 <fizzie> ^show rev2
19:53:55 <fungot> >,[>,]<.<[.<]
19:54:38 <fizzie> I don't quite see the point of that.
19:55:37 <oerjan> ^rev2
19:57:00 <shachaf> ^rot13 ravine
19:57:00 <fungot> enivar
19:57:05 <shachaf> ^rev ravine
19:57:05 <fungot> enivar
19:57:07 -!- Taneb has joined.
19:57:08 <shachaf> QED????????
20:00:56 -!- ogrom has joined.
20:01:09 <oerjan> ^rot13 QED
20:01:09 <fungot> DRQ
20:03:07 -!- oklopol has joined.
20:03:11 <oklopol> pok
20:03:27 <shachaf> Phantom_Hoover: Have you considered /nick Fandom_Hoover
20:04:35 -!- ineiros has quit (Remote host closed the connection).
20:04:42 -!- ineiros has joined.
20:05:33 <oerjan> <elliott> Day & Night is the coolest CA imo <-- yes!
20:05:45 <elliott> oerjan: Yes!
20:05:50 <elliott> I'm glad someone understands me.
20:06:44 -!- carado has joined.
20:11:37 -!- zzo38 has joined.
20:22:24 -!- ais523 has joined.
20:23:52 -!- j201 has joined.
20:24:26 -!- AnotherTest has quit (Quit: Leaving.).
20:29:41 <ais523> hardest part about Windows development: getting used to the difference between ls and dir
20:29:53 <ais523> and then getting back to ls again when you're going back to Linux again
20:30:02 <ais523> perhaps I should just install a ls for Windows
20:32:43 <oerjan> elliott: ais523: http://esolangs.org/w/index.php?title=1mpr0mp2&curid=3430&diff=35321&oldid=20650
20:33:15 * ais523 looks
20:33:22 <ais523> aha, spam!
20:33:27 <ais523> do you want me to delete it from recent changes?
20:33:32 <ais523> or just revert it and block the user?
20:33:43 <oerjan> yeah otherwise i'd undone it myself
20:34:10 <ais523> OK, I deleted it from recent changes too
20:34:53 <ais523> I wonder if it's a bot who beat the CAPTCHA, or a human CAPTCHA solver
20:35:23 <kmc> just install cygwin
20:35:43 <ais523> avoiding cygwin is part of the point of the exercise
20:35:47 <kmc> my favorite way to solve CAPTCHAs is to run your own free porn site which is protected by other people's CAPTCHAs
20:36:09 <ais523> also, it's hard to install cygwin without an internet connection
20:38:08 <zzo38> Do you know of some C program to use with SDL, to play .NSF (including all expansions) and other formats, with the function to play audio, pause audio, and poke data into the VM?
20:38:08 <lambdabot> zzo38: You have 1 new message. '/msg lambdabot @messages' to read it.
20:38:12 <zzo38> ?messages
20:38:12 <lambdabot> shachaf asked 11h 21m 3s ago: What about newtype Foo b s a r = Foo (Either b (s, a -> r)); CodensityAsk (Foo b s a) t?
20:45:54 <boily> `learn `? `? `?
20:45:58 <HackEgo> I knew that.
20:46:00 <boily> `?
20:46:04 <HackEgo> ​? ¯\(°_o)/¯
20:46:05 <boily> `? `?
20:46:09 <HackEgo> ​`? `? `?
20:46:25 <boily> darn.
20:46:43 <boily> `rm wisdom/\`?
20:46:46 <HackEgo> rm: cannot remove `wisdom/\\`?': No such file or directory
20:46:52 <boily> `rm wisdom/`?
20:46:55 <HackEgo> No output.
20:50:54 <oerjan> sheesh
20:51:35 <oerjan> `revert 1934
20:51:38 <HackEgo> find: `/home/hackbot/hackbot.hg/multibot_cmds/env/wisdom': Permission denied \ Done.
20:51:54 <oerjan> `? `?
20:51:58 <HackEgo> See `? for further details.
20:52:04 <oerjan> wat...
20:52:16 <oerjan> shit.
20:52:44 <oerjan> `run chmod a+r wisdom
20:52:48 <HackEgo> No output.
20:52:51 <oerjan> `revert 1934
20:52:52 <HackEgo> Done.
20:53:15 <oerjan> ais523: that was a nasty effect, do you think i should put the a-r back?
20:53:40 <ais523> if it breaks hg, it's gregor's fault
20:54:42 <boily> HackEgo is smarter than I. it won't answer to its own output.
20:55:01 <zzo38> IRC clients don't receive their own output if not sent directly to themself.
20:55:12 <zzo38> (Some servers have an option to make it do anyways, but this is non-standard.)
20:55:27 <oerjan> @tell Gregor We did chmod a-r wisdom to prevent the rampant nickpinging when people ls'ed it... that apparently made `revert break for things inside it.
20:55:27 <lambdabot> Consider it noted.
20:55:27 <zzo38> Also, HackEgo prefixes any message starting with a punctuation mark with a zero-width space.
20:55:42 <oerjan> oh well.
20:56:08 <zzo38> If you have rampant nickpinging then it is rather the client which needs to be reconfigured.
20:56:29 <boily> sigh. my feeble plans have been foiled again.
20:57:20 <zzo38> If you send a message to a channel in IRC, you will not receive a copy of the message. If you send directly to yourself, though, then you will receive a copy of the message.
20:57:34 <c00kiemon5ter> yeah
20:58:05 <c00kiemon5ter> irc clients are responsible for writing out their user's message
20:58:07 <oerjan> `run echo "What it says." >wisdom/"As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead. "
20:58:09 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching ``' \ bash: -c: line 1: syntax error: unexpected end of file
20:58:12 <oerjan> wat
20:58:30 <oerjan> `yes
20:58:31 <c00kiemon5ter> it is the same reason why bots don't know what they've written
20:58:32 <HackEgo> y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y
20:58:38 <c00kiemon5ter> but only when they've joined
20:58:53 <oerjan> `run echo "What it says." >wisdom/'As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.
20:58:54 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
20:59:01 <oerjan> hmph
20:59:05 <Taneb> --You need to close the quote
20:59:11 <Taneb> `run echo "What it says." >wisdom/'As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead."
20:59:12 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
20:59:18 <Taneb> See
20:59:22 <Taneb> That worked perfectly
20:59:29 <oerjan> fancy
20:59:37 <oerjan> Taneb: my point was to pad it with spaces
20:59:38 <Taneb> Anyway I'm asleep
20:59:42 <Taneb> Don't listen to me
20:59:54 <zzo38> I think you shouldn't add that. I think if you have problem with nick pinging that is the client that the user should reconfigure if they don't want that.
21:00:39 <oerjan> zzo38: people don't seem to agree with that.
21:00:54 <oerjan> `run echo "What it says." >wisdom/'As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.
21:00:56 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
21:01:10 -!- WeThePeople has quit (Quit: Leaving).
21:01:16 <oerjan> oh hm
21:01:38 -!- j201 has quit (Quit: ChatZilla 0.9.89 [Firefox 19.0/20130130080006]).
21:02:15 <oerjan> `run echo "What it says." >wisdom/'As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.
21:02:17 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
21:02:25 <oerjan> `echo run echo "What it says." >wisdom/'As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.
21:02:27 <HackEgo> run echo "What it says." >wisdom/'As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.
21:02:55 <oerjan> `run echo "What it says." >wisdom/'As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead. '
21:02:56 <HackEgo> bash: wisdom/As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.
21:03:04 <oerjan> `ls wisdom
21:03:05 <HackEgo> ​`? \ ? \ ⌨ \ ☃ \ 🐐 \ $1? \ ais523 \ america \ atriq \ atrix \ augur \ banach-tarski \ bike \ boily \ bonvenon \ brain \ brainf**k \ brainfuck \ brick \ burma \ c \ cakeprophet \ california \ category \ claustrophobia \ coffee \ comonad \ coppro \ cyberiad \ devious \ d-module \ egobot \ ehird \ elliot \ elliott \ endofunctor \ endomorphis
21:03:12 <zzo38> oerjan: That is no excuse. If you don't want to follow the protocol, then don't use it.
21:03:43 <oerjan> zzo38: what? there is nothing in the protocol that says people shouldn't be pinged when their nick is mentioned. it is common practice.
21:04:25 <zzo38> There is nothing in the protocol that say people *should* be pinged when their nick is mentioned. If you want to, that is your choice to set up your client configured that way.
21:04:27 <oerjan> and adjusting it for the behavior of a single bot is unreasonable
21:05:08 <oerjan> zzo38: nickpinging is considered an annoyance on irc. that is a social rule, which is as much a part of irc as the protocol is.
21:05:21 <oerjan> *excessive nickpinging
21:05:53 <ais523> oerjan: one of the bots on another channel changes characters for similar-looking ones in order to avoid pinging people
21:06:11 <c00kiemon5ter> nickpinging is irrelevant to the protocol, it is a setting in your client
21:06:11 <zzo38> ais523: I think that is a bad idea!!
21:06:43 <zzo38> Since it prevents copy/paste from working properly!
21:06:49 <zzo38> There may be other solutions, though.
21:07:55 <zzo38> Such as use NOTICE messages. That *is* part of the protocol that you should use NOTICE messages to avoid auto-reply.
21:09:52 <Vorpal> zzo38, well yes, but most clients don't implement it like that
21:10:27 <zzo38> Then they are not following the protocol correctly. My client does follow the protocol and if yours doesn't, that is not my fault that is your fault.
21:10:29 <Vorpal> xchat for instance treat a channel notice as something thats highlights you
21:10:47 <Vorpal> zzo38, IRC is pretty much based on de facto standards these days
21:11:05 <Vorpal> most modern IRC stuff is not in any RFC
21:11:32 <Vorpal> like the 005 ISUPPORT line that tells you what modes and so on the server supports
21:11:35 <oerjan> `run echo "What it says." >wisdom/'As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead. '
21:11:35 <Vorpal> and how to parse them
21:11:37 <HackEgo> bash: wisdom/As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.
21:11:45 <Vorpal> only a de facto standard
21:11:51 <oerjan> i wonder what's wrong.
21:11:52 <Vorpal> oerjan, annoying spaces
21:12:08 <oerjan> `run echo "What it says." >wisdom/'As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead. '
21:12:09 <coppro> IRC has no standard
21:12:09 <HackEgo> bash: wisdom/As this directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead. : File name too long
21:12:10 <Vorpal> oerjan, I got an entire line of spaces at the end of your line and the end of HackEgo's line
21:12:12 <coppro> RFCs are not standards
21:12:17 <coppro> they are exactly what they say on the tin
21:12:18 <Vorpal> oerjan, what the hell is going on
21:12:23 <coppro> there is no single defined IRC protocol
21:12:25 <zzo38> Adding additional stuff which is optional, I think is OK though.
21:12:27 <coppro> oerjan: can't you do this in PM?
21:12:36 <oerjan> Vorpal: i'm trying to create a very long filename in wisdom/ to hide the nicks
21:12:46 <oerjan> ...oh wtf
21:12:47 <Vorpal> oerjan, okay
21:13:06 <oerjan> fine, i'm giving up, if people are going to complain in addition...
21:13:21 <Vorpal> also wtf, nix* should support that length of filenames
21:13:24 <coppro> oerjan: it was more of a suggestion to avoid complaints
21:13:41 <Vorpal> oerjan, and just do it in a pm
21:13:51 <Vorpal> oerjan, it wouldn't be annoying for you
21:13:55 <zzo38> coppro: There is no IRC protocol? Why do you say that? I use the IRC protocol.
21:14:02 <Vorpal> and it would be less annoying for everyone else
21:16:42 <coppro> zzo38: There is no standard for the IRC protocol
21:17:44 <zzo38> coppro: No, it is just that your client doesn't follow the standard.
21:17:56 <coppro> zzo38: Please provide me a copy of the standard
21:18:04 <coppro> as agreed to by implementers of it
21:18:14 <coppro> that means that an RFC is insufficient
21:18:19 <coppro> because an RFC does not define a standard
21:18:50 <zzo38> I know it says it doesn't define a standard
21:19:12 <zzo38> But still, the RFC is what I used to implement the client and the server
21:19:32 <zzo38> And anyways if you really think there is no standard, then the RFC should be as good as otherwise.
21:20:20 <zzo38> Some others have follow the RFC, too.
21:21:32 <zzo38> The RFC has SUMMON command but most IRC servers doesn't have such things, is one thing.
21:21:46 <zzo38> But it can be OK if it is not applicable to your computer.
21:22:30 <coppro> no it is not
21:22:40 <coppro> most implementations of IRC do not follow the RFCs
21:22:43 <oerjan> ok i tried some more, and failed for an entirely different reason: `ls wisdom sorts case-insensitively and ignores non-alphanum characters if there are any alphanum ones. so there is no way to get the message _first_. i guess i could pad with AAAAAA to get it nearly first.
21:23:02 <coppro> just hack ls imo
21:23:06 <zzo38> coppro: I know they don't. But probably they should!
21:23:10 <coppro> not really
21:23:21 <coppro> nobody follows them because there's a bunch of shit in them
21:23:28 <Bike> is [ still lowercase { in irc
21:23:31 <c00kiemon5ter> if they did, we'd only have up to 9 letter nicks (iirc)
21:23:36 <coppro> Bike: yes
21:23:39 <c00kiemon5ter> yep
21:23:59 <kmc> `run echo '[{' | iconv -f iso646-fi
21:24:01 <HackEgo> ​Ää
21:24:05 <zzo38> It is not extensions to the protocol I am complaining about, it is following the standard parts of the protocol wrongly, that I complain about.
21:25:04 <oerjan> `run echo $PATH
21:25:05 <HackEgo> ​/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin
21:25:17 <oerjan> coppro: hm that could actually work :P
21:25:28 <zzo38> Even extensions should follow the protocol as much as it applies, but, it doesn't! Such as the CS and NS commands which don't follow the protocol, it doesn't parse the parameters separated as the IRC protocol says, so that is the kings of things I am saying is wrong.
21:26:03 <coppro> oerjan: ln sl ls
21:26:58 <zzo38> s/kings/kinds/
21:27:00 <oerjan> coppro: um i _do_ want ls to work if you don't use it on wisdom you know. which is a bit of a problem; how do you get a shell script to pass its _exact_ arguments to another command?
21:27:30 <kmc> if Scotland becomes an independent country, what will their ccTLD be
21:27:38 <oerjan> `run which ls
21:27:40 <HackEgo> ​/bin/ls
21:27:42 <coppro> oerjan: $@ I think
21:29:12 <oerjan> aha it's specially magic to work that way
21:30:22 <Bike> kmc: .ab for alba of course
21:31:22 <kmc> heh
21:32:25 <zzo38> What I mean by following the protocol, is that if both the client and server will send/receive things only according to the protocol, that it should work according to the protocol, and that any extensions follow according to the similar format to avoid confusion, although neither has to accept the extensions, since then it is a extended protocol instead.
21:32:45 <kmc> http://en.wikipedia.org/wiki/Proposed_top-level_domain
21:32:50 <kmc> .vlaanderen is probably the worst of these
21:32:52 <kmc> either that or .gay
21:33:14 <boily> kmc: we had our provincial prime minister visit scotland to help them with their independentist movement.
21:33:16 <Bike> ._.
21:33:57 <Bike> what the hell is .eng supposed to be for...
21:34:08 <Bike> is it some kind of BNP thing
21:34:12 <zzo38> I propose some pseudo-TLDs such as .ipv6, .ipv4, .opts, .proc
21:34:47 <Bike> http://www.doteng.org/ right
21:34:56 <Bike> poor oppressed english
21:35:16 <zzo38> I don't know what is your opinion of pseudo-TLDs anyways?
21:36:03 <c00kiemon5ter> heh, Proposed internationalized ccTLDs [..] .ελ
21:38:43 <kmc> i don't even know how the BNP feels about the scottish and the welsh
21:39:00 <kmc> it is the British National Party and not the English National Party
21:39:07 <kmc> but don't expect racists to be terribly consistent
21:39:10 <ais523> there's an english national party too
21:39:12 <ais523> it's not nearly as insane
21:39:13 <Bike> i just meant, you know, whining
21:39:30 <boily> is .web the TLD equivalent of stumbling upon an AbstractFactoryBuilderManagerWrapperDecorator? can you get *more* vague than .web?
21:39:44 <Bike> .net
21:39:51 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
21:39:55 <kmc> i like .africa as well
21:39:59 <kmc> you know, the country of africa
21:40:02 <kmc> full of poor people and lions
21:40:13 <Bike> «.ln and .le - Currently being sold by Dennis Hope's "Lunar Embassy Commission" alongside .lunar, .moon, .venus, .mars, .jupiter, .saturn, .uranus, .neptune, .pluto, .space. People who purchase novelty deeds for outer space property from him are also given free domains.»
21:40:26 -!- Phantom_Hoover has joined.
21:40:49 <boily> .le would make for nice French novelty domains. «www.mange-moi.le».
21:42:54 <zzo38> I don't really like protocol TLDs such as .mobi .web .gopher and so on.
21:43:07 <zzo38> I think they are not what TLDs are for.
21:43:27 <Bike> does anyone really use urls as intended, with schemas and all
21:43:28 <kmc> pest-control.gopher
21:43:59 <boily> canada.eh
21:44:01 <zzo38> Bike: I only use them with schemas and stuff like that
21:44:24 <zzo38> (That is, whatever parts are applicable.)
21:44:27 <elliott> Bike: lmao at doteng.org
21:44:58 <Bike> England is again being treated as second class to Scotland and Wales - give England parity on the net
21:48:23 -!- Nisstyre has quit (Ping timeout: 255 seconds).
21:49:39 -!- trout has changed nick to constant.
21:50:14 <elliott> I am not a Nationalist by any means but this seems yet another case where the 53000000+ inhabitants of England are ignored. We should have the suffix.en. In other respects it's as if inhabitants of England should not have some pride in their Nation or not have the world to know they are an entity and have a voice hopefully for good.
21:50:20 <elliott> great petition
21:51:58 -!- asiekierka has quit (Excess Flood).
21:52:08 -!- TwilightSpockle has changed nick to Gregor.
21:52:09 -!- Gregor has quit (Excess Flood).
21:52:22 -!- Gregor has joined.
21:52:46 -!- Gregor has changed nick to Guest56826.
21:58:32 <oerjan> `ls wisdom
21:58:33 <HackEgo> As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.
21:58:39 <oerjan> there you go.
21:58:42 -!- asiekierka has joined.
21:58:54 <oerjan> (pretty easy to get around if you really want, of course)
21:59:07 <ais523> is .en currently used?
22:00:32 <Bike> Don't think so.
22:03:13 <kmc> `run ls wisdom | tr n-za-mN-ZA-M a-zA-Z
22:03:14 <HackEgo> Nf gur jvfqbz qverpgbel pbagnvaf znal svyrf anzrq nsgre avpxf, yvfgvat vg va choyvp naablf crbcyr. Gel `cnfgrjvfqbz vafgrnq.
22:03:29 <ais523> that's a rot-13 tr, right?
22:03:30 -!- boily has quit (Quit: Poulet!).
22:03:34 -!- cuttlefish has quit (Remote host closed the connection).
22:03:36 <kmc> yeah
22:03:41 <ais523> IIRC there's some crazy golfed way to do rot13 which doesn't work on all punctuation marks
22:03:47 <kmc> `run /bin/ls wisdom | tr n-za-mN-ZA-M a-zA-Z
22:03:48 <HackEgo> ​`? \ ? \ ⌨ \ ☃ \ 🐐 \ $1? \ nvf523 \ nzrevpn \ ngevd \ ngevk \ nhthe \ onanpu-gnefxv \ ovxr \ obvyl \ obairaba \ oenva \ oenvas**x \ oenvashpx \ oevpx \ ohezn \ p \ pnxrcebcurg \ pnyvsbeavn \ pngrtbel \ pynhfgebcubovn \ pbssrr \ pbzbanq \ pbcceb \ plorevnq \ qrivbhf \ q-zbqhyr \ rtbobg \ ruveq \ ryyvbg \ ryyvbgg \ raqbshapgbe \ raqbzbecuvf
22:03:52 <elliott> `cat bin/ls
22:03:54 <HackEgo> ​#!/bin/sh \ if [ "$1" = wisdom -o "$1" = wisdom/ ]; \ then echo 'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.'; \ else exec /bin/ls "$@"; \ fi
22:04:01 <elliott> `ls wisdom//
22:04:03 <HackEgo> ​`? \ ? \ ⌨ \ ☃ \ 🐐 \ $1? \ ais523 \ america \ atriq \ atrix \ augur \ banach-tarski \ bike \ boily \ bonvenon \ brain \ brainf**k \ brainfuck \ brick \ burma \ c \ cakeprophet \ california \ category \ claustrophobia \ coffee \ comonad \ coppro \ cyberiad \ devious \ d-module \ egobot \ ehird \ elliot \ elliott \ endofunctor \ endomorphis
22:04:08 <augur> DIE
22:04:09 <kmc> heh
22:04:12 <augur> oh hey elliott
22:04:16 <coppro> `rm -r wisdom
22:04:17 <HackEgo> rm: invalid option -- ' ' \ Try `rm --help' for more information.
22:04:21 <ais523> elliott: what does the second slash do?
22:04:27 <elliott> ais523: fool oerjan
22:04:28 <kmc> `addquote <augur> DIE <augur> oh hey elliott
22:04:31 <ais523> oh, I see
22:04:31 <HackEgo> 947) <augur> DIE <augur> oh hey elliott
22:04:34 <elliott> coppro: what is the point of that
22:04:37 <ais523> it's ls that was changed
22:04:38 <coppro> elliott: express my rage
22:04:40 <elliott> not that it works
22:04:50 <coppro> `rm widsom/*
22:04:51 <HackEgo> rm: cannot remove `widsom/*': No such file or directory
22:04:56 <coppro> `rm wisdom/*
22:04:57 <HackEgo> rm: cannot remove `wisdom/*': No such file or directory
22:05:01 <monqy> stop
22:05:01 <kmc> `ls ./wisdom | tr -d a-z
22:05:02 <HackEgo> ​/bin/ls: cannot access ./wisdom | tr -d a-z: No such file or directory
22:05:07 <kmc> `run ls ./wisdom | tr -d a-z
22:05:08 <HackEgo> ​`? \ ? \ ⌨ \ ☃ \ 🐐 \ $1? \ 523 \ \ \ \ \ - \ \ \ \ \ ** \ \ \ \ \ \ \ \ \ \ \ \ \ \ - \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 8 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 4 \ \ \ \ \ \ - \ \ \ \ \ \ \ 19 \ 20 \ 21 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ø \ Ø
22:05:25 <kmc> `echo ø | tr -d a-z
22:05:26 <HackEgo> ​ø | tr -d a-z
22:05:34 <Bike> nice
22:05:35 <kmc> `echo ø | LC_ALL=en_US.UTF-8 tr -d a-z
22:05:36 <HackEgo> ​ø | LC_ALL=en_US.UTF-8 tr -d a-z
22:05:38 <elliott> coppro: maybe if all you do in the channel is whine that you are being pinged and mess with bots because of it to show everyone how angry you are you should just... /part
22:05:40 <kmc> `run echo ø | LC_ALL=en_US.UTF-8 tr -d a-z
22:05:41 <HackEgo> ​ø
22:05:50 <elliott> and then you'd not be getting pinged by a channel you don't want to look at.
22:06:06 <monqy> um sometimes he says stuff about that webcomic
22:06:09 <monqy> you know, the one sgeo likes
22:06:14 <oerjan> <elliott> ais523: fool oerjan <-- i _said_ it was simple. i don't want to do something which breaks an unrelated ls use.
22:06:31 <kmc> `run echo ø | LC_ALL=da_DK.UTF-8 tr -d a-z
22:06:32 <HackEgo> ​ø
22:06:38 <coppro> elliott: maybe I should. but you usually are the one to /part this channel in rage
22:06:41 <elliott> oerjan: right. I think you can normalise the path though.
22:06:42 <coppro> so meh
22:06:47 <kmc> `run LC_ALL=da_DK.UTF-8 locale
22:06:48 <HackEgo> LANG=en_NZ.UTF-8 \ LANGUAGE= \ LC_CTYPE="da_DK.UTF-8" \ LC_NUMERIC="da_DK.UTF-8" \ LC_TIME="da_DK.UTF-8" \ LC_COLLATE="da_DK.UTF-8" \ LC_MONETARY="da_DK.UTF-8" \ LC_MESSAGES="da_DK.UTF-8" \ LC_PAPER="da_DK.UTF-8" \ LC_NAME="da_DK.UTF-8" \ LC_ADDRESS="da_DK.UTF-8" \ LC_TELEPHONE="da_DK.UTF-8" \ LC_MEASUREMENT="da_DK.UTF-8" \ LC_IDENTIFICATION="da_DK
22:06:54 <kmc> en_NZ? what a country
22:07:19 <ais523> yeah, people have commented on HackEgo being set to en_NZ before now
22:07:31 <elliott> it's because gregor is from new zealand
22:07:35 <monqy> coppro: what's that supposed to do with anything / do you not want to associate yourself with elliott / maybe you should leave you're associating with him just by being in here
22:08:27 -!- RodgerTheGreat has joined.
22:08:30 <ais523> coppro: actually, I thought it was normally me who rageparted
22:08:33 <ais523> although elliott does it too
22:09:11 <monqy> it goes in and out of fashion
22:09:27 <coppro> monqy: oh my god your right
22:09:29 <coppro> i should leave
22:09:42 <coppro> also elliot is a human
22:09:48 <coppro> i should commit suicide to avoid shame by association
22:09:55 <monqy> the worst shame of all
22:10:13 <ais523> coppro: you misspelt his name deliberately?
22:10:28 <coppro> im not sure
22:10:53 <monqy> unfortunately i can't stick around to see this to its conclusion / prior engagements / bye bye
22:10:56 -!- monqy has quit (Quit: hello).
22:11:26 <Taneb> `? elliot
22:11:28 <HackEgo> No one was ever called Elliot.
22:11:40 -!- asiekierka has quit (Excess Flood).
22:12:02 <oerjan> <elliott> oerjan: right. I think you can normalise the path though. <-- i don't know how to do that without hunting through more manuals than i have patience for. also it mustn't break if it's actually a flag or something.
22:12:03 <ais523> coppro: oh no youre using monqy spelling
22:12:22 <ais523> oerjan: hmm… without knowing the context, I'll guess readlink -f
22:12:26 <coppro> ais523: *your
22:12:33 <ais523> coppro: no he just removes apostrophes
22:12:44 <elliott> he literally just used apostrophes the last line he said
22:12:57 <Phantom_Hoover> `? ☃
22:12:59 <HackEgo> ​☃ brrr...
22:13:50 <kmc> def method_missing(n, *a, &b); send(methods.min_by { |m| levenshtein(n.to_s, m.to_s) }, *a, &b); end
22:13:59 <oerjan> ais523: absolutely not.
22:14:13 <ais523> elliott: monqy doesn't always use monqy spelling
22:14:30 <oerjan> ais523: the argument isn't guaranteed to be an actual existing file
22:14:35 <ais523> it's reserved for specific circumstances
22:14:49 <ais523> oerjan: oh, readlink -m then
22:15:08 <ais523> or readlink -e if you want the directory it's in to exist
22:15:38 <oerjan> and it would _still_ break if someone just adds a flag in front of the file argument.
22:16:18 <ais523> yeah, you'd have to filter out things that started with -
22:16:32 <ais523> and then someone'd do something like mkdir -; ls -- -/../wisdom
22:16:42 -!- asiekierka has joined.
22:19:14 <ais523> anyway, I think it's probably OK to have an `ls that will stop people listing wisdom by mistake
22:19:27 <ais523> it'll always be possible to do it intentionally if you really want to
22:19:49 <oerjan> mhm
22:21:09 <oerjan> ais523: so what's the best poison to get rid of housemates i'm sure you're an expert on this.
22:21:32 <ais523> oerjan: I don't think I'd ever attempt to get rid of housemates
22:21:36 <ais523> not via poison, at least
22:21:42 <ais523> I'd suggest something non-fatal, anyway
22:21:50 <oerjan> how boring
22:21:58 <ais523> they'd likely leave and/or press criminal charges upon discovering you attempted to poison them
22:22:01 <zzo38> I suggest using a poison which does not harm the environment or light your house on fire.
22:22:04 <ais523> regardless of whether or not it suceeded
22:22:22 <zzo38> But first tell them to go away; maybe you need not waste any poison.
22:23:20 <oerjan> but telling them to go away would be rude!
22:24:18 <kmc> `stat wisdom
22:24:19 <HackEgo> ​ File: `wisdom' \ Size: 4096 Blocks: 8 IO Block: 1024 directory \ Device: 10h/16dInode: 752131 Links: 2 \ Access: (0755/drwxr-xr-x) Uid: ( 5000/ UNKNOWN) Gid: ( 5000/ UNKNOWN) \ Access: 2013-02-01 21:20:23.000000000 +0000 \ Modify: 2013-02-01 21:20:14.000000000 +0000 \ Change: 2013-02-01 21:20:14.000000000 +0000
22:24:33 <ais523> oerjan: poisoning them would probably be ruder
22:24:42 <kmc> `stat -c %i wisdom
22:24:44 <HackEgo> stat: missing operand \ Try `stat --help' for more information.
22:24:45 <ais523> why do you want to get rid of your housemates anyway?
22:24:57 <kmc> `run stat -c %i wisdom
22:24:58 <HackEgo> 752131
22:25:06 <oerjan> because they're occupying the kitchen with theire girlfriend hth
22:25:07 <kmc> `cat bin/ls
22:25:08 <HackEgo> ​#!/bin/sh \ if [ "$1" = wisdom -o "$1" = wisdom/ ]; \ then echo 'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.'; \ else exec /bin/ls "$@"; \ fi
22:25:10 <ais523> kmc: oh no, I know what you're doing
22:25:13 <oerjan> *their
22:25:14 <ais523> oh, in reverse
22:25:20 <ais523> I thought you were planning to `ls wisdom by inode
22:25:28 <ais523> rather than setting ls to reject the inode
22:26:23 <Bike> this all seems a bit... overengineered
22:26:43 <oerjan> i know, checking for the trailing / might be overkill
22:27:14 <Bike> maybe you could just tell people not to do `ls wisdom
22:27:34 <oerjan> Bike: every newbie in the channel does it.
22:27:50 <Bike> what's the log paste command again
22:27:51 <oerjan> that's not what i call a sustainable policy.
22:28:07 <kmc> `run echo -e '#!/bin/sh\nif [ $(stat -c %i "$1") -eq 752131 ]; then echo "As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead."; else exec /bin/ls "$@"; fi' > bin/ls
22:28:10 <HackEgo> No output.
22:28:12 <kmc> `ls
22:28:13 <HackEgo> ​/hackenv/bin/ls: 3: Syntax error: EOF in backquote substitution
22:28:23 <kmc> oh backquotes work inside "" don't they :/
22:28:42 <Bike> `pastelogs "`ls wisdom"
22:28:44 <oerjan> kmc: i did the same mistake
22:29:13 <kmc> `run echo -e '#!/bin/sh\nif [ $(stat -c %i "$1") -eq 752131 ]; then echo '"'"'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.'"'"'; else exec /bin/ls "$@"; fi' > bin/ls
22:29:15 <zzo38> Is there the environment variable to check the sender and recipient of the message?
22:29:19 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.28297
22:29:22 <HackEgo> No output.
22:29:23 <kmc> `ls
22:29:24 <HackEgo> stat: cannot stat `': No such file or directory \ [: 2: -eq: unexpected operator \ = 0 \ bin \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ test \ wisdom \ zalgo.hs
22:29:38 <kmc> `cat bin/ls
22:29:39 <HackEgo> ​#!/bin/sh \ if [ $(stat -c %i "$1") -eq 752131 ]; then echo 'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.'; else exec /bin/ls "$@"; fi
22:29:50 <Bike> nice
22:29:53 <Bike> `pastelogs `ls wisdom
22:29:55 <oerjan> kmc: you cannot assume the first argument is a file
22:30:00 <kmc> oh yeah :/
22:30:05 <oerjan> oh hm
22:30:06 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.18708
22:30:18 <oerjan> did that break mine as well...
22:30:29 <kmc> `run echo -e '#!/bin/sh\nif [ "$(stat -c %i "$1" 2>/dev/null)" -eq 752131 ]; then echo '"'"'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.'"'"'; else exec /bin/ls "$@"; fi' > bin/ls
22:30:32 <HackEgo> No output.
22:30:34 <kmc> `ls
22:30:35 <HackEgo> ​[: 2: Illegal number: \ = 0 \ bin \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ test \ wisdom \ zalgo.hs
22:30:39 <kmc> fffffffff
22:30:58 <Bike> so what, maybe once in the entirety of december
22:31:01 <oerjan> oh mine works without argument, ok
22:31:15 <kmc> `run stat -c %i ""
22:31:16 <HackEgo> stat: cannot stat `': No such file or directory
22:31:20 <kmc> `run stat -c %i "" 2>/dev/null
22:31:21 <HackEgo> No output.
22:31:23 <elliott> kmc: You can get ls to output inodes.
22:31:25 <kmc> ok i don't know what the problem is then
22:31:29 <elliott> How about strace ls?
22:31:31 <elliott> `strace
22:31:32 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: strace: not found
22:31:47 <elliott> `run ls -id -lmkr wisdom
22:31:48 <HackEgo> ​[: 2: Illegal number: \ 752131 wisdom
22:31:53 <elliott> `run builtin ls -id -lmkr wisdom
22:31:54 <HackEgo> bash: line 0: builtin: ls: not a shell builtin
22:31:56 <elliott> `run command ls -id -lmkr wisdom
22:31:58 <HackEgo> ​[: 2: Illegal number: \ 752131 wisdom
22:31:58 <elliott> `run /bin/ls -id -lmkr wisdom
22:31:58 <kmc> `run echo -e '#!/bin/sh\nif [ "$(stat -c %i "$1" 2>/dev/null)" = 752131 ]; then echo '"'"'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.'"'"'; else exec /bin/ls "$@"; fi' > bin/ls
22:31:59 <HackEgo> 752131 wisdom
22:32:01 <HackEgo> No output.
22:32:04 <kmc> `ls
22:32:05 <HackEgo> ​= 0 \ bin \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ test \ wisdom \ zalgo.hs
22:32:06 <elliott> So ls -id "$@".
22:32:10 <elliott> And then compare that against the inode.
22:32:11 <kmc> `ls wisdom
22:32:12 <HackEgo> As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.
22:32:12 <elliott> Seems pretty reliable.
22:32:14 <kmc> yay
22:32:43 <kmc> `run ls -id "$@" wisdom
22:32:45 <HackEgo> 752131 wisdom
22:33:05 -!- Taneb has quit (Quit: Leaving).
22:33:16 <oerjan> `run stat -c %i wisdom
22:33:17 <HackEgo> 752131
22:33:18 <kmc> `run echo -e '#!/bin/sh\nif ls -id "$@" | grep -q '^752131 '; then echo '"'"'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.'"'"'; else exec /bin/ls "$@"; fi' > bin/ls
22:33:21 <HackEgo> No output.
22:33:26 <kmc> `ls
22:33:29 <oerjan> huh it _is_ stable
22:33:38 <HackEgo> ​/hackenv/bin/ls: 2: Cannot fork \ = 0 \ bin \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ test \ wisdom \ zalgo.hs
22:33:44 <kmc> dur
22:33:48 <kmc> `run echo -e '#!/bin/sh\nif /bin/ls -id "$@" | grep -q '^752131 '; then echo '"'"'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.'"'"'; else exec /bin/ls "$@"; fi' > bin/ls
22:33:51 <HackEgo> No output.
22:33:55 <kmc> `ls
22:33:57 <HackEgo> ​= 0 \ bin \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ test \ wisdom \ zalgo.hs
22:33:58 <kmc> `ls bin
22:33:59 <HackEgo> ​? \ @ \ WELCOME \ addquote \ allquotes \ anonlog \ aseen \ botsnack \ bseen \ calc \ define \ delquote \ emoclew \ etymology \ forget \ fortune \ frink \ gaseen \ google \ h \ ?h \ h! \ hatesgeo \ ?hh \ interp \ joustreport \ jousturl \ json \ karma \ karma- \ karma+ \ learn \ list \ liste \ lists \ log \ logurl \ ls \ lua \ luac \
22:34:01 <kmc> `ls wisdom
22:34:02 <HackEgo> As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.
22:34:07 <kmc> ok i declare this Good Enough
22:34:11 <kmc> thanks all for putting up with it
22:35:49 <oerjan> `run ls -l .
22:35:51 <HackEgo> total 36748 \ -rw-r--r-- 1 5000 5000 0 Jan 31 20:36 = 0 \ drwxr-xr-x 2 5000 5000 4096 Feb 1 22:33 bin \ -rw-r--r-- 1 5000 5000 4 Jan 31 20:36 canary \ -rw-r--r-- 1 5000 5000 341112 Jan 31 20:36 dbg.out \ -rw-r--r-- 1 5000 5000 2974360 Jan 31 20:36 egobot.tar.xz \ drwxr-xr-x 3 5000 5000 4096 Jan 31 20:36 etc \ drwxr-
22:36:11 <oerjan> `ls ./wisdom/
22:36:12 <HackEgo> As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try `pastewisdom instead.
22:37:16 <fizzie> `run ls wisdom/*
22:37:18 <HackEgo> wisdom/`? \ wisdom/? \ wisdom/☃ \ wisdom/⌨ \ wisdom/🐐 \ wisdom/$1? \ wisdom/ais523 \ wisdom/america \ wisdom/atriq \ wisdom/atrix \ wisdom/augur \ wisdom/banach-tarski \ wisdom/bike \ wisdom/boily \ wisdom/bonvenon \ wisdom/brain \ wisdom/brainf**k \ wisdom/brainfuck \ wisdom/brick \ wisdom/burma \ wisdom/c \ wisdom/cakeprophet \ wisdom/cali
22:37:19 <fizzie> Next patch bash not to do that.
22:37:28 <Bike> if you're worried about noobs doing it why would you care about them finding a way around it
22:37:39 <oerjan> i'm with Bike
22:37:55 <ais523> indeed
22:38:10 <oerjan> especially since /bin/ls is still there the same as always.
22:38:20 <Bike> just kickban people in a rage like a normal irc channel!!
22:42:43 -!- Bike has quit (Ping timeout: 260 seconds).
22:44:15 -!- augur has quit (Remote host closed the connection).
22:45:25 <kmc> seriously
22:45:26 -!- Bike_ has joined.
22:47:54 <olsner> DDR3: trinary memory, the bandwidth increases by 1.5x (compared to binary DDR2 memory) due to using trinary encoding instead of binary
22:48:05 <elliott> kmc: Can't you just do ls -id wisdom and compare that?
22:48:10 <elliott> Rather than hardcoding the inode, which might change.
22:48:30 <kmc> whatever
22:51:29 <olsner> (the original unary DDR memory allowed only the canonical truth to be stored - while both thread-safe and fast, it was somewhat limited in application)
22:55:43 <Vorpal> olsner, trying to find the context to your line about DDR3, but I can't. Did it just start there?
22:55:47 <olsner> ECC - European (or Error) Control Central: memory with ECC support reports all errors to the central database in Brussels. Manufacturers of faulty memories are fined appropriately.
22:56:01 <Sgeo> http://goto.ucsd.edu/~rjhala/liquid/haskell/blog/blog/2013/01/31/safely-catching-a-list-by-its-tail.lhs/
22:56:09 <olsner> Vorpal: it started some months ago, dunno when
22:56:12 <Sgeo> Am I going to need to read the prior blog posts to understand this?
22:56:14 <olsner> `quote SDRAM
22:56:15 <HackEgo> 712) <olsner> the allocation is done by the "Dynamic" in DRAM <olsner> before that we used SRAM where everything was preallocated in the factory <fizzie> olsner: So what's this SDRAM then? <olsner> fizzie: synchronized, it's for multithreading
22:56:33 <Vorpal> ah
22:56:41 <Vorpal> olsner, and this has been a regular thing since then?
22:56:48 <olsner> no, this is the second installment
22:56:51 <Vorpal> ah
22:56:56 <Vorpal> olsner, what about QDRAM?
22:57:34 <olsner> ah, Quantum DRAM? in layman's terms it's everywhere at once but seldom in your particular computer
22:57:38 -!- Guest56826 has changed nick to TwilightSpockle.
22:57:58 <Vorpal> ah
22:58:07 <Vorpal> olsner, that is a bit of a bummer then
22:58:20 <Vorpal> olsner, RAMBUS?
22:59:06 <olsner> there's a common myth that QDRAM stands for quad double ram, but that's just silly since that'd be some sort of octaram and ram is already measured in octets
22:59:41 <Vorpal> heh
23:01:30 <Vorpal> olsner, actually rambus is not related to memory at all. It is basically sheep herding using large vehicles.
23:01:48 <olsner> yes, the so-called trick question
23:02:39 <olsner> a rambus can either be a bus used for ramming or a bus dressed out as a ram ... both are implements extensively used in sheep herding
23:02:49 <Vorpal> heh
23:02:54 <oerjan> and if you believe all this, you're what the germans call RAMMSTEIN
23:03:09 <olsner> that or a sheep herder
23:03:18 <olsner> unless that's what rammstein means
23:03:35 <Vorpal> olsner, google translate fails that :/
23:03:43 <Vorpal> olsner, but it *does* detect it as german
23:03:47 <Vorpal> which is interesting
23:04:07 <olsner> Vorpal: btw, rammstein is also the name of a well-known german band
23:04:14 <Vorpal> oh okay
23:04:25 <olsner> yes
23:04:28 <Vorpal> olsner, I wouldn't know, I don't listen much to modern music
23:04:39 <olsner> most sheep herders don't
23:05:26 <Vorpal> olsner, are you saying I'm a sheep herder!? Come on, don't insult me. I'm a honest goat owner. I'm not some shady sheep farmer.
23:05:27 <oerjan> "They took their name (adding an "m") from the location of a German tragedy where 80 people were hurt and killed as the result of a crash during an American Air Force flight show. The literal translation of "ram stein" is a battering ram made of stone."
23:05:39 <olsner> Vorpal: goat are sheep
23:05:48 <Vorpal> olsner, now you are getting worse
23:06:03 <olsner> go tar sheep?
23:06:12 <oerjan> but if you fuck _one_ goat...
23:06:25 <Vorpal> olsner, I prefer using pax to tar
23:06:27 <Vorpal> it is posix
23:06:34 <Vorpal> olsner, ask ais
23:07:00 <ais523> oerjan: but I use pax as a joke :)
23:07:01 <ais523> err
23:07:03 <ais523> olsner:
23:07:04 <ais523> err
23:07:06 <ais523> Vorpal:
23:07:08 <ais523> got there in the end
23:07:10 <Vorpal> olsner, anyway I thought DDR memory was a dancing game, right?
23:07:20 <Vorpal> ais523, so do I
23:07:27 <ais523> and it stands for "double data rate" as well as "dance dance revolution"
23:07:38 <ais523> I think it's clocked on both the rising and the falling clock edge
23:07:49 <Vorpal> ais523, you are wrong. Or so says olsner
23:07:56 <ais523> and that makes your circuitry so much more complex you only do it if you're trying to squeeze out the last few points of performance
23:07:57 <oerjan> i think DDR memory is called "Ostalgie" these days.
23:08:17 <Vorpal> olsner, did you say what DDR itself meant? You didn't did you
23:08:48 <olsner> I didn't, but the memory standard is named from the Deutsche Demokratische Republik ... it took until DDR2 to figure out how to store binary data in the thingies though
23:08:50 <Vorpal> ais523, anyway this whole discussion was a big joke, so thus don't treat it seriously :P
23:09:05 <ais523> Vorpal: I don't think I was :)
23:11:21 <Vorpal> ais523, anyway if you are interested, look QDR up, that stuff actually exists.
23:11:36 <ais523> Vorpal: I know it exists
23:11:48 <Vorpal> ais523, I think ODR exists too. Which is insane
23:11:50 <ais523> from an electronic engineering point of view, I think it's crazy, but see why it might be necessary
23:12:08 <ais523> it involves breaking simplifying assumptions that are used pretty much everywhere
23:12:13 <ais523> so it's much harder to reason about such circuits
23:12:15 <Vorpal> ais523, oh?
23:12:20 <Vorpal> for example?
23:12:38 <Vorpal> ais523, I believe RAMBUS was ODR btw
23:12:55 <ais523> "things happen at leading edges only" and "the clock rate is the only thing that determines timing, because timing differences are eaten up by latches"
23:13:05 <ais523> you can't use the standard combinatorial+latches model of the circuit any more
23:13:06 <olsner> oh, apparently the Quadrennial Defence Review was requested as a consequence of the dissolution of the soviets, presumably including the DDR
23:13:09 <Vorpal> oh yeah...
23:13:19 <Vorpal> olsner, heh
23:13:41 <oerjan> ddr wasn't part of the soviet union. sheesh don't you know _anything_.
23:13:58 <oerjan> (only oppressed by them.)
23:14:54 <Vorpal> I presume you have already seen this, but it seems pretty crazy: http://www.bbc.co.uk/news/technology-21193634
23:14:55 <olsner> oerjan: I don't know anything about Gwleidyddiaeth or any such business
23:15:08 <ais523> yeah, I've seen that
23:15:30 <ais523> basically, Antigua were given permission to violate a certain amount of US copyrights as compensation for the US violating a trade agreement, or something like that
23:15:41 <Vorpal> ais523, by this logic you could semi-legally move GPL code from US into that country and re-release it as BSD?
23:15:47 <Vorpal> I think?
23:16:18 <Vorpal> or maybe not
23:16:21 <ais523> Vorpal: not quite, as far as I can tell there's no way to get a workable downstream license
23:16:29 <Vorpal> hm okay
23:16:30 <ais523> so Americans wouldn't be able to use the resulting code
23:16:42 <Vorpal> ais523, well okay, what about the rest of the world?
23:16:50 <olsner> not at all, or just not under another license?
23:17:03 <ais523> Vorpal: I don't know
23:17:06 <Vorpal> olsner, presumably they could under the original license
23:17:43 <olsner> presumably... otherwise you could just Antiguate all code and make it unusable in the US
23:19:16 <Vorpal> yeah
23:20:35 <Vorpal> ais523, what the fuck, BBC breaks middle-click-to-open-in-new-tab
23:20:38 <Vorpal> at least in chrome
23:20:41 <Vorpal> utterly annoying
23:27:14 <Vorpal> can anyone explain the theory behind darcs
23:27:29 <Vorpal> I would guess either ais523 or elliott knows where to find out more about it.
23:28:00 <ais523> https://en.wikibooks.org/wiki/Understanding_Darcs/Patch_theory
23:28:19 <oerjan> my knowledge on the subject is a little patchy
23:32:01 <Phantom_Hoover> Vorpal, middle-click works fine in chrome for me.
23:32:30 <Phantom_Hoover> ...but not on article links.
23:32:44 <Phantom_Hoover> ???
23:33:24 <elliott> Vorpal: no, nobody can
23:33:41 <elliott> (AIUI)
23:33:44 <elliott> well, that's unfair
23:33:46 <elliott> it's what ais523 would say :)
23:34:01 <shachaf> hellorpal
23:34:07 <shachaf> hais523
23:34:14 <ais523> elliott: except I replied with a link
23:34:18 <shachaf> what are some good concurrency primitives
23:34:27 <ais523> shachaf: how primitive do you want?
23:34:36 <ais523> mathematically, the mutex is the one we use most often, and we build other things out of that
23:34:47 <ais523> if you want something practical, compare-and-swap can be more efficient
23:34:57 <ais523> although it requires some sort of scheduler support if you don't want to busywait
23:35:07 <ais523> so basically, high-level or low-level?
23:35:10 <shachaf> how about for coöperative threading
23:35:13 <shachaf> high-level and nice
23:35:56 -!- Bike_ has changed nick to Bike.
23:36:00 <ais523> oh, with coöperative threading, you don't need any primitives but yield
23:36:06 <ais523> if you're not yielding, you're automatically in a critical section
23:36:54 <shachaf> Well, some things could be nice as primitives.
23:37:03 <shachaf> If you want to communicate with other threads, for example.
23:37:25 <oerjan> `addquote <shachaf> what are some good concurrency primitives <ais523> shachaf: how primitive do you want?
23:37:29 <ais523> oh, I was assuming shared memory
23:37:29 <HackEgo> 948) <shachaf> what are some good concurrency primitives <ais523> shachaf: how primitive do you want?
23:37:50 <ais523> without that, you need some sort of send/receive that can figure out what each other are talking about
23:38:18 -!- augur has joined.
23:38:49 <Bike> hey ais, do you use pi calculus in your academic whatevers?
23:39:17 <shachaf> Shared memory is fine but what sort of variables do you take as primitives?
23:39:38 <ais523> Bike: no, but enough other people do that I know it's relevant here
23:39:46 <ais523> I recognise it, but don't really reason with it
23:40:13 <Bike> kay
23:41:38 <ais523> it's mostly used in security in my department
23:42:41 <Vorpal> <Phantom_Hoover> ...but not on article links. <-- yeah that is what I tried
23:43:04 <Vorpal> elliott, ais523: thanks
23:43:35 <Vorpal> <ais523> if you want something practical, compare-and-swap can be more efficient <-- what about double compare and swap
23:44:00 <Vorpal> ais523, as in compare a and swap with b, and also compare c and swap with d. IIRC some old Motorola had that
23:44:22 <Vorpal> err, compare a with b and swap with c, and compare c with d and swap with e
23:44:24 <Vorpal> obviously
23:44:35 <ais523> Vorpal: that sounds like an optimization
23:45:07 <Vorpal> ais523, iirc it allow you to do some stuff normal CAS can't do reasonably. Like a wait-free queue. Read about that somewhere
23:45:43 <elliott> ais523: atomicity isn't an optimisation
23:45:50 <Vorpal> ais523, I think both needs to match for any of the swap to happen?
23:46:14 <ais523> elliott: well CAS is enough to implement anything
23:46:18 <Vorpal> https://en.wikipedia.org/wiki/Double_compare-and-swap
23:46:23 <ais523> but it often takes a bunch of commands to do so
23:46:45 <Vorpal> ais523, "One of the advantages of DCAS is the ability to implement atomic deques (i.e. doubly linked lists).[2]"
23:46:46 <Vorpal> hm
23:47:05 <ais523> sort-of like you can see C as an optimization of brainfuck
23:48:14 <Vorpal> elliott, remember that paper I linked at one point, of that interesting OS that used DCAS amongst other things?
23:48:19 <Vorpal> elliott, do you remember the name of it?
23:48:30 <Vorpal> some old master thesis iirc?
23:48:37 <Bike> synthesis?
23:48:52 <elliott> Synthesis is cool.
23:48:53 <Vorpal> Bike, thanks
23:49:00 <Bike> it's on whatshername's site
23:49:09 <Bike> valerie... something?
23:50:01 <elliott> http://valerieaurora.org/synthesis/SynthesisOS/
23:50:12 * elliott read it as a .ps version.
23:50:17 <elliott> That HTML version is a bit 90s.
23:50:45 <Bike> yeah, i have it as pdf, but it's nice to have html sometimes
23:52:09 -!- sirdancealot7 has joined.
2013-02-02
00:03:51 <kmc> http://upload.wikimedia.org/wikipedia/commons/8/8a/Birgus_latro_%28Bora-Bora%29.jpg
00:05:03 <Bike> ooh, it's like a beefier spider crab
00:07:34 <kmc> coconut crab
00:07:35 <kmc> huge
00:08:06 -!- asiekierka has quit (Excess Flood).
00:08:18 <Bike> http://en.wikipedia.org/wiki/File:Japanese_spider_crab.jpg A Good Species
00:11:18 <Phantom_Hoover> uh what about http://en.wikipedia.org/wiki/File:Giant_isopod.jpg
00:12:02 <Bike> good isopods
00:12:14 -!- asiekierka has joined.
00:12:39 <Phantom_Hoover> isopods are the best
00:13:09 <oerjan> invertible pods
00:13:21 <Phantom_Hoover> especially slaters
00:13:31 <Phantom_Hoover> don't have lungs, but they're not going to let that stop them
00:13:46 -!- Arc_Koen has left.
00:14:38 -!- epicmonkey has quit (Ping timeout: 255 seconds).
00:18:31 <ion> isopodism
00:19:29 <Phantom_Hoover> sacculina is just weird
00:25:07 <kmc> Hulu wants me to watch Coronation Street. "Don't miss all the drama rife with Britishisms" it says
00:26:11 <Phantom_Hoover> you should watch it!
00:26:45 <oerjan> @hoogle lexeme
00:26:45 <lambdabot> Text.Read.Lex data Lexeme
00:26:45 <lambdabot> Text.Read data Lexeme
00:26:45 <lambdabot> Text.Parsec.Token lexeme :: GenTokenParser s u m -> forall a. ParsecT s u m a -> ParsecT s u m a
00:27:29 -!- ogrom has quit (Quit: Left).
00:28:49 <elliott> yes kmc
00:28:51 <elliott> watch coronation street
00:35:17 <kmc> why
00:35:41 <elliott> um
00:35:44 <elliott> watch first ask questions later
00:42:33 <kmc> i don't know what a british soap opera is like
00:42:36 <Vorpal> hm, this is interesting http://valerieaurora.org/review/hash.html (looked around the site where synthesis HTML is hosted)
00:42:40 <kmc> american soap operas are... dumb
00:42:46 <Vorpal> elliott, you might be interested in that
00:43:01 <Vorpal> elliott, it discusses using hash as a unique key, like git does
00:43:19 <Vorpal> pretty sure the paper predates git though
00:46:15 <ais523> using a hash as a unique key is pretty obvious, really
00:46:18 <ais523> it's how hash tables work
00:46:57 <Vorpal> ais523, except you then compare the value in the bucket to make sure it actually is the key you wanted
00:47:05 <ais523> yes
00:47:08 <Vorpal> ais523, with git or venti you don't
00:47:12 <ais523> if you had an infinitely large hash table this wouldn't be a problem
00:47:15 <Vorpal> you trust the sha1 is unique
00:47:25 <Vorpal> if it isn't. Well shit
00:47:26 <ais523> such as a filesystem
00:47:51 <Vorpal> ais523, the sha1 is not unique though, due to the pidgeon hole principle.
00:48:50 <ais523> yeah, but it's unique in the sense of "if there's a collision, the collision itself will be more valuable than whatever it is you're working on"
00:49:00 <Vorpal> ais523, hah
00:49:25 <kmc> also in the sense of 'random bit flip error in hardware is vastly more likely'
00:49:30 <kmc> but the paper says maybe not?
00:49:30 <Vorpal> ais523, but that is not the point. I do think http://valerieaurora.org/review/hash.html makes some interesting points.
00:49:33 <kmc> but i didn't read it
00:49:40 <kmc> what are the interesting points
00:50:32 <Vorpal> kmc, yes that is true, but that is over a random data. The paper points out that most data stored in a file system is not random, and thus those calculations can not necessarily be used straight away.
00:52:21 <Vorpal> kmc, for example, consider shb1(x) = { if x > 0 : sha1(x); if x = 0 : sha(1) }. That is has almost the same properties as sha1() here, almost the same risk of collision given two random inputs, but would be vastly less useful than sha1 for actual practical non-random data
00:53:34 <kmc> mm
00:53:39 <kmc> because it collides 0 and 1
00:53:45 <Vorpal> kmc, of course, sha1 doesn't do anything as stupid as that, but the point is that "chance of two random inputs colliding" does not necessarily equal "chance of two file system blocks/commits colliding"
00:54:01 <Vorpal> because the latter is highly non-random
00:54:04 <kmc> sure
00:54:17 <kmc> i mean, i have md5 collisions on my disk :)
00:54:25 <kmc> but everyone agrees this means md5 is broken
00:54:31 <Vorpal> kmc, ah that nicely brings us to another point
00:55:26 <Vorpal> kmc, sha1 is cryptographically secure (or was at the point of writing that paper anyway, in 2003). md5 was suspected of being insecure, but wasn't yet really broken
00:56:31 <Vorpal> kmc, who knows if it will be trivial to find collisions for sha1 is 10 years time? You might still have your git repo around then. While for crypo applications, it doesn't matter if a key created today isn't secure any more then. It is probably no longer in use by then anyway
00:57:06 <kmc> yeah, it's very bad that Git doesn't have any hash upgrade path
00:57:37 <Vorpal> and even if it had, what would you do if someone snuck in a collision before you had time to fix it. You would be pretty much screwed
00:58:15 <Vorpal> kmc, the same applies to venti, hg (I assume?, I don't know if hg is as stupid as git here) and so on
00:58:22 <kmc> if you are relying on git for cryptographic assurances, yes
00:59:00 <Vorpal> kmc, if you are relying on git for just being able to identify commits uniquely
00:59:00 <kmc> obviously in many projects using git, if someone can 'sneak in' malicious commits then you are in trouble anyway
00:59:16 <kmc> Vorpal: if you are relying on git for being able to identify commits uniquely in an adversarial model
00:59:24 <Vorpal> well yeah
00:59:56 <kmc> this doesn't mean git is 'stupid'
01:00:00 <Bike> is there an adversarial model of revision control
01:00:01 <elliott> kmc: have yo uwatched coronation street yet
01:00:09 <kmc> it means git fails to deliver a particular security guarantee that VCSes often don't deliver
01:00:25 <Vorpal> kmc, what about rsync?
01:00:25 <kmc> it fails in proportion to how much SHA-1 fails
01:00:45 <kmc> people do talk about git as if it has this guarantee, and it sort of does, as long as SHA-1 is okay
01:00:47 <Vorpal> kmc, can you know your two sets of files are actually the same?
01:01:10 <kmc> but yeah, I would not rely on a Git hash to take the place of code signing against a determined attacker who may have broken a world cryptographic hash standard
01:01:13 <kmc> big fuckin deal
01:01:21 <kmc> calling Git "stupid" because of that is ridiculous hyperbole
01:01:36 <Vorpal> kmc, in the long run, it will most likely become, if not trivial, at least achievable, to generate SHA-1. The technological development is pretty rapid.
01:01:42 <kmc> yes
01:01:50 <elliott> git is stupid for unrelated reasons
01:01:53 <kmc> and then we should upgrade to a new version of Git that uses a better hash
01:01:56 <Vorpal> elliott, well yes, as well
01:02:17 <Vorpal> kmc, what about deduplicating file systems like venti though
01:02:18 <kmc> if I sign my code with RSA then in the long run someone will break RSA too
01:02:20 <kmc> what's your point
01:03:39 <Bike> can we take this long term and assert that privacy as a concept will only even exist in like one and a half centuries max, and afterwards we'll all be flinging unsigned poo at each other
01:04:23 <Vorpal> kmc, my point is that file systems and version control systems, especially file systems, are in for the long run. In crypto applications you are usually not
01:05:09 <Vorpal> Bike, you believe civilisation will collapse that soon?
01:05:24 <Bike> "yes"
01:05:28 <Vorpal> fair enough
01:06:03 <Bike> i guess i could read that three np worlds paper again and then pretend to have a thought-out opinion
01:06:24 <Vorpal> Bike, oh?
01:07:44 <Bike> Impagliazzo's
01:08:02 <Bike> http://cseweb.ucsd.edu/users/russell/average.ps
01:10:17 <kmc> Vorpal: not sure re: crypto applications not being for the long run
01:10:34 <kmc> if da police image my hard drive, I might care that they can decrypt it 15 years later
01:10:44 <kmc> likewise with any incriminating emails I may have sent
01:10:54 <kmc> SSH sessions that may have been recorded
01:10:55 <kmc> etc
01:11:01 <Vorpal> kmc, well okay it depends, but the most common applications of message signing and such where you use hashes are not relevant 15 years later
01:11:12 <kmc> i don't agree
01:11:38 <oerjan> Bike: no no, we will all merge into a highly technological group mind etc.; admittedly still no privacy.
01:11:41 <Vorpal> kmc, and a symmetric block cipher such as AES do not involve hashes generally
01:11:46 <Bike> I wonder if a statute of limitations extension argument from crypto will ever be made.
01:11:51 <Bike> oerjan: you're blowing my mind man.
01:11:51 <kmc> if anything I think the VCS is in a better position
01:12:12 <kmc> if you think nobody has broken SHA-1 yet, but they will soon, you can re-hash all your Git objects with SHA-3 and then refuse to deal with SHA-1 going forward
01:12:34 <kmc> whereas you can't go back in time and make the police's image of your encrypted hard drive no longer valid
01:13:27 <Vorpal> kmc, true, but that is not a hash. That is a different situation. And I meant hashes in cryptography in this context
01:13:27 <kmc> and i don't know what your point is re: AES not involving hashes
01:13:32 <kmc> hashes aren't the only things that can be broken
01:13:38 <kmc> ok
01:13:49 <Vorpal> kmc, quite so. But the discussion was about hashesh
01:13:51 <Vorpal> hashes*
01:16:22 <Vorpal> kmc, my point was that, for the most part, in crypographic contexts, it isn't interesting if, for example, the SHA-1 checksum for the SSL cert is broken 10 years down the line.
01:17:58 <Vorpal> hashes in cryptography is generally for signing stuff, so you can verify it. Apart from using it for document signing, I don't see much of an use many years down the line
01:20:17 <kmc> and nobody is going to care in 15 years if a given document is authentic?
01:20:17 <Vorpal> good night
01:20:28 <Vorpal> kmc, I said, apart from document signing
01:20:31 <kmc> oh
01:20:35 <Vorpal> yes I do realise that is a problem
01:21:43 -!- carado has quit (Ping timeout: 246 seconds).
01:21:45 <Vorpal> kmc, but for the grand majority of the applications, it is not such a major issue.
01:21:54 <Vorpal> and now I need to sleep, pretty late over here
01:24:42 <kmc> 'night
01:26:16 -!- monqy has joined.
01:27:49 <zzo38> I can understand how (CoYoneda IORef) makes a read-only reference. You can see what it makes when you use IORef with other Kan extensions
01:31:12 <shachaf> zzo38: What does it make?
01:36:21 <zzo38> I try to think of it.
01:53:53 -!- sirdancealot7 has quit (Ping timeout: 256 seconds).
02:02:51 <zzo38> Do you know what I think is the benefit of chiromancy (palmistry)?
02:06:35 <Bike> Picking up chicks?
02:06:56 <zzo38> No!
02:09:42 <TwilightSpockle> Picking up pigeons?
02:10:08 <Bike> Ooh, can I change my guess?
02:10:30 <zzo38> Yes, you can change your guess.
02:10:46 <zzo38> Picking up pigeons is also incorrect.
02:11:45 <Bike> Aww.
02:11:50 <Bike> Ok, I give up, what is the benefit?
02:12:14 <zzo38> To name all the lines on your hand and shape of your hand.
02:12:31 <zzo38> (Even if they don't have anything to do with what they are named after)
02:12:45 <Bike> I guess it could be kind of useful for external anatomy...
02:23:19 <kmc> Speicherzugriffsfehler
02:23:38 <kmc> Ошибка сегментирования
02:31:49 <kmc> Szegmentálási hiba
02:34:27 <Bike> I'd probably still be programming lots of C if that was the error
02:34:41 <kmc> which one
02:34:53 <kmc> i'd probably still be programming lots of C
02:35:04 <kmc> if by "programming" you mean "smoking" and by "C" you mean "crack"
02:35:51 <Bike> honestly all of them
02:35:59 <Bike> polish is my wife in the celestial plane
02:36:08 <kmc> that's hungarian
02:36:15 <Bike> FUCK
02:36:25 <kmc> polish is:
02:36:25 <kmc> Naruszenie ochrony pamięci
02:36:34 <Bike> Ok that's good too.
02:36:46 <Bike> What the hell is "naruszenie"? None of these things look very cognate.
02:36:58 <kmc> surprising that hu has the en cognate in this case
02:38:11 <kmc> means "violation" apparently
02:38:42 <Bike> nice
02:39:06 <oerjan> somehow i have a feeling of seeing that word before
02:39:11 <kmc> (naruszenie does i mean)
02:39:16 <oerjan> maybe i was violated by a pole once
02:40:02 <Bike> Why do I see "sz" and guess polish. that's like, the hungarian giveaway
02:40:25 <oerjan> because it's _also_ the polish giveaway.
02:40:46 <TwilightSpockle> `addquote <oerjan> maybe i was violated by a pole once
02:40:51 <HackEgo> 949) <oerjan> maybe i was violated by a pole once
02:41:00 <Bike> oh i thought the polish giveaway was things like "zenie"
02:41:06 <oerjan> the á's are more specific to hungarian i think
02:41:10 <Bike> (wow do i have a shallow view of languages or what)
02:41:18 <TwilightSpockle> I thought the Polish giveaway was rz.
02:41:23 <kmc> the best hungarian giveaway is ő or ű ;P
02:41:43 <kmc> polish is just english with about 5 extra consonants in each word
02:41:44 <oerjan> Bike: polish and hungarian both use s and sz. in opposite ways. hth.
02:41:45 <kmc> let's be realistic
02:41:59 <Bike> can we just have every language use its own orthography
02:42:29 <oerjan> Bike: although perhaps the best way to put it: hungarian uses the sz for something that's obviously a foreign borrowed "s"
02:42:41 <Bike> what really
02:42:43 -!- Phantom_Hoover has quit (Remote host closed the connection).
02:42:45 <Bike> it's not only in loanwords is it
02:42:48 <Bike> have i been so wrong
02:42:49 <oerjan> no
02:42:56 <kmc> no translation in sq_AL.UTF-8 :(
02:43:02 <Bike> is my whole life a lie
02:43:03 <oerjan> but that's how you can see Szegmentálási is hungarian
02:43:12 <Bike> kmc: scots? actually no i have no idea
02:43:31 <Bike> is there a locale for klingon
02:43:31 <kmc> albanian aka shqipe
02:43:49 <Bike> wow i know nothing about albanian. is it IE at least?
02:43:53 <Bike> yes it is.
02:44:00 <kmc> is it internet explorer?
02:44:00 <TwilightSpockle> They speak a whole other language in Albany? *takes a bow*
02:44:22 <Bike> oh wow it's an isolate within IE
02:44:32 <Bike> mountains have some fuckin crazy languages huh
02:45:00 <oerjan> Száz is pretty native
02:45:18 <oerjan> although "Originally borrowed from an Indo-Iranian language"
02:46:34 <kmc> also most of the country lost their savings in ponzi schemes in 1997
02:46:45 <kmc> resulting in the overthrow of the government
02:46:55 <Bike> which, albania?
02:46:57 <kmc> yes
02:47:26 <Bike> the thing i mostly know about albania is the bunkers
02:47:32 <Bike> and also that "hoxha" is a pretty great name
02:48:24 <Bike> "an average of 24 bunkers for every square kilometre of the country"
02:48:41 <kmc> albanian sex bunkers
02:49:29 <Bike> i've heard they are pretty popular for losing your virginity in
02:49:51 <kmc> the other thing about albania is that every car is a 90s mercedes which is probably stolen
02:50:25 <Bike> these are some good things
02:51:22 <kmc> "Visit Albania, your car is already here!"
02:52:00 <kmc> i guess this same joke is made about Poland and Montenegro
02:52:06 <oerjan> that fits in with the common claim that albanian has more highways than norway
02:53:16 <ais523> oerjan: that's a common claim?
02:53:26 <ais523> I guess it's more likely to be made if you live in albania or norway
02:53:55 <oerjan> you don't say
02:54:13 <oerjan> or maybe it's that albania is building more.
02:54:45 <oerjan> well it's a common claim whenever we complain about norwegian infrastructure investments
02:55:08 <kmc> albania also has more derelict concrete pyramids than norway
02:55:12 <ais523> yeah, but why albania?
02:56:59 <oerjan> because they're the poorest country in europe and are _still_ beating us
02:58:27 <kmc> i think moldova is poorer
02:59:16 <oerjan> hm supposedly they'll soon at twice as much as norway
02:59:31 <oerjan> *have twice
02:59:57 <ais523> norway has more hostile terrain for road-building than albania, I'd imagine
03:01:53 <oerjan> that _may_ be true, but the main issue is probably crippling norwegian bureaucracy for infrastructure projects
03:02:36 <oerjan> it takes decades to decide to build something
03:03:16 <Bike> hearing about european politics makes me think american politics should be more interesting. european politics and reading giger's suggestion to build a system of subways in the shape of a pentagram topped by pyramid arcologies
03:05:15 <oerjan> and what _is_ built is frequently decided by minor interests getting political favors
03:05:29 <kmc> Bike: and cthulu lives inside it?
03:06:10 <Bike> kmc: no, but poor people are set to work moving sludge around and it mutates them
03:06:12 <oerjan> like, any politician coming from a remote location needs to get a road built there
03:06:27 <Bike> he wrote this whole multi-page explanation and illustrated it, and then sent it off to the swiss prime minister
03:06:55 <oerjan> and a bridge/tunnel, if it is an island.
03:06:57 <Bike> or whatever switzerland has
03:07:42 * oerjan needs to get his monologues more world domination related
03:07:54 <Bike> "federal chancellor". dull.
03:08:06 <Bike> fckin democracies.
03:08:38 <oerjan> i learned recently that switzerland doesn't have a general, except in emergencies
03:09:07 <oerjan> and parliament has to declare it
03:10:10 -!- copumpkin has quit (Remote host closed the connection).
03:10:30 -!- copumpkin has joined.
03:10:57 <oerjan> Bike: hey remember, hitler started as chancellor.
03:11:31 <Bike> yes and weimar germany was pretty boring as a democracy
03:12:41 <kmc> it had a lot of electoral violence
03:12:43 <kmc> that's un-boring
03:13:32 -!- TwilightSpockle has changed nick to Applejacques.
03:13:37 <kmc> i think Westminster system is pretty interesting
03:13:48 <kmc> given how the executive branch has an axe hanging over their heads at all times
03:13:59 <kmc> maybe this is colored by me having just watched all of The Thick of It
03:14:02 <Bike> isn't it traditionally a sword
03:14:07 <kmc> maybe
03:36:03 <zzo38> I thought Hitler started as a Catholic.
03:36:29 <Bike> catholicism is more of a parafederation, wouldn't you say
03:37:51 <zzo38> I don't know what a "parafederation" is.
03:39:44 <copumpkin> hitler was literally worse than hitler
03:39:47 <kmc> more of an orthofederation or a metafederation
03:42:04 <Bike> I don't know much about Catholic organization but it seems somewhat federalist (dioceses, etc.) but it's spread throughout nations instead of beig its own. Maybe Orthodoxy would be better for that though.
03:49:46 -!- evincar has joined.
04:02:04 -!- Nisstyre-laptop has joined.
04:06:02 <zzo38> With a program compiled with GCC, can you check for resources on Windows, and extra ELF sections or whatever on Linux, and similar things on other operating systems?
04:06:36 <Bike> like readelf?
04:07:51 -!- oerjan has quit (Quit: leaving).
04:08:18 <zzo38> I also want to load the resource or whatever as a read-only SQLite database if it exists. The program can still work, and start up differently, with the lack of that resource, though.
04:10:54 <kmc> zzo38: with Linux / glibc you can use dlopen(NULL) to get a handle to already loaded stuff, which can be passed to dlsym()
04:11:34 <kmc> so you could just ensure that your extra ELF section is loadable and has a symbol pointing at it
04:12:22 <zzo38> Is it possible to add a ELF section to the program which is already compiled?
04:12:43 <zzo38> I know that you can with Windows resources.
04:13:59 -!- monqy has quit (Quit: hello).
04:14:02 <kmc> you can also use dl_iterate_phdr() to iterate over all loaded ELF objects, and do whatever other parsing you like
04:14:04 <zzo38> And, do you know if it is possible to open such sections as read-only SQLite database?
04:14:40 <kmc> zzo38: you can add sections with objcopy --add-section
04:15:04 <kmc> and as for SQLite you would have to see if the SQLite library supports opening an arbitrary piece of memory as a database
04:15:56 <Bike> huh, so can you like, use objcopy to turn an elf into a mach-o?
04:16:26 <kmc> theoretically
04:17:01 <Bike> what formats practically?
04:17:05 <kmc> i don't know
04:17:12 <kmc> whatever BFD can do without shitting itself
04:19:55 <kmc> the objcopy 'binary' format is particularly useful
04:19:56 <kmc> http://www.linuxjournal.com/content/embedding-file-executable-aka-hello-world-version-5967
04:22:14 <Bike> nice.
04:24:35 <zzo38> Maybe there is a VFS to load memory as SQLite database, or if it isn't, it could be written
04:30:24 <kmc> btw the argument for -B on x86_64 is i386:x86-64
04:30:34 <kmc> i always forget, because it makes no sense
04:35:20 -!- Bike has quit (Quit: Reconnecting).
04:35:41 -!- Bike has joined.
04:38:16 <kmc> had to source dive BFD again to discover it
04:38:21 <kmc> the things i do for this club
05:25:38 <Sgeo> Is it harmful to send resume and cover letter to positions that I'm not likely to get?
05:26:13 <Sgeo> A number of hours ago, applied for a "Mid-Senior level" position. Scala stuff although knowing Scala was not a requirement, just being willing to learn it
05:26:35 <elliott> oh boy, scala
05:27:06 -!- FreeFull has quit (Ping timeout: 245 seconds).
05:27:24 <Sgeo> On cover letter mentioned how it seemed to have interesting features like implicit conversions
05:28:03 <kmc> why would that be harmful
05:28:38 <Bike> The HR people could escape from their caves, tearing him limb from limb on the mere suspicion of him not being a Ruby nina.
05:28:41 <Bike> ninja.
05:28:44 <elliott> ruby nina
05:29:32 <Sgeo> At least this one is in a reasonable locatio
05:29:34 <Sgeo> location
05:29:58 <Sgeo> Although Transcriptic is probably more helpful to society
05:30:10 <Sgeo> They still haven't gotten back to me :(
05:31:40 <Bike> helpful to society?
05:33:46 -!- FreeFull has joined.
05:33:53 <Sgeo> Transcriptic is some sort of lab that does... stuff with samples that scientists send in. Allow for monitoring of ... whatever it is they do, etc.
05:34:12 <Bike> Sounds like you're on the ball!
05:35:16 <Bike> Oh, they make plasmids. That is pretty cool.
05:36:16 <Bike> Bioinformatics is cool. Apparently plos has a semi-book on it.
05:37:22 <Bike> http://www.ploscollections.org/article/browse/issue/info%3Adoi%2F10.1371%2Fissue.pcol.v03.i11
05:37:26 <Bike> I think I kind of hate plos's urls.
05:37:45 <Sgeo> This is easy to understand http://pandodaily.com/2012/12/13/transcriptics-wild-seed-round-the-internet-was-just-trying-to-throw-money-at-us/
05:37:52 <Sgeo> I feel like a derp for forgetting about the robotic aspect
05:38:33 <Sgeo> o.O I actually talked to the founder of the company
05:38:35 <Sgeo> I feel small now
05:39:10 <Bike> Well, it's a startup, right? The founder probably isn't, like, a demigod.
05:42:17 <Sgeo> The founder of a startup talked to me, and probably thinks I'm an asshole for sending horrible Tcl code
05:42:49 <Bike> Yeah, my main criterion for "this dude's an asshole" is reading their shitty Tcl.
05:42:50 <Sgeo> On the phone I should have said something like that wasn't my best work, suggested something else, in an actually functional language, but I didn't :(
05:45:42 <elliott> Bike: pretty sure startup founders are all demigods
05:45:49 <elliott> why do you think kmc is so frazzled
05:46:04 <Bike> Intermittent lightning strikes? That would make sense...
05:49:16 <kmc> i'm not a founder
05:49:21 <kmc> just employee numero uno
05:51:13 <elliott> kmc: of course not
05:51:41 <elliott> are you saying slaves to demigods are not frazzled???
05:52:02 <kmc> :3
06:00:08 -!- RodgerTheGreat has quit (Quit: RodgerTheGreat).
06:57:01 <zzo38> void*open(const char*format,const unsigned char*blob,unsigned int size,SDL_AudioSpec*spec); void close(void*handle); void reset(void*handle,Uint8 track); void frame(void*handle,Uint8*stream,int len); void poke(void*handle,Uint16 address,Uint8 data);
06:57:41 <zzo38> Is there the libraries for playing the music that can be used with such a format (even if not directly, such that one can be written easily)?
06:59:09 <zzo38> Oops, I forgot the volume void frame(void*handle,Uint8*stream,int len,Uint32 volume);
07:00:23 <Sgeo> Oh hey HPMOR has a chapter called "Interlude with the Confessor"
07:00:32 <Sgeo> Going to be interesting when I get to it probably
07:01:01 <Bike> Is that a book about how to be a pastor?
07:01:29 <Sgeo> Harry Potter and the Methods of Rationality
07:01:52 <Sgeo> Three Worlds Collide also had an "Interlude with the Confessor"
07:03:32 <Bike> haha yudkowsky
07:05:43 <Sgeo> What's wrong with Yudkowsky?
07:09:43 <Bike> You know I'm honestly not sure how to answer that. Does the usual "CS nerds claiming to have a futurological insight historians don't based on unmarked graphs with curves on them" thing suffice?
07:11:29 <Sgeo> Don't entirely know if I agree with any conclusion that something might happen in our lifetimes, but I don't know if he really draws that conclusion, and, at any rate, it is something I hope for, even if I don't know how likely it is
07:12:41 <Bike> You don't think the guy who founded the singularity institute really draws that conclusion.
07:13:30 <Sgeo> Working to make something happen does not imply a belief that it will happen within our lifetimes
07:13:39 <Sgeo> Just that we should try to make it happen
07:14:44 <Bike> Yeah I'm sure he's working hard on that.
07:14:50 <Bike> There's also this whole everything. http://lesswrong.com/lw/qa/the_dilemma_science_or_bayes/
07:18:04 -!- epicmonkey has joined.
07:41:59 <zzo38> I have added the feature in Internet Quiz Engine for the total that a variable is out of to itself be variable.
07:45:09 <zzo38> Do any music engines have a poke function?
07:45:16 <Bike> Poke?
07:46:15 <zzo38> I mean for example, if it is playing .NSF then it would be able to write the RAM and memory-mapped registers of the VM.
07:47:01 <zzo38> (Depending on the format, the poke command might mean something different, or it might not do anything.)
07:50:26 <zzo38> This might be used to speed up the music at some point during the game, or to mute a channel temporarily, or to play sound effects which are included in the music file, or for other things.
07:51:17 <Bike> Well there are plenty of systems that allow you to mess with things at playback time.
07:52:16 <zzo38> The functions I mentioned above would be a part of a C structure, and their implementation depends on the format, so depending on what things they have, the poke function would be implemented to use those things.
07:52:37 <zzo38> However I have not seen the NSF player which does what I have said.
07:52:47 <zzo38> Do you know if there is such things?
07:52:49 <Bike> I don't think music people doing live DJing usually do it in C.
07:53:24 <zzo38> But I don't mean live DJing; I mean music that might be used in a computer game.
07:54:13 <Bike> PureData has a C(++?) API that can be used to do whatever you want at runtime. I think Spore used it.
07:55:49 <zzo38> I have used PureData, although I find Csound is much better. Still, neither of those is the kinds of things I am looking for.
07:56:23 <Bike> I don't know of any music systems that just run everything flatly in a separate virtual machine, is the problem
07:57:50 <Bike> Even that one guy's demoscene VM does visual and audio in the same machine.
07:59:28 -!- ais523 has quit.
08:00:11 <zzo38> That isn't wnat I mean either. I mean such as, a .MOD player, a .IT player, a .NSF player, whatever, which may be made wrappers using the function declarations above, and then loaded using a C code.
08:02:27 <Bike> I haven't a clue, then, other than that seems pretty specific.
08:03:20 <zzo38> I may write the wrappers myself if the C libraries exists for such things, for which such wrapper functions can be written to do.
08:21:35 -!- asiekierka has quit (Excess Flood).
08:29:45 -!- asiekierka has joined.
08:31:47 -!- Bike has quit (Quit: warning).
08:32:01 -!- evincar has left.
09:05:18 -!- glogbackup has joined.
10:13:30 -!- Jafet has joined.
10:18:32 -!- oonbotti has quit (Ping timeout: 252 seconds).
10:21:40 <Sgeo> I should learn to read time zones
10:22:02 <Sgeo> Thought Facebook Hacker Cup Round 1 was 10am my time, it's 10AM PST so 1PM my time
10:22:06 <Sgeo> Yay I get more sleep
10:22:55 <shachaf> I should express times in PDT during the winter/PST during the summer.
10:23:05 <shachaf> Teach people to pay attention.
10:36:58 -!- DHeadshot has joined.
10:38:17 -!- Nisstyre-laptop has quit (Quit: Leaving).
10:41:37 <Sgeo> help rather than sleeping I picked up my Nook again and am continuing the reread of HPMOR
10:42:14 <shachaf> Instead of reading that, read something good.
10:42:21 <Sgeo> Is HPMOR not good?
10:42:27 <shachaf> I don't know.
10:42:51 <shachaf> Have you considered reading _Three Men in a Boat_?
10:43:11 <shachaf> are books monoids :D
10:43:30 <shachaf> Sgeo: How's Ada going?
10:43:32 <Jafet> Some books are not easy.
10:43:51 <Sgeo> I still want to understand Ada concurrency
10:43:58 <Sgeo> I still have not taken a real look at it
10:44:29 <shachaf> They have the task thing, right?
10:44:32 <shachaf> How does it work exactly?
10:45:54 <Sgeo> Like I said, I haven't taken a real look at it yet
10:46:05 <shachaf> Fake looks are OK?
10:48:31 <Sgeo> I love reading. It is so easy.
10:48:57 <shachaf> Sgeo: dont you think thats a bit worn out by now..............................................................
10:50:59 <Sgeo> I searched scrollup to try to prove recent use, but couldn't
10:51:06 <ion> I love this joke. It is so easy.
10:51:29 -!- carado has joined.
10:51:43 <Sgeo> help carado please slap Sgeo and ion
10:52:08 <ion> I love slapping.
10:52:26 <shachaf> @slap Sgeo
10:52:26 * lambdabot smacks Sgeo about with a large trout
10:52:28 <shachaf> @slap ion
10:52:28 * lambdabot secretly deletes ion's source code
10:52:32 <shachaf> oh no
10:52:36 <shachaf> fortunately ion is a quine
10:52:45 <shachaf> hion
10:52:49 <ion> haf
10:52:58 <shachaf> ^rot13 haf
10:52:58 <fungot> uns
10:53:01 <shachaf> ^rot13 half
10:53:01 <fungot> unys
10:53:22 <carado> what ?
10:53:25 <shachaf> hi carado
10:53:29 <shachaf> `wehlcohme carado
10:53:30 <carado> hello
10:53:34 <HackEgo> cahrahdo: Wehlcohme to the ihntehrnahtiohnahl huhb fohr ehsohtehrihc prohgrahmmihng lahnguahge dehsihgn ahnd dehployhmehnt! Fohr mohre ihnfohrmahtiohn, chehck ouht ouhr wihki: http://ehsohlahngs.ohrg/wihki/Maihn_Pahge. (Fohr the ohthehr kihnd ohf ehsohtehrihca, try #ehsohtehrihc ohn ihrc.dahl.neht.)
10:56:46 <carado> thahts quhite thhe whelchome
10:57:41 <ion> http://9to5mac.com/2013/02/01/dont-type-this-phrase-on-your-mac-unless-you-like-crashing-it-file/
11:17:18 -!- zzo38 has quit (Remote host closed the connection).
11:18:10 -!- oonbotti has joined.
11:30:03 -!- Phantom_Hoover has joined.
11:36:50 <Sgeo> - Knowledge of the following technologies: Nginx, thin, AWS
11:36:57 <Sgeo> thin is a technology.
11:48:24 <Vorpal> hm interesting, ethernet PAUSE frames on my network
11:48:31 <ion> `run f=bin/hyphenate.fi;echo 'H4sIAOD8DFEAA0WPQU7DMBBF9z2FCRFtEakbVpWqSkisWbGssnDDNDFNMmkcNzWa4+QMvoAvxpgNiy/7vfka2Y8P8qQ7aeoF3KEUPQyNyN4/RfZhx/NOZP0EYtm69IbT4TrIowKN1oU5+ELqPQ9K7P4Gp/LrXNXfl6bt+utgxtt0/4mVfKp1A8LIVdwR68/rVTwirmWaZ+mrrP5rCkghKUcqzBxPoAiQgAmYtCKNpJk0EypCIHSELJCFVWSBrCPLwrJwihyQQ3KW+NkUZsUBDnIsxZ9Q8Cw9S8/Ss/Rhlq17MwfTN3pMkpf0aZ+a47bYJFmy4VteSKiWi1/gJQHkPgEAAA=='|base64 -d|zcat>$f;chmod 755
11:48:33 <ion> $f; cat $f
11:48:36 <HackEgo> chmod: missing operand after `755' \ Try `chmod --help' for more information.
11:48:42 <Vorpal> probably related to copying 8 GB of music over NFS from a computer with gbit ethernet to one with 100mbit
11:48:45 <ion> `run chmod 755 bin/hyphenate.fi; cat bin/hyphenate.fi
11:48:49 <HackEgo> ​#!/bin/sh \ exec perl -CS -Mutf8 -pwe 'my$vow=qr/[aeiouyäö]/i;my$con=qr/[bcdfghjklmnpqrstvwxz]/i;1while s/($vow$con*)($con$vow)/$1-$2/g;1while s/ae|ao|ay|aä|aö|ea|eo|eä|eö|ia|io|iä|iö|oa|oe|oy|oä|oö|ua|ue|uy|uä|uö|ya|ye|yo|yu|yä|äa|äe|äo|äu|äö|öa|öe|öo|öu|öä/my@s=split"",$&;$s[0]."-".$s[1]/eg'
11:48:57 <ion> `run welcome kakka | hyphenate.fi
11:49:00 <HackEgo> kak-ka: Wel-co-me to the in-ter-na-ti-o-nal hub for e-so-te-ric prog-ram-ming lan-gu-a-ge de-sign and dep-lo-y-ment! For mo-re in-for-ma-ti-on, check out our wi-ki: http://e-so-langs.org/wi-ki/Main_Pa-ge. (For the ot-her kind of e-so-te-ri-ca, try #e-so-te-ric on irc.dal.net.)
11:49:57 <Vorpal> and at the same time I was also syncing 2 GB or so of data between two computers with gbit connections (one of the computers was involved in both transfers though...)
11:55:07 <ion> `run welcome shachaf | dahl | hyphenate.fi
11:55:09 <HackEgo> bash: dahl: command not found
11:55:17 <ion> `run welcome shachaf | h | hyphenate.fi
11:55:19 <HackEgo> shahc-hahf: Wehl-coh-me to the ihn-tehr-nah-ti-oh-nahl huhb fohr eh-soh-teh-rihc prohg-rahm-mihng lahn-gu-ah-ge deh-sihgn ahnd dehp-lo-yh-mehnt! Fohr moh-re ihn-fohr-mah-ti-ohn, chehck ouht ouhr wih-ki: http://eh-soh-lahngs.ohrg/wih-ki/Maihn_Pah-ge. (Fohr the oht-hehr kihnd ohf eh-soh-teh-rih-ca, try #eh-soh-teh-rihc ohn ihrc.dahl.neht.)
11:55:30 <shachaf> `run welcome shachaf | hyphenate.fi | h
11:55:32 <HackEgo> shahc-hahf: Wehl-co-me to the ihn-tehr-na-ti-o-nahl huhb fohr e-so-te-rihc prohg-rahm-mihng lahn-gu-a-ge de-sihgn ahnd dehp-lo-y-mehnt! Fohr mo-re ihn-fohr-ma-ti-ohn, chehck ouht ouhr wi-ki: http://e-so-lahngs.ohrg/wi-ki/Maihn_Pa-ge. (Fohr the oht-hehr kihnd ohf e-so-te-ri-ca, try #e-so-te-rihc ohn ihrc.dahl.neht.)
12:00:36 <ion> `run sed -i -re 's,/eg,/egi,' bin/hyphenate.fi && cat bin/hyphenate.fi
12:00:39 <HackEgo> ​#!/bin/sh \ exec perl -CS -Mutf8 -pwe 'my$vow=qr/[aeiouyäö]/i;my$con=qr/[bcdfghjklmnpqrstvwxz]/i;1while s/($vow$con*)($con$vow)/$1-$2/g;1while s/ae|ao|ay|aä|aö|ea|eo|eä|eö|ia|io|iä|iö|oa|oe|oy|oä|oö|ua|ue|uy|uä|uö|ya|ye|yo|yu|yä|äa|äe|äo|äu|äö|öa|öe|öo|öu|öä/my@s=split"",$&;$s[0]."-".$s[1]/egi'
12:01:36 <elliott> `run welcome hello | hyphenate.fi | hyphenate.fi | hyphenate.fi
12:01:39 <HackEgo> hel-lo: Wel-co-me to the in-ter-na-ti-o-nal hub for e-so-te-ric prog-ram-ming lan-gu-a-ge de-sign and dep-lo-y-ment! For mo-re in-for-ma-ti-on, check out our wi-ki: http://e-so-langs.org/wi-ki/Main_Pa-ge. (For the ot-her kind of e-so-te-ri-ca, try #e-so-te-ric on irc.dal.net.)
12:01:44 <elliott> ion: I want a refund
12:01:58 <ion> elliott: I’m sorry it works correctly.
12:03:19 <shachaf> `run ln -s hyphenate.fi bin/hyfinate
12:03:22 <HackEgo> No output.
12:06:33 <ion> `run welcome | rot13 | hyfinate | rot13
12:06:39 <HackEgo> No output.
12:06:49 <shachaf> help
12:06:52 <shachaf> Oh.
12:07:17 <shachaf> `run welcome | tr a-zA-Z n-za-mN-ZA-M | hyfinate | tr a-zA-Z n-za-mN-ZA-M
12:07:20 <HackEgo> Welcome to the int-er-nati-on-al h-ub for esoteric pro-gramm-ing l-anguage design and deploym-ent! For more inf-ormati-on, check out our wiki: http://esol-angs.org/wiki/Main_Page. (For the oth-er kind of esoterica, try #esoteric on irc.dal.net.)
12:07:49 <shachaf> `cat bin/rot13
12:07:50 <HackEgo> echo "$@" | tr a-zA-Z n-za-mN-ZA-M
12:10:59 <ion> `run f() { tr a-zA-Z b-zaB-ZA | hyphenate.fi; }; welcome|f|f|f|f|f|f|f|f|f|f|f|f|f|f|f|f|f|f|f|f|f|f|f|f|f|f
12:11:18 <shachaf> ion what have you done
12:11:21 <HackEgo> We-lc-o-m-e to t-he in-te-r-n-a-ti-on-al h-ub f-or e-s-o-t-er-ic p-ro-gr-a-mm-i-ng l-an-g-u-a-g-e de-s-i-gn an-d d-ep-lo-y-m-en-t! F-or m-o-re in-f-o-rm-a-ti-on, ch-e-ck o-ut o-ur w-i-k-i: h-tt-p://e-s-o-la-ng-s.o-rg/w-i-k-i/M-ain_Pa-g-e. (F-or t-he ot-h-er k-in-d of e-s-o-t-er-ic-a, t-ry #e-s-o-t-er-ic on i-rc.d-al.n-et.)
12:13:11 <ion> shachaf: Procrastinated on IRC mainly.
12:13:24 <shachaf> don't do it ion
12:14:25 <nortti> `which hyphenate.fi
12:14:27 <HackEgo> ​/hackenv/bin/hyphenate.fi
12:18:06 <carado> nice bot youve got.
12:18:49 <ion> it would be a shame if anything were to happen to it
12:20:06 <carado> surely, its things-happening-to-it-proof
12:20:33 <ion> Yeah, we bought bot insurance from two very nice Italian gentlemen.
12:34:03 <Sgeo> Is it just me or is Scala one of the more commonly used functional languages in industry?
12:34:37 <ion> I think you are one of the more commonly functional languages in industry indeed.
12:38:39 <shachaf> `hyfinate beaky
12:39:10 <HackEgo> No output.
12:39:23 <Sgeo> SCALA HAS DELIMITED CONTINUATIONS
12:39:27 <Sgeo> ?!??!
12:39:27 <lambdabot> Unknown command, try @list
12:39:43 <Sgeo> I like it better already :D
12:40:23 <Sgeo> Wait, not if it's Haskell style "Oh, code that uses it has to be in monadic style"
12:41:53 <elliott> are you depriving #yfl of these insights......
12:42:13 <elliott> oh
12:42:14 <elliott> you didnt'
12:42:21 <shachaf> imo elliott makes a good point
12:42:37 <ion> What’s #yfl?
12:42:45 <elliott> dont ask
12:42:55 <ion> What’s #yfl?
12:43:19 <shachaf> dont ask
12:43:41 <ion> sudo what’s #yfl?
12:45:40 <Jafet> `run sudo -l
12:45:42 <HackEgo> bash: sudo: command not found
12:48:08 <Jafet> `run quote | hyphenate.fi
12:48:10 <HackEgo> 834) <o-er-jan> `wel-co-me Raw-lie * zzo38 has joi-ned #e-so-te-ric <Raw-lie> thank y-ou <zzo38> Y-ou're wel-co-me.
12:51:09 <shachaf> Sgeo: edwardk uses Scala and he keeps complaining about it.
12:51:19 <shachaf> Sgeo: You should go back to Ada.
12:51:28 <Sgeo> What are his complaints?
12:51:38 <shachaf> I don't remember.
12:51:54 <shachaf> I bet you could find it on his Twitterthing.
12:54:20 <Sgeo> Seems one of the complaints, at least from this log I found, has to do with complexity of types?
12:54:24 <Sgeo> https://gist.github.com/3190574
12:54:41 <ion> `run sed -i -re 's,/ae\|.*\|öä/,/a[eoyäö]|e[aoäö]|i[aoäö]|o[aeyäö]|u[aeyäö]|y[aeouä]|ä[aeouö]|ö[aeouä]/,' bin/hyphenate.fi && cat bin/hyphenate.fi
12:54:44 <HackEgo> ​#!/bin/sh \ exec perl -CS -Mutf8 -pwe 'my$vow=qr/[aeiouyäö]/i;my$con=qr/[bcdfghjklmnpqrstvwxz]/i;1while s/($vow$con*)($con$vow)/$1-$2/g;1while s/a[eoyäö]|e[aoäö]|i[aoäö]|o[aeyäö]|u[aeyäö]|y[aeouä]|ä[aeouö]|ö[aeouä]/my@s=split"",$&;$s[0]."-".$s[1]/egi'
12:56:01 <ion> `run echo Ääliö, älä läiky. öykkäri komea hioa lauantai aion | hyphenate.fi
12:56:03 <HackEgo> ​Ää-li-ö, ä-lä läi-ky. öyk-kä-ri ko-me-a hi-o-a lau-an-tai ai-on
12:58:51 <shachaf> Sgeo: Are Ada tasks preëmptice or coöperative or what?
12:58:56 <shachaf> s/c/v/
12:59:05 <shachaf> Are they like threads?
12:59:09 <shachaf> Or are they like coroutines?
12:59:12 <shachaf> Or are they like something else?
12:59:53 <Sgeo> From a quick googling, seems like it depends on the compiler (for preemptive vs. cooperative)
13:01:53 <shachaf> How does preëmption work?
13:03:23 <Sgeo> I should probably try to get some sleep
13:03:47 <shachaf> Nah, you should learn Ada.
13:11:47 -!- copumpkin has quit (Ping timeout: 252 seconds).
13:12:18 -!- copumpkin has joined.
13:30:28 -!- oonbotti has quit (Ping timeout: 248 seconds).
14:00:07 -!- oerjan has joined.
14:04:14 -!- ogrom has joined.
14:12:50 -!- md_5 has quit (Ping timeout: 256 seconds).
14:14:17 <oerjan> <Bike> You know I'm honestly not sure how to answer that. Does the usual "CS nerds claiming to have a futurological insight historians don't based on unmarked graphs with curves on them" thing suffice?
14:14:35 <shachaf> oerjan: do you know about subtyping.................................
14:14:44 <oerjan> i thought that was kurzweil et al's shtick, not so much yudkowsky
14:15:05 <elliott> bike isn't even here oerjan..............
14:15:20 <shachaf> @ask Bike good morning
14:15:20 <lambdabot> Consider it noted.
14:15:21 -!- md_5 has joined.
14:15:35 <oerjan> and that his was "when (and it _will_ be when) we invent superhuman intelligent ai, if we don't get it _precisely_ right, we are all fucked.
14:15:40 <oerjan> "
14:16:13 <oerjan> shachaf: not that much
14:16:30 <oerjan> elliott: i know i just wanted to quibble
14:17:12 -!- oonbotti has joined.
14:17:54 <elliott> oerjan: if a quibble falls in the forest and nobody is around to hear it...
14:18:43 <oerjan> bah i need Bike like a fish needs...
14:18:53 <Phantom_Hoover> water?
14:19:05 * oerjan swats Phantom_Hoover -----###
14:19:09 <shachaf> water? but she made perfect sense!
14:19:17 <Vorpal> shachaf, "she"?
14:19:20 <oerjan> Phantom_Hoover is female now?
14:19:37 <Phantom_Hoover> maybe
14:19:37 <oerjan> ...
14:19:50 <shachaf> I don't know?
14:19:52 * oerjan swats shachaf -----###
14:20:31 <shachaf> Whew.
14:21:00 * oerjan recovers from his near-whoosh experience
14:24:10 <shachaf> Vorpal may not be so fortunate.
14:24:25 * impomatic wonders why JavaScript regular expressions don't support look behind (?<
14:24:37 <oerjan> shachaf: he was traumatized by them years ago
14:25:04 <Vorpal> shachaf, I'm naturally immune to them
14:25:13 <oerjan> shachaf: and is now in denial
14:25:30 <Vorpal> "shachaf uses whoosh on Vorpal" "It is not effective"
14:26:03 <oerjan> immune like a burnt down house is immune to fire
14:26:28 * shachaf uses MonadicFold on Vorpal
14:26:46 <Vorpal> ouch, that was super effective
14:26:50 <shachaf> oerjan: elliott is not a fan of my monologues on subtyping.
14:26:59 <oerjan> monads are all about effects duh
14:27:36 <oerjan> shachaf: he probably thinks they are too invariant
15:20:21 -!- copumpkin has quit (Ping timeout: 276 seconds).
15:21:20 -!- copumpkin has joined.
15:25:23 -!- sebbu has quit (Ping timeout: 248 seconds).
15:33:32 -!- RodgerTheGreat has joined.
15:47:43 -!- sebbu has joined.
15:47:43 -!- sebbu has quit (Changing host).
15:47:43 -!- sebbu has joined.
15:57:17 -!- Taneb has joined.
15:58:11 <oerjan> O_o
15:58:24 <RodgerTheGreat> what's the matter
15:59:01 <oerjan> there's a Taneb in the premises
15:59:12 <Taneb> It happens occasionally
15:59:22 <RodgerTheGreat> wow
16:00:33 <oerjan> *on
16:01:07 <RodgerTheGreat> so what's up guys
16:03:25 <Phantom_Hoover> hey Taneb did you fix that problem you had
16:03:37 <Taneb> oerjan did
16:03:47 <Phantom_Hoover> good for him
16:03:53 * oerjan wonders if Phantom_Hoover is talking about the same problem
16:04:05 <Phantom_Hoover> i simply assumed Taneb had a problem
16:04:07 <Phantom_Hoover> he normally does
16:04:19 <Taneb> Yes, it's a problem I have
16:04:21 <oerjan> ah. in that case i guess i did.
16:04:30 <shachaf> oerjan: What's cosubtyping?
16:04:44 <oerjan> shachaf: well it's mplicated
16:04:53 <Phantom_Hoover> some sort of fusion of cosplay and type theory?
16:04:58 <shachaf> oerjan: We think "a" is a cosubtype of "(a,b)"
16:05:08 <oerjan> wat
16:05:11 <shachaf> Or maybe the other way around.
16:05:31 <shachaf> oerjan: Well, in a sense "a" is a subtype of "Either a b", right?
16:05:42 <elliott> `addquote <shachaf> oerjan: What's cosubtyping <Phantom_Hoover> some sort of fusion of cosplay and type theory?
16:05:46 <HackEgo> 950) <shachaf> oerjan: What's cosubtyping <Phantom_Hoover> some sort of fusion of cosplay and type theory?
16:05:46 <elliott> oops
16:05:48 <elliott> `revert
16:05:51 <elliott> `addquote <shachaf> oerjan: What's cosubtyping? <Phantom_Hoover> some sort of fusion of cosplay and type theory?
16:05:51 <HackEgo> Done.
16:05:55 <HackEgo> 950) <shachaf> oerjan: What's cosubtyping? <Phantom_Hoover> some sort of fusion of cosplay and type theory?
16:06:01 <oerjan> right. set theoretically there's an injection, so presumably you'd want something with a surjection for the co-
16:06:10 <oerjan> and \(a,b) -> a fits
16:06:29 <shachaf> Hmm.
16:06:31 <oerjan> (or monic/epic in CT language)
16:06:46 <shachaf> What does it mean for something to be a cosubtype?
16:06:58 <oerjan> and of course Either a b is the direct sum of a and b, while (a,b) is the direct product
16:07:12 <oerjan> s/sum/coproduct/, possibly
16:07:46 <shachaf> Right.
16:07:53 <shachaf> A subtype gives you a prism, more or less.
16:08:09 <shachaf> So a cosubtype should give you a lens.
16:08:16 <oerjan> well there you go then.
16:08:31 <shachaf> But what does it mean?
16:08:51 <shachaf> If A <: B, you have |A| <= |B|, right?
16:09:35 <oerjan> well (a,b) can delegate to a, can't it. maybe there's something OO in there.
16:09:45 <shachaf> Delegate?
16:09:54 <oerjan> or is a field...
16:09:58 <shachaf> Sure.
16:10:08 <shachaf> Every cosubtype acts like a field in some sense, I think.
16:10:19 <shachaf> Just like every subtype acts like a summand
16:11:15 <oerjan> and both give Functors, no?
16:11:47 <oerjan> or hm
16:12:03 <elliott> shachaf: I think the problem is you're going "aha, subtypes are [prisms] but cosubtypes are [lenses]!"
16:12:10 <elliott> Which doesn't teach you anything about (co)subtyping.
16:12:18 <shachaf> elliott: That's my point.
16:12:18 <elliott> It just teaches you about lenses or prisms under a different name.
16:12:28 <shachaf> I'm trying to figure out a different way of looking at cosubtypes.
16:12:45 <elliott> shachaf: I think T and _|_ are worth thinking about there?
16:12:55 <shachaf> Probably
16:12:58 <elliott> And "f a"/"f b" given "a <op> b"
16:13:07 <elliott> Since you could deduce subtyping based on co/contavariance for subtyping of a,b there.
16:13:45 <shachaf> So for all x, ⊥ <: x, and x <: ⊤
16:14:25 <shachaf> In lens terms you have a Prism x _|_ and a Prism T x
16:14:27 <oerjan> if a is a subtype of b then (a,c) is a subtype of (b,c), Either a c is a subtype of Either b c, and (b -> c) is a subtype of (a -> c). what are the similar rules for cosubtypes?
16:14:38 <shachaf> But you also have a Lens _|_ x and a Lens x T
16:15:13 <shachaf> What's our symbol for cosubtyping?
16:15:20 <shachaf> I'll just use ;>
16:15:46 <shachaf> If you have A ;> B and B ;> C, then you have A ;> C
16:16:37 <shachaf> If you have A ;> B then (A,X) ;> (B,X)? Is that valid?
16:16:50 <shachaf> elliott: That's alongside l id, isn't it?
16:16:56 <shachaf> For lenses.
16:17:41 <elliott> I guess?
16:17:43 <elliott> Sure, yes.
16:17:49 <shachaf> So that's valid.
16:17:56 <shachaf> Do we have alongside for Either?
16:18:22 <elliott> Maybe?
16:18:26 <shachaf> No, Either.
16:18:50 <shachaf> If you have A ;> B then do you have Either A C ;> Either B C?
16:18:52 <shachaf> I don't think so.
16:19:22 <shachaf> elliott: Hah, that operation looks a lot like Choice.
16:19:30 <elliott> Sure.
16:19:33 <elliott> Because Prism = Choice etc.
16:19:36 <shachaf> Right.
16:19:50 <elliott> Lens' a b -> Lens' (Either a c) (Either b c)?
16:19:55 <shachaf> I don't think you can do that.
16:20:00 <elliott> It'd be a traversal.
16:20:05 <elliott> Wait.
16:20:07 <elliott> No, I think you can do that?
16:20:32 <elliott> Extract the "b" out of the "a" for viewing, and leave "c"s untouched.
16:20:43 <elliott> Then when you put a Left back in, put it back into the original "a".
16:20:50 <shachaf> What if you have a Right?
16:20:55 <elliott> If you put back a different branch, then change the branch entirely?
16:20:59 <elliott> Does that follow the laws?
16:21:06 <elliott> Oh, never mind.
16:21:06 <shachaf> You can't change the branch.
16:21:08 <shachaf> You don't have an a
16:21:38 <elliott> shachaf: What about Lens' (EIther a c) (Either b c) -> Lens' a b?
16:21:42 <elliott> It's, like, contravariant.
16:22:06 <shachaf> What about functions?
16:22:19 <elliott> I gave you a function rule already!
16:22:28 <elliott> a ;> b => (a -> r) <: (b -> r)
16:22:35 <shachaf> oerjan says that if A <: B, then (B -> C) <: (a -> C)
16:22:42 <shachaf> Do we have that prism?
16:22:56 <elliott> Yes
16:23:13 <elliott> It's in lens.
16:23:21 <shachaf> What's it called?
16:23:26 <elliott> It's in .Prism
16:23:36 <elliott> Or .Lens
16:23:45 <shachaf> Oh, we have
16:23:45 <shachaf> inside :: ALens s t a b -> Lens (e -> s) (e -> t) (e -> a) (e -> b)
16:23:47 <elliott> outside :: APrism s t a b -> Lens (t -> r) (s -> r) (b -> r) (a -> r)
16:23:49 <elliott> Right
16:24:19 <shachaf> So you get a subtype either way.
16:24:25 <shachaf> Er, a supertype?
16:24:34 <shachaf> Wait, this thing turns either a lens or a prism into a lens.
16:24:41 <shachaf> Your rule turns a lens into a pris.
16:24:48 * elliott is confused.
16:24:56 <shachaf> 08:22 <elliott> a ;> b => (a -> r) <: (b -> r)
16:25:05 <shachaf> That's like a function that turns a lens into a prism.
16:25:09 <elliott> 16:22:35 <shachaf> oerjan says that if A <: B, then (B -> C) <: (a -> C)
16:25:23 <shachaf> ?
16:25:25 <elliott> Contravariant f => Prism' a b -> Prism' (f b) (f a)
16:25:58 * elliott is too tired.
16:26:16 <shachaf> You can't do that, can you?
16:26:45 <shachaf> You need f b -> Either (f b) (f a)
16:26:49 <shachaf> Which is like costrength.
16:27:04 <elliott> (b -> r) -> Either (b -> r) (a -> r)?
16:27:08 <elliott> That makes no sense.
16:27:09 <elliott> Is oerjan lying?
16:27:28 <elliott> I think shachaf is lying?
16:27:35 <shachaf> Might be.
16:27:35 <elliott> Do you need that?
16:27:44 <shachaf> Need what?
16:27:51 <oerjan> ...i just showed some ordinary variance rules for ordinary subtyping...
16:27:55 <shachaf> You said 08:25 <elliott> Contravariant f => Prism' a b -> Prism' (f b) (f a)
16:28:06 <shachaf> I'm not sure where that comes from.
16:29:04 <shachaf> 08:14 <oerjan> if a is a subtype of b then (a,c) is a subtype of (b,c), Either a c is a subtype of Either b c, and (b -> c) is a subtype of (a -> c). what are the similar rules for cosubtypes?
16:29:47 <shachaf> Prism b a -> Prism (Either b c) (Either a c)
16:30:14 <shachaf> elliott: Oh, that's just composition.
16:30:20 <shachaf> (_Left . p)
16:31:10 <elliott> oerjan: I CAN'T TRUST ANYONE
16:31:26 <shachaf> Prism b a -> Prism (a -> c) (b -> c)
16:31:30 <shachaf> Is that true?
16:31:58 <oerjan> elliott: i should point out i have not recently made claims about either prisms (which i basically don't really know) or lenses.
16:32:03 <shachaf> One half is (a -> b) -> (b -> c) -> a -> c
16:32:08 -!- ogrom has quit (Quit: Left).
16:32:12 <shachaf> oerjan: We're extrapolating here!
16:32:38 <shachaf> (b -> Maybe a) -> (a -> c) -> Maybe (b -> c)
16:32:41 <shachaf> @djinn (b -> Maybe a) -> (a -> c) -> Maybe (b -> c)
16:32:42 <lambdabot> f _ _ = Nothing
16:32:44 <shachaf> thank's
16:32:53 <shachaf> Anyway that's obviously impossible.
16:33:27 <shachaf> oerjan: Do you know anything about subtyping with < instead of <=?
16:33:34 <oerjan> perhaps there's something going on similar to the distinction between summand and submodule in module categories. in which case maybe i should mention the definition of summand. although there's no distinction in the category Set, maybe there is one in Hask.
16:33:37 <elliott> oerjan: I should point out I'm really tired and not serious about any of this.
16:33:45 <oerjan> elliott: O KAY
16:34:07 <shachaf> I think we might get farther if we use <
16:34:22 <elliott> so you ban a -> a.
16:34:33 <shachaf> Right, it's irreflexive.
16:34:36 <oerjan> if i could just _remember_ the definition of summand.
16:35:08 -!- epicmonkey has quit (Ping timeout: 245 seconds).
16:35:27 <shachaf> Hmm.
16:35:38 <oerjan> maybe it requires kernels, in which case it can probably not be transfered to non-abelian categories
16:35:56 <elliott> just use Linux
16:36:30 <shachaf> So what does <: mean? It doesn't mean <=, right?
16:36:42 <shachaf> a <= b ----> c^b <= c^a -- doesn't seem right
16:36:51 <oerjan> oh wait duh in module categories product = coproduct. bah.
16:38:40 <shachaf> Let's say Foo = {A,B}, Bar = {A,B,C}
16:38:41 <oerjan> and that's why they have summands. hm i guess a module summand is something which is in some sense _both_ a subobject and a cosubobject.
16:38:51 <shachaf> So Foo <: Bar
16:38:52 <oerjan> in a compatible way.
16:39:09 <shachaf> (Bar -> X) <: (Foo -> X)?
16:40:35 <oerjan> so to go back to my basic idea, what's the relation of a -> c to (a,b) -> c, if any.
16:40:48 <oerjan> oh hm
16:41:11 <oerjan> (a,b) -> c is of course isomorphic to b -> (a -> c)
16:41:20 <shachaf> I think my intuition with cardinality can't be right.
16:41:27 <oerjan> although that's specific to products
16:41:48 <oerjan> shachaf: cardinality is not subtyping hth
16:41:50 <shachaf> oerjan: I think all cosubtypes would be product-like.
16:41:59 <shachaf> oerjan: Sure, but I thought A <: B ----> |A| <= |B|
16:42:03 <shachaf> I guess that's not true.
16:42:38 <oerjan> shachaf: it's not true for subtypes either, i think
16:42:54 <oerjan> or wait, <: is subtype
16:42:57 <shachaf> Right..
16:43:40 <oerjan> well i think you must have <=, but it can be == even if not identical types
16:44:03 <shachaf> Wait, you must have <=?
16:44:14 <oerjan> or wait hm
16:44:22 <shachaf> Foo <: Bar ----> (Bar -> X) <: (Foo -> X), right?
16:44:33 <oerjan> oh ... now i see.
16:44:52 <oerjan> no, you must not.
16:45:08 <shachaf> So it's something more subtle than <= of the cardinality. :-(
16:45:15 <shachaf> What is it?
16:45:25 <oerjan> simply, even if Foo is a direct _subset_ of Bar, (Bar -> X) is not a direct subset of (Foo -> X).
16:45:39 <oerjan> it's just something which can be _used_ as a (Foo -> X).
16:45:48 <shachaf> Sure.
16:45:54 <shachaf> Can you write a prism for it?
16:46:23 <oerjan> but two different (Bar -> X) can correspond to the same (Foo -> X), so subtyping is not an injection, and therefore need not increase cardinality.
16:47:31 <shachaf> Prism s t a b = (b -> t, s -> Either t a)
16:47:41 <shachaf> Prism' s a = (a -> s, s -> Maybe a)
16:47:53 <oerjan> ic
16:48:06 <oerjan> i think the s -> Maybe a is going to hit the halting problem.
16:48:10 <shachaf> Yes.
16:48:27 <shachaf> elliott: I knew it wouldn't work!
16:55:50 <shachaf> oerjan: Update: I mixed everything up.
16:56:03 <shachaf> Foo = {A,B}, Bar = {A,B,C}
16:56:08 <shachaf> Bar <: Foo, not the other way around.
16:56:21 <oerjan> oh wait hm it won't hit the halting problem if you have a prism to start with
16:56:39 <oerjan> :k Prism'
16:56:41 <lambdabot> Top level:
16:56:41 <lambdabot> Type synonym Prism' should have 2 arguments, but has been given none
16:56:41 <lambdabot> In a type in a GHCi command: Prism'
16:56:55 <oerjan> sheesh
16:57:04 <oerjan> VERY USEFUL GHC
16:57:10 <shachaf> It's a type synonym.
16:57:43 <shachaf> But it would just be * -> * -> *
16:58:21 <oerjan> :k Prism' Int Bool
16:58:23 <lambdabot> *
16:59:08 <oerjan> something tells me your definitions above are not the ones actually used
16:59:13 <oerjan> in lens
16:59:43 <shachaf> type Prism s t a b = (Choice p, Applicative f) => p a (f b) -> p s (f t)
16:59:50 <shachaf> CLOSE ENOUGH
17:05:58 <oerjan> tr :: Prism Bar Foo -> Prism (Foo -> X) (Bar -> X); tr (f2b,b2Mf) = (\b2x -> b2x . f2b, \f2x -> Just $ \b -> ...nah we can only get another Maybe in here, and no way to pull it outside the $
17:06:21 <shachaf> Right.
17:06:24 <shachaf> You need a sort of costrength.
17:06:26 <shachaf> Or something.
17:06:41 <oerjan> ok later ->
17:06:45 -!- oerjan has quit (Quit: leaving).
17:08:04 <Phantom_Hoover> are there any good co- jokes left i wonder
17:19:05 -!- Bike has joined.
17:39:45 <tswett> The energy stored in a spring is proportional to the square of its loading force, right?
17:43:37 -!- Bike has quit (Quit: Lost terminal).
17:44:22 -!- Bike has joined.
17:44:42 -!- ogrom has joined.
17:54:10 <Phantom_Hoover> tswett, ye...s
17:54:31 <Phantom_Hoover> yes
18:02:01 -!- DHeadshot has quit (Remote host closed the connection).
18:31:20 <Sgeo> So: Try to do this Facebook thing when I'm too tired to think properly, or write a blog post that could in theory make an impression on employers
18:34:33 <kmc> or sleep
18:34:47 <kmc> write a sleep deprived nonsensical blog post that could in theory make an impression on employers
18:34:52 <kmc> also what is facebook thing
18:37:45 <Bike> i'm imagining an employer hiring whoever first helps them with farmville
18:37:46 <lambdabot> Bike: You have 1 new message. '/msg lambdabot @messages' to read it.
18:38:59 <Bike> @ask shachaf evening
18:38:59 <lambdabot> Consider it noted.
18:39:24 <shachaf> @tell Bike thank'se
18:39:24 <lambdabot> Consider it noted.
18:39:32 <shachaf> @clear-messages
18:39:32 <lambdabot> Messages cleared.
18:39:49 <Bike> @clear-messages
18:39:49 <lambdabot> Messages cleared.
18:40:54 <ogrom> @clear-messages
18:40:55 <lambdabot> Messages cleared.
18:45:10 <Sgeo> kmc, Facebook Hacker Cup
18:46:20 <shachaf> is this more of an esr hacker cup or a pg hacker cup tho
18:46:26 <shachaf> important distinction
18:48:47 <Bike> fuck that guy
18:58:42 -!- monqy has joined.
19:05:03 <Phantom_Hoover> Bike, which one?
19:08:26 <kmc> fb brogrammer cup
19:10:54 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds).
19:12:01 -!- Nisstyre-laptop has joined.
19:17:33 <Bike> esr, haven't you heard about the new pbuh
19:17:38 <Bike> oh he left.
19:21:45 -!- hublao has joined.
19:22:26 <hublao> Hello,I was looking at brainfuck language and I've minor confusion about ']' instruction
19:23:37 <hublao> Correct me if I am wrong: If ']' is encountered, jump to the matching '[' and check if the value at that array is 0.If it is 0, jump to the instruction after ']' else go to next instruction after '['.
19:25:13 <Sgeo> There are a few equivalent ways to describe what [ and ] do. But you need to incorporate some sort of check into the action that happens when you encounter [
19:25:32 <Sgeo> If you hit [ and the current cell is 0, it does need to skip past the matching ] somehow
19:27:18 <hublao> yeah true
19:27:33 <hublao> But what I said is also true , right Sgeo ?
19:28:27 <Sgeo> Looks good, I think
19:28:28 <Vorpal> the fuck just happened. I switched from a the xfce terminal emulator to xchat, and a bit of the terminal ended up overlaying the bottom fifth of the window. Stretched. Like you had stretched a texture over there.
19:28:38 <Vorpal> so bizarre
19:28:48 <Sgeo> Except I'd be more inclined to leave the checking for 0 bit as part of what happens due to [
19:28:52 -!- Phantom_Hoover has joined.
19:29:18 <Vorpal> I guess I'll blame the closed source AMD graphics drivers
19:31:17 <Vorpal> hublao, you could describe [ ... ] as while(*dataPtr) { ... } pretty much (in C)
19:31:44 <hublao> True Sgeo but someone might not decrement the location associated with '[', hence I asked.
19:31:58 <Vorpal> iirc that is what my compiler would generate when it couldn't figure out any way to optimize the loop
19:32:07 <hublao> Vorpal, true.I am trying to write a sinple interpreter for it but I am finding a way to implement nested [ ]
19:32:16 <Sgeo> hublao, locations in source code don't correspond to locations on tape
19:32:28 <Vorpal> hublao, you could do that by recursion surely
19:32:38 <Vorpal> hublao, I assume you parse it into a tree structure?
19:33:02 <hublao> not really Vorpal. Since I am new to it, I've used a stack and simple switch statement
19:33:17 <Vorpal> like (instr,data,ptrNext), and with a "down"-link to the content of the loop
19:33:32 <Bike> hublao: [] works with the current tape pointer, it's not saved. >+>+>+[-<] works
19:33:35 <hublao> wait a sec, I'll show you with what I've come up with
19:34:03 <Vorpal> hublao, well I only ever wrote compilers for brainfuck iirc, but what I did was simply parse it into a linked list, with a pointer to another linked list of the content of the loop
19:34:32 <kmc> brainfuck may be one of the few languages where it's easier to write a compiler (to C, say) than an interpreter
19:34:33 <Vorpal> then you could run it by simple recursion
19:34:41 <Vorpal> (parsing is already really easy with recursion)
19:34:50 <Vorpal> bbl, need to leave for half an hour or so, will be back later.
19:35:02 <Bike> well it's not like having [] in interpretation search for their match is all that hard
19:37:03 <hublao> http://pastie.org/private/hhomcydflvr4fnkd3th4mq
19:37:15 <hublao> Would like to have suggestions about how I should go next
19:39:33 <Bike> well you can search ahead in the [ case easily
19:40:33 <hublao> um I don't get it Bike . Search ahead what? another [ ?
19:40:34 <Bike> int depth = 1; while (depth) { if buf[i] == '[' ++depth; else if buf[i] == ']' --depth; ++i; } or so
19:40:40 <Bike> search for where to jump to
19:41:46 <hublao> But there are only 2 possible places to jump right ? If value is 0,jump to instruction after ']' which i=pop(&stack)+1 does
19:42:04 <hublao> else , I just have to go to next instruction , which is i++
19:42:19 <Bike> I thought the stack kept track of where [ is, not ].
19:42:31 <Bike> I'm looking at the "// have to add stuff here" bit.
19:42:54 <hublao> oh sorry, my bad
19:43:01 <hublao> I keep track of only [ Bike
19:43:17 <Bike> Right, so when you get to a [ to skip you have to look ahead.
19:44:00 <hublao> ah gotcha!
19:44:13 <hublao> and you might encounter another '[' so you've to save that too?
19:44:35 <Bike> Well, if you have [...[...]...] you have to skip to the second ] and not the first.
19:44:46 <hublao> yep
19:50:37 <hublao> Bike, do you think it'd be easier/better if I use 2 stacks to save [ and ] location info ?
19:52:47 <Bike> precomputing where everything jumps to would be fastest, i guess
20:01:07 <hublao> But stack wouldn't be appropriate data structure if I precompute the location Bike
20:02:17 <Bike> no, it wouldn't be.
20:11:40 <Vorpal> back
20:12:48 <Vorpal> hublao, I wouldn't run directly on a text string myself, rather I would parse and apply some basic optimisation (i.e. turn +++ into "add 3", or >> into "move 2 right")
20:12:59 <Vorpal> and then run the linked list that resulted
20:13:34 <hublao> I am making pretty basic version at the moment Vorpal . Will keep your suggestions in mind!
20:13:37 <Vorpal> hublao, this also easily allows skipping a loop that is never entered
20:13:52 <Vorpal> just do not follow the pointer to the loop-list
20:13:59 <Vorpal> but go to the instruction after the loop
20:14:41 -!- zzo38 has joined.
20:15:22 <hublao> Um.Now I am kinda confused.Did you look at my code Vorpal ?
20:15:32 <Vorpal> hublao, not yet
20:15:33 <Bike> hm, looks like my dumb one just searched for the [] every time, and then i skipped straight from that to a compiler
20:15:39 <Vorpal> hublao, I just suggested a general way
20:15:44 <Vorpal> then of course you can apply more advanced optimisations, such as observing that [-] is a "set to 0", thus you now know the value of that cell and can turn any further use of that cell in the current balanced block (that is, a section of code with no loops that move the pointer between the start and the end)
20:15:45 <hublao> okay
20:15:58 <Vorpal> that is, a loop like [>+<] is balanced, but [>+>] is not
20:16:04 <Bike> hm itrekkie isn't here, that's right
20:16:08 <hublao> Vorpal, all that will possibly in v2.0 ;p let me get a basic one working yet!
20:16:14 <Vorpal> the latter really harms optimising, since you lose track of where you are
20:16:23 <Bike> dude in ##asm's been learning the ins and outs of x86 from brainfuck of all things
20:16:26 <Vorpal> hublao, my main interest in brainfuck is optimising :)
20:16:57 <hublao> nice Vorpal ! But since this is my first attempt , my main interest is making a simple interpreter ;p
20:18:05 <pikhq> Making a very naive interpreter will give you fairly slow results. But, then, who cares. It's not like Brainfuck needs to be fast.
20:18:30 <hublao> hmm pikhq .Once I get naive one working , I can improve upon it.
20:18:35 <Vorpal> hublao, fair enough
20:19:18 <Vorpal> hublao, anyway writing a simple recursive parser for brainfuck that puts it into a linked list, then writing a recursive execution function working on that list is probably the easiest way to run it IMO
20:19:42 <Vorpal> and it makes it easy to apply optimisation further down the line
20:20:04 -!- oerjan has joined.
20:20:17 <Phantom_Hoover> note to self: actually rewrite the wiki brainfuck spec one day
20:20:26 <Vorpal> Phantom_Hoover, oh? What is wrong with it?
20:20:41 <Phantom_Hoover> no concept of syntax
20:20:42 <hublao> that sounds kinda complicated to me atm Vorpal .
20:20:51 <Vorpal> hm okay
20:20:57 <Vorpal> hublao, which bit of it?
20:21:09 <hublao> Vorpal, whole recursion thing
20:21:17 <Vorpal> uh
20:21:25 <Vorpal> hublao, what bit of recursion is an issue?
20:21:25 <hublao> I am focussing on fixing the code I've written atm
20:23:18 <Vorpal> hublao, when you find a [ you do something like currentNode.type = LOOP; currentNode->codeInLoop = myParser(myFILE, currentLoopDepth+1); You use the loop depth variable to detect if a [ is missing a matching ] or vice verse.
20:23:53 <hublao> hmm , I kinda get it
20:23:57 <Vorpal> hublao, then when you detect a ] you check that the loop depth is not 0 (in that case you have more ] than [) and return the code linked list you generated so far
20:24:34 <Vorpal> hublao, and when you get end-of-file you check that your loop depth *is* 0 (otherwise you have more [ than ]) and return your linked list
20:24:48 <hublao> I see
20:26:31 <Vorpal> hublao, as a result you have a linked list with structs along the lines of struct codeNode { InstructionType type; codeNode* next; codeNode* codeInLoop; } (the last member being a null pointer for non-loops)
20:27:25 <Vorpal> hublao, of course from there you can easily extend it, like adding a "count" field, for add/subtract so that you can merge +++ into "add 3" as I mentioned above. And so on.
20:28:33 <Vorpal> hublao, this representation is easy to do basic optimisation on (you might want something different if you go for really advanced stuff), easy to generate code from, if you want to compile. And easy to interpret.
20:30:12 <Vorpal> hublao, when you find a loop, you just do something like: switch (curNode->type) { ... case LOOP: while (*dataPtr) { interpret(curNode->codeInLoop); } break; ... }
20:30:52 <Vorpal> and after the switch statement you have curNode = curNode->next; at the end of the outer loop
20:31:51 <hublao> Okay Vorpal .Thanks for all the info.Also check PM.
20:36:01 -!- ogrom has quit (Quit: Left).
21:11:23 * Sgeo decides to make a rough outline of what his blog post will be
21:12:15 <Phantom_Hoover> a rectangle?
21:31:09 -!- DHeadshot has joined.
21:46:40 <kmc> rectangle? damn near killtangle!
21:47:31 -!- azaq23 has joined.
21:47:39 -!- azaq23 has quit (Max SendQ exceeded).
21:47:45 -!- hublao has quit (Quit: Leaving).
21:50:34 <Phantom_Hoover> `quote metaturing
21:50:36 <HackEgo> No output.
21:50:40 <Phantom_Hoover> :O
21:51:16 -!- Arc_Koen has joined.
21:51:43 <oerjan> `run echo "This wisdom entry was crushed by a falling anvil." >wisdom/metaturing
21:52:04 <Phantom_Hoover> was that in wisdom then?
21:52:05 <HackEgo> No output.
21:52:17 <Phantom_Hoover> `? metaturing
21:52:19 <HackEgo> This wisdom entry was crushed by a falling anvil.
21:54:01 <oerjan> it does not appear to have previously existed.
21:54:13 <oerjan> assuming i understand http://codu.org/projects/hackbot/fshg/index.cgi/file/23c726e07478/wisdom/metaturing
21:54:56 <Phantom_Hoover> wtf
21:55:03 <Phantom_Hoover> did it get deleted in a quote purge then
21:55:32 -!- impomatic has quit (Ping timeout: 248 seconds).
21:56:37 <Applejacques> `run hg export 0:tip | grep -i metaturing
21:57:08 <HackEgo> No output.
21:57:16 <Applejacques> Well.
21:57:18 <Applejacques> That didn't work.
21:57:41 <Applejacques> `run hg export 0:tip | head
21:57:44 <HackEgo> ​# HG changeset patch \ # User HackBot \ # Date 1329421352 0 \ # Node ID e037173e0012bed0fece931395ef4a22f213632a \ # Parent 0000000000000000000000000000000000000000 \ Initial import. \ \ diff -r 000000000000 -r e037173e0012 .hg_archival.txt \ --- /dev/nullThu Jan 01 00:00:00 1970 +0000 \ +++ b/.hg_archival.txtThu Feb 16 19:42:32 2012 +0000
21:57:53 <Applejacques> No idea why that didn't work.
22:00:17 <oerjan> Applejacques: Gregor has occasionally wiped the repository history
22:00:41 <oerjan> as you might conceivably know
22:01:04 * oerjan should learn to recognize these weird nicks some day
22:01:45 <oerjan> and also to suspect foul when Gregor doesn't tab complete.
22:05:15 <Applejacques> lul
22:05:32 <Applejacques> I haven't wiped the history since transactions came in.
22:05:35 <Applejacques> Not necessary any more.
22:05:38 <oerjan> OKAY
22:05:38 <Applejacques> `run du -h .hg/
22:05:41 <HackEgo> 7.0M.hg/store/data/bin \ 2.1M.hg/store/data/lib \ 37M.hg/store/data/paste \ 12M.hg/store/data/share/_word_data \ 20K.hg/store/data/share/lua/5.2/luarocks/build \ 28K.hg/store/data/share/lua/5.2/luarocks/fetch \ 8.0K.hg/store/data/share/lua/5.2/luarocks/fs/unix \ 8.0K.hg/store/data/share/lua/5.2/luarocks/fs/win32 \ 36K.hg/store/data/share/l
22:05:45 <Applejacques> >_>
22:05:49 <Applejacques> `run du -hc .hg/
22:05:51 <HackEgo> 7.0M.hg/store/data/bin \ 2.1M.hg/store/data/lib \ 37M.hg/store/data/paste \ 12M.hg/store/data/share/_word_data \ 20K.hg/store/data/share/lua/5.2/luarocks/build \ 28K.hg/store/data/share/lua/5.2/luarocks/fetch \ 8.0K.hg/store/data/share/lua/5.2/luarocks/fs/unix \ 8.0K.hg/store/data/share/lua/5.2/luarocks/fs/win32 \ 36K.hg/store/data/share/l
22:05:54 <Applejacques> >_<
22:05:56 <Applejacques> `run du -hs .hg/
22:05:59 <HackEgo> 147M.hg/
22:07:21 <oerjan> `run ls -ld .hg
22:07:24 <HackEgo> drwxr-xr-x 3 5000 5000 4096 Feb 2 21:52 .hg
22:07:53 <oerjan> should that really be writable from the sandbox?
22:08:00 <oerjan> or is it just a copy
22:08:16 <oerjan> (and if so, isn't it expensive to make a copy each time)
22:09:38 <oerjan> or wait hm
22:09:44 <oerjan> `run whoami
22:09:49 <HackEgo> whoami: cannot find name for user ID 5000
22:09:58 <oerjan> yeah it is the same user
22:10:36 <oerjan> Applejacques: couldn't someone mess up the repository by modifying .hg ?
22:10:44 <oerjan> `ls -l .hg
22:10:45 <HackEgo> ​/bin/ls: invalid option -- ' ' \ Try `/bin/ls --help' for more information. \ /bin/ls: invalid option -- ' ' \ Try `/bin/ls --help' for more information.
22:10:49 <oerjan> `run ls -l .hg
22:10:50 <HackEgo> total 308 \ -rw-r--r-- 1 5000 5000 57 Feb 16 2012 00changelog.i \ -rw-r--r-- 1 5000 5000 8 Feb 2 21:52 branch \ -rw-r--r-- 1 5000 5000 95 Feb 2 21:51 branchheads.cache \ -rw-r--r-- 1 5000 5000 134592 Feb 2 21:52 dirstate \ -rw-r--r-- 1 5000 5000 84 Feb 2 21:52 last-message.txt \ -rw-r--r-- 1 5000 5000 23 Feb 16 2012 requi
22:11:38 <oerjan> hm oh
22:12:16 <Applejacques> `run touch .hg/HURRHURR
22:12:18 <HackEgo> touch: cannot touch `.hg/HURRHURR': Read-only file system
22:12:24 <oerjan> EEK
22:12:30 <oerjan> OKAY THEN
22:22:38 -!- DHeadshot has quit (Read error: Connection reset by peer).
22:22:59 -!- DHeadshot has joined.
22:32:50 <oerjan> `fetch http://zzo38computer.org/esoteric/Arc_Koen/fueue.c
22:32:53 <HackEgo> 2013-02-02 22:32:52 URL:http://zzo38computer.org/esoteric/Arc_Koen/fueue.c [16242/16242] -> "fueue.c" [1]
22:33:01 <oerjan> `gcc fueue.c
22:33:15 <Arc_Koen> sorry I did not ask for zzo38 to update it
22:33:20 <Arc_Koen> yet
22:33:25 <oerjan> hm...
22:33:25 <HackEgo> No output.
22:33:26 <Arc_Koen> hey zzo38 are you busy at the moment?
22:33:37 <zzo38> Arc_Koen: I can update it if you have the thing to update.
22:33:43 <Arc_Koen> cool
22:35:26 <Arc_Koen> hmm I was looking for your emaila ddress but then I received a text message from an unknown number with not very nice things included
22:35:42 <zzo38> I don't have email
22:35:51 <Arc_Koen> well I don't have gopher!
22:36:20 <zzo38> You don't need to use gopher you can use the IRC to send it to me.
22:36:33 <oerjan> `run mv a.out bin/fueue
22:36:37 <HackEgo> No output.
22:37:06 <oerjan> `fueue 72 101 108 108 111 44 32 119 111 114 108 100 33 10 H
22:37:10 <HackEgo> Hello, world!
22:37:52 <oerjan> `fueue 48 ~!~)): [[48 [)):] [~!~)):] ~~) !][49 [~!~)):] [)):] )~]]
22:37:53 <HackEgo> 01101001100101101001011001101001100101100110100101101001100101101001011001101001011010011001011001101001100101101001011001101001100101100110100101101001100101100110100110010110100101100110100101101001100101101001011001101001100101100110100101101001100101101001011001101001011010011001011001101001100101101001011001101001011010011001011010010110011010
22:38:43 <oerjan> `ls interp
22:38:46 <HackEgo> ​/bin/ls: cannot access interp: No such file or directory \ /bin/ls: cannot access interp: No such file or directory
22:38:50 <oerjan> `ls
22:38:51 <HackEgo> ​= 0 \ bin \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ fueue.c \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ test \ u \ wisdom \ zalgo.hs
22:38:54 <oerjan> `ls interps
22:38:57 <HackEgo> 1l \ 2l \ adjust \ axo \ befunge \ bfjoust \ bf_txtgen \ boof \ build.sh \ cfunge \ c-intercal \ clc-intercal \ dimensifuck \ egobch \ egobf \ fukyorbrane \ gcccomp \ gforth_quit \ ghc \ glass \ glypho \ kipple \ lambda \ lazyk \ linguine \ Makefile \ malbolge \ pbrain \ qbf \ rail \ rhotor \ sadol \ sceql \ trigger \ udage01 \ underload \ unlambda
22:39:13 <Arc_Koen> zzo38: did I just send you a file named fueue.c?
22:39:32 <Arc_Koen> via dcc
22:39:33 <zzo38> I have to receive it
22:40:04 -!- asiekierka has quit (Excess Flood).
22:40:45 <zzo38> OK, I have done
22:41:15 -!- asiekierka has joined.
22:41:40 <zzo38> Arc_Koen: The DCC SEND message was received twice somehow, but I managed to download it using netcat anyways without the problem
22:44:01 <Arc_Koen> yeah from my side it definitely looks like it'snot working properly
22:44:32 <Arc_Koen> aaaand here's fueue.ml
22:45:00 <Arc_Koen> so you don't have email? you're probably the first person I meet who doesn't
22:45:36 <Arc_Koen> (well, for some values of "meet" and not counting kids)
22:54:49 <oerjan> `fetch http://zzo38computer.org/esoteric/Arc_Koen/fueue.c
22:54:53 <HackEgo> 2013-02-02 22:54:51 URL:http://zzo38computer.org/esoteric/Arc_Koen/fueue.c [16311/16311] -> "fueue.c.1" [1]
22:55:10 <zzo38> OK, now I have fueue.ml
22:55:25 <Arc_Koen> thank you a lot
22:55:41 <oerjan> `run mv fueue.c.1 fueue.c
22:55:45 <Arc_Koen> I should probably go to bed now, I'm in the middle of a go tournament
22:55:49 <HackEgo> No output.
22:55:54 <Arc_Koen> today I had to play against the strongest player
22:55:59 <oerjan> `run sed -i s/1000/10000/ fueue.c #Whistles innocently
22:56:03 <HackEgo> No output.
22:56:11 <Arc_Koen> I think normally he'd give me three or four stones
22:56:22 <oerjan> `run gcc -o bin/fueue fueue.c
22:56:29 <HackEgo> No output.
22:57:28 <oerjan> `run echo "72\n101\n108\n108\n111\n44\n32\n119\n111\n114\n108\n100\n33\n10\nH"
22:57:30 <HackEgo> 72\n101\n108\n108\n111\n44\n32\n119\n111\n114\n108\n100\n33\n10\nH
22:57:38 <oerjan> sheesh.
22:58:06 <oerjan> `ls
22:58:13 <HackEgo> ​= 0 \ bin \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ fueue.c \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ test \ u \ wisdom \ zalgo.hs
22:59:38 <oerjan> `printf 72\n101\n108\n108\n111\n44\n32\n119\n111\n114\n108\n100\n33\n10\nH
22:59:39 <HackEgo> 72 \ 101 \ 108 \ 108 \ 111 \ 44 \ 32 \ 119 \ 111 \ 114 \ 108 \ 100 \ 33 \ 10 \ H
22:59:59 <oerjan> `run fueue $(printf "72\n101\n108\n108\n111\n44\n32\n119\n111\n114\n108\n100\n33\n10\nH")
23:00:01 <HackEgo> Error: fueue received too many arguments. The Hello world program \ Hello, world!
23:00:06 <oerjan> hmph
23:00:33 <oerjan> `run fueue "$(printf '72\n101\n108\n108\n111\n44\n32\n119\n111\n114\n108\n100\n33\n10\nH')"
23:00:35 <HackEgo> Hello, world!
23:02:51 -!- impomatic has joined.
23:35:33 -!- Arc_Koen has left.
23:37:21 -!- asiekierka has quit (Excess Flood).
23:40:16 -!- asiekierka has joined.
23:46:16 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
23:53:03 <Sgeo> `list
23:53:05 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
23:53:50 <nortti> oh wow. Taneb is under 50% of that list
23:58:18 -!- sirdancealot7 has joined.
2013-02-03
00:02:10 -!- carado has quit (Ping timeout: 246 seconds).
00:05:22 <oerjan> ^show list
00:05:23 <fungot> (Taneb atriq Ngevd Fiora nortti Sgeo alot)S
00:05:38 <oerjan> ^def list ul (Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot)S
00:05:39 <fungot> Defined.
00:05:59 <Sgeo> Who is ThatOtherPerson?
00:06:05 <oerjan> fizzie: needs saving hth
00:06:15 <Sgeo> ^save
00:06:27 <Sgeo> no?
00:06:31 <Sgeo> ok
00:06:35 <oerjan> i do not think that command responds to anyone but fizzie
00:09:58 <kmc> hi fungot
00:09:59 <fungot> kmc: he is so silly!
00:10:14 <kmc> fungot: me or you?
00:10:15 <fungot> kmc: for a while it was frustrating. most of john's dad, who broke a huge wizard is. you don't like is my mother's obsession with clocks. the sooner all these idiots stop being alive the better of you.
00:10:26 <kmc> ^style
00:10:26 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck* ic irc iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
00:10:40 <kmc> ^style fungot
00:10:40 <fungot> Selected style: fungot (What I've said myself)
00:10:48 <kmc> fungot: hi
00:10:48 <fungot> kmc: is that something you know and and the cases that required to actually mutate the original ( sorted, perhaps, it may be said that particularly here, parliament will give a single instance,
00:15:32 <oerjan> Mr. President, I think fungot is mixing metaphors again
00:15:33 <fungot> oerjan: ( that is, levinson went to kish, disappeared, had on your behalf of the commission is not allowed to use the crane, enter any two of these letters, a b y. every night, brings a new world of good! i was your problem? maybe you just can't handle is designed" if continuations are not unmodular in the same
00:26:58 -!- Taneb has quit (Quit: Leaving).
00:42:35 <Sgeo> Oh hey someone wrong my mamb for Scala years ago
00:42:42 <Sgeo> https://github.com/urso/embeddedmonads
00:43:05 <Bike> Was that supposed to be "wrote"?
00:43:25 <Sgeo> yes, yes it was
00:45:15 <Bike> Have you considered writing a library called Mambo?
01:18:53 -!- copumpkin has quit (Ping timeout: 245 seconds).
01:19:24 -!- copumpkin has joined.
01:22:19 <fizzie> ^save
01:22:19 <fungot> OK.
01:28:14 <oerjan> yay!
01:28:36 * oerjan didn't really think fizzie was around
01:28:58 <fizzie> I have been playing a game, is why.
01:29:17 <oerjan> you'd also been idle for over a day
01:30:15 <fizzie> Oh, but I've been checking the channel every few hours, all sneaky-stealth-like.
01:30:37 <fizzie> (IRC should have some kind of attention notification protocol, perhaps?)
01:31:21 <fizzie> IM things have that "user is typing" indicator, but even they don't generally (AFAIK) have a "user is looking" indicator.
01:32:37 <kmc> we've been thinking about that a lot for the business communication tool we're building
01:35:40 <kmc> it works as realtime chat, but (unlike say IRC) it strongly encourages you to read every message
01:35:56 <fizzie> Incorporating eye-tracking technology sound like the obvious way to go about it, of course.
01:35:58 <kmc> so that it can also take the place of asynchronous things like email
01:36:35 <kmc> so we kind of want to deliberately avoid a 'user is around right now' notification, because it would discourage people from using it in that second way
01:36:55 <kmc> on the other hand it's something people really really want
01:37:22 <Bike> xmpp's combo of away statuses and typing notifications seems fine to me
01:38:01 <fizzie> Beating the users until they stop wanting things you don't want them to want seems fine to me.
01:40:13 <kmc> but in the limit you end up with something nobody wants
01:40:28 <Vorpal> <kmc> we've been thinking about that a lot for the business communication tool we're building <-- as long as it is better than Samtime in the god awful Lotus Notes...
01:40:40 <Bike> in the limit you work somewhere else, i thought
01:41:26 <kmc> what's Samtime like
01:41:30 <kmc> Bike: well ok
01:41:41 <Vorpal> kmc, well I guess it actually isn't the worst part of notes
01:42:11 <Vorpal> kmc, of course it suffers the general problems with confusing UI of notes that means you have no idea where to find the setting you want.
01:42:49 <Vorpal> kmc, oh and I have no idea how to change spell check language in it. It seems stuck to English, while the rest of Notes is stuck to Swedish
01:43:08 <Vorpal> kmc, anyway it is an IM system integrated into Notes
01:43:12 <Vorpal> use it at work
01:43:23 <Vorpal> does show the away status
01:44:57 -!- Nisstyre-laptop has quit (Quit: Leaving).
01:46:37 -!- Nisstyre-laptop has joined.
01:49:15 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:49:21 -!- DH____ has joined.
02:01:13 <kmc> http://www.reddit.com/r/Python/comments/17rfh7/warning_dont_use_pip_in_an_untrusted_network_a/
02:01:22 <kmc> yay people are finally talking about these problems
02:02:12 <Bike> "It's a bit worse than that." security sure is a fun field
02:04:43 <kmc> yeah, the default python HTTP libraries make it basically impossible to check SSL certs
02:04:47 <kmc> who would ever want to do that right
02:05:02 <kmc> Python: explosive, acid-leaking batteries included
02:05:11 -!- Nisstyre-laptop has quit (Quit: Leaving).
02:17:38 <FreeFull> Would x + y = y + x be a valid last pattern match, so that all cases where x is specific also apply to where y is specific instead?
02:17:50 <kmc> what
02:17:59 <kmc> oh i see what you mean
02:19:11 <kmc> yes, you can do things that way, but I remember concluding that it's not worthwhile
02:19:19 <FreeFull> Say I have (x,True) + (y,False) = something and then don't want to write the case for (x,False) + (y,True) = something
02:19:39 <kmc> one problem is that if you forget a case, there's no compiler warning and you get an infinite loop at runtime
02:20:42 <FreeFull> Yeah, that's what I was thinking
02:21:25 <FreeFull> I'm making silly Num instances =P
02:21:39 <FreeFull> instance Num ([()],Boolean)
02:21:48 <kmc> that is silly
02:22:03 <FreeFull> Boolean is the sign, the list is the magnitude
02:22:04 <kmc> you should introduce a new constructor rather than using (,)
02:22:09 <FreeFull> As in the length
02:22:13 <kmc> otherwise it will overlap with other (,) instances
02:22:35 <FreeFull> I was thinking of making a new constructor, but was lazy =P
02:22:42 <FreeFull> Sure, I will
02:23:39 <kmc> also if you want to be sillier, use Fix Maybe
02:23:47 <FreeFull> data SillyNum = Positive [()] | Negative [()]
02:23:49 <kmc> instead of [()]
02:24:01 <Bike> :t Fix Maybe
02:24:04 <lambdabot> Not in scope: data constructor `Fix'
02:24:04 <lambdabot> Not in scope: data constructor `Maybe'
02:24:12 <kmc> :k Fix
02:24:13 <lambdabot> Not in scope: type constructor or class `Fix'
02:24:15 <kmc> :k Mu
02:24:16 <lambdabot> (* -> *) -> *
02:24:18 <kmc> ok lambdabot calls it Mu
02:24:23 <Bike> why
02:24:25 <kmc> @src Mu
02:24:25 <lambdabot> newtype Mu f = In { out :: f (Mu f) }
02:24:36 <kmc> because μ is used for least fixed points in maths sometimes
02:24:46 <kmc> > In (Just (In Nothing))
02:24:48 <lambdabot> In (Just (In Nothing))
02:24:59 <FreeFull> Is Fix Maybe a chain of justs that possibly ends in Nothing
02:25:08 <kmc> yes
02:25:25 <kmc> Mu Maybe ≈ Maybe (Mu Maybe)
02:25:36 <kmc> where by ≈ i mean "isomorphic to"
02:25:42 <FreeFull> data Fix a = a (Fix a) ???
02:25:55 <kmc> <lambdabot> newtype Mu f = In { out :: f (Mu f) }
02:26:05 <FreeFull> Ah
02:26:09 <kmc> you need a value constructor
02:26:20 <FreeFull> Yeah, I see
02:26:27 <kmc> also you need to use 'newtype' if you want it to be an actual isomorphism
02:26:34 <kmc> otherwise ⊥ ≠ In ⊥
02:26:44 <kmc> so each level of recursion has one more "value"
02:27:03 <kmc> i wrote some stuff about this stuff here http://mainisusuallyafunction.blogspot.com/2010/12/type-level-fix-and-generic-folds.html
02:28:15 <Bike> oh, so it's the same recursive-functions-are-actually-fixedpoints thing as with, uh, functions.
02:28:22 <kmc> yeah
02:28:29 <FreeFull> I think I'll use [()] for now
02:29:06 <oerjan> [()] means you can use list functions for arithmetic...
02:29:16 <Bike> I like how the definition of fix there relies on recursion
02:29:49 <kmc> well in a statically typed language, you can't write fix unless you are already given some kind of recursion construct
02:29:58 <oerjan> > const id <$> [(),(),()] <*> [(),()]
02:30:00 <lambdabot> [(),(),(),(),(),()]
02:30:29 <oerjan> oh wait
02:30:36 <oerjan> > [(),(),()] *> [(),()]
02:30:38 <lambdabot> [(),(),(),(),(),()]
02:30:50 <FreeFull> Need to consider negative values too =P
02:31:09 <FreeFull> > replicate 3 [()] >> replicate 5 [()]
02:31:11 <lambdabot> [[()],[()],[()],[()],[()],[()],[()],[()],[()],[()],[()],[()],[()],[()],[()]]
02:31:15 <kmc> though in Haskell there are various accidental "recursion constructs" you can use
02:31:18 <kmc> http://okmij.org/ftp/Haskell/types.html#fix
02:31:23 <FreeFull> > replicate 3 [()] >> replicate 5 [()] >>= id
02:31:25 <lambdabot> [(),(),(),(),(),(),(),(),(),(),(),(),(),(),()]
02:31:42 <FreeFull> Oh, duh
02:31:46 <FreeFull> > replicate 3 () >> replicate 5 ()
02:31:47 <lambdabot> [(),(),(),(),(),(),(),(),(),(),(),(),(),(),()]
02:32:11 <kmc> anyway if you have a simple typed lambda calculus, you can't write fix
02:32:29 <kmc> note that its type, (a -> a) -> a, is unsound as a logical proposition
02:32:59 <oerjan> > sequence_ $ [(),(),()] <$ [(),()]
02:33:01 <lambdabot> [(),(),(),(),(),(),(),(),()]
02:33:10 <kmc> once you allow arbitrary recursion, your programs are no longer really proofs, because they can loop forever instead of yielding a value of their declared type
02:33:42 <Jafet> Somehow I can't see {-# RULES forall m n. length (replicate m () *> replicate n ()) = m * n #-} becoming a thing
02:33:59 <FreeFull> If you don't allow arbitrary recursion, your programs aren't turing-complete
02:34:01 <oerjan> > (mapM_ . const) [(),(),()] [(),()]
02:34:04 <lambdabot> [(),(),(),(),(),(),(),(),()]
02:34:44 <shachaf> @let voided n = replicate n ()
02:34:46 <lambdabot> Defined.
02:34:50 <shachaf> > void [1..] > voided 5
02:34:53 <lambdabot> True
02:34:56 <FreeFull> Jafet: Wouldn't that give a different result for negative values of m and n
02:35:47 <shachaf> > (compare `on` void) (1:2:3:4:5:undefined) [10,20,30]
02:35:49 <lambdabot> GT
02:36:05 <FreeFull> :t on
02:36:07 <lambdabot> (b -> b -> c) -> (a -> b) -> a -> a -> c
02:36:33 <Jafet> > null .
02:36:35 <lambdabot> <hint>:1:7: parse error (possibly incorrect indentation)
02:36:41 <Jafet> :t null .: void
02:36:43 <lambdabot> Couldn't match expected type `[a0]' with actual type `()'
02:36:43 <lambdabot> Expected type: g0 a1 -> g0 [a0]
02:36:43 <lambdabot> Actual type: g0 a1 -> g0 ()
02:37:09 <FreeFull> I love expressive type systems
02:37:26 <FreeFull> :t null
02:37:28 <lambdabot> [a] -> Bool
02:37:42 <FreeFull> > (null .)
02:37:43 <lambdabot> No instance for (GHC.Show.Show (f0 [a0] -> f0 GHC.Types.Bool))
02:37:44 <lambdabot> arising f...
02:38:03 <FreeFull> :t (null .)
02:38:04 <lambdabot> Functor f => f [a] -> f Bool
02:38:19 <Bike> kmc: i know all that much at least, you don't need to tell me again :P
02:39:11 <shachaf> but do you know the type newtype T = T (T -> T)!!
02:39:23 <FreeFull> Ah, lambdabot does the (.) = fmap thing
02:40:03 <FreeFull> shachaf: T id
02:40:04 <Bike> FreeFull: http://en.wikipedia.org/wiki/%CE%9C-recursive_function you only need search!!!
02:41:44 <kmc> Bike: ok
02:42:00 <kmc> it's hard to remember what people know and don't know
02:42:14 <Bike> i suppose
02:42:18 <Bike> nothing wrong with talking it through again
02:42:47 <FreeFull> Back to my num instance
02:45:46 <Bike> hm, i had this idea that cata(morphism) was actually reasonably widespread in haskell world
02:46:40 <Bike> more of an agda thing maybe?
02:46:56 -!- Phantom_Hoover has joined.
02:48:13 <FreeFull> Maybe I shouldn't have used separate constructors for positive and negative
02:48:20 <FreeFull> It's bloating my num instnace
02:50:39 <FreeFull> data Sign = Negative | Zero | Positive deriving Show data SillyNum = SillyNum Sign [()] deriving Show this might be better, probably should derive more instances but whatever
02:50:54 <Bike> so what's this all for
02:51:11 <FreeFull> Sillyness
02:51:48 <FreeFull> Actually, screw Sign, I'll just use Integer or something
02:52:48 <kmc> i'll make my own Num instance, with blackjack and hookers
02:55:33 -!- DH____ has quit (Read error: Connection reset by peer).
03:04:00 <FreeFull> data SillyNum = SillyNum Integer [()] deriving Show
03:04:11 <FreeFull> instance Num SillyNum where { fromInteger x = SillyNum (signum x) (genericReplicate (abs x) ()); negate (SillyNum x y) = SillyNum (-x) y; abs (SillyNum x y) = SillyNum (abs x) y; signum (SillyNum x _) = SillyNum x [()]; (SillyNum x a) + (SillyNum y b) = fromInteger (x * genericLength a + y * genericLength b); (SillyNum x a) * (SillyNum y b) = SillyNum (x*y) (a >> b)
03:04:46 <FreeFull> }
03:05:33 <Bike> :t (>>)
03:05:35 <lambdabot> Monad m => m a -> m b -> m b
03:05:36 <FreeFull> Appears to work
03:06:21 <FreeFull> Bike: Same as *> but for monads
03:11:45 <FreeFull> What happens when you call length on a list larger than maxBound :: Int
03:12:15 <FreeFull> Assuming you wait for it to actually finish
03:12:35 <Sgeo> > length ([1.. (fromIntegral (maxBound :: Int) + 1)])
03:12:39 <Jafet> You realize that you need to buy a 64-bit CPU
03:12:39 <lambdabot> mueval-core: Time limit exceeded
03:12:58 <kmc> FreeFull: I think the semantics are not defined by the standard
03:13:03 <Bike> > length ([1.. (fromIntegral (maxBound :: Int))])
03:13:07 <lambdabot> mueval-core: Time limit exceeded
03:13:12 <FreeFull> Let me look up the standard implementation of length
03:13:15 <kmc> in practice it will depend on how length is implemented and how Int overflow works on your Haskell implementation
03:13:21 <kmc> length [] = 0
03:13:21 <kmc> length (_:l) = 1 + length l
03:13:24 <kmc> from the report
03:13:37 <kmc> so that will pretty directly depend on what (+) :: Int -> Int -> Int does
03:13:46 <Sgeo> > 1 + (maxBound::Int)
03:13:47 <Jafet> Are there laws for (+)
03:13:48 <lambdabot> -9223372036854775808
03:13:53 <Bike> nice!
03:14:07 <kmc> Jafet: if there are any laws for numbers, they are almost certainly violated by Double ;P
03:14:12 <kmc> i mean equality is not even reflexive
03:14:39 <Jafet> Since there are no laws, length can return anything on a non-null list
03:14:43 <Bike> hm, i do wonder about that sometimes. like should you have * work on both integers and matrices even though they have different properties. how do you fit this into a type system that makes any sense at all.
03:14:54 <Jafet> CHECKMATE
03:15:00 <kmc> Jafet: i think the semantics of Int specifically are specified within the range [-2^29..2^29-1]
03:15:01 <FreeFull> So you'll eventually end up with a negative value for length :D
03:15:18 <FreeFull> And it's possible to get a list large enough that length will say it's length is 0
03:15:19 <kmc> > let n :: Double; n = read "NaN" in n == n
03:15:21 <lambdabot> False
03:15:29 <Bike> good representation
03:15:33 <kmc> int overflows are a grave security concern in C
03:15:49 <kmc> lotta code will do like buf = malloc(n * sizeof(foo))
03:16:02 <Bike> haha oops
03:16:04 <kmc> if that multiplication overflows, you allocate less memory than you expect
03:16:27 <FreeFull> kmc: Should I be surprised Haskell has adopted the NaN /= NaN thing?
03:16:28 <Jafet> sscanf(buf, "%d", &n)
03:16:50 <FreeFull> I shouldn't
03:16:52 <Bike> isn't it just using ieee like everyone else in the universe?
03:16:56 <FreeFull> Makes sense for ieee
03:17:02 <Bike> except ps2 gpus maybe
03:17:18 <Jafet> In other words calloc is more secure than malloc???
03:17:34 <FreeFull> But then
03:17:35 <kmc> Jafet: how's that
03:17:38 <FreeFull> > Nothing == Nothing
03:17:40 <lambdabot> True
03:17:52 <Jafet> calloc(n, sz)
03:18:01 <kmc> ah yes
03:18:11 <kmc> does the haskell report specify that floating point is IEEE754?
03:18:14 <Bike> FreeFull: what's the relevance
03:18:22 <kmc> > isIEEE (undefined :: Float)
03:18:23 <lambdabot> True
03:18:30 <kmc> okay so it's not spec'd but you get a runtime check
03:18:56 <Jafet> Double should be an algebraic type
03:19:11 <FreeFull> > isIEEE (3 :: Real)
03:19:11 <kmc> and NaN /= NaN does make sense, it's just unfortunate
03:19:13 <lambdabot> Expecting one more argument to `GHC.Real.Real'
03:20:01 <Bike> kmc: unfortunate?
03:20:14 <FreeFull> :k Real
03:20:16 <kmc> NaN is almost like ⊥ -- it means you have no information about the "actual" result
03:20:16 <lambdabot> * -> Constraint
03:20:22 <FreeFull> :k Constraint
03:20:23 <lambdabot> BOX
03:20:55 <kmc> ow my brain
03:20:55 <FreeFull> > (Nothing == Nothing) :: Maybe Float
03:20:57 <lambdabot> Couldn't match expected type `Data.Maybe.Maybe GHC.Types.Float'
03:20:58 <lambdabot> ...
03:21:12 <FreeFull> > (Nothing == (Nothing :: Maybe Float))
03:21:12 <Bike> oh right, nan means "not representable" in addition to "doesn't make sense". gosh i'm bad with floats
03:21:14 <lambdabot> True
03:22:08 <kmc> however Infinity == Infinity which seems a little bit wrong
03:22:21 <kmc> because two numbers which are too big to represent might still be unequal
03:22:33 <FreeFull> > (1/0) == (2/0)
03:22:33 <Jafet> Isn't no information about the actual result undefined
03:22:35 <lambdabot> True
03:22:42 <Bike> positive infinity, infinity on the pi/4 vector, what's the diff
03:22:53 <FreeFull> Multiply both sides by 0, 1 == 2
03:23:07 <kmc> Jafet: yeah, most systems allow configuring the floating point unit to treat NaN as an exception
03:23:14 -!- constant has changed nick to function.
03:23:16 <kmc> though iirc it's pretty nasty with GHC haskell
03:23:27 <kmc> because this FPU state is not saved by the green-thread scheduler
03:23:33 <Jafet> > 2.0^10000 == 2.0^20000
03:23:35 <lambdabot> True
03:24:14 <FreeFull> Why do most programming languages have mediocre type systems ):
03:24:23 <kmc> any attempt to represent real numbers in a computer is doomed to incoherence
03:24:38 <kmc> FreeFull: most things are bad
03:24:38 <Bike> Also it's weird to blame type systems for reals being weird.
03:24:40 <Jafet> There are always the unreal computers
03:24:59 <kmc> many explanations are offered but I prefer to think that success is simply random, and most things people try are bad
03:25:03 <kmc> so most things that succeed are also bad
03:25:31 <FreeFull> Bike: Nah, I'm not
03:25:45 <FreeFull> There are only so many reals you can represent in a limited space
03:26:09 <kmc> there are only so many reals you can represent in countably infinite space
03:26:14 <kmc> which is to say almost none of them
03:26:25 <Bike> lebesgue measure is so passé
03:26:30 <Jafet> Well, any real is countably infinite
03:26:32 <kmc> almost every real number contains an infinite amount of information
03:26:50 <kmc> yeah it's true Jafet
03:26:55 <kmc> i was speaking imprecisely
03:27:01 <Jafet> "Damn you cantor"
03:27:08 <kmc> however the problem of representing reals in a computer is more fundamental than the problem of representing integers
03:27:24 <kmc> the latter is just about space whereas the former is about the fact that reals are crazy and fucked up
03:27:25 <Bike> ya think? representing integers is a pretty neat problem too.
03:27:58 <Bike> of course you don't really have to think about it unless you're dealing with trillion-digit numbers, i guess. how boring
03:28:33 <Bike> (and not that reals aren't crazy and fucked up)
03:28:47 <FreeFull> You're lucky if your real is just transcendental, you can still approximate that with a rational
03:29:26 <FreeFull> Most reals can't be and all you can do is assign some symbol to it
03:29:59 <ion> “eog or the Eye of GNOME is a simple graphics viewer for the GNOME desktop which uses the gdk-pixbuf library. It can deal with large images, and zoom and scroll with constant memory usage.” (eog:21228): GLib-ERROR **: /build/buildd/glib2.0-2.34.1/./glib/gmem.c:165: failed to allocate 18446744071773880320 bytes
03:30:17 <Bike> uh aren't most reals transcendental
03:30:37 <Jafet> eog failed to open my 32768x32768 image
03:30:41 <Jafet> gnome sucks
03:30:51 <Sgeo> FreeFull, except for the ones that no string of symbols can be assigned to
03:30:57 <Sgeo> Which is most of them
03:31:10 <Sgeo> Well, hmm
03:31:16 <Sgeo> Not a good way to phrase that
03:31:27 <Bike> You can assign them. Omega = chaitin's constant on 2,3 machines.
03:31:36 <Bike> but that's not what you mean.
03:31:42 <FreeFull> Different meaning of symbol
03:31:44 <Sgeo> No finite amount of symbols and description suffices to describe.
03:31:50 <Bike> There you go.
03:32:09 <Bike> Also isn't the golden ratio algebraic or am I being dumb
03:32:30 <Jafet> Chaitin's constant is described as the real number containing the probability of halting for 2,3 machines
03:32:30 <FreeFull> Sgeo: to describe as distinctive from other reals you mean
03:32:43 <Sgeo> FreeFull, good point
03:32:47 <FreeFull> Because I could just say x is a real
03:32:51 <Bike> Jafet: most numbers are undefinable too, though.
03:32:54 -!- Phantom_Hoover has quit (Remote host closed the connection).
03:33:01 <Jafet> Those don't exist
03:33:11 <Bike> Monster.
03:33:21 <shachaf> Everything exists.
03:33:34 <FreeFull> If all numbers are definable, how many numbers are between 0 and 1?
03:33:50 <Jafet> Existence is easy
03:33:54 <FreeFull> Actually, nevermind
03:33:56 <Jafet> (Therefore: everything is easy)
03:33:57 <Bike> FreeFull: cardinality of the naturals duh
03:34:48 <Bike> FreeFull: also, the golden ratio is algebraic but all rational approximations of it suck (for reasonable definitions of suckage)
03:35:17 <FreeFull> How would you make a function that takes a floating value of Inf and makes it 1 using just arithmetic operations?
03:35:39 * function returns 1 to FreeFull
03:35:42 <FreeFull> Bike: Good enough
03:35:43 <Bike> f _ = 1
03:36:00 <FreeFull> Bike: I didn't specify enough
03:36:09 <Bike> Heh, heh.
03:36:17 <FreeFull> It has to return 1 only for Inf and 1, for everything else it's id
03:36:55 <Sgeo> No ifs?
03:36:57 <Sgeo> Hm
03:37:04 -!- Nisstyre-laptop has joined.
03:37:09 <Jafet> f n | n /= n = 1 | 1>0 = n
03:37:12 <kmc> > let f n | isInfinite n = 1; f n = n in (f 3, f (1/0))
03:37:13 <lambdabot> (3.0,1.0)
03:37:15 <FreeFull> Not necessarily id
03:37:36 -!- WeThePeople has joined.
03:37:39 <Sgeo> Surely guards count as ifs
03:37:43 <FreeFull> Not necessarily 1 for 1, but has to return different values for different inputs
03:37:44 <kmc> > let f n | (isInfinite n && (n > 0)) = 1; f n = n in (f 3, f (1/0), f (-1/0))
03:37:45 <lambdabot> (3.0,1.0,-Infinity)
03:37:46 <Bike> You could probably say it has to be a composition of possibly partially applied arithmetic functions.
03:38:04 <FreeFull> Guards count as non-arithmetic operations here, and isInfinite does too
03:38:24 <Sgeo> NaN is non-arithmetic
03:38:30 <Bike> Or you could just get to your point instead of adding more and more constraints as kmc works around yours.
03:38:38 <Jafet> Non-arithmetic number
03:38:43 <kmc> i'm not really paying attention
03:38:46 <FreeFull> Ignore NaN
03:38:52 <kmc> just fuckin' around
03:38:55 <kmc> on the internet
03:38:57 <Bike> same thing
03:38:57 <Sgeo> But then what's Inf-Inf?
03:39:04 <Bike> > Inf - Inf
03:39:06 <Sgeo> That's an arithmetic operation
03:39:06 <lambdabot> Not in scope: data constructor `Inf'
03:39:06 <lambdabot> Perhaps you meant one of these: `In' ...
03:39:09 <Bike> hth
03:39:30 <FreeFull> > let Inf = 1/0 in Inf - Inf
03:39:32 <lambdabot> Not in scope: data constructor `Inf'
03:39:32 <lambdabot> Perhaps you meant one of these: `In' ...
03:39:42 <FreeFull> > let inf = 1/0 in inf - inf
03:39:44 <lambdabot> NaN
03:39:57 <FreeFull> There, it's bread
03:40:01 <Sgeo> Unless you want to take the utter crazy view that Inf-Inf = 0, in which case, (1+) . (`subtract` inf)
03:40:23 <Bike> well, let's see, on the riemann sphere such a function wouldn't be continuous so fuck it
03:40:25 <Sgeo> I think J does that or something
03:41:03 <kmc> smokin' a J
03:41:16 <Sgeo> Oh it doesn't
03:41:18 <Sgeo> ) _-_
03:41:19 <jconn> Sgeo: |NaN error
03:41:19 <jconn> Sgeo: | _ -_
03:41:32 <Bike> j's syntax is a thing of beauty
03:41:56 <FreeFull> I was thinking there are functions that squish -Inf..Inf to -1..1 or some other range
03:42:20 <FreeFull> But wouldn't IEEE floats foil that without explicitly considering infs
03:42:55 <Sgeo> Wouldn't any non-infinite number get squished to, say, 0?
03:42:57 <Bike> well it wouldn't be injective
03:43:42 <FreeFull> Sgeo: Not necessarily
03:43:56 <FreeFull> Sgeo: The closer the number is to 0, the less it'd get squished
03:44:11 <Sgeo> hrm
03:44:29 <Sgeo> Shouldn't say "arithmetic" operations. Makes me want to exclude logarithmic stuff
03:44:57 <FreeFull> Ok, include logarithmic and trigonometric stuff too then
03:45:05 <FreeFull> Say, atan :)
03:45:05 <Bike> Since you're dealing with reals you could just say analytic functions.
03:45:09 <kmc> ) $%97^3$@>.$(Po.uo.godeto.go4i$*%#@(
03:45:09 <jconn> kmc: |spelling error
03:45:09 <jconn> kmc: | $%97^3$@>.$(Po.uo.godeto.go4i$*%#@(
03:45:09 <jconn> kmc: | ^
03:45:19 <Bike> god kmc, check your spelling
03:45:23 <kmc> ) $%97^3$@>.$(
03:45:23 <jconn> kmc: |syntax error
03:45:23 <jconn> kmc: | $%97^3$@>.$(
03:45:43 <Bike> But I don't know if there's a reasonable extension of the complex plane with two points at infinity.
03:46:22 <FreeFull> > atan (1/0)
03:46:23 <lambdabot> 1.5707963267948966
03:46:33 <FreeFull> Close enough
03:46:45 <Sgeo> ) _3 o. 1%0
03:46:45 <jconn> Sgeo: 1.5708
03:46:50 <FreeFull> > tan (atan (1/0))
03:46:51 <lambdabot> can't find file: L.hs
03:46:59 <FreeFull> > tan (atan (1/0))
03:47:00 <lambdabot> 1.633123935319537e16
03:47:09 <FreeFull> Not close enough
03:47:17 <Sgeo> ) 3o._3o._
03:47:18 <jconn> Sgeo: |ill-formed number
03:47:25 <Sgeo> ) 3o._ 3o._
03:47:25 <jconn> Sgeo: |ill-formed number
03:47:35 <Sgeo> ) 3o. _ _3o._
03:47:35 <jconn> Sgeo: |ill-formed number
03:47:42 <FreeFull> > tan (1/0)
03:47:43 <Sgeo> ) 3o. _ (_3)o._
03:47:44 <jconn> Sgeo: |ill-formed number
03:47:44 <lambdabot> NaN
03:47:48 <Sgeo> ) 3 o. _ (_3)o._
03:47:48 <jconn> Sgeo: |limit error
03:47:49 <jconn> Sgeo: | 3 o._(_3)o._
03:47:54 <kmc> ) ꙮ
03:47:54 <jconn> kmc: |spelling error
03:47:54 <jconn> kmc: | ꙮ
03:47:54 <jconn> kmc: | ^
03:48:05 <Bike> ) 'ꙮ'
03:48:05 <jconn> Bike: ꙮ
03:48:06 <FreeFull> Is there any value for which tan will actually produce Inf or -Inf
03:48:09 <Bike> yesssss
03:48:11 <kmc> ) fungot
03:48:12 <fungot> kmc: more simply put: siod sucks as a general purpose ( similar, and i'd like to see that mystical forest powers, but this time on the impact of the introduction to theoretical computer, fnord of the fnord here, so i don't
03:48:12 <jconn> kmc: |value error: fungot
03:48:12 <fungot> jconn: and is one thing which you might want is broken" archives. even less chance. i called " o" in " the other side has that as their whole thing, i mean...
03:48:12 <jconn> fungot: |spelling error
03:48:12 <jconn> fungot: | and is one thing which you might want is broken" archives. even less chance. i called " o" in " the other side has that as their whole thing, i mean...
03:48:12 <jconn> fungot: | ^
03:48:12 <fungot> jconn: ( c) a player who makes further play impossible by eir actions or lack thereof, or
03:48:12 <fungot> jconn: to. why, this is for you guys are a lot
03:48:12 <fungot> jconn: to " print" statement should always remember the songs on p2p apps in scheme, besides, was not beyond normal credibility atheist. you cannot _read_ a procedure, but maybe i will when i start fixing it rather than having arbitrary bf is with a fnord struct, where the actual standard being sane) scheme implementations but guile is my fnord' doggie than a dozen tales, of the whole fnord range of the ' ' ' delete a value of
03:48:12 <jconn> fungot: c (a player who makes further play impossible by eir actions or lack thereof , or)
03:48:18 <Sgeo> ) 3:'x=.5'
03:48:20 <Bike> OH NO
03:48:24 <jconn> fungot: | ^
03:48:24 <jconn> Sgeo: 3
03:48:41 <Bike> FreeFull: do you mean in math or in some programming language
03:48:43 <FreeFull> I think the bots have flood protection
03:48:47 <FreeFull> Or at least fungot does
03:48:47 <fungot> FreeFull:, so i'd have to consider that although the reduction in actual transportation section from former friend lives, their door had my computer with full u+ support" then they both bowed low. just keep the safe or tub and emptied it
03:48:52 <Sgeo> ) 13:'x=.5'
03:48:52 <jconn> Sgeo: |spelling error
03:48:53 <jconn> Sgeo: | 13:'x=.5'
03:48:53 <jconn> Sgeo: | ^
03:48:59 <FreeFull> Bike: Say, haskell
03:49:02 <monqy> FreeFull: fungot doesn't respond to the person so many times in a row
03:49:02 <fungot> monqy: use the ' ' ' delete a value of type " airbus is a big fan of avril....but this song " there
03:49:19 <Bike> FreeFull: so... what's Inf in haskell exactly
03:52:04 <Jafet> > (\n -> 2/n - 4/(n+1) + 1) <$> [1, 1/0]
03:52:05 <lambdabot> [1.0,1.0]
03:52:46 <FreeFull> Bike: Any value that produces True when fed to isInfinite
03:53:09 <FreeFull> Which means it has to be a RealFloat
03:53:23 <Bike> So... why did you tell us to forget about nans.
03:53:53 <Sgeo> FreeFull just wants a smooth compression algorithm on all reals+extended reals to the reals
03:53:56 <FreeFull> I didn't want you to care about what happens when nan is fed to your function
03:54:00 <shachaf> Bike: Do you know a lot of things about subtyping?
03:54:05 <shachaf> You should say them all.
03:54:09 <Bike> I don't know much about anything.
03:54:34 <shachaf> Sgeo: What does Ada do about this?
03:58:23 <Jafet> > (\n -> 1 - 1/(n+1)) <$> [0, 1, 2, 4, 8, 1/0]
03:58:25 <lambdabot> [0.0,0.5,0.6666666666666667,0.8,0.8888888888888888,1.0]
04:03:20 <FreeFull> > 1/(1/0)
04:03:22 <lambdabot> 0.0
04:03:26 <FreeFull> I forgot that
04:03:28 <kmc> Did you mean: beeeeeeeeees
04:03:50 * FreeFull offers Jafet a hug prize
04:03:59 <Bike> FreeFull: well it depends on how these things are defined on infinities, i guess
04:04:59 <FreeFull> Jafet is a winner
04:06:12 <FreeFull> > (\x -> 1 - 1/(n+1)) <$> [0,(-0.000001)..]
04:06:14 <lambdabot> [1 - 1 / (n + 1),1 - 1 / (n + 1),1 - 1 / (n + 1),1 - 1 / (n + 1),1 - 1 / (n...
04:06:21 <Jafet> @hugs
04:06:22 <lambdabot> http://hackage.haskell.org/trac/ghc/newticket?type=bug
04:06:28 <FreeFull> > (\n -> 1 - 1/(n+1)) <$> [0,(-0.000001)..]
04:06:29 <lambdabot> [0.0,-1.000001000006634e-6,-2.0000039999690244e-6,-3.000009000109216e-6,-4....
04:06:45 -!- oerjan has quit (Quit: Gnite).
04:07:06 <FreeFull> Jafet: Behaves weirdly on negative values but fulfills my specification
04:07:29 <Bike> > (\n -> 1 - 1/(n+1)) -1/0
04:07:32 <lambdabot> No instance for (GHC.Real.Fractional (a0 -> a0))
04:07:32 <lambdabot> arising from a use of `...
04:07:41 <Bike> huh
04:07:50 <Bike> > (\n -> 1 - 1/(n+1)) -1
04:07:52 <lambdabot> No instance for (GHC.Num.Num (a0 -> a0))
04:07:52 <lambdabot> arising from a use of `e_11111'...
04:08:00 <Bike> > (\n -> 1 - 1/(n+1)) 1
04:08:03 <lambdabot> 0.5
04:08:07 <Bike> > (\n -> 1 - 1/(n+1)) (-1/0)
04:08:10 <lambdabot> 1.0
04:08:44 <FreeFull> > (\n -> 1 - 1/(n+1)) -49
04:08:46 <lambdabot> No instance for (GHC.Num.Num (a0 -> a0))
04:08:46 <lambdabot> arising from a use of `e_111149...
04:08:49 <FreeFull> > (\n -> 1 - 1/(n+1)) (-49)
04:08:51 <lambdabot> 1.0208333333333333
04:08:57 <FreeFull> > (\n -> 1 - 1/(n+1)) (-3)
04:08:59 <lambdabot> 1.5
04:09:12 <FreeFull> > (\n -> 1 - 1/(n+1)) (-0.3)
04:09:13 <lambdabot> -0.4285714285714286
04:09:19 <FreeFull> > (\n -> 1 - 1/(n+1)) (-0.5)
04:09:20 <lambdabot> -1.0
04:09:24 <FreeFull> > (\n -> 1 - 1/(n+1)) (-0.6)
04:09:26 <lambdabot> -1.5
04:10:32 <FreeFull> It's basically a shifted over 1/x
04:11:03 <FreeFull> > (\n -> 1 - 1/(n+1)) (-1)
04:11:05 <lambdabot> -Infinity
04:15:00 <Sgeo> Oh crud I got a call yesterday and don't know who it was from
04:15:03 <Sgeo> I may have been asleep
04:15:17 <Sgeo> Could have been job related for all I know
04:17:06 -!- c00kiemon5ter has left.
04:17:20 -!- c00kiemon5ter has joined.
04:17:21 <FreeFull> You could do something like (\n -> 1 / (1 + 2**(-n)))
04:17:31 -!- Nisstyre-laptop has quit (Ping timeout: 245 seconds).
04:17:43 <FreeFull> > (\n -> 1 / (1 + 2**(-n))) (1/0)
04:17:45 <lambdabot> 1.0
04:17:51 <FreeFull> > (\n -> 1 / (1 + 2**(-n))) (-1/0)
04:17:52 <lambdabot> 0.0
04:17:52 -!- c00kiemon5ter has left.
04:18:14 <Bike> That just moves the pole to 4.something * i
04:20:04 <Sgeo> pole?
04:20:42 <FreeFull> Bike: But we're only concerned with reals here
04:20:44 <Sgeo> what pole?
04:20:56 <Sgeo> Oh that pole
04:20:56 <Bike> Sgeo: Where 2^-n = -1 and you get infinity again.
04:21:10 <Jafet> The nazis moved millions of poles
04:21:24 <Bike> The Nazis were known real analysts.
04:26:02 <FreeFull> Analyst?
04:26:12 <Bike> like real analysis.
04:26:44 <Jafet> <TRWBW> don't google "intro to anal"
04:27:07 <Bike> thanks
04:27:35 <FreeFull> The advanced classes aren't much better
04:34:23 <kmc> research frontiers in anal
04:36:07 -!- Mathnerd314 has joined.
04:55:42 -!- WeThePeople has quit (Quit: Leaving).
05:02:34 <zzo38> This is my idea what a register in a hardware NSF might do, which the expansion byte in the NSF header is written to:
05:02:35 <zzo38> If bit2 is set, the memory from $8000-$DFFF becomes read/write (except main routine ROM which is always read-only), otherwise it is read-only. If bit0 is set, VRC6 audio will play, otherwise it will be muted. If bit1 is set, VRC7 audio will play and otherwise is muted. If bit5 is set, Sunsoft 5B audio is played and is otherwise muted. Other bits (bit3, bit4, bit6, and bit7) are ignored.
05:03:21 <zzo38> I think it is compatible with the .NSF specification, isn't it?
05:10:56 <zzo38> This is something someone did to deter spambots on MediaWiki: http://wiki.nesdev.com/w/index.php?title=Talk:Nesdev_Wiki&action=edit They say it worked for sixteen months. Does it work for you?
05:31:05 -!- monqy has quit (Quit: hello).
05:38:14 <ThatOtherPerson> Sgeo: I am.
05:41:40 <zzo38> You are?
05:54:19 <kmc> how strange it is to be anything at all
05:57:32 -!- ogrom has joined.
05:58:05 <zzo38> O, well.........
05:58:11 <shachaf> hi zzo38
05:58:17 <shachaf> Did you ever figure out my CodensityAsk thing?
05:58:44 <zzo38> shachaf: Yes I think I do know what that one does.
05:59:23 <shachaf> Oh? What does it do?
05:59:47 <zzo38> I think it is difficult to explain but possible to understand.
06:01:33 <zzo38> (But it is a monad; (CodensityAsk w) is always a monad regardless of what w is.)
06:22:14 <Sgeo> o.O
06:22:17 <Sgeo> http://www.reddit.com/r/todayilearned/comments/17rpkr/til_when_you_tell_someone_a_goal_or_thing_youre/
06:22:22 <Sgeo> I have _got_ to stop doing that then
06:23:17 <Bike> chemically satisfies your brain
06:29:05 -!- copumpkin has quit (Ping timeout: 252 seconds).
06:30:03 -!- copumpkin has joined.
06:31:49 <Sgeo> Actually, I remember BYOND actually warned against doing that exact thing
06:32:08 <Sgeo> (Talking about what you're doing before you do it)
06:32:16 <Bike> "Make games for free with BYOND. Easy to learn, but powerful. Play online & multiplayer: RPGs, action, strategy, board games, and more!"
06:34:10 <Sgeo> For what it's worth, it does use a (custom) programming language. It's not some point and click nonsense
06:35:12 <Bike> Oh, is that actually what you meant?
06:35:37 <Bike> I didn't think game makers told you about your life choices...
06:38:47 <Sgeo> "Become a BYOND Member to add a game"
06:38:55 <Sgeo> ....adding games to my hub is no longer free
06:38:56 * Sgeo sads
06:39:31 <Bike> I wonder if there are video games in Ada. It must have graphics stuff for the gubmint, right
06:51:05 -!- Bike has quit (Ping timeout: 252 seconds).
06:55:25 -!- Bike has joined.
06:56:26 <zzo38> You can look see if video game in Ada, or write one if you know how to program Ada
06:56:43 <zzo38> Since you can use Ada with GNU compiler
07:16:56 -!- ion has quit (Ping timeout: 252 seconds).
07:17:42 -!- Patashu has joined.
07:19:55 <zzo38> http://zzo38computer.org/img_14/uselessness_rpg.png It isn't very good, you cannot even make a attack which has a script on it, which is terrible.
07:20:09 <shachaf> kmc: Do you know a lot of things about subtyping?
07:20:32 -!- Patashu has quit (Client Quit).
07:20:46 -!- Patashu has joined.
07:20:53 -!- Patashu has quit (Client Quit).
07:20:55 * Sgeo guesses that Scala people would
07:21:09 <shachaf> Scala people have their own problems.
07:21:32 <Sgeo> Such as?
07:22:41 <Bike> Why are you asking about subtyping?
07:22:48 <shachaf> Because I want to figure it out.
07:23:14 <Bike> What's to figure out, you have a type and then you have a bigger type. And it makes everything less computable but whatever.
07:23:40 <shachaf> Bike: If A is a subtype of B, which one is bigger?
07:23:51 <Bike> B
07:24:13 <shachaf> If I have e.g. class Foo { A a; }; class Bar : Foo { B b; };, is Bar a subtype of Foo?
07:24:34 <shachaf> (Such that you can give a Bar to a thing that wants a Foo.)
07:24:59 <Bike> yeah, that's yet another usage of the term "polymorphism".
07:25:21 <shachaf> Polymorphism?
07:25:26 <shachaf> I didn't say polymorphism.
07:25:43 <Bike> You didn't, but what you described is subtype polymorphism.
07:25:59 <shachaf> Is Bar a subtype of Foo?
07:26:15 <Bike> Yeah.
07:26:27 <shachaf> Then I don't know what you mean by bigger.
07:26:38 <shachaf> I normally think "bigger" means "has more inhabitants".
07:26:39 <Sgeo> "bigger" means "includes more possible values"
07:27:05 <shachaf> Bar has more inhabitants thn Foo, though.
07:27:07 <Bike> If I have an object of type Foo (only) and an object of type Bar then I have two Foos and one Bar.
07:27:07 <Sgeo> If A is a subtype of B, then B includes all the values in A, as well as potentially other values
07:27:10 <shachaf> So that's not what Bike meant.
07:27:40 <Bike> How does Bar have more inhabitants? Every Bar is also a Foo, Foo can't have less inhabitants than Bar.
07:27:48 <shachaf> Let's say that (A,B) <: A
07:27:49 -!- RodgerTheGreat has quit (Quit: RodgerTheGreat).
07:27:57 <Sgeo> Inhabitant does not mean "field"
07:28:00 <shachaf> (0,'a') :: (Int,Char)
07:28:03 <shachaf> (0,'b') :: (Int,Char)
07:28:09 <shachaf> They both map to the same Foo
07:28:17 <shachaf> For every Foo, I have |B| Bars.
07:29:09 <Sgeo> They're different Foos, even if code that expects a Foo treats them identically, I think.
07:29:21 <Bike> yeah.
07:29:37 <Bike> I see your point, though.
07:29:41 <shachaf> So Bool has infinitely (uncountably?) many inhabitants?
07:29:56 <Bike> What makes you say that?
07:30:07 <shachaf> (Bool,Integer) <: Bool
07:30:15 <Bike> Tuples are Bools?
07:30:24 * shachaf sighs.
07:30:42 <Sgeo> Bike, the idea is that you subtype from Bool, to get a thing that acts like a Bool but has other properties
07:30:43 <shachaf> class Hi { Bool x; }; -- Hi has infinitely many inhabitants?
07:30:43 <Sgeo> I guess
07:31:43 <Bike> shachaf: I suppose at that point you have to clarify your notion of distinctness. "low-level" style extensional equality (I allocate Hi(true) twice and they're different) would mean infinitely many inhabitants.
07:32:15 <shachaf> I'm not talking about pointer equality here. :-(
07:32:15 <Bike> But looked at intensionally you're right, there are only two His, and a subtype could possibly have more distinctiveness.
07:32:26 <shachaf> OK.
07:32:41 <shachaf> I don't think you can tell anything about |A| <=> |B| given A <: B
07:32:47 <Bike> I suppose the latter is more common in type theory but hey guess what I'm shit at type theory.
07:32:59 <Bike> How often does type theory even use cardinalities?
07:33:22 <Sgeo> You should ask this question on #scala
07:33:24 <shachaf> Who knows?
07:33:36 <Bike> So, to rephrase my original silly way of putting it.
07:34:18 <Bike> or rather rethink. A subtype has more distinctiveness than its parent type, in that operations can be defined that act differently on objects of the subtype that are the same as far as operations on the parent type are concerned.
07:34:33 <shachaf> Bike: Can I say that A <: Either A B?
07:35:18 <Bike> As I understand it Either is a functor that takes things away. In the same way Maybe Foo isn't just Foo plus nothing, it's made distinct.
07:35:41 <Bike> that is, Either A B is a /disjoint/ sum of A and B, not a union.
07:35:56 <shachaf> Right.
07:36:03 <shachaf> So every A maps to an Either A B
07:36:19 -!- ion has joined.
07:36:19 <Bike> So, no you can't say A is a subtype of Either A B, is what I mean.
07:36:28 <shachaf> Why not?
07:37:18 <Bike> Because Either maps its two types to a distinct category from vanilla types.
07:37:45 <shachaf> And (A,B) is distinct from vanilla A
07:37:53 <Bike> yes.
07:38:03 <shachaf> We have an injection Left : a -> Either a b
07:38:26 <Bike> Sure.
07:38:40 <shachaf> OK, what properties should a subtype have that this doesn't?
07:39:12 <Bike> If A <: B then anywhere a B can be used an A works just as well, to put it coarsely.
07:39:31 <Bike> This is pretty obviously not true of A and Either, yeah?
07:39:45 <shachaf> Why?
07:39:57 <shachaf> If your function takes (Either A B), I can pass it my A.
07:40:07 <Sgeo> A static typing system might prevent a direct use, but there's a simple transform you can do on the A to get Either A B
07:40:20 <Bike> Wait, really? I thought you couldn't do that in Haskell.
07:40:33 <Bike> Like you'd have to pass a Left A or something...
07:40:33 <shachaf> No, it won't be implicitly converted.
07:40:40 <Sgeo> Although, considering that the transform doesn't work the other way, maybe the fact that it doesn't work the other way excludes being able to call it a subtype?
07:40:40 <shachaf> That's also true for (A,B) <: A
07:40:49 <shachaf> The point is that the relationship is there.
07:40:57 * Sgeo isn't sure
07:40:59 <Bike> (A,B) <: A isn't true either.
07:41:23 <Bike> Sgeo: no, just having a bijection isn't enough for type equality or anything either
07:41:28 <shachaf> Why not?
07:41:42 -!- DHeadshot has joined.
07:42:20 <Bike> Because a tuple of A and B can't be used everywhere an A can be used. (You'd have to "extract" the A first.)
07:42:33 <shachaf> 23:24 <Bike> yeah, that's yet another usage of the term "polymorphism".
07:42:49 <shachaf> I don't care about polymorphism. I'm fine being explicit about conversions from a subtype to a supertype.
07:43:03 <Bike> Polymorphism is like the whole point of subtyping, though.
07:43:32 <Bike> If you just want injective morphisms or whatever you can do that without subtyping.
07:43:47 <shachaf> is "morphism" a word that means "function" here
07:43:56 <Bike> sure, whatever.
07:44:06 <shachaf> This isn't about Haskell.
07:44:11 <Bike> I know.
07:44:20 <shachaf> Obviously Haskell doesn't have *any* subtyping, and it has *no* implicit conversions.
07:44:25 <Bike> right.
07:44:52 <shachaf> But it still makes sense to talk about how (A,B) could <: A, doesn't it?
07:45:02 <Sgeo> Scala has implicit conversions
07:45:39 <Bike> You could, yes, sorry.
07:45:47 <Sgeo> (Not really for this case so much, though, although I guess you could, but that would be dumb)'
07:45:49 <Bike> I'm used to nominal subtyping, I guess.
07:46:04 <shachaf> This is extremely nominal subtyping. :-)
07:46:09 <shachaf> I'm specifying the relationship here.
07:46:28 <shachaf> Anyway, the interesting thing is that the function :: (A,B) -> A *isn't* enough to specify the subtyping relationship.
07:46:53 <shachaf> If you have a function that takes a mutable A, and I pass it a mutable (A,B), it can mutate it just fine.
07:47:16 <Sgeo> Is this reaching around to lenses?
07:47:23 <shachaf> Everything is lenses.
07:55:34 <shachaf> except for monoids :D
07:55:57 <Bike> imo lenses should have generic monoid traversal
07:56:10 <shachaf> imo they do
07:56:56 <Bike> good
08:02:17 <zzo38> Catching exceptions of pure functions in Haskell violates the Matthew 6:3 rule. I would rather suggest a macro (if (x ->| y) is the type of macros that take an expression of type x and result in a value of type y) where catchPureErrors :: x ->| IO (Either String x); or something like that.
08:06:22 <Sgeo> If it's a pure function it shouldn't throw exceptions.
08:06:27 <Sgeo> (/) is an abberation
08:06:34 <Sgeo> and an abomination
08:06:44 <shachaf> (/) doesn't throw exceptions.
08:07:19 <Sgeo> :t try
08:07:21 <lambdabot> Not in scope: `try'
08:07:27 <Sgeo> :t Control.Exception.try
08:07:29 <lambdabot> GHC.Exception.Exception e => IO a -> IO (Either e a)
08:07:53 <Sgeo> > try (return $ 1/0)
08:07:55 <lambdabot> Not in scope: `try'
08:08:02 <Sgeo> > Control.Exception.try (return $ 1/0)
08:08:04 <lambdabot> Not in scope: `Control.Exception.try'
08:08:10 <zzo38> I know it shouldn't throw exceptions, but it does, so that is why I suggest, make it a macro instead.
08:08:16 <Sgeo> uh
08:08:34 <Sgeo> > Control.Exception.try (return $ 1/0)
08:08:37 <lambdabot> Not in scope: `Control.Exception.try'
08:08:39 <Sgeo> :(
08:08:46 <shachaf> > 1/0
08:08:48 <lambdabot> Infinity
08:09:00 <Sgeo> > 1/0 :: Integer
08:09:03 <lambdabot> No instance for (GHC.Real.Fractional GHC.Integer.Type.Integer)
08:09:04 <lambdabot> arising f...
08:09:11 <Sgeo> > 1/0 :: Int
08:09:11 <zzo38> You cannot run I/O in lambdabot; use your own computer or use HackEgo or something.
08:09:13 <lambdabot> No instance for (GHC.Real.Fractional GHC.Types.Int)
08:09:13 <lambdabot> arising from a use o...
08:09:13 -!- monqy has joined.
08:09:22 <shachaf> hi monqy
08:09:27 <shachaf> does tapl talk about subtyping
08:09:27 <Sgeo> > 1/0 :: Rational
08:09:29 <lambdabot> *Exception: Ratio.%: zero denominator
08:09:32 <monqy> hi??????
08:09:33 <Sgeo> There.
08:09:34 <Bike> shachaf: near the end.
08:09:45 <shachaf> monqy: tell me about subtyping??
08:09:50 <shachaf> are you "an expe"rt
08:09:50 <monqy> ok
08:09:55 <monqy> what do you want to know about it
08:10:00 <monqy> i know.....some stuff.....
08:10:12 <monqy> perhaps enough?? perhaps not
08:10:17 <monqy> depends on what you want to know about it
08:10:40 <monqy> like i'm no expert on intersection/union types but i know about other stuff
08:12:23 <shachaf> monqy: well uhh.......
08:12:29 <shachaf> so what kinds of subtyping are there
08:12:43 <shachaf> there's a sort of subtyping thing for products right??
08:12:49 <shachaf> where you can say (a,b) <: a
08:12:54 <shachaf> and also one for sums??
08:12:59 <shachaf> where you can say a <: Either a b
08:14:41 <zzo38> I think you can say that (a) is less than or equal to (Either a b)
08:14:42 <monqy> uhh you can do that sort of thing if you want to....the treatment i'm familiar with does it with subtyping for records and variants rather than implicitly doing injections/projections for...semantic reasons...
08:16:01 <shachaf> ok can you explaiin that treatment a bit........
08:16:08 <monqy> like {l1: a, l2: b} <: {l1: a}; <l1: a> <: <l1: a | l2: b>
08:16:21 <shachaf> is this "structural subtyping"..............................
08:16:48 <shachaf> anyway ok maybe i'll try "the monqy treatment" for a bit??
08:16:50 <monqy> when you're working with the theory you usually deal with structural typing always, since it's cleaner
08:16:57 -!- asiekierka has quit (Excess Flood).
08:17:11 <shachaf> so now let's add mutability "for fun"
08:17:26 <monqy> and the full treatment that way is just an extension of that for arbitrary width and you can have the types of the stuff change as well
08:17:29 <monqy> since covariance
08:17:41 <shachaf> if foo accepts {l1: a}, i can pass it {l1: a, l2: b}, and it can mutate the l1 part
08:17:44 <shachaf> right??
08:18:09 <shachaf> but for variants it ""doesn't work"" that way
08:18:28 <monqy> oh if you get into that territory you have to make the fields invariant i think so disregard what i said about covariance
08:18:46 <Bike> but it's that a is a subtype of a|b, not the other way
08:18:49 <shachaf> well sure you have to get invariance with mutability
08:19:16 <shachaf> Bike: right but if foo operates on a|b i can't pass it an "a"!!
08:19:23 <shachaf> because it might mutate the variant to l2?
08:19:50 <monqy> no?
08:19:56 <Bike> might... what?
08:19:58 <monqy> what do you mean
08:21:01 <shachaf> well if you have a mutable foo : <l1: a | l2: b>
08:21:06 <shachaf> you can mutate it from l1 to l2
08:21:07 <shachaf> right??
08:21:16 <monqy> what do you mean "mutate it from l1 to l2"
08:21:30 <Bike> oh, i see
08:21:32 <shachaf> i don't know :'(
08:21:36 <shachaf> what should i mean
08:21:42 <Bike> change the object from being an a to being a b
08:21:48 <shachaf> how does mutability + variants work
08:22:23 <Bike> that seems like a weird mutation though? maybe you just say 'nope you can't do that' and that's that
08:22:27 <monqy> wwweeeeeeeelllllll
08:22:38 <monqy> the treatment im used to for mutability is sort of
08:22:40 <monqy> "explicit"
08:22:45 <monqy> which makes this nice
08:23:12 <monqy> you'd have something like ref(a|b) and then since ref(t) is invariant in t............
08:23:48 -!- asiekierka has joined.
08:23:55 <monqy> (answer: you don't get the "bad subtyping")
08:24:36 <monqy> if you don't want to put explicit "ref's" over everything then just pretend there's invariance everywhere anything could go hay wire
08:25:02 <shachaf> okay so what happens with th ref
08:25:10 <shachaf> when you have the product subtype
08:25:32 <monqy> well ref(t) is invariant in t in general
08:25:35 <shachaf> right
08:25:42 <shachaf> so that's "not good enough????"
08:26:17 <monqy> are you looking for an answer to something more specific or
08:26:23 <shachaf> for example in "some languages" if you have class Foo { A a; }; class Bar : Foo { B b; }; you can pass a mutable Bar to something that expects a mutable Foo??
08:26:26 <shachaf> right
08:26:38 <shachaf> and that seems "valid to me"
08:27:32 <monqy> is B <: A here
08:27:50 <shachaf> no
08:27:57 <shachaf> it's an """"additional field""""
08:28:02 <monqy> oh
08:28:22 <shachaf> so this is like (A,B) <: A
08:28:22 <monqy> i see now, that's "weird snytax" not "inconsistent syntax
08:28:23 <monqy> "
08:28:40 <shachaf> sorry for using weird syntax
08:29:40 <shachaf> monqy: so do you see what i mean now....
08:29:43 -!- ion has quit (Ping timeout: 245 seconds).
08:29:46 <shachaf> you can't do this with ref
08:29:51 <shachaf> because it has to "be invariant"
08:30:22 -!- Bike has left.
08:30:28 <monqy> mhm
08:30:46 <shachaf> so the "point is":: this doesn't work for "sum subtypes"
08:30:57 <shachaf> right?
08:31:47 <monqy> im..,,,.thinking about it
08:32:30 <shachaf> monqy: anyway my "point is" that the kind of mutability i gave for product-subtypes is like lenses
08:32:38 <shachaf> and this kind is like prisms
08:33:03 <monqy> ok
08:33:50 <shachaf> and if you think about it profunctor-lenses and simple-lenses are related to "substitutatutatatututability"
08:33:54 <shachaf> because you have
08:34:06 <shachaf> forall p. (CONSTRAINTS p) => p A -> p S
08:34:17 <shachaf> if there are no constraints then you have leibniz equality
08:34:32 <shachaf> and then you "add on" more constraints to get lenses/prisms/"other stuff"
08:34:43 <monqy> mhm
08:35:03 <Sgeo> wtf is a meatpacking district
08:35:13 <monqy> a district that packs meat
08:35:13 <shachaf> monqy: so what does "that mean"
08:35:20 <Sgeo> Some job offer is talking about how they're located in a glamorous meatpacking district
08:35:39 <Sgeo> s/glamorous/hip/
08:35:45 <Sgeo> But they use the word glamorous elsewhere
08:35:52 <monqy> they pack hip meat
08:36:12 <shachaf> is this in new york
08:36:16 <Sgeo> yes
08:36:23 <shachaf> wow
08:36:28 <Sgeo> It's an entry level position
08:36:31 <shachaf> that's a pretty hip district imo
08:36:41 <Sgeo> "- Swanky and fashionably bright Manhattan loft space in the hip meatpacking district."
08:36:59 <shachaf> wow
08:37:03 <shachaf> sounds swanky
08:37:18 <Sgeo> I should stop making fun of potential future employers in publically logged chat
08:37:29 <Sgeo> Although I could never have a bad word to say about Transcriptic, I think
08:37:30 <shachaf> why?
08:37:33 -!- ion has joined.
08:37:33 <shachaf> they're going to make fun of you
08:37:34 <Sgeo> Except they're too far away :(
08:37:43 <zzo38> Are you nondualist?
08:37:45 <Sgeo> shachaf, yeah, but not where I'm going to see
08:37:49 <shachaf> zzo38: yes and no
08:38:05 <zzo38> shachaf: Please be more specific.
08:38:25 <shachaf> zzo38: what's a nondu alist.
08:38:40 <shachaf> monqy: Did you go see NANDA?
08:39:31 <monqy> what's nanda
08:39:49 <shachaf> http://nandatown.com/
08:40:01 <shachaf> they were in los angeles a few months ago/??
08:43:17 <monqy> shachaf: anyway i think this is something like ref(a,b) ~ (ref a, ref b) but ref(a|b) !~ <ref a | ref b> for the reason you described
08:43:55 <monqy> id have to think "a bit more" to come up what with it's isomorphic to but "probably lens has the answer already so"
08:44:07 <impomatic> Grrr... it seems like the only way to get this regex to work is to reverse the string, regex, then reverse again :-(
08:44:31 <shachaf> monqy: maybe it does but i don't know it :"(
08:44:58 <monqy> <ref a | ref b> <: ref(a|b) at least, i think, if you want to get "real fancy"
08:45:35 <shachaf> it does?
08:45:52 <shachaf> hm
08:46:18 <monqy> it's the standard "prism thing" isn't it
08:46:43 <monqy> maybe i forgot a detail
08:46:44 <monqy> "woops"
08:46:52 <shachaf> what thing
08:47:03 <shachaf> "you're probably right but im not sure what you mean"
08:47:07 <monqy> im going to think about it a bit more and then respond
08:47:19 <shachaf> ok
08:49:13 <Sgeo> Just applied
08:49:27 <monqy> oh yeah i forgot a case i think
08:49:30 <monqy> woops woops
08:50:18 <monqy> or: Did I???
08:51:47 <monqy> inj (Left a) = {view: Left (view a), set (Left a'): set a = a'; set (Right b'): a}
08:51:55 <monqy> inj (Right b) similar
08:51:58 <monqy> shachaf: look about right?
08:52:06 <Sgeo> So maybe I'll get a "swanky" job with "swanky" Mac Pros
08:52:11 <monqy> shachaf: "very pseudocode"
08:52:14 <Sgeo> In the meatpacking district
08:52:16 <shachaf> wait what's inj
08:52:21 <Sgeo> How ... fashion...y
08:52:30 <Sgeo> visual....ness.....glamour.....stuff
08:52:35 <monqy> shachaf: injection from <ref a|ref b> into ref(a|b)
08:53:08 <shachaf> oh
08:53:50 <shachaf> i'm not completely sure i understand your pseudocode but "does it work the other way around"
08:54:05 <shachaf> and is this meant to be sort of prismlike or what
08:55:25 <monqy> well the setting is like uhh what's it called
08:55:40 <monqy> i -remember- there being a lens thing like that
08:55:44 <monqy> but i forget what it's called
08:56:02 <shachaf> alongside outside inside within without
08:56:06 <shachaf> "one of that crowd???????"
08:56:33 <shachaf> hmmm maybe not
08:56:59 <monqy> no it's not
08:57:19 <shachaf> which lens are you thinking of
08:58:18 <monqy> im probably actually thinking of something in something more general than prism but it acts like this for prisms
08:58:38 <monqy> Setter perhaps?
08:59:00 <shachaf> wait what does it do
08:59:22 <monqy> > Left "hi" .~ _Left "there"
08:59:23 <lambdabot> Couldn't match expected type `Control.Lens.Setter.ASetter
08:59:24 <lambdabot> ...
08:59:27 <monqy> oh no~~~~
08:59:29 <monqy> !!!!!!!
08:59:39 <monqy> oh right
08:59:39 <shachaf> > Left "hi" & _Left .~ "there"
08:59:42 <lambdabot> Left "there"
08:59:44 <monqy> yes
08:59:45 <monqy> and
08:59:58 <monqy> > Right "hi" & _Left .~ "woops!!"
09:00:01 <lambdabot> Right "hi"
09:00:04 <monqy> it's that sort of thing
09:00:24 <shachaf> well sure a prism is a setter
09:00:50 <shachaf> (but note that maybe a prism should actually be an unprism??)
09:00:53 <shachaf> (to match up with lens)
09:00:56 <ion> I love prisms. They are so easy.
09:00:57 <shachaf> (if you're talking about subtyping"
09:00:58 <shachaf> )
09:01:08 <shachaf> (in which case an unprism is not a setter. though it's an unsetter)
09:02:59 <monqy> anyway uh the idea is that from a <ref a | ref b> you can get a ref <a|b> that when you look at it you look at whatever you put in, and when you try to set it you only go through with the setting if you're setting the "right thing"
09:03:03 -!- DHeadshot has quit (Ping timeout: 245 seconds).
09:03:18 <shachaf> right
09:03:19 <monqy> whereas you can't really go the other way
09:03:28 <shachaf> that was my idea from before
09:03:33 <monqy> yes..
09:03:35 <shachaf> where you pass the supertype
09:03:39 <shachaf> but it doesn't really work..................
09:03:49 <monqy> oh what's your idea from before
09:03:56 <monqy> i "forgot" it
09:04:05 <shachaf> maybe i didn't say it
09:04:23 <shachaf> it's just that when you have a product, i.e. a thing you can make a lens for, you can pass in a subtype
09:04:38 <shachaf> but when you have a sum ie something you can make a prism for, you can pass in a supertype
09:04:45 <shachaf> because that way you still get "over"
09:05:39 <monqy> yeah
09:05:59 <monqy> this conforms to my intuitions,,,,at least,,,,,,
09:06:15 <shachaf> but then how do you actually use it
09:06:53 <shachaf> because i can't just write function Foo(A a) { a."mutatify"(); } and then pass it (Either a b)
09:07:04 <shachaf> well not if it has any other "side effects for instance'.
09:07:33 <monqy> are we talking about lenses/prisms or mutability :( lenses/prisms are a lot easier to think about imo
09:07:34 <shachaf> because it expects there to be an a
09:07:50 <shachaf> monqy: imo too but i want to see what these concepts "translate to" with subtyping
09:07:55 <shachaf> "and maybe vice versa"
09:08:07 <shachaf> imo if you do Foo(Right x) then Foo won't be called at all.
09:08:16 <shachaf> otherwise it doesn't really make sense??
09:08:28 <monqy> well yeah that's the exact same thing you get with .~ isn't it
09:08:28 <shachaf> but this way it doesn't really make sense either
09:08:43 <monqy> what doesn't make sense about it
09:08:44 <shachaf> well sure but it's kind of weird from the perspective of "mutability and subtyping"
09:08:57 <shachaf> because are you calling Foo or aren't you
09:12:06 <monqy> what sort of perspective of "mutability and subtyping" is this? in "mutability and subtyping" languages i know of it doesn't work like this :-) you don't have sum types like that, you don't pass the supertype yada yada
09:12:25 <monqy> that example would be a "downcast" and you'd hit a "runtime failure"
09:12:29 <shachaf> i know but i was trying to figure out like "what if it would??"
09:12:40 <shachaf> monqy: prisms are a lot like a "downcast" with a "runtime failure"
09:12:53 <shachaf> Prism' s a = (a -> s, s -> Maybe a)
09:12:55 <monqy> except prisms are well-behaved and easy to think about
09:13:25 <monqy> from the "what if it would" perspective of "analogy by prisms" it'd work in the "weird" way "oh well"
09:13:35 <monqy> i don't think there's anything wrong with that?
09:13:49 <shachaf> well ok
09:13:52 <impomatic> The FYB hill is broken :-(
09:13:53 <shachaf> so how would sums work with subtyping
09:14:05 <shachaf> i guess usually they have "open sums??"
09:14:24 <shachaf> well that doesn't really work
09:14:28 <monqy> as in if you have a ref <a|b> what's that isomorphic to?
09:14:37 <monqy> or
09:14:40 <shachaf> well that's one question yes
09:15:05 <monqy> the answer is "i'd have to think about it"
09:15:18 <shachaf> good answer
09:17:00 <shachaf> monqy: btw should we use Unprisms instead of Prisms
09:17:06 <shachaf> i guess "probably not"
09:17:08 <monqy> what's an unprism
09:17:14 <monqy> what if you used both
09:17:16 <shachaf> it's a p t s -> p b a prism
09:17:25 <shachaf> monqy: oh that reminds me i have a lens question
09:17:34 <shachaf> what do lenses and unprisms have in common
09:17:39 <shachaf> what's their "common superclass"
09:18:06 <shachaf> class Lensy p where lensy :: p a b -> p (r,a) (r,b)
09:18:19 <shachaf> class Unprismy p where unprismy :: p (r,a) (r,b) -> p a b
09:18:22 <shachaf> errrrr
09:18:23 <shachaf> ignore that
09:18:27 <shachaf> class Lensy p where lensy :: p a b -> p (r,a) (r,b)
09:18:41 <shachaf> class Unprismy p where unprismy :: p (Either r a) (Either r b) -> p a b
09:18:55 <shachaf> i think these two have a "common superclass" (other than profunctor)
09:19:17 <shachaf> monqy: simple version:
09:19:23 <shachaf> class Lensy p where lensy :: p a -> p (r,a)
09:19:33 <shachaf> class Unprismy p where unprismy :: p (Either r a) -> p a
09:19:51 <monqy> h m
09:21:16 <shachaf> also there's Unlensy and Prismy
09:21:23 <shachaf> which are "analogous"
09:21:50 <monqy> do you have an "analogous" question about unlensy and prismy or is that "well known" or "uninteresting"
09:22:11 <shachaf> i have an "analogous" question
09:22:26 <shachaf> Lensy and Unprismy both have a Forget r instance.
09:22:39 <shachaf> And Unlensy and Prismy both have a Tagged instance
09:23:11 <shachaf> (and instance Lensy p => Unlensy (Un p a b), and instance Unlensy p => Lensy (Un p a b), naturally.)
09:23:23 <shachaf> (where newtype Un p a b s t = Un { unUn :: p t s -> p b a })
09:24:20 <shachaf> i think Lensy/Unprismy (or Unlensy/Prismy)'s superclass might be interesting "from a subtyping perspective too"
09:24:30 <shachaf> (but that's not where the question came from)
09:33:32 <shachaf> monqy: any other instances for Unprismy btw
09:33:44 <shachaf> other than Forget and Un (and Neither)
09:33:53 <shachaf> data Neither a b = Neither
09:36:00 <zzo38> O! It is a category.
09:36:38 <shachaf> What is?
09:37:50 <zzo38> id = Neither; Neither . Neither = Neither;
09:38:11 <shachaf> Oh, Neither is. Sure.
09:38:14 <shachaf> Neither is a lot of things. :-)
09:39:34 <shachaf> zzo38: What constraints on p do you need to make (Un p a b) a category?
09:43:27 <zzo38> I don't know.
09:47:46 <Sgeo> My computer's so slow I can't even turn the volume up
09:49:49 -!- monqy has quit (Quit: hello).
09:49:51 -!- Taneb has joined.
09:50:15 <Jafet> pactl set-sink-volume 0 65537
09:53:39 <Taneb> Did you know Hexham has a Village Band?
10:37:32 <Jafet> `? hexham
10:37:37 <HackEgo> Hexham is a European town. There are nine people in Hexham, and at least two of them are in this channel. Taneb looks after the ham.
10:39:54 <Sgeo> Instead of sleeping I am watching QI. I am brillant.
10:51:24 * impomatic has been to Hexham :-)
10:54:45 <shachaf> Who hasn't?
10:58:58 <Sgeo> I haven't
11:03:06 <Sgeo> I might not count as a who though
11:06:48 <shachaf> I'm afraid you don't.
11:06:51 <shachaf> Sorry. :-(
11:11:12 <FreeFull> Jafet: http://en.wikipedia.org/wiki/Hexham
11:11:21 <FreeFull> shachaf: I haven't been to hexham
11:11:52 <FreeFull> Way too far up north
11:12:54 <quintopia> in finland
11:15:45 <fizzie> I haven't been to Hexham either, even though I live in Finland. *shame*
11:16:06 <shachaf> `?hh finland
11:16:08 <HackEgo> ​/hackenv/bin/?hh: line 1: u: command not found
11:16:17 <shachaf> `cat bin/?hh
11:16:18 <HackEgo> ​? "$@" | perl -pe 's/([aeiouy])([bcdfghjklmnpqrstvxz])/$1h$2/ig'
11:16:45 <fizzie> Heh, someone made a file called "u", I see.
11:17:13 <fizzie> `run sed -i -e 's#^#/#' bin/\?hh
11:17:16 <HackEgo> No output.
11:17:20 <fizzie> `?hh finland
11:17:21 <HackEgo> ​/hackenv/bin/?hh: line 1: /?: No such file or directory
11:17:30 <fizzie> And I mistake / for a \.
11:17:32 <fizzie> (Impressive.)
11:17:41 <fizzie> `run sed -i -e 's#^/#\#' bin/\?hh
11:17:42 <HackEgo> sed: -e expression #1, char 7: unterminated `s' command
11:17:45 <fizzie> `run sed -i -e 's#^/#\\#' bin/\?hh
11:17:48 <fizzie> TOO HARD.
11:17:49 <HackEgo> No output.
11:17:52 <fizzie> `?hh finland
11:17:54 <HackEgo> Fihnlahnd ihs a Euhrohpeahn couhntry. Thehre ahre two peohple ihn Fihnlahnd, ahnd aht leahst nihne ohf thehm ahre ihn thihs chahnnehl. Cohruhn drihvehs the buhs.
11:18:04 <shachaf> `hyfinate finland
11:18:35 <HackEgo> No output.
11:19:21 <shachaf> `run \? finland | hyfinate
11:19:23 <HackEgo> Fin-land is a Eu-ro-pe-an count-ry. The-re a-re two pe-op-le in Fin-land, and at le-ast ni-ne of them a-re in this chan-nel. Co-run dri-ves the bus.
11:19:41 <Taneb> impomatic, what were you doing in Hexham?
11:19:50 <Taneb> `run \? Taneb | hyfinate
11:19:52 <HackEgo> Ta-neb is not el-li-ott, no mat-ter who y-ou ask. He al-so isn't a rab-bi alt-hough he has pre-ten-ded in the past. (see al-so: d-mo-du-les)
11:19:55 <fizzie> `run words --eng-all 20 | hyfinate
11:20:01 <HackEgo> su-ber a-tor e-mild er-ry-e asch-ro-duz-co haul-tins-hi wi-de mo-ni-a land-res-sibl ha-ga-nin ne-cei pu-bis-sab-le ga-lam-ber sixt bla en-ta-mi-o wor-det to-pi-do ge-ney al-pi-or
11:20:16 <Taneb> ...this makes me read it in a Welsh accent
11:21:02 <impomatic> Taneb: I can't remember... Probably just taking a look around, nothing memorable! Also visited a reenactment at Corbridge.
11:21:24 <Taneb> There are reenactments in Corbridge?
11:21:33 <Taneb> I've seen a few in Hexham, but not Corbridge
11:21:44 <impomatic> Well they called it a reenactment. It was more like Romans vs English Civil War.
11:21:59 <fizzie> Is that a Finnish hyphenation attempt, actually?
11:22:09 <fizzie> `run words --finnish 15 | hyfinate
11:22:11 <HackEgo> mul-le kä-hei-jai-si mah-ta-viin puh-ku-mak-se-si reik-kai-te e-lis-tauk-sen-ne a-ge-ner-to-vit-tam-me ver-sy-vi-än-nös-sä-ni tun-tel-tä y-hyy-dyl-le-ni tai-sem-pan-ne in-tä-vin vas-sa-si kil-lan-sa as-ta-ni
11:22:57 <quintopia> fizzie: is hyfinate just hh but with the h's replaced with hyphens?
11:23:31 <impomatic> Also visited Birdoswald nearby where they'd set up a Roman camp and did some demonstrations, but no battle.
11:23:40 <fizzie> quintopia: It's not quite the same.
11:23:45 <fizzie> `cat bin/hyfinate
11:23:46 <HackEgo> ​#!/bin/sh \ exec perl -CS -Mutf8 -pwe 'my$vow=qr/[aeiouyäö]/i;my$con=qr/[bcdfghjklmnpqrstvwxz]/i;1while s/($vow$con*)($con$vow)/$1-$2/g;1while s/a[eoyäö]|e[aoäö]|i[aoäö]|o[aeyäö]|u[aeyäö]|y[aeouä]|ä[aeouö]|ö[aeouä]/my@s=split"",$&;$s[0]."-".$s[1]/egi'
11:23:55 <quintopia> wow
11:24:09 <ion> fizzie: It should be correct if the input doesn’t have compound words or foreign words.
11:24:28 <ion> I.e. anything that would require dictionary lookups.
11:24:31 <fizzie> ion: I'm sure there are some exceptions to every rule somewhere.
11:25:37 <quintopia> fizzie: does it correctly break finnish words at syllables?
11:26:03 <ion> It should.
11:26:04 <fizzie> It seems to do a pretty good job.
11:27:42 <quintopia> i wonder if it's possible to do it in english without just looking it up in a syllable dictionary
11:27:46 <fizzie> ion: http://www2.lingsoft.fi/doc/d-finhyp9.html seems to suggest you do need a bit more rules to be entirely correct.
11:28:39 -!- Frooxius has quit (Ping timeout: 260 seconds).
11:29:30 <ion> ok
11:30:05 <fizzie> I guess compound words might account for a lot of the complexity, though.
11:30:18 <fizzie> At least based on these TeX Finnish hyphenation rules.
11:30:51 <fizzie> `run echo maauimala | hyfinate # wovels across the word boundary go wrong, for example
11:30:53 <HackEgo> maaui-ma-la
11:31:02 <ion> `run sed -i -re 's/bcdfghjklmnpqrstvwxz/b-df-hj-np-tv-xz/' bin/hyphenate.fi
11:31:05 <HackEgo> No output.
11:31:18 <ion> Yeah, as i said, it doesn’t support compound words at all.
11:31:18 <quintopia> wovels eh
11:31:41 <fizzie> I keep mistyping that.
11:31:50 <ion> `run words --finnish 15 | hyphenate.fi
11:31:53 <HackEgo> val-vit-täm-me hel-lyt-tu-val-ta kut-ta-vit-ta-mil-lam-me o-hen-tu-vik-sel-lem-mil-ta i-lo-pet-teik-si tul-ke-väm-mäs-sä loi-si-suu kaa-mil-tä hi-ot-ta-ni pom-paat-ti-sem-piin lis-täm-mäk-se-ni si-va-mil-tään va-rot-ta kat-kim-pa-na huo-len-ne
11:34:11 <fizzie> Is hyphenate.fi different from hyfinate?
11:34:28 <ion> I named it hyphenate.fi, shachaf (IIRC) symlinked it to hyfinate.
11:34:43 <shachaf> Yes, I symlinked it to hyfinate in IRC.
11:35:04 -!- sirdancealot7 has quit (Ping timeout: 240 seconds).
11:35:29 <Sgeo> help I was compelled to click that as though it was a link
11:35:46 <ion> Silly, it doesn’t even have a protocol.
11:37:27 <fizzie> Of course there are some compound words where the word break has multiple valid locations, those are arguably impossible to get right without some mind-reading hardware. (The TeX hyphenation rules mention kaivos|aukko vs. kaivo|saukko as an example.)
11:38:01 <ion> Fortunately Perl has readmind() for that.
11:39:06 * Sgeo is sure J has a 2 character symbol for that
11:40:03 <ion> I’d be interested to see a non-compound Finnish word hyphenate.fi actually doesn’t get right.
11:41:31 <shachaf> What's a non-compound Finnish word?
11:42:05 <ion> Kakka is a Finnish word that is not a compound word, for instance.
11:47:38 -!- sirdancealot has joined.
11:54:23 -!- sirdancealot has quit (Excess Flood).
11:55:48 -!- sirdancealot has joined.
12:04:30 -!- carado has joined.
12:05:51 -!- sirdancealot has quit (Ping timeout: 245 seconds).
12:09:20 -!- Phantom_Hoover has joined.
12:15:05 -!- sirdancealot has joined.
12:21:43 <fizzie> `run echo säie | hyfinate # ion: should be säi-e according to Karjalainen, Sulkala, "Finnish (Descriptive Grammar)", 1992.
12:21:46 <HackEgo> säie
12:23:06 <fizzie> `run echo rakkaus rakkautta | hyfinate # should be rak-ka-us rak-ka-ut-ta according to the same book.
12:23:09 <HackEgo> rak-kaus rak-kaut-ta
12:24:48 <fizzie> `run echo huouimme | hyfinate # ditto huo-ui-mme
12:24:50 <HackEgo> huouim-me
12:25:35 <fizzie> (Examples picked from 3.2.5.1. Syllabilification of Medial Units and Clusters, the "following additional rules can be mentioned" list.)
12:27:15 <fizzie> Er, s/ui-mme/uim-me/ in the last comment, but anyway.
12:30:42 <zzo38> So, using ORDER BY doesn't prevent or change the order of side effects in the result expressions and causes them to be evaluated even in the case of LIMIT and OFFSET, but WHERE does prevent side effects (even in the presence of ORDER BY), but LIMIT and/or OFFSET without ORDER BY will evaluate only the rows actually returned.
12:32:40 <zzo38> Doing this even affects a query in which a subquery has ORDER BY, but if the outer query which is used to perform the side effects has its own ORDER BY which isn't affecting the order of the results, then it will prevent the side effect for rows not returned and will do them in the order returned by the inner query.
12:32:52 <zzo38> Is this understandable and/or reasonable to you?
12:33:55 <zzo38> Is this how the SQL specification says it should work?
12:48:22 <Vorpal> zzo38, what sort of side effects? In a select statement?
12:50:34 <zzo38> I mean functions that might be called in the results of a SELECT statement.
12:50:49 <Vorpal> ah, no clue about that, never used such stuff
13:03:02 <FreeFull> I love how SQL shouts at everyone
13:04:02 -!- RodgerTheGreat has joined.
13:33:06 -!- zzo38 has quit (Remote host closed the connection).
14:46:54 -!- azaq23 has joined.
14:51:31 <ion> fizzie: Alright, thanks for the examples.
14:56:33 <Jafet> SECURITY QUESTIONABLE LAYER
15:14:38 -!- FreeFull has quit (Ping timeout: 255 seconds).
15:27:25 -!- oerjan has joined.
15:28:59 -!- FreeFull has joined.
15:37:57 <oerjan> <shachaf> Bike: If A is a subtype of B, which one is bigger?
15:38:07 <oerjan> i thought we'd clarified that yesterday
15:38:24 <shachaf> What was our conclusion?
15:38:53 <Applejacques> Which TYPE is bigger, or which INSTANCE is bigger? :)
15:39:15 <shachaf> Instance of what?
15:39:23 <Applejacques> Instance of those types.
15:39:24 <oerjan> the answer is: it has nothing to do with number of members, because when A is a subtype of B that _is_ a subset, then (B -> C) is a subtype of (A -> C) which is _larger_.
15:39:45 <shachaf> oerjan: Right.
15:39:49 <shachaf> That's my answer too.
15:39:50 <Applejacques> Right, if we're talkin' types, then B is larger than A.
15:39:56 <shachaf> No it's not.
15:40:06 <elliott> "Instance of a type" :(
15:40:44 <Applejacques> lol, this is fun.
15:42:08 <ion> `run type love || (printf '%s\n' '#!/bin/sh' 'printf "i love %s. they are so easy." "$*"' >bin/love && chmod 755 bin/love && love instances)
15:42:13 <HackEgo> bash: line 0: type: love: not found \ i love instances. they are so easy.
15:42:21 <FreeFull> `love whores
15:42:24 <HackEgo> i love whores. they are so easy.
15:42:46 * shachaf sighs.
15:42:48 <elliott> `rm bin/love
15:42:51 <HackEgo> No output.
15:43:31 <ion> D-:
15:44:18 <ion> help
15:44:28 <ion> elliott is destroying the fruits of my labor
15:44:52 <oerjan> ion: you are attempting to resurrect dead horses. that is evil.
15:45:17 <ion> But i love dead horses. They are so easy.
15:45:22 <oerjan> especially since it was a nasty horse to start with.
15:46:14 <oerjan> `wtf saying "they are so easy"
15:46:16 <HackEgo> why saying "they are so easy" is like wtf
15:46:35 <oerjan> HTH
15:46:40 <shachaf> imo has FreeFull ever said a single useful thing in here ever?
15:47:51 -!- oerjan has quit (Quit: Probably.).
15:49:11 <ion> or ion
15:49:54 <shachaf> ion has said at least one useful thing.
15:50:34 <elliott> what about shachaf
15:51:01 <shachaf> ion: did you seriously just look at beaky.txt to get more accurate beaky uotes
15:51:03 <shachaf> q
15:51:46 <ion> shachaf: I thought you were against logs.
15:52:11 <shachaf> Who said anything about logs?
15:52:15 <shachaf> I'm reading in real time.
15:52:17 <ion> {bea,mon}{k,q}y
15:52:59 <ion> beaky.txt is a log.
15:53:09 <shachaf> Oh.
15:53:11 <shachaf> That's a public log.
16:03:08 <FreeFull> shachaf: Does it matter if the things I say are useful
16:35:27 <Vorpal> ogrom, "HTH"? What does that mean
16:36:05 <elliott> hellish taiga hapapiness
16:39:50 <Phantom_Hoover> Hot Tasmanian Housewives.
16:53:26 <Vorpal> hm I think Phantom_Hoover is right
16:53:39 <Vorpal> it makes perfect sense in the context unlike your suggestion elliott
16:54:34 <elliott> I like how you pinged ogrom.
16:55:35 <Vorpal> elliott, lol oops
17:19:41 <kmc> shachaf: i know a few things about subtyping
17:19:46 <kmc> i know TaPL things about subtyping
17:31:08 <FreeFull> Homo Taurus Hinensis
17:31:18 <kmc> high temperature halibut
17:31:40 <FreeFull> Henry The Hippopotamus
17:33:24 <shachaf> kmc: I may not be coherent enough now to talk about the things I was going to talk about.
17:33:34 <shachaf> So what TaPL things are there about subtyping?
17:33:40 <shachaf> What sorts of subtyping are there?
17:35:40 <shachaf> How do sums and products work out?
17:38:05 <kmc> i don't remember
17:38:10 <kmc> i could look them up in TaPL
17:38:13 <kmc> "know" may have been an overstatement
17:38:32 <kmc> i think generally (Int,String) would not be a subtype of Int
17:38:56 <kmc> but you can have record systems where {a:Int, b:String} is a subtype of {a:Int}
17:40:07 <kmc> you can pick something like that as your "primitive" subtyping relation
17:40:33 <kmc> and then you want it to be reflexive, antisymmetric, transitive
17:41:16 <kmc> and you extend the subtyping relation to function types with covariance in the return position and contravariance in the argument position
17:43:05 <kmc> this is only the basic stuff, it's what i remember
17:43:14 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
17:45:05 -!- Phantom_Hoover has joined.
17:45:13 -!- function has changed nick to trout.
17:45:37 <shachaf> kmc: OK, but what about the relationship of Int and Either Int String?
17:47:21 <shachaf> It seems to make sense to say a <: Either a b in a similar way to the way it makes sense to say (a,b) <: a
17:47:36 <shachaf> These let you do different things, though.
17:47:43 <shachaf> Does TaPL talk about mutability?
17:48:32 <kmc> i think so
17:49:15 <shachaf> With "product" subtypes, you add extra fields, but if f expects a mutable (a,b), I can pass it a mutable (a,b,c) just fine.
17:49:20 <shachaf> And it can mutate the a and b if it wants.
17:49:25 <shachaf> Right?
17:49:49 -!- ogrom has quit (Quit: Left).
17:49:56 <kmc> yeah i think so
17:50:11 -!- Bike_ has joined.
17:50:43 <shachaf> But with sums you don't get that.
17:50:57 <shachaf> Because what if you try to mutate it from a Left to a Right or something?
17:52:08 <kmc> mm
17:52:13 <kmc> i haven't thought about that
17:52:39 <kmc> i do know that (a <: b) => ((a,c) <: (b,c)) becomes problematic if your pairs are mutable
17:52:42 <kmc> doesn't it?
17:54:23 <kmc> for the same reason as for arrays/lists
17:54:28 <kmc> got to go to lunch though, ttyl
17:54:29 <shachaf> Right.
17:54:47 <shachaf> kmc: Anyway I think this corresponds to lenses and prisms.
17:55:06 <shachaf> kmc: And I think functor/profunctor lenses correspond to Liskov substitutability.
17:55:19 <shachaf> But I might just be making things up.
17:57:30 -!- AnotherTest has joined.
17:57:42 <AnotherTest> Hello
18:00:33 -!- Taneb has quit (Ping timeout: 245 seconds).
18:01:21 <shachaf> Is it just me or are these a bit similar?
18:01:22 <shachaf> uncompose f g k = Un2 $ \q -> ($ q) . under _Un2 f $ \x -> ($ q) . under _Un2 g $ \y -> unUn2 k (x C.. y)
18:01:25 <shachaf> nip f g k = Op $ \t -> ($ t) . under _Op f $ \x -> ($ t) . under _Op g $ \y -> getOp k (x,y)
18:04:52 -!- Taneb has joined.
18:10:54 -!- Bike_ has changed nick to Bike.
18:13:11 -!- asiekierka has quit (Excess Flood).
18:21:52 -!- asiekierka has joined.
18:28:14 -!- heroux has quit (Ping timeout: 255 seconds).
18:40:30 -!- heroux has joined.
18:43:18 -!- Bike has quit (Ping timeout: 244 seconds).
18:45:14 -!- Bike has joined.
19:14:21 -!- ais523 has joined.
19:29:34 -!- atriq has joined.
19:32:35 -!- Taneb has quit (Ping timeout: 260 seconds).
19:44:45 -!- atriq has quit (Ping timeout: 256 seconds).
19:45:12 <ais523> @messages
19:45:12 <lambdabot> You don't have any new messages.
19:51:47 <olsner> @messages
19:51:47 <lambdabot> You don't have any new messages.
19:53:26 <elliott> @tell ais523 hi
19:53:27 <lambdabot> Consider it noted.
19:53:30 <elliott> @tell ais523 what is up
19:53:31 <lambdabot> Consider it noted.
19:53:35 <ais523> @clear-messages
19:53:35 <lambdabot> Messages cleared.
19:53:37 <ais523> hi elliott
19:53:40 <elliott> @tell ais523 wow that's impolite
19:53:41 <lambdabot> Consider it noted.
19:53:48 <ais523> @clear-messages
19:53:49 <lambdabot> Messages cleared.
19:53:55 <ais523> I've already read them as you sent them
19:54:08 <shachaf> @ask ais523 for advice
19:54:08 <lambdabot> Consider it noted.
19:54:22 <ais523> @clear-messages
19:54:22 <lambdabot> Messages cleared.
19:54:23 <olsner> @tell elliott hi
19:54:24 <lambdabot> Consider it noted.
19:54:26 <ais523> shachaf: that's nto a question
19:54:28 <ais523> *not a question
19:54:35 <ais523> btw, we should probably stop the bot abuse
19:54:43 -!- epicmonkey has joined.
19:55:13 -!- Frooxius has joined.
19:55:36 <elliott> @ignore + ais523
19:55:38 <elliott> Agreed!
19:55:38 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
19:55:44 <elliott> @messages
19:55:44 <lambdabot> olsner said 1m 20s ago: hi
19:56:07 <ais523> elliott: huh, I didn't use lambdabot much anyway
19:56:09 * elliott waits for ais523 to try and use lambdabot so he can take the ignore off.
19:56:16 <ais523> so this mostly means that if you send me messages, I won't be able to read them
19:56:48 <elliott> ais523: Would I do that?
19:56:49 -!- Phantom_Hoover has quit (Read error: Operation timed out).
19:57:02 <ais523> well you did earlier
19:57:10 <shachaf> @ignore - ais523
19:57:12 <elliott> Hmm, apparently if lambdabot is ignoring you it won't notify you of new messages.
19:57:19 <ais523> that makes sense
19:57:19 <lambdabot> ais523: You have 1 new message. '/msg lambdabot @messages' to read it.
19:57:22 <elliott> @admin - shachaf
19:57:24 <ais523> @messages
19:57:24 <lambdabot> elliott said 39s ago: hello
19:57:26 <elliott> shachaf: Abusing your privileges!!!!
19:57:42 <shachaf> @admin - elliott
19:57:42 <lambdabot> Not enough privileges
19:57:55 <shachaf> @admin - elliott
19:57:59 <elliott> By privileges I mean non-privileges.
19:58:06 <elliott> (Since you're not actually a lambdabot admin.)
19:58:10 <Bike> check your lack of privilege
19:58:19 -!- atriq has joined.
19:58:24 <elliott> shachaf: By the way you should undo that.
19:58:32 <shachaf> @undo @admin - elliott
19:58:33 <lambdabot> Parse error at "@admi..." (column 1)
19:58:43 <shachaf> "if only ghc had undo notation"
19:58:57 <shachaf> @admin + elliott
19:59:11 <shachaf> "try not to abuse it this time"
19:59:51 <elliott> I like how I was going to un@ignore ais523 once it gave him the message notification anyway.
20:01:07 <AnotherTest> You just fooled my IRC client into thinking un@ignore is someone's email address :(
20:01:42 <ais523> AnotherTest: who knows, it theoretically could be
20:01:53 <shachaf> #include <irc.h>
20:01:56 <ais523> even on the public internet, what with ICANN going crazy recently
20:01:57 <shachaf> Don't join it!
20:02:00 <ais523> but definitely privately
20:02:04 -!- Nisstyre-laptop has joined.
20:02:05 <AnotherTest> Not sure, is ignore a DNS TLD?
20:02:14 <ais523> AnotherTest: ICANN have been adding loads of new ones recently
20:02:15 <shachaf> Do you want it to be?
20:02:31 <shachaf> ICANN easily imagine it being one.
20:02:38 <AnotherTest> Meh, if you have enough money
20:02:46 <AnotherTest> ICANN is corrupt
20:03:25 -!- atriq has changed nick to Taneb.
20:03:38 <AnotherTest> Actually, I don't know of any TLD that is also a hostname mapping to an actual server
20:08:11 -!- asiekierka has quit (Excess Flood).
20:10:41 <ais523> AnotherTest: "an.", I thought was one
20:10:51 <ais523> although I don't think there's a webserver there, just an email server
20:11:35 -!- Phantom_Hoover has joined.
20:12:22 -!- asiekierka has joined.
20:17:53 -!- oerjan has joined.
20:20:04 -!- asiekierka has quit (Excess Flood).
20:22:22 -!- asiekierka has joined.
20:29:56 -!- AnotherTest has quit (Quit: Leaving.).
20:40:32 -!- monqy has joined.
20:50:53 -!- epicmonkey has quit (Ping timeout: 255 seconds).
21:11:18 -!- zzo38 has joined.
21:18:36 <oerjan> shachaf: hm back to the subtyping a moment - even if a is not a subtype of Either a b and (a,b) is not a subtype of a, types that are internally _represented_ identically to those can be subtypes of each other. so subtyping is something independent of representation (and cardinality).
21:19:33 <oerjan> basically, if something is a subtype at a higher level, there needs to be a conversion of the internal representations.
21:20:10 <oerjan> which needs be neither injective nor surjective.
21:20:18 <monqy> there's ways to work subtypey-coercions into the semantics yes
21:20:58 <oerjan> i slightly understand scala uses implicit coercions a _lot_ to get advanced type features
21:25:58 <oerjan> <shachaf> But it still makes sense to talk about how (A,B) could <: A, doesn't it? <-- in an OO system where almost any type means "these methods exist, and there might be others because of subtyping" something resembling (A,B) <: A is sort of necessary
21:26:45 <oerjan> i believe ocaml's type system makes these things more explicit than most...
21:27:10 <oerjan> although i only vaguely recall the specifics.
21:27:46 <oerjan> but you have types that _do_ mean simply "methods of these names and types exist".
21:28:26 <oerjan> "(and there might be others)"
21:29:00 <oerjan> which means it has structural types for objects.
21:30:03 <Taneb> Did you guys work out the difference between a cosubtype and a supertype yet
21:30:32 <oerjan> i have no idea.
21:32:55 <Vorpal> Taneb, what is a cosubtype
21:33:03 <Taneb> I dunno
21:33:07 <Vorpal> oh okay
21:33:11 <Taneb> I think shachaf was talking about them the other day
21:36:28 -!- carado has quit (Ping timeout: 246 seconds).
21:37:07 -!- Arc_Koen has joined.
21:42:36 <oerjan> so what definition of coref would satisfy <coref a|coref b> ~ coref <a|b> ?
21:42:51 <oerjan> (nontrivial of course)
21:43:19 <oerjan> something dual to mutability...
21:47:32 <shachaf> hi oerjan
21:47:36 <shachaf> I bet it would have to do with prisms.
21:48:03 <elliott> oerjan: coref a = ref a -> r for some r?
21:48:22 <elliott> <ref a -> r | ref b -> r> ~ (ref <a|b> -> r)
21:48:36 <elliott> That needs mapping over refs, though.
21:48:49 <oerjan> i don't think that is true.
21:49:38 <oerjan> there is nothing preventing the function on the right from storing both a's and b's into the ref in sequence
21:51:40 <oerjan> maybe if ref's are implicitly wrapping things into State monads, then coref's should be wrapping things into Costate comonads
21:51:59 <oerjan> *-' -'
21:53:32 <oerjan> that is, maybe corefs don't live in the kind of imperative language that is modeled with monads at all
21:57:33 <elliott> So you have a comonad CoST?
21:58:19 <oerjan> ...i was just thinking that thought
21:59:04 * elliott is terrified of what the equivalent of runST looks like.
22:00:35 <elliott> oerjan: btw although (Ref a, Ref b) is like Ref (a, b) they are *not* the same in Haskell
22:00:40 <elliott> i.e. there is no function either way.
22:01:07 <elliott> you need to wrap it up with data Ref a = forall b. Ref (SomeRef b) (a -> b) (b -> a)
22:01:16 <elliott> so I assume the same would apply to Coref
22:03:04 <Vorpal> what is a Coref?
22:03:23 <Vorpal> and what is the use of it
22:03:45 <kmc> i totally read 'corefs' as 'core fs'
22:04:05 <kmc> obviously, too much systems and not enough haskell for me :(
22:07:04 <kmc> ) fungot
22:07:04 <fungot> kmc:. i'm so kind, even to assholes! anmaster no not markov anmaster no not markov
22:07:04 <jconn> kmc: |value error: fungot
22:07:04 <fungot> jconn: just to help an fnord archive)" means " land of meadows" from the name of the array, it is documented, and only if the strings? what kind of like that) which is actually pretty nice) is the name of the array, it is documented, and only if the strings? what kind of like that) which is actually pretty nice, but sometimes it's necessary to achieve the planned than fnord since no sign, perhaps, it may be said that particular
22:07:04 <jconn> fungot: |open quote
22:07:04 <jconn> fungot: | just to help an fnord archive)" means " land of meadows" from the name of the array, it is documented, and only if the strings? what kind of like that) which is actually pretty nice) is the name of the array, it is documented, and only if the strings? what kind of like that) which is actually pretty nice, but sometimes it's necessary to achieve the planned than fnord since no sign,
22:07:04 <jconn> fungot: | ^
22:07:04 <fungot> jconn: i am just as confused. you know, that thing which you might want is broken" archives. even less chance. i called " o" in " the other side has, perhaps, it may be said that particularly here, parliament will give a single instance,
22:07:04 <fungot> jconn: is that something you know and and the cases that required to actually mutate the original i think you were still a very famous program talisman with fnord windows. that's always tricky. i could actually make progress. securing budgetary authority, can the governments. i know 2. that's obvious and you did refer to his fnord code
22:07:04 <fungot> jconn: to " print" statement should always remember the songs on p2p apps in scheme, besides, was not beyond normal credibility!
22:07:05 <jconn> fungot: |spelling error
22:07:10 <elliott> Vorpal: We don't know, and there aren't any.
22:07:12 <jconn> fungot: | i am just as confused. you know, that thing which you might want is broken" archives. even less chance. i called " o" in " the other side has, perhaps, it may be said that particularly here, parliament will give a single instance,
22:07:12 <jconn> fungot: | ^
22:07:16 <jconn> fungot: |spelling error
22:07:27 <oerjan> elliott: no that wrapping doesn't work either, because translating a write to a Ref (a,b) into (Ref a, Ref b) requires _two_ writes
22:07:28 <jconn> fungot: | is that something you know and and the cases that required to actually mutate the original i think you were still a very famous program talisman with fnord windows. that's always tricky. i could actually make progress. securing budgetary authority, can the governments. i know 2. that's obvious and you did refer to his fnord code
22:07:36 <jconn> fungot: | ^
22:07:44 <jconn> fungot: to"_ _ _"_ _ _ (should always remember the songs on p2p apps in scheme , besides , was not beyond normal credibility !)
22:08:10 <oerjan> fizzie: i think it is about time to expand ^ignore again.
22:08:55 <oerjan> hm...
22:09:02 <oerjan> > "hi fungot"
22:09:02 <fungot> oerjan: so, let's say i call them mindless games. if we hit every stupid person, any person going to the theater
22:09:04 <lambdabot> "hi fungot"
22:10:02 <kmc> `addquote <jconn> fungot: |open quote <jconn> fungot: | just to help an fnord archive)" [...] <fungot> jconn: i am just as confused. you know, that thing which you might want is broken
22:10:02 <fungot> kmc: that is just a value of type " airbus is a big fan of avril....but this song " there
22:10:07 <ais523> bleh, now I want to know the rest of that fungot sentence
22:10:07 <fungot> ais523:, so i'd make stuff up to. why, this is for you guys are a lot of the design, prisoners and slaves that have sucked. rephrase: " i tried todo a _" is 0
22:10:10 <ais523> about stupid people
22:10:16 <HackEgo> 951) <jconn> fungot: |open quote <jconn> fungot: | just to help an fnord archive)" [...] <fungot> jconn: i am just as confused. you know, that thing which you might want is broken
22:10:31 <elliott> `addquote <fungot> kmc: that is just a value of type " airbus is a big fan of avril....but this song " there
22:10:31 <fungot> elliott: if it's ( syntactically) long, and brainfuck command keys. secondly, the establishment)
22:10:53 <HackEgo> 952) <fungot> kmc: that is just a value of type " airbus is a big fan of avril....but this song " there
22:14:02 <FreeFull> > map (+1) [1..]
22:14:04 <lambdabot> [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2...
22:14:17 <FreeFull> > fix (\x -> x : map (+1) x )
22:14:19 <lambdabot> Occurs check: cannot construct the infinite type: a0 = [a0]
22:14:21 <FreeFull> > fix (\x -> x : map (+1) x ) 1
22:14:23 <lambdabot> Couldn't match expected type `t0 -> t1' with actual type `[a0]'
22:14:27 <FreeFull> > fix (\x -> 1 : map (+1) x )
22:14:28 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
22:15:24 <FreeFull> > fix (\x -> 1 : zipWith (+) x x )
22:15:26 <lambdabot> [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,...
22:22:48 <Taneb> > scanl1 (+) (repeat 1)
22:22:50 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
22:23:25 <oerjan> > [1..]
22:23:27 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
22:23:29 <oerjan> I WIN
22:24:22 <Arc_Koen> so everything is a contest with you?
22:24:37 <Taneb> > scanl1 (+) [1..]
22:24:39 <lambdabot> [1,3,6,10,15,21,28,36,45,55,66,78,91,105,120,136,153,171,190,210,231,253,27...
22:24:59 <oerjan> ...i can barely begin to explain how much that question doesn't describe me.
22:25:08 <Bike> Arc_Koen: well, one time he got in a contest to see who could make more things into contests, and it got out of hand.
22:25:18 <Arc_Koen> haha
22:25:28 <oerjan> i don't remember that.
22:26:05 <Arc_Koen> did you make a contest to see who was the fastest to forget about it?
22:27:09 <fizzie> ^ignore
22:27:09 <fungot> ^(EgoBot|HackEgo|toBogE|Sparkbot|optbot|lambdabot|oonbotti|cuttlefish)!
22:27:17 <fizzie> ^ignore ^(EgoBot|HackEgo|toBogE|Sparkbot|optbot|lambdabot|oonbotti|cuttlefish|jconn)!
22:27:18 <fungot> OK.
22:27:49 <oerjan> Arc_Koen: MAYBE
22:28:21 -!- Phantom_Hoover has quit (Remote host closed the connection).
22:29:17 <elliott> fizzie: I liked it when fungot didn't ignore jconn.
22:29:18 <fungot> elliott: i know i didn't know that you've had it for some time i added a new page and sends it to emacs, i suggest, vote). you need to install in /usr/ lib " 1.ss" " srfi"
22:30:05 <Bike> Does toBogE do nothing but issue bot commands?
22:33:10 -!- Phantom_Hoover has joined.
22:42:37 -!- Taneb has quit (Quit: goodnight).
22:46:47 <Vorpal> <elliott> Vorpal: We don't know, and there aren't any. <-- ?
22:48:42 -!- coppro has quit (Ping timeout: 264 seconds).
22:49:49 <ais523> who's jconn?
22:49:57 <Bike> a bot for J.
22:51:39 <zzo38> Why do you try to fix it with ignore lists and zero-width spaces and everything like that instead of using the proper way?
22:52:25 <Bike> because nobody uses notices
22:53:05 <oerjan> ) 'Hi ais523'
22:53:05 <jconn> oerjan: Hi ais523
22:53:36 <ais523> the proper way annoys mIRC users
22:53:38 <ais523> I see this as an advantage
22:53:51 <ais523> btw, thutubot has a prefix to send notice rather than privmsg
22:53:55 <oerjan> ais523: it also annoys irssi users, maybe not as much
22:53:56 <FreeFull> There should be a bot for all programming languages
22:53:56 <ais523> perhaps I should make it always notice
22:53:58 <FreeFull> Ever
22:54:02 <zzo38> Bike: That isn't a good reason. The server and client still supports it.
22:54:08 <ais523> oerjan: mIRC treats channel notices as pings
22:54:16 <ais523> FreeFull: EgoBot has all the languages that matter
22:54:34 <oerjan> ais523: except fueue.
22:54:43 <ais523> yeah, I was going to except an esolang
22:54:45 <ais523> but wasn't sure which
22:54:56 <oerjan> `fueue 72 105 H
22:54:56 <zzo38> ais523: Well, that is a somewhat better reason but still even in mIRC and irssi and whatever don't they have macros and/or options to control them?
22:54:58 <Bike> zzo38: well, we'd have to convince jconn's owner to make it spit out notices instead of messages, so there's that.
22:54:59 <HackEgo> Hi
22:55:26 <ais523> let's do it backwards
22:55:31 <ais523> and make the bots only respond to channel notices
22:55:43 <ais523> this has all the disadvantages of the correct way of doing things, and fewer advantages
22:56:39 <zzo38> Well, yes, it is too disadvantageous.
22:56:57 <FreeFull> ais523: Which ones are those?
22:57:11 <ais523> FreeFull: requiring changes to all the bots, and sending channel notices
22:57:13 <FreeFull> ais523: Does it have C?
22:57:14 <zzo38> And simply wrong.
22:57:18 <ais523> EgoBot has C
22:57:27 <Vorpal> <ais523> the proper way annoys mIRC users <-- also xchat
22:57:30 <FreeFull> Some form of ASM?
22:57:38 <ais523> !c int main() { int printf(char *, ...); printf("Hello, world!\n"); }
22:57:45 <EgoBot> Hello, world!
22:57:51 <oerjan> yes EgoBot has asm
22:58:00 <zzo38> Making the bots to reply with notices (whether operating privately or publicly) is better.
22:58:17 <ais523> btw, you can /totally/ declare printf inside main like that
22:58:18 <Bike> FreeFull: VAX simulator imo
22:58:36 <FreeFull> !c int main() { printf("Test\n"); return 0;}
22:58:39 <EgoBot> Test
22:58:57 <FreeFull> EgoBot seems to have printf defined already =P
22:59:37 <Vorpal> ais523, that is not the correct prototype for printf
22:59:42 <Vorpal> it is const char* I'm pretty sure
22:59:45 <FreeFull> !c int main() { printf("%f\n",sin(3.4)); return 0;}
22:59:48 <EgoBot> ​-0.255541
22:59:50 <zzo38> PRIVMSG messages may still be sent if it is not a result of a command it received in the same way and if auto-replying would be OK from such messages, though. (I do not know if there are any such cases for the existing bots though)
22:59:52 <FreeFull> Has math.h too
23:00:01 <ais523> Vorpal: it's correct /enough/ to work
23:00:16 <ais523> I don't think there are many C systems on which char * and const char * have different calling conventions
23:00:23 <ais523> (I know it's theoretically legal)
23:00:44 <kmc> yikes
23:00:44 <zzo38> Does the C standard allow char * and const char * have different calling conventions?
23:00:52 <ais523> it allows all sorts of ridiculous tihngs
23:00:53 <kmc> well hm it might be nice to have hardware level const pointers
23:00:54 <ais523> *things
23:00:59 <FreeFull> Lesse if it has complex.h
23:01:04 <Vorpal> ais523, true
23:01:05 <ais523> and a const pointer register for passing them around in?
23:01:18 <kmc> type tagged registers, dude
23:01:33 <zzo38> What is the case for using these things with LLVM?
23:01:58 <ais523> also, the pointer isn't const
23:02:01 <ais523> just it's pointing to const things
23:02:23 <ais523> I ended up writing something along the lines of "char * volatile" recently
23:02:39 <ais523> in order to stop gcc giving me warnings about longjmp (some of which were possibly correct, some of which weren't)
23:03:30 <elliott> 22:46:47 <Vorpal> <elliott> Vorpal: We don't know, and there aren't any. <-- ?
23:03:32 <zzo38> I do have another question about volatile, is a function parameter allowed to specify volatile even if the caller expects the type without volatile, and then cast it to a pointer to a non-volatile type inside of the function?
23:03:44 <elliott> Vorpal: I realise your scrollback is small but I was answering a question you asked literally a few lines prior.
23:03:58 <ais523> zzo38: volatile follows the same rules as const
23:03:59 <Vorpal> elliott, my client crashed
23:04:03 <ais523> so no, without manual casts
23:04:04 <Vorpal> elliott, and i reconnected to the bouncer
23:04:16 <Vorpal> elliott, so yes it was 3 lines of scroll back at that point
23:04:19 <FreeFull> !c int main() { double complex x = I; printf("%f %f\n",creal(x),cimag(x)); return 0;}
23:04:21 <EgoBot> Does not compile.
23:04:29 <FreeFull> Doesn't have complex.h ):
23:04:35 <Vorpal> FreeFull, use #include?
23:04:43 <elliott> zzo38: It isn't better to use notices because the bots are made for people in #esoteric who have clients that don't follow the spec.
23:04:44 <Vorpal> hm tricky with no newlines
23:04:59 <elliott> If they were made for people who had IRC clients that followed the spec they would be different.
23:05:21 <FreeFull> !help
23:05:21 <EgoBot> ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
23:05:26 <FreeFull> !help c
23:05:26 <EgoBot> ​Sorry, I have no help for c!
23:05:32 <FreeFull> !help languages
23:05:32 <EgoBot> ​languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
23:05:40 <FreeFull> !help languages c
23:05:40 <EgoBot> ​Sorry, I have no help for languages_c!
23:05:49 <zzo38> elliott: Whatever... of course they will program them how they want to... Even if I make the suggestion is not the requirement for everyone to use but at least should be considered at least a little bit.
23:05:51 <FreeFull> !help perl
23:05:51 <EgoBot> ​Sorry, I have no help for perl!
23:06:03 <FreeFull> EgoBot isn't very helpful
23:06:13 <FreeFull> !info
23:06:13 <EgoBot> ​EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null
23:07:49 <ais523> we complain at /dev/null easily enough
23:07:52 <ais523> (NetHack joke)
23:07:56 <FreeFull> https://codu.org/projects/egobot/hg/index.cgi/file/ffe171208ae9/multibot_cmds/interps/gcccomp/gcccomp
23:07:59 <FreeFull> This seems to be some of the srouce
23:10:30 <FreeFull> I can't find the bit that does the actual IRC interaction
23:11:03 <elliott> that's multibot
23:12:37 <FreeFull> Specifically the bit that notices I typed !c at the beginning of the line and parses the rest
23:12:56 <zzo38> How do you override the pointer aliasing rules in C?
23:13:51 <FreeFull> https://codu.org/projects/egobot/hg/index.cgi/file/ffe171208ae9/multibot_cmds/hcmds/c
23:15:47 <zzo38> What kind of computer keyboard has keys labeled "5 F POISON" and "NUM/ALPHA EDIT"?
23:16:05 <FreeFull> !c \n int main() { double complex x = I; printf("%f %f\n",creal(x),cimag(x)); return 0;}
23:16:07 <EgoBot> Does not compile.
23:16:16 <FreeFull> !c \n int main() { return 0;}
23:16:17 <EgoBot> Does not compile.
23:19:42 <zzo38> I asked before about a mathematical structure which has successor and predecessor, but no designated zero point. Do you know what I intend to use this for?
23:20:22 <FreeFull> zzo38: a semigroup?
23:20:37 <FreeFull> Or rather, a semigroup that's not a monoid?
23:20:56 <Vorpal> <elliott> If they were made for people who had IRC clients that followed the spec they would be different. <-- I don't think that exists
23:21:34 <zzo38> I think you are correct that it is a semigroup and is not a monoid, but that is not what I mean, by, what I intend to use this for.
23:21:39 <zzo38> Vorpal: Don't think what exists?
23:21:56 <FreeFull> zzo38: Iteration with no fixed point?
23:22:14 <zzo38> FreeFull: No. I will tell you I am not using it for a computer program!
23:22:30 <FreeFull> Folding paper?
23:22:34 <zzo38> No
23:24:26 <FreeFull> No idea
23:26:06 <zzo38> To number the relatives to the prime material plane (which itself is relative!) in Icosahedral Role Playing Game.
23:26:28 <kmc> fungot: Боже мой
23:26:28 <fungot> kmc: to " print" statement should always remember the songs on p2p apps in scheme, besides, was not beyond normal credibility mightn't take his breath away: but i had to choose fnord, but don't
23:26:37 <Bike> ok, i have to hear about the icosahedral role playing game.
23:28:13 <zzo38> You can download it from my computer on port 70 on the selector string "phlog*c_dnd.icosahedral-rpg-i" (without the quotes) followed by CRLF for a bit of information.
23:28:20 -!- augur has quit (Remote host closed the connection).
23:28:33 <zzo38> It is very mathematical, for example the mathematical definition of a "mana" and a "multimana", of category theory, etc.
23:30:45 <FreeFull> mana ** mana
23:30:56 <FreeFull> mana !!!!!!!!!!!!
23:36:43 <Vorpal> <zzo38> Vorpal: Don't think what exists? <-- a completely standard conforming irc client
23:37:34 <zzo38> There are also template-spells, which means that some of the choices for the spell are selected when you learn the spell rather than when you cast the spell.
23:39:04 <zzo38> Vorpal: I try to make my program standard conforming; at least it conforms in ways others don't; and I think there must be others too even if the other ones are no longer maintained or whatever
23:40:35 <zzo38> A multimana is a multiset of manas.
23:42:20 <zzo38> A mana is a multiset of the elements (w), (u), (b), (r), and (g).
23:44:57 <zzo38> A mana X is less than or equal to Y iff the multiset X is a subset of Y.
23:49:18 -!- copumpkin has quit (Ping timeout: 245 seconds).
23:49:45 -!- copumpkin has joined.
23:56:02 <zzo38> The product of manas is their multiset sum. The sum of multimanas is their multiset sum.
23:56:45 <Bike> it conforms in ways others don't <-- I guess that about sums up the problem.
2013-02-04
00:11:32 <zzo38> It conforms as far as I know, but I may have missed something.
00:19:47 <quintopia> zzo38: what is it that you call a magician that is a master of spells that affect metamagical effects?
00:22:03 <Jafet> A hofstadter
00:22:09 -!- augur has joined.
00:23:07 <Jafet> (Hofstadters sail on the H.S. Metametamagical?)
00:23:25 <Bike> 'patamagician
00:23:29 <Bike> or an asshole
00:23:54 <elliott> 'patamagician or Asshole: a good board game
00:27:01 -!- augur has quit (Remote host closed the connection).
00:36:32 <zzo38> quintopia: I am thinking, "'patamagician"
00:37:18 <Jafet> @google 'patamagician
00:37:19 <lambdabot> http://www.india-forums.com/forum_posts.asp?TID=3420418&TPN=34
00:38:03 <Bike> after 'pataphysics.
00:43:03 <FreeFull> Metagian
00:43:17 <FreeFull> Metarrer
00:43:29 <FreeFull> Pitterpatter?
00:43:59 <Sgeo> <Sgeo> I said maybe... that's just what will give me the option... some or none, nothing more to say
00:44:09 * Sgeo is not especially funny but he tries
00:47:33 * oerjan hits Sgeo with a plastic Yoda
01:11:14 <zzo38> Multimanas form a semiring, and signed multimanas form a ring. And then there is a partial ordering on multimanas as well; if X is less than or equal to Y, and X is the cost of the spell and Y is what you have, then you have sufficient mana to cast the spell.
01:13:49 -!- oleg has joined.
01:17:53 <zzo38> Is this sensible to you?
01:18:33 <elliott> `welcome oleg
01:18:35 <HackEgo> oleg: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
01:21:41 <kmc> from moldova!
01:21:45 <kmc> welcome oleg
01:25:09 -!- Arc_Koen has left.
01:35:27 -!- oleg_ has joined.
01:43:50 <kmc> power went out at the super bowl
01:44:17 <kmc> hacked by chinese
01:45:17 <monqy> that's the thing with the ball and the feet right
01:46:17 <kmc> hand egg
01:46:33 <monqy> ohhh that's what "hand egg" is about
01:46:38 <kmc> the ball is egg shaped and you're not allowed to use your foot except in special cases
01:46:49 <monqy> i heard about that thing and it sounded vaguely familiar but i somehow forgot
01:47:09 <monqy> something about dead horses, monoids
01:47:28 <kmc> actually it's not egg shaped because it's radially symmetric, also the shape of eggs varies widely according to the species of bird (nests on cliffs = less spherical egg so it will roll in circles rather than off the cliff)
01:48:02 <monqy> footballs are a bit pointier than eggs, and don't crack so easy
01:48:11 <kmc> anyway the super bowl is most recognizable as the day when nerds in america go around loudly proclaiming to nobody in particular that nothing interesting is happening today
01:48:43 <Bike> soon it will be the day when nerds go around talking about how nerds go around playing anti-football
01:48:52 <Sgeo> kmc, grah. Funnier than my FB status, which ... tried to get a similar point across but failed
01:49:11 <Phantom_Hoover> kmc, you can stop now
01:49:18 <Phantom_Hoover> (the superbowl is today?)
01:49:29 <Sgeo> "So, is this the time of year when I post a snarky comment about not watching football to self-identify with the crowd of people who is bizarrely proud of themselves for not knowing about football?"
01:49:34 <Sgeo> ^^my status :/
01:49:41 <Bike> seriously we're getting meta here
01:50:00 <kmc> Bike: as long as we don't go plaid
01:50:19 <kmc> the version i liked (from twitter) was "Is there some sort of tedious symbolic distancing from mainstream American culture going on today?"
01:50:35 <kmc> anyway I guess the backlash against nerd backlash against sports is over and we'll start with the backlash against that
01:50:51 <kmc> even mako's blog post acknowledges that football is violent and ugly
01:50:52 <monqy> has anyone considered apathy
01:50:59 <Bike> can we just like, watch football
01:51:03 <Phantom_Hoover> kmc, why do you say this like it is a bad thing
01:51:06 <monqy> i don't want to watch football
01:51:10 <oerjan> monqy: we never bothered
01:51:14 <kmc> also i did enjoy the smbc comic about brickbrain
01:51:14 <Phantom_Hoover> personally i am all for rugby and derivative sports
01:51:16 <Bike> we could also not watch football
01:51:21 <Bike> either is fine
01:51:55 <pikhq> Now would be a bad time to watch football, anyways.
01:52:02 <pikhq> Stadium had a power fault.
01:52:05 <Phantom_Hoover> kmc, i can't tell
01:52:07 <Phantom_Hoover> if you're being serius
01:52:10 <Phantom_Hoover> *ous
01:52:20 <kmc> serious like a fox
01:52:31 -!- olsner has quit (Ping timeout: 245 seconds).
01:52:42 <Phantom_Hoover> man
01:53:21 <Phantom_Hoover> i was going to be all like "omg i'm on smbc? wait shit let me express my casual contempt for it"
01:53:37 <kmc> it's not about you sorry
01:53:44 <kmc> and it was 'headbrick' not 'brickbrain'
01:53:52 <kmc> this channel's memes are more powerful
01:53:53 <kmc> http://www.smbc-comics.com/?id=2778
01:53:57 <Phantom_Hoover> scaugh
01:54:12 <Phantom_Hoover> (idk what the proper onomatopoeia for that noise is)
01:54:23 <Sgeo> pikhq, not sure if power is back on or if ... what it's supposed to look like at full power
01:54:24 <kmc> the noise of a brick going into a brain?
01:54:26 <Sgeo> There are lights on
01:54:47 <pikhq> Sgeo: The lights they use, use a lot of power to start.
01:55:01 <pikhq> So they are having to slowly bring up power to the lights to not kill the entire stadium again.
01:55:11 <Bike> kmc: the comic's nice in that it mentions a social issue instead of just "wow sports are dumb am i right"
01:55:18 <kmc> yeah
01:56:05 <Phantom_Hoover> oh shit it's 2
01:56:39 <Phantom_Hoover> sports are so stupid
01:56:40 <Phantom_Hoover> discuss
01:56:43 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:56:58 <monqy> bye ph
01:57:03 <Bike> which is kind of nice for smbc in general i guess
01:57:12 <Bike> [xkcd comparison]??
01:57:26 <kmc> did ph ragepeer
01:57:41 <Bike> i think he just pseudotrolled as he quit
01:57:52 <kmc> k
01:58:01 <kmc> xkcd sometimes does social issuse
01:59:48 <kmc> not sure that smbc is actually higher average quality than xkcd, but it annoys me less because people take it less seriously, or something
02:00:01 <kmc> though maybe that's all over and nobody gives three shits anymore
02:01:03 <kmc> not a single fuck was given that day
02:01:47 <pikhq> I suspect the big thing is that SMBC is not above dick jokes. :P
02:05:25 -!- olsner has joined.
02:07:15 -!- Applejacques has changed nick to TwilightSpockle.
02:18:59 <kmc> true, there are no actual dongs in the infamous xkcd #631 (nsfw)
02:19:41 <kmc> also a wonderful goatkcd
02:36:02 -!- Mathnerd314 has quit.
02:36:22 -!- Mathnerd314 has joined.
02:45:19 -!- augur has joined.
02:51:54 -!- azaq23 has quit (Read error: Connection reset by peer).
02:53:53 <oerjan> `fueue $3~)%[~[$7~~()+-~)])+-1*256]+---255~:)~[)] [64]
02:54:04 <oerjan> oops
02:54:24 <HackEgo> A
02:54:40 <oerjan> ah it didn't matter
02:55:22 <oerjan> `fueue $3~)%[~[$7~~()+-~)])+-1*256]+---255~:)~[)[+32])] [64]
02:55:53 <HackEgo> a
02:56:33 -!- Mathnerd314_ has joined.
02:56:46 <oerjan> hm i guess it takes a long time because it waits for input
03:00:36 <oerjan> `fueue $3~)%[~[$7~~()+-~)])+-1*256]+---255~:)~[)$%0[H])[+32])] [64]
03:00:38 <HackEgo> a
03:00:56 <oerjan> `fueue $3~)%[~[$7~~()+-~)])+-1*256]+---255~:)~[)$%0[H])[+64])] [255]
03:00:57 <HackEgo> ​@
03:01:42 -!- Mathnerd314_ has quit (Remote host closed the connection).
03:02:12 <oerjan> `fueue ~[~~)+[$7~~()+-~)]--1*-256%]~)~:)~[)$%0[H])[+64])] [65]
03:02:13 <HackEgo>
03:02:21 <oerjan> ...eek?
03:02:46 <oerjan> oh duh
03:02:53 <oerjan> `fueue ~[~~)+[$7~~()+-~)]--1*-256%]~)~:)~[)$%0[H])[])] [65]
03:02:55 <HackEgo> ​@
03:03:58 <oerjan> `fueue 128 H
03:03:59 <HackEgo>
03:04:12 <oerjan> that's... a little weird.
03:04:40 <oerjan> oh hm
03:06:06 <oerjan> `echo Ø
03:06:07 <HackEgo> ​Ø
03:10:54 <oerjan> `run perl -e 'printf "\200"'
03:10:55 <HackEgo>
03:11:09 <oerjan> `run perl -e 'print "\200"'
03:11:11 <HackEgo>
03:12:02 <oerjan> `ord Ø
03:12:04 <HackEgo> 216
03:12:43 <oerjan> > showOct 216 ""
03:12:45 <lambdabot> "330"
03:12:49 <oerjan> `run perl -e 'print "\330"'
03:12:50 <HackEgo>
03:14:46 <oerjan> ok i guess that looks weird in my client because it has HackEgo's zero-width space in utf8 followed by something not legal in utf8
03:15:03 <oerjan> `run perl -e 'print "A\330"'
03:15:04 <HackEgo> A
03:15:30 <oerjan> `run perl -e 'print "A\200"'
03:15:32 <HackEgo> A
03:17:36 <oerjan> `fueue ~[~~)+[$7~~()+-~)]--1*-256%]~)~:)~[)$%0[H]+-190)] [0]
03:17:37 <HackEgo> A
03:18:03 <oerjan> `fueue ~[~~)+[$7~~()+-~)]--1*-256%]~)~:)~[)$%0[H]+-190)] [1]
03:18:05 <HackEgo> B
03:20:52 -!- oleg__ has joined.
03:21:23 <oerjan> `fueue ~[~~)+[$7~~()+-~)]--1*-256%]~)~:)~[[H]):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]] [65]
03:21:25 <HackEgo> 64
03:21:30 <oerjan> `fueue ~[~~)+[$7~~()+-~)]--1*-256%]~)~:)~[[H]):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]] [1]
03:21:32 <HackEgo> 0
03:21:34 <oerjan> `fueue ~[~~)+[$7~~()+-~)]--1*-256%]~)~:)~[[H]):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]] [0]
03:21:36 <HackEgo> 255
03:33:41 <kmc> 'print "\330"' gives me characters which I am sending back (in UTF-8) as '​Ø'
03:34:28 <shachaf> g'daygan
03:34:36 <kmc> I guess my client decides that the entire line must be Latin-1 because it doesn't decode as UTF-8
03:34:56 <shachaf> Yes, that's standard IRC procedure.
03:35:11 <shachaf> lambdabot doesn't do it, which has let to some confusion in the past.
03:36:19 <kmc> or actually Windows-1252 i think
03:36:23 <kmc> Latin-1 doesn't have ‹
03:36:53 <shachaf> how do i unmess up my sleep schedule :'(
03:37:17 <monqy> that's a good question for elliott
03:37:22 <kmc> encoding on http://idlewords.com/2011/08/why_arabic_is_terrific.htm is still broken :(
03:37:28 <monqy>
03:37:37 <kmc> i Reported the Bug and everything
03:37:45 <elliott> also a good question for monqy
03:38:00 <shachaf> :˙.)
03:39:11 <kmc> shachaf: drugz
03:39:47 <shachaf> is there a question they won't answer??
03:40:05 <kmc> "name something that isn't drugz"
03:40:18 <shachaf> are drugs drugz
03:40:47 <kmc> what about drukqs
03:41:51 <shachaf> even better
03:42:07 <monqy> :☺)
03:42:10 -!- augur has quit (Read error: Connection reset by peer).
03:42:18 <shachaf> fractal monqy??????
03:42:45 -!- augur has joined.
03:43:27 <shachaf> I just woke up. :-(
03:43:50 <shachaf> I was going to stay awake today but then elliott distracted me so I stayed home and then I fell asleep.
03:44:13 <monqy> :☹(
03:44:48 <shachaf> :🐱3
03:57:44 <ion> ಥ U+0CA5 CAT POOPING, FROM BEHIND
04:09:36 -!- augur has quit (Remote host closed the connection).
04:15:20 -!- copumpkin has quit (Ping timeout: 252 seconds).
04:15:51 -!- copumpkin has joined.
04:17:14 <zzo38> SQLite does not quite do what I wrote before about length of UTF-8 strings; it doesn't simply skip bytes in range 0x80 to 0xBF. And if you do need the number of bytes you can cast it to a blob.
04:19:52 <zzo38> Any parts which is improper UTF-8 (although I think it allows overlong and out of Unicode range encodings, maybe) is treated as single bytes encoding.
04:30:58 -!- RodgerTheGreat has quit (Quit: RodgerTheGreat).
04:46:39 -!- monqy has quit (Quit: hello).
04:54:19 -!- Bike has quit (Ping timeout: 246 seconds).
04:56:29 -!- Bike has joined.
05:02:24 <zzo38> SQLite is using RC4 for random number generator.
05:06:41 -!- augur has joined.
05:08:02 -!- augur has quit (Read error: Connection reset by peer).
05:08:08 -!- augur has joined.
05:10:02 -!- Bike has quit (Ping timeout: 240 seconds).
05:11:50 -!- Bike has joined.
05:18:18 -!- Sgeo has quit (Read error: Operation timed out).
05:18:39 -!- Sgeo has joined.
05:21:06 -!- oleg_ has quit (Ping timeout: 264 seconds).
05:21:06 -!- oleg has quit (Ping timeout: 264 seconds).
05:21:08 -!- oleg__ has quit (Ping timeout: 248 seconds).
05:31:04 -!- oerjan has quit (Quit: Good night).
05:31:06 -!- monqy has joined.
05:33:42 <tswett> So, a patent pretty much has to state exactly what types of objects infringe upon it, right?
05:36:46 <tswett> So if a patent says "dress-pins, hair-pins, &c., made from one entire piece of wire or metal, (without a joint or hinge, or any additional metal except for ornament,) forming said pin and combining with it in one and the same piece of wire, a coiled or curved spring, and a clasp or catch, constructed substantially as above set forth and described"...
05:36:59 <tswett> ...then an object infringes upon that patent if and only if it satisfies that description.
05:57:59 <elliott> ok
06:31:13 <ais523> yeah, but it's only the claims that matter for determining infringement
06:31:17 <ais523> and it only has to match one claim
06:31:29 <ais523> (that isn't invalid)
06:31:44 <ais523> typical patents have a bunch of claims at different levels of specificity
06:32:03 <ais523> in order to avoid having to work out where the dividing line between valid and invalid is, and yet still cover as many products as possible
07:07:48 -!- FreeFull has quit.
07:24:19 -!- asiekierka has quit (Excess Flood).
07:25:22 -!- asiekierka has joined.
08:10:02 <zzo38> Since ORDER BY will not make the order of side-effects in the order specified, I have implemented a FOREACH function which can be used to force the result in the specified order, for example: SELECT FOREACH({ SELECT `SPRITE`, `X`, `Y` FROM `DRAWINGS` WHERE `VISIBLE` ORDER BY `DENSITY` DESC; }, { SELECT DRAW_SPRITE(?1, ?2, ?3); }); but maybe they ought to have a better way.
08:20:52 <zzo38> Such as if they implemented a syntax like: SELECT UNOPTIMIZED DRAW_SPRITE(`SPRITE`, `X`, `Y`) FROM (SELECT `SPRITE`, `X`, `Y` FROM `DRAWINGS` WHERE `VISIBLE` ORDER BY `DENSITY` DESC);
08:38:44 <zzo38> Or perhaps have SELECT DEFERRED which acts like SELECT except that the result columns are not usable anywhere except during the result, and that DISTINCT is not allowed (neither rules applies to subqueries that don't say DEFERRED, though). Also, ORDER BY in a compound SELECT DEFERRED are not required to be aliases. (And as the first sentence says, no aliases are allowed at all.)
08:39:07 -!- Bike has quit (Quit: leaving).
08:41:31 <zzo38> Actually, that is wrong; compound SELECT DEFERRED statements should simply be disallowed (use a compound SELECT in the FROM clause if you need it, instead).
08:51:40 -!- Nisstyre-laptop has quit (Ping timeout: 244 seconds).
09:13:14 <fizzie> I have a feeling that things like that are not really "in the spirit of SQL", and the idea is that if you want to do something like that, you use the procedural facilities of your SQL implementation; a set of those are also part of the "SQL/PSM" standard, which itself is (I believe) part of the newer SQL standards.
09:14:56 <zzo38> It is SQLite.
09:15:22 <fizzie> Well, SQLite probably does not implement that.
09:15:39 <fizzie> The standard SQL/PSM way of doing something like that would, I think, be something like FOR sprite AS SELECT sprite, x, y FROM drawings WHERE visible ORDER BY density DESC DO BEGIN CALL DRAW_SPRITE(sprite.sprite, sprite.x, sprite.y); END.
09:16:27 <zzo38> I know SQLite does not implement that. However I have now written a (I think) complete proposal of how SELECT DEFERRED should act.
09:19:33 <zzo38> Actually I missed some things and am correcting it right now.
09:27:23 <zzo38> It is somewhat like how "volatile" in C or LLVM might affect what optimizations are performed.
09:28:33 <zzo38> * It can be used anywhere any other SELECT statement can be used.
09:28:41 <zzo38> * The keyword DEFERRED replaces the DISTINCT or ALL keyword (so you cannot be both DEFERRED and DISTINCT, although a DISTINCT query can read from a DEFERRED query or vice versa).
09:28:46 <zzo38> * A compound SELECT DEFERRED statement is not allowed.
09:28:51 <zzo38> * An aggregate SELECT DEFERRED statement is not allowed.
09:28:58 <zzo38> * The result columns cannot be referred to anywhere within the SELECT DEFERRED statement (whether by name or by number); this also implies that correlated subqueries are not allowed.
09:29:02 <zzo38> * Function calls and subqueries in the result set will not be duplicated or optimized out.
09:29:17 <zzo38> * The function calls and subqueries in the result set are not evaluated until the result rows are returned (such as by sqlite3_step), and are done exactly once in such circumstance, and will be evaluated from left to right. Since they are evaluated as they are being returned, they will also be always done in the order that sqlite3_step or whatever receives them, which is the order that the ORDER BY clause (if it exists) specifies and that the LIMIT and OFFSET
09:29:24 <zzo38> * If a FROM clause of a SELECT statement contains another SELECT statement (or a view), or a SELECT statement contains another SELECT statement as a subquery, and at least one of these SELECT statements is DEFERRED, then subquery flatting will be suppressed for this pair of SELECTs.
09:29:27 <zzo38> That is all.
09:30:44 <zzo38> Is it reasonable to you?
09:34:19 <fizzie> It doesn't sound unreasonable, but if your goal is for inclusion in the official SQLite, I'm not so sure if they'd be all that happy about the whole concept, as opposed to e.g. just doing that sort of stuff in the actual program that is retrieving the rows.
09:37:02 -!- ais523 has quit.
09:42:35 -!- DHeadshot has joined.
09:44:53 -!- monqy has quit (Quit: hello).
09:48:35 <zzo38> Except that in this case some of the stuff might be specified by the user, so I implemented this FOREACH function which does mostly what you described. Still, another thing that might work is to INSERT INTO an empty view, which has a trigger to call the actions needed (triggers are allowed to contain SELECT statements, possibly for this purpose).
10:34:44 -!- DHeadshot has quit (Ping timeout: 248 seconds).
10:47:06 -!- Arc_Koen has joined.
10:54:48 <Sgeo> Adrenaline-fueled nightmare woke me up :/
10:57:03 <ion> I don’t remember the last time i had a nightmare, except for one time when i was like 10 years old.
11:15:31 <Sgeo> I should probably go back to sleep
11:51:12 <zzo38> I found a bug in SQLite. It crashes if a trigger is using a binding parameter.
11:53:44 <ion> I’m not sure if lilafiguration on -blah is trolling or just not not paying much attention to what i say.
12:06:11 <Sgeo> zzo38, report the bug?
12:15:43 <Jafet> `welcome ion
12:15:49 <HackEgo> ion: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:16:47 <ion> THANKS!
12:16:49 <Deewiant> `welcome Jafet
12:16:52 <HackEgo> Jafet: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:17:23 <Jafet> wtf is "other kind of esoterica", sounds esoteric
12:27:29 -!- tromp_ has joined.
12:27:50 -!- oonbotti has quit (Ping timeout: 252 seconds).
12:27:50 -!- rodgort has quit (Ping timeout: 252 seconds).
12:28:33 -!- tromp has quit (Remote host closed the connection).
12:28:58 -!- rodgort has joined.
12:30:58 <Sgeo> Shave the whales
12:52:24 -!- ais523 has joined.
13:05:00 <zzo38> Sgeo: I am unable I don't have that account.
13:05:30 <Sgeo> Bring it up in their IRC channel then?
13:06:05 <zzo38> I don't know if they have IRC.
13:06:09 <fizzie> What does a binding parameter mean?
13:06:26 <fizzie> There are 78 people on freenode's #sqlite channel.
13:13:55 <Sgeo> Oh hey I found a job that is just SCREAMING Sgeo
13:14:26 <Sgeo> "We are currently looking for a Senior Geologist Code: SGEO to work in Indonesia. Learn more about this job opportunity in the mining industry."
13:23:13 -!- ais523_ has joined.
13:23:16 -!- ais523 has quit (Read error: Connection reset by peer).
13:28:03 -!- ais523_ has quit (Ping timeout: 248 seconds).
14:13:02 <Sgeo> http://zeroturnaround.com/jrebel/free-javarebel-for-scala-users-zeroturnaround-announces/
14:23:46 -!- boily has joined.
14:30:22 <quintopia> hi boily
14:35:54 <boily> hi quintopia!
14:49:24 <boily> 月曜日 コーヒーを飲む 雪である
15:15:17 -!- Taneb has joined.
15:26:44 <pikhq> うん、コーヒーが良い考え。
15:27:08 <pikhq> そして、この月曜日にコーヒーを作ろう。
15:38:48 -!- augur has quit (Remote host closed the connection).
15:38:48 -!- EgoBot has quit (Ping timeout: 240 seconds).
15:39:36 -!- EgoBot has joined.
15:49:02 -!- coppro has joined.
16:01:02 <Sgeo> https://github.com/twitter/bijection/issues/41
16:08:42 -!- FreeFull has joined.
16:10:52 <kmc> http://imgur.com/lM2MX4W
16:14:31 -!- augur has joined.
16:20:18 -!- Phantom_Hoover has joined.
16:28:25 <Taneb> "Regular Polish is quite different from South Polish. That's a lot colder and spoken by penguins"
16:30:17 <Sgeo> Remind me that I want to read http://www.scala-lang.org/docu/files/IC_TECH_REPORT_200433.pdf and http://www.scala-lang.org/docu/files/TheExpressionProblem.pdf
16:31:03 <shachaf> i love the expression problem
16:32:40 <boily> @tell Sgeo you are reminded that you want to read http://www.scala-lang.org/docu/files/IC_TECH_REPORT_200433.pdf and http://www.scala-lang.org/docu/files/TheExpressionProblem.pdf
16:32:40 <lambdabot> Consider it noted.
17:00:15 -!- Nisstyre has joined.
17:09:36 <kmc> what about reverse polish
17:15:16 <kmc> Debian: "A buffer overflow problem has been found in nagios3... A malicious client could craft a request to history.cgi and cause application crashes."
17:15:27 <kmc> MITRE: "Multiple stack-based buffer overflows... might allow remote attackers to execute arbitrary code"
17:19:00 -!- Bike has joined.
17:26:25 <TwilightSpockle> Email subject line: Important Information” Regarding Graduate Staff 2012-13 Continuation Insurance Benefit "IMPORTANT"
17:26:36 <TwilightSpockle> Why don't you know how to use quotes, random Internet person?
17:26:42 <TwilightSpockle> Why, why, why don't you know how to use quotes.
17:27:20 <Bike> this is a weird place to complain about the use of quotation marks
17:27:54 <shachaf> TwilightSpockle: This is hardly the channel to complain about quote misuse in!
17:28:06 <kmc> 'quote
17:28:11 <TwilightSpockle> Dahell.
17:28:18 <TwilightSpockle> This is, like, THE channel to complain about quote misuse.
17:28:22 <TwilightSpockle> Where the hell is pikhq.
17:28:59 <shachaf> `quote quote
17:29:01 <HackEgo> 30) <oklopol> i can get an erection out of a plank, you can quote me on that. \ 70) [Warrigal] `addquote <Dylan> hahaha, Lawlabee is running windows <Lawlabee> 'cuz it's pretty awesome. [Lawlabee] Warrigal: :( \ 71) Note that quote number 124 is not actually true. \ 79) <ais523> let's put that in the HackEgo quotes files, just to completely mystif
17:29:22 <Taneb> `quote 123
17:29:23 <shachaf> `quote 124
17:29:24 <HackEgo> 123) <ivancastillo75> Oh I get it you guys just use this space to do nothing ?
17:29:25 <HackEgo> 124) <Sgeo> Why shouldn't I just do everything in non-Microsoft-specific C#? <ais523> it's like trying to write non-IE-specific JavaScript with only Microsoft documentation and only IE to test on
17:29:26 <Taneb> `quote 123
17:29:27 <HackEgo> 123) <ivancastillo75> Oh I get it you guys just use this space to do nothing ?
17:29:28 <Taneb> aaah
17:29:31 <Taneb> I can't type today
17:29:45 <Taneb> `quote 125
17:29:47 <HackEgo> 125) (in #irp) <Sgeo> Flonk, ask on #esoteric? <Flonk> Sgeo: yeah well its C++, so not that esoteric :P
17:30:54 <shachaf> oerjan: Quote me a quote.
17:43:21 <Taneb> `quote Sgeo
17:43:23 <HackEgo> 54) <Sgeo> What else is there to vim besides editing commands? \ 68) <Sgeo|web> Where's the link to the log? <lament> THERE'S NO LOG. YOUR REQUEST IS SUSPICIOUS AND HAS BEEN LOGGED. \ 101) <pikhq> And... WTF is it doing. <pikhq> :( <Sgeo_> Is it sexing? \ 110) <coppro> what's the data of? [...] <Sgeo> Locations in a now deceased game called Muta
17:43:41 <Taneb> `quote shachaf
17:43:43 <HackEgo> 542) <shachaf> elliott: GHC bug? Come on, it's the parentheses. <shachaf> The more parentheses you add, the closer it is to LISP, and therefore the more dynamically-typed. \ 583) <shachaf> Real Tar is GNU tar. <shachaf> You just ignore whichever features don't make you feel superior enough. \ 617) <shachaf> VMS Mosaic? <shachaf> I hope that's no
17:47:42 -!- FreeFull has quit (Ping timeout: 276 seconds).
17:48:04 -!- FreeFull has joined.
17:51:21 <coppro> Taneb: `pastequote
17:51:25 <coppro> eg
17:51:28 <coppro> `pastequote Sgeo
17:51:29 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: pastequote: not found
17:51:41 <coppro> hrm
17:51:41 <coppro> `pastequotes Sgeo
17:51:43 <Taneb> That went well
17:51:46 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.20079
17:56:28 -!- AnotherTest has joined.
17:56:34 <AnotherTest> Hello
17:58:38 <shachaf> `delquote 583
17:58:44 <HackEgo> ​*poof* <shachaf> Real Tar is GNU tar. <shachaf> You just ignore whichever features don't make you feel superior enough.
18:00:03 <elliott> `revert
18:00:07 <HackEgo> Done.
18:00:21 <shachaf> I don't think that quote belongs there.
18:00:22 <shachaf> `delquote 583
18:00:26 <HackEgo> ​*poof* <shachaf> Real Tar is GNU tar. <shachaf> You just ignore whichever features don't make you feel superior enough.
18:01:03 <elliott> `revert
18:01:05 <HackEgo> Done.
18:01:09 * shachaf sighs.
18:01:13 <shachaf> thelliott
18:25:38 -!- RodgerTheGreat has joined.
18:32:37 <boily> what's a thelliott?
18:33:14 <AnotherTest> seems like the + elliott doesn't it?
18:33:22 <AnotherTest> Praise thelliott!
18:33:31 <RodgerTheGreat> the version of an elliott who follows a theist philosophy
18:33:53 <shachaf> `delquote 583
18:33:54 <RodgerTheGreat> as opposed to athelliott
18:33:58 <HackEgo> ​*poof* <shachaf> Real Tar is GNU tar. <shachaf> You just ignore whichever features don't make you feel superior enough.
18:34:02 <AnotherTest> there is only one thelliott, but there multiple aelliotts?
18:34:04 <Phantom_Hoover> boily, have you not watched look around you
18:34:10 <Phantom_Hoover> the solution: watch look around you
18:34:21 <AnotherTest> Heh, maybe elliott could consider AnotherElliott :p
18:34:21 <shachaf> good solution
18:34:46 <RodgerTheGreat> thanks, Phantom_Hoover. thphantomhoover.
18:35:16 <Phantom_Hoover> now shut up. thodger in advance
18:37:27 -!- ThatOtherPerson has changed nick to ZorkBot.
18:37:37 -!- ZorkBot has changed nick to ThatOtherPerson.
18:42:14 -!- carado has joined.
18:51:13 -!- ogrom has joined.
18:55:09 <impomatic> Quick poll: syntax highlighting - do you prefer a light or dark background?
18:55:52 <RodgerTheGreat> light, but it isn't terribly important to me
18:57:57 <kmc> background switching rapidly between primary red, green, and blue at about 3 Hz
18:58:36 <AnotherTest> I have my foreground and background colours switch every 5s
18:59:11 <AnotherTest> (implying I do not use syntax highlighting too)
19:00:32 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
19:02:22 <kmc> huh, in C++ if a lambda wants to modify its enclosing scope, it needs to be declared with the 'mutable' keyword
19:02:25 <kmc> i did not know
19:02:47 <Bike> i thought it was that you had to say which variables you wanted to capture, and whether it was by reference
19:02:58 <kmc> you do that too
19:03:07 <kmc> hmm
19:03:31 <kmc> oh i think it's slightly different
19:03:45 <kmc> you use 'mutable' if you want to capture by value, but allow the lambda to modify its /own/ scope between calls
19:04:12 <kmc> otherwise you get the original closed-over values on every call
19:04:13 <kmc> i think
19:04:26 <kmc> or you just can't modify them at all
19:04:31 <kmc> http://stackoverflow.com/questions/5501959/why-does-c0xs-lambda-require-mutable-keyword-for-capture-by-value-by-defau
19:06:20 <Bike> ...huh?
19:09:12 <kmc> huh what?
19:09:28 <Bike> i just don't understand that page
19:14:31 <Bike> oh, mutable lets you esbalish a new scope that you can still modify things in, i guess. weird
19:15:22 <coppro> kmc: no
19:15:31 <coppro> mutable and capture-by-value and capture-by-reference are orthogonal
19:16:02 <coppro> mutable is a const-safety thing; the by-value [foo] or by-reference [&foo] is an explicit reference thign
19:16:06 <coppro> *thing
19:26:30 <Sgeo> .
19:26:30 <lambdabot> Sgeo: You have 1 new message. '/msg lambdabot @messages' to read it.
19:26:34 <Sgeo> @messages
19:26:34 <lambdabot> boily said 2h 53m 53s ago: you are reminded that you want to read http://www.scala-lang.org/docu/files/IC_TECH_REPORT_200433.pdf and http://www.scala-lang.org/docu/files/TheExpressionProblem.
19:26:34 <lambdabot> pdf
19:26:46 <Sgeo> nice line breaking
19:31:13 <Sgeo> If a company called me as I was heading somewhere and I told them to call back at 5 and they said that's not too late, would it be a bad idea for me to call them before that?
19:31:32 <coppro> nah
19:33:23 -!- monqy has joined.
19:33:45 <kmc> they're going to call you at 5, but you want to call back before then?
19:33:45 <kmc> why?
19:35:15 <Sgeo> Because my estimate of "5" as the time that I'd be available was at the very late end, I'm available now
19:35:28 <kmc> but is it a great hardship for you to just take the call at 5?
19:35:31 <Sgeo> No
19:35:38 <kmc> then i would just keep things simple and do that
19:35:41 <Sgeo> Ok
19:43:10 -!- oerjan has joined.
19:50:36 -!- WeThePeople has joined.
19:52:33 -!- Phantom_Hoover has joined.
20:00:27 -!- oklofok has joined.
20:03:59 -!- oklopol has quit (Ping timeout: 260 seconds).
20:08:02 -!- WeThePeople has quit (Quit: Leaving).
20:14:33 -!- Bike has quit (Ping timeout: 256 seconds).
20:18:55 <oerjan> `printenv
20:18:56 <HackEgo> TERM=linux \ http_proxy=http://127.0.0.1:3128 \ HACKENV=/hackenv \ PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin \ PWD=/hackenv \ LANG=en_NZ.UTF-8 \ SHLVL=0 \ HOME=/tmp
20:20:16 <oerjan> `run printenv | tail
20:20:18 <HackEgo> TERM=linux \ http_proxy=http://127.0.0.1:3128 \ HACKENV=/hackenv \ PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin \ PWD=/hackenv \ LANG=en_NZ.UTF-8 \ HOME=/tmp \ SHLVL=1 \ _=/usr/bin/printenv
20:20:55 <elliott> I like how that somehow outputted more...
20:20:55 <oerjan> TwilightSpockle: just had an idea, what about putting the nick of the requester in some environment variable? could be useful.
20:21:09 <oerjan> oh hm
20:21:19 <TwilightSpockle> elliott: Because there's a shell sitting on top.
20:21:20 <oerjan> `run printenv | tail -1
20:21:21 <HackEgo> _=/usr/bin/printenv
20:21:29 <elliott> oh, right
20:21:39 <TwilightSpockle> In fact, I suspect...
20:21:40 <TwilightSpockle> `run printenv
20:21:42 <HackEgo> TERM=linux \ http_proxy=http://127.0.0.1:3128 \ HACKENV=/hackenv \ PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin \ PWD=/hackenv \ LANG=en_NZ.UTF-8 \ HOME=/tmp \ SHLVL=1 \ _=/usr/bin/printenv
20:21:44 <TwilightSpockle> Yup.
20:21:52 <TwilightSpockle> So you can distinguish ` from `run ;)
20:25:15 <kmc> coppro: can you elaborate on what mutable for a closure means?
20:25:17 -!- Bike has joined.
20:28:31 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
20:29:20 -!- Phantom_Hoover has joined.
20:48:07 -!- AnotherTest has quit (Quit: Leaving.).
21:01:06 -!- myndzi has quit (Ping timeout: 276 seconds).
21:02:29 -!- myndzi has joined.
21:02:32 <kmc> `run printf 'GET http://google.com HTTP/1.1\r\nHost: google.com\r\n\r\n' | nc 127.0.0.1 3128
21:02:34 <HackEgo> HTTP/1.0 301 Moved Permanently
21:03:20 <Bike> wat
21:03:36 <kmc> `run printf 'CONNECT google.com:80 HTTP/1.1\r\n\r\n' | nc 127.0.0.1 3128
21:03:37 <HackEgo> HTTP/1.0 403 Forbidden
21:04:08 <elliott> is kmc hacking the ego
21:04:11 <ion> `run printf 'GET http://www.google.com/ HTTP/1.1\r\nHost: www.google.com\r\n\r\n' | nc 127.0.0.1 3128
21:04:12 <TwilightSpockle> `run curl http://google.com/
21:04:14 <HackEgo> HTTP/1.0 200 OK
21:04:15 <HackEgo> ​ % Total % Received % Xferd Average Speed Time Time Time Current \ Dload Upload Total Spent Left Speed \
21:04:32 <Bike> what the hell is connect
21:04:33 <TwilightSpockle> Not quite sure why it's only giving one line...
21:04:35 <kmc> why is it only printing the response line
21:04:40 <TwilightSpockle> Mayhaps it doesn't like \r?
21:04:41 <Bike> oh boy tunneling
21:04:44 <kmc> Bike: used to proxy arbitrary TCP streams through HTTP proxies
21:04:50 <kmc> designated use: SSL
21:04:50 <TwilightSpockle> `run echo -e 'Hello\r\nworld'
21:04:52 <HackEgo> Hello
21:04:54 <kmc> actual use: sending spam, hacking the gibson
21:04:55 <TwilightSpockle> Wow.
21:04:59 <Bike> fuck yeah
21:05:00 <TwilightSpockle> It doesn't like \r. Surprising :)
21:05:07 <kmc> isn't \r standard?
21:05:10 <kmc> or am i smoking the crack
21:05:11 <ion> `run printf '\r\n' | hd
21:05:13 <HackEgo> 00000000 0d 0a |..| \ 00000002
21:05:17 <ion> It’s fine.
21:05:18 -!- asiekierka has quit (Disconnected by services).
21:05:21 -!- zzo38 has left.
21:05:28 <Bike> \r\n terminates irc lines doesn't it
21:05:49 <shachaf> `run printf 'hi \r ho'
21:05:50 <HackEgo> hi
21:06:02 <ion> HackEgo replaces newlines with \ and other control characters with something safe.
21:06:07 <ion> Or at least i thought so.
21:06:07 <shachaf> Oh.
21:06:08 <kmc> oh man i did not know that hd is a canonical synonym for hexdump -C
21:06:13 <kmc> fantastic
21:06:17 <kmc> thion
21:06:20 <ion> I suppose \r confuses it after all.
21:06:32 <ion> you’re wmc
21:06:54 -!- asiekierka_ has joined.
21:06:58 <shachaf> Works better with rwbarton.
21:07:07 <Bike> you're wwbarton?
21:07:52 <ion> – Thank’s.
21:07:54 <ion> – Your welcome.
21:07:55 -!- copumpkin has quit (Ping timeout: 260 seconds).
21:08:26 -!- copumpkin has joined.
21:09:59 <TwilightSpockle> I'm really, really hoping this doesn't do anything:
21:10:12 <TwilightSpockle> `run echo -e 'Ruh roh\rPRIVMSG #esoteric :Oh god no'
21:10:14 <HackEgo> Ruh roh
21:10:21 <TwilightSpockle> *breathes a sigh of relief*
21:10:42 <TwilightSpockle> I guess the \r is just going through unmodified, and freenode goes "lol, wtf is this"
21:10:45 <kmc> ion: *glare*
21:11:29 <ion> `run echo -e '\r\n' | hd
21:11:30 <HackEgo> 00000000 0d 0a 0a |...| \ 00000003
21:14:26 <elliott> `run echo -e 'hi\r\nQUIT :hi'
21:14:27 <HackEgo> hi
21:14:29 <elliott> im sad
21:14:36 <elliott> `run echo -e 'hi\r\rQUIT :hi'
21:14:37 <HackEgo> hi
21:14:40 <elliott> `run echo -e 'hi\r\r\rQUIT :hi'
21:14:41 <HackEgo> hi
21:33:37 <oerjan> `fueue )$$7--1[)[[H] ):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]]])[~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:] [64]
21:33:38 <HackEgo> 65
21:33:43 <oerjan> `fueue )$$7--1[)[[H] ):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]]])[~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:] [255]
21:33:45 <HackEgo> 0
21:33:50 <Taneb> Hackego has Fueue now?
21:33:57 <oerjan> yeah i added it
21:34:23 <Taneb> Does it work?
21:34:34 <oerjan> yes
21:35:00 <Taneb> `fueue [[)[~~~~()+1])])][[)$-----~1-[~:)~)[)[~:)~)]~:]:]~[~[$~H~~%~+])~48-):])~)~:])][)~[0]])$0
21:35:02 <HackEgo> ​...........................................................................................................................................................................................................................................................................................................................................................
21:35:14 <oerjan> what was that again
21:35:26 <Arc_Koen> judging by the 48 I'd say Thue-Morse
21:35:35 <Taneb> Truth Machine
21:35:40 <oerjan> you'd expect a 49 too then
21:35:53 <Arc_Koen> yeah I'd expect a 49 for the truth-achine as well
21:36:01 <Taneb> `fueue 48 ~!~)): [[48 [)):] [~!~)):] ~~) !][49 [~!~)):] [)):] )~]]
21:36:03 <HackEgo> 01101001100101101001011001101001100101100110100101101001100101101001011001101001011010011001011001101001100101101001011001101001100101100110100101101001100101100110100110010110100101100110100101101001100101101001011001101001100101100110100101101001100101101001011001101001011010011001011001101001100101101001011001101001011010011001011010010110011010
21:36:09 <Arc_Koen> and what was that line of dots? ARE YOU SAYING MY INTERPRETER DOESN'T WORK?
21:36:19 <oerjan> `run echo 0 | fueue '[[)[~~~~()+1])])][[)$-----~1-[~:)~)[)[~:)~)]~:]:]~[~[$~H~~%~+])~48-):])~)~:])][)~[0]])$0'
21:36:21 <HackEgo> ​...........................................................................................................................................................................................................................................................................................................................................................
21:36:30 <oerjan> `run echo 1 | fueue '[[)[~~~~()+1])])][[)$-----~1-[~:)~)[)[~:)~)]~:]:]~[~[$~H~~%~+])~48-):])~)~:])][)~[0]])$0'
21:36:32 <HackEgo> ​...........................................................................................................................................................................................................................................................................................................................................................
21:36:41 <oerjan> hm that's not very nice
21:36:49 <Taneb> `run echo 1 | fueue '[[)[~~~~()+1])])][[)$-----~1-[~:)~)[)[~:)~)]~:]:]~[~[$~H~~%~+])~48-):])~)~:])][)~[0]])$'
21:36:51 <HackEgo> 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
21:36:56 <Taneb> `run echo 0 | fueue '[[)[~~~~()+1])])][[)$-----~1-[~:)~)[)[~:)~)]~:]:]~[~[$~H~~%~+])~48-):])~)~:])][)~[0]])$'
21:36:58 <HackEgo> 0
21:37:06 <oerjan> oh
21:37:09 <Taneb> Tacking the input on the end does not always work
21:37:10 <Arc_Koen> much better :)
21:37:29 <oerjan> Taneb: especially not when you are attack a 0 rather than the ascii value for 0 hth
21:37:33 <oerjan> *-ing
21:37:37 <Taneb> I SUPPOSE
21:37:44 <oerjan> *attaching
21:37:49 <Taneb> `fueue [[)[~~~~()+1])])][[)$-----~1-[~:)~)[)[~:)~)]~:]:]~[~[$~H~~%~+])~48-):])~)~:])][)~[0]])$48
21:37:50 <HackEgo> 0
21:37:52 <Taneb> `fueue [[)[~~~~()+1])])][[)$-----~1-[~:)~)[)[~:)~)]~:]:]~[~[$~H~~%~+])~48-):])~)~:])][)~[0]])$49
21:37:54 <HackEgo> 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
21:39:40 <Arc_Koen> oerjan: when you write "hth", is it "happy to help" or "hope that helps"?
21:39:46 <Taneb> Which interp is this?
21:39:48 <Taneb> The C one?
21:40:03 <oerjan> Arc_Koen: hope this helps
21:40:05 <Arc_Koen> try --print
21:40:07 <oerjan> Taneb: yes
21:40:14 <Arc_Koen> arg
21:40:19 <elliott> Arc_Koen: hagrid thinks happily
21:40:27 <Arc_Koen> I have been reading you as "happy to help" for so long now
21:40:37 <Arc_Koen> thank you elliott
21:40:44 <Taneb> Does it make that much difference?
21:40:45 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
21:40:52 <oerjan> `run fueue --print '72 105 H'
21:40:54 <HackEgo> ​ 72 105H \ H 105H \ iH
21:40:59 <elliott> the difference is that oerjan is never happy
21:41:14 <oerjan> that is not true. it's just much rarer than i like.
21:41:21 * Taneb hugs oerjan in a doomed attempt to make him happy
21:41:38 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAAa IT BUUUURNS
21:41:43 -!- Phantom_Hoover has joined.
21:41:51 <Arc_Koen> are we still in the harry potter metaphore
21:42:23 <elliott> yes
21:45:46 <Phantom_Hoover> what is harry potter a metaphore
21:45:56 <monqy> yes
21:46:37 <olsner> are we having fun yet?
21:48:19 <Phantom_Hoover> yes
21:48:27 <olsner> great!
21:49:24 <elliott> no
21:49:51 <boily> maybe.
21:51:31 <kmc> harry potter is a semaphore
21:53:22 <ion> harry potter is an insectivore
21:53:43 <boily> harry potter is a copper ore.
21:54:17 <Phantom_Hoover> harry potter is a morator-ium
21:54:34 <kmc> dumbledoreivore
21:56:07 <boily> could an organism evolve quickly enough so that adapting its diet towards dumbledores result in a genetic advantage?
21:56:35 <Bike> magic radiation is known to have evolved wandavores, anything is possible!!
21:56:51 <Taneb> boily, there were those wasps that changed colour
21:56:59 <Taneb> Or were they moths
21:57:06 <boily> ah? I don't recall anything about them.
21:58:49 <Phantom_Hoover> moths
21:59:06 <Phantom_Hoover> http://en.wikipedia.org/wiki/Peppered_moth_evolution
21:59:50 <boily> ah! so it got nothing to do with dumbledoring. I was confused for a while, there.
22:00:13 <boily> or it has something to do. just that dumbledores are not part of our universe (yet).
22:00:32 <Phantom_Hoover> there was also that mosquito in the london underground
22:00:34 -!- augur has quit (Remote host closed the connection).
22:01:17 <Bike> underground mosquitos are some crazy shit
22:01:33 <boily> the london underground looks like a dangerous place enough without any mutant maringouins to boot.
22:02:00 -!- copumpkin has quit (Ping timeout: 264 seconds).
22:02:01 <boily> I like my sub-zero climate in our metro just fine, thank you very much.
22:02:29 <Phantom_Hoover> they live in lots of metro systems
22:02:31 -!- copumpkin has joined.
22:03:15 <Bike> hm, no silly conspirabiology for the moths, darn
22:03:55 <oerjan> `fueue )$$6-%0[)[[H] ):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]]])[~~~)*[)~(:+~~-)+1]---256%):] [65]
22:03:57 <HackEgo> 64
22:04:00 <oerjan> `fueue )$$6-%0[)[[H] ):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]]])[~~~)*[)~(:+~~-)+1]---256%):] [0]
22:04:06 <HackEgo> 255
22:04:16 <oerjan> `fueue )$$6-%0[)[[H] ):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]]])[~~~)*[)~(:+~~-)+1]---256%):] [0]
22:04:17 <HackEgo> 255
22:04:18 <boily> `learn conspirabiology is where moth colourings form a dot matrix display to send you subliminal messages.
22:04:22 <HackEgo> I knew that.
22:04:25 -!- boily has quit (Quit: Poulet!).
22:04:31 <Bike> nice
22:06:30 -!- WeThePeople has joined.
22:07:12 -!- Taneb has quit (Quit: Leaving).
22:07:57 <Sgeo> help I haven't received a call should I call them?
22:08:27 <elliott> is it 5
22:08:40 <Sgeo> it's 8 past 5
22:08:47 <elliott> oh no 8 past 5
22:10:23 <Arc_Koen> Sgeo: who didn't call you today?
22:10:50 <Sgeo> Potential employer
22:11:09 <Sgeo> They called me while I was waiting for a cab to meet up with a friend, so I asked if 5 would be too late, they said no
22:12:13 <Arc_Koen> well I'd be tempted to say yes
22:12:27 <Arc_Koen> unless you are very worried they might think you're impatient
22:13:40 <oerjan> bets on Sgeo being very worried
22:14:17 <Sgeo> I just called
22:14:23 <Sgeo> They just wanted my email address
22:14:32 <Sgeo> Thought it was going to be a long conversation and discussion
22:15:11 <Sgeo> (my email address should be on my resume, so not sure what happened)
22:15:29 <Sgeo> Also the job is in the same town as my step-mom. Recipe for pain and misery?
22:15:35 <elliott> sounds like great fun
22:18:03 <Sgeo> does node.js even count as a language
22:18:11 <Arc_Koen> yeah people tend to do that
22:18:19 <Sgeo> "Our ideal candidate can demonstrate a
22:18:20 <Sgeo> practical knowledge of at least one of the following languages {Node.js, Java, Perl,
22:18:20 <Sgeo> PHP}."
22:18:42 <Arc_Koen> last emplyer called me to request a meeting... during which they only asked for my birthdate and address
22:18:54 <Arc_Koen> to fill in some papers
22:20:05 <Arc_Koen> Sgeo: though if they don't even need to talk *but* need your email address... doesn't that mean they already know they want you?
22:20:48 <Sgeo> It's a recruiter I think. They wanted to send me a job description
22:21:01 <Sgeo> And he wants my resume as a Word document :/
22:21:18 <Sgeo> (Well, Job Description says resume as Word document, he didn't ask me specifically)
22:21:23 <Arc_Koen> that must be why they need someone with some computer science skills...
22:22:08 <Arc_Koen> btw how is "node.js" a language? that sounds more like a file
22:22:24 <monqy> what sorta film
22:22:28 <kmc> Arc_Koen: heh
22:22:34 <monqy> documentary? exposee? snuff?
22:22:47 <kmc> in the JavaScript community you put a .js onto the name of everything
22:22:54 <kmc> software, conferences, babies, etc
22:23:12 <monqy> oh, i read file as film????somehow
22:23:46 <Arc_Koen> babies? "little kmc junior.js"
22:23:48 <kmc> i would say node.js counts as a language, since it specifies a particular dialect of javascript and a standard library (file IO etc) that isn't part of JS itself
22:24:02 <kmc> also if you just ask "JavaScript" people will assume you mean client side JS and DOM stuff
22:26:00 <Sgeo> wtf is "story estimation"
22:26:17 <monqy> estimation of story
22:26:23 <kmc> google it
22:26:30 <elliott> isnt this google
22:26:47 <kmc> it's a step of some particular flavor of agile dogma snakeoil
22:26:54 <monqy> @hoogle story estomation
22:26:54 <lambdabot> No results found
22:26:56 <monqy> help???
22:27:35 <elliott> @google agile dogma snakeoil
22:27:38 <lambdabot> http://blog.ablepear.com/2012/01/avoid-agile-dogma-recommendations-not.html
22:27:56 <Sgeo> "We use a hybrid XP agile model: 2 week cycles, user focused iteration
22:27:56 <Sgeo> planning, and process focused retrospectives."
22:28:22 <elliott> this sounds like a gr8 job
22:28:47 <monqy> does xp stand for "xtreme programming"
22:29:09 <elliott> it stands for experience points
22:29:11 <elliott> sgeos gonna level up
22:29:12 <Sgeo> Also pair programming, which doesn't sound that bad really
22:29:24 <Sgeo> I think XP is where you write tests first?
22:29:26 <monqy> pear programming................................
22:29:48 <monqy> https://upload.wikimedia.org/wikipedia/commons/4/44/XP-feedback.gif extreme!!!!
22:29:50 -!- augur has joined.
22:31:16 <elliott> extreme sphere
22:31:26 <elliott> journey 2 tha xtreme programming sphere of jupita
22:31:39 <kmc> jupiter and beyond the infinite
22:31:55 <kmc> Sgeo: i recall people talking about XP long before i recall them talking about TDD
22:32:24 <kmc> pair programming is one of those things which sounds horrid, but several very smart friends swear by it, so I'm confused
22:33:35 <Sgeo> It doesn't sound horrid to me
22:33:53 <Sgeo> Then again, I usually make a few dozen mistakes while writing code :(
22:34:07 <Sgeo> per some unit amount of code
22:37:12 -!- ogrom has quit (Quit: Left).
22:37:55 <olsner> pair programming: http://www.youtube.com/watch?v=u8qgehH3kEQ
22:39:16 <oerjan> `queue )$--%0[)[)$--%0[)[ [H]):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]] ]])[))(($3~)<(] ]])[))(($3~)<(] [64][[65][H]][[66][[67]<:[[0]<:]]]
22:39:18 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: queue: not found
22:39:25 <oerjan> `fueue )$--%0[)[)$--%0[)[ [H]):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]] ]])[))(($3~)<(] ]])[))(($3~)<(] [64][[65][H]][[66][[67]<:[[0]<:]]]
22:39:45 <oerjan> `echo hi
22:39:47 <HackEgo> hi
22:39:55 <oerjan> eek
22:39:57 <HackEgo> 67
22:40:01 <oerjan> `fueue )$--%0[)[)$--%0[)[ [H]):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]] ]])[))(($3~)<(] ]])[))(($3~)<(] [64][[65][H]][[66][[67]<:[[0]<:]]]
22:40:32 <HackEgo> 67
22:41:16 <oerjan> `run yes | fueue ')$--%0[)[)$--%0[)[ [H]):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]] ]])[))(($3~)<(] ]])[))(($3~)<(] [64][[65][H]][[66][[67]<:[[0]<:]]]'
22:41:19 <HackEgo> 67y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \
22:41:43 <oerjan> oh duh
22:42:18 <elliott> feue looks compmicaleiotnsctaefd
22:42:25 <oerjan> yes.
22:42:55 <oerjan> and when you accidentally fail to make your program halt, it turns into a cat and HackEgo takes a _long_ time to finish
22:43:27 -!- augur_ has joined.
22:44:57 -!- augur has quit (Read error: Connection reset by peer).
22:46:10 <oerjan> `fueue )$--%0[)[)$--%0[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H] ]])[))(($3~)<(] ]])[))(($3~)<(] [64][[65][H]][[66][[67]<:[[0]<:]]]
22:46:12 <HackEgo> 67
22:46:23 <oerjan> there i got the [H] in the right place
22:46:27 <elliott> whats the goal
22:46:58 * oerjan mysterious
22:48:16 <elliott> helap
22:49:21 <oerjan> `fueue )$--%0[)[)$--%0[)[)$$7--1[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H] ]])[~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:] ... ]])[))(($3~)<(] ]])[))(($3~)<(] [64][[65][H]][[66][[67]<:[[0]<:]]]
22:49:23 <HackEgo> FUEUE: UNKNOWN . OP \ FUEUE: UNKNOWN . OP \ FUEUE: UNKNOWN . OP \ 68
22:49:39 <oerjan> Arc_Koen: AHEM
22:49:54 <oerjan> oh forgot quotes
22:50:01 <oerjan> `fueue ')$--%0[)[)$--%0[)[)$$7--1[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H] ]])[~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:] ... ]])[))(($3~)<(] ]])[))(($3~)<(] [64][[65][H]][[66][[67]<:[[0]<:]]]'
22:50:03 <HackEgo> FUEUE: UNKNOWN ' OP \ FUEUE: UNKNOWN . OP \ FUEUE: UNKNOWN . OP \ FUEUE: UNKNOWN . OP \ FUEUE: UNKNOWN ' OP \ 68
22:50:04 <Arc_Koen> I didn't do it!
22:50:08 <oerjan> um no
22:50:10 <elliott> wow thats some good error reportinge
22:50:10 <Bike> good language
22:50:17 <fizzie> THAT'S A LOUD LANGUAGE.
22:50:30 <oerjan> oh there's a ... in there
22:50:55 <Arc_Koen> well the report was explicit wasn't it
22:51:09 <oerjan> `fueue )$--%0[)[)$--%0[)[)$$7--1[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H] ]])[~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]]])[))(($3~)<(] ]])[))(($3~)<(] [64][[65][H]][[66][[67]<:[[0]<:]]]
22:51:11 <HackEgo> 68
22:51:18 <oerjan> Arc_Koen: right, now i see
22:51:20 <Bike> nice
22:51:27 <Arc_Koen> I'm not sure what that 68 is, though
22:51:35 <oerjan> it's the 67, incremented
22:51:45 <Arc_Koen> oh, good then
22:51:52 <oerjan> i'm emulating bf >>+. :)
22:52:22 <Bike> concise, logical, and adaptable
22:52:58 <oerjan> although the . replacment prints in decimal for debugging convenience
22:53:06 <oerjan> *+e
22:53:41 <Arc_Koen> ok that's comforting
22:55:26 <oerjan> `fueue )$--%0[)[)$--%0[)[)$$6-%0[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H] ]])[~~~)*[)~(:+~~-)+1]---256%):] ]])[))(($3~)<(] ]])[))(($3~)<(] [64][[65][H]][[66][[67]<:[[0]<:]]]
22:55:27 <HackEgo> 66
22:55:37 <oerjan> testing >>-. instead
22:56:34 <oerjan> Bike: a good deal of extra verboseness comes from doing +- (mod 256)
22:58:58 -!- carado has quit (Ping timeout: 246 seconds).
23:04:42 <oerjan> `fueue )$--%0[)$--%0[)$$6-%0[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H] ]])[~~~)*[)~(:+~~-)+1]---256%):] ])[))(($3~)<(] ])[))(($3~)<(] [64][[65][H]][[66][[67]<:[[0]<:]]]
23:04:44 <HackEgo> 66
23:06:59 <oerjan> `fueue )$--%0[)$--%0[)$$7--1[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H] ]])[~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:] ])[))(($3~)<(] ])[))(($3~)<(] [64][[65][H]][[66][[67]<:[[0]<:]]]
23:07:01 <HackEgo> 68
23:18:29 -!- WeThePeople has quit (Quit: Leaving).
23:19:40 <oerjan> `fueue )$--%0[)$--%0[)$$7--1[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H] ]])[~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:] ])[))(($3~)<(] ])[))(($3~)<(] [64][[65][H]][[0]<:[[0]<:]]
23:19:42 <HackEgo> 1
23:21:01 <oerjan> i think at least [[0]<:[[0]<:]] is fairly concise for an infinite stack of 0's.
23:30:37 <oerjan> `fueue )$--%0[)$--%0[)$$7--1[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H] ]])[~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:] ])[~~)<~~~(] ])[~~)<~~~(] [0][[2]<:[[4]<:]][[6]<:[[8]<:]]
23:30:38 <HackEgo> 5
23:44:17 <oerjan> `fueue )$%0[)$--%0[)$%0[)$--%0[)$%0[)[33 H] ])[):] ])[~~)<~~~(] ])[):] ])[~~)<~~~(] ])[):] [48][[50]<:[[52]<:]][[54]<:[[56]<:]]
23:44:18 <HackEgo> 024!
23:47:28 <kmc> CREATE INDEX CONCURRENTLY USING gin
23:48:22 -!- daniela1 has joined.
23:48:28 -!- daniela1 has left.
23:51:33 -!- zzo38 has joined.
23:52:50 <zzo38> Nobody has even replied about my SELECT DEFERRED suggestion, although I have found other things people did where such a thing would be useful for them too in the same way.
23:54:19 <zzo38> I did try the #sqlite channel but they didn't reply. I asked them various other questions too but they replied to nothing except the bug report.
2013-02-05
00:00:04 -!- augur_ has quit (Remote host closed the connection).
00:30:14 -!- icarot has joined.
00:31:48 -!- jconn has quit (Ping timeout: 248 seconds).
00:34:07 <icarot> I know nothing of this channel, but after reading the logs with topic jumps to Russian, logic gates, opaque puns - and who even knows what else - I had to come here.
00:34:26 <elliott> `welcome icarot
00:34:28 <HackEgo> icarot: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
00:34:35 <elliott> usually I'd expect the logs to drive people away
00:35:22 <icarot> It must have been an unusual log, then. Or maybe it's just me.
00:35:36 <monqy> hicarot
00:35:38 <monqy> :-)
00:35:46 <Bike> well, oerjan's been messing with intercal for the last twenty minutes
00:35:56 <elliott> there was intercal?
00:35:56 <icarot> Hallo.
00:36:01 <elliott> I thought it was just Fueue
00:36:04 <Bike> fueue, intercal, same shit
00:36:52 <oerjan> i haven't messed with intercal for a decade
00:37:07 <icarot> It sounds scary.
00:37:37 <Bike> COME FROM is an integral part of nondeterministic programming
00:38:01 <oerjan> http://oerjan.nvg.org/esoteric/intercal/
00:39:06 <Bike> "please read me a story"
00:40:06 <elliott> I love oerjan's comments in that program
00:40:12 <elliott> and also everything else
00:40:16 <Bike> galois field mines
00:41:00 <elliott> monqy: have you read it? you should
00:41:25 <monqy> ive read parts of it
00:41:27 <monqy> it's really good
00:41:52 <oerjan> ...are you still talking about my interpreter
00:41:59 <elliott> yes
00:42:02 <oerjan> wow
00:43:18 <oerjan> the galois field was nice
00:56:45 <shachaf> hi icarot
00:56:52 <shachaf> `wehlcohme icarot
00:56:55 <HackEgo> ihcahroht: Wehlcohme to the ihntehrnahtiohnahl huhb fohr ehsohtehrihc prohgrahmmihng lahnguahge dehsihgn ahnd dehployhmehnt! Fohr mohre ihnfohrmahtiohn, chehck ouht ouhr wihki: http://ehsohlahngs.ohrg/wihki/Maihn_Pahge. (Fohr the ohthehr kihnd ohf ehsohtehrihca, try #ehsohtehrihc ohn ihrc.dahl.neht.)
01:22:33 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:23:23 -!- Bike_ has joined.
01:23:31 -!- Bike has quit (Ping timeout: 240 seconds).
01:37:28 -!- augur has joined.
01:37:32 -!- sirdancealot has quit (Ping timeout: 255 seconds).
01:40:02 -!- sirdancealot has joined.
01:42:38 -!- azaq23 has joined.
01:44:46 -!- Arc_Koen has quit (Quit: Arc_Koen).
02:25:26 -!- Bike_ has changed nick to Bike.
02:28:13 <kmc> http://upload.wikimedia.org/wikipedia/commons/6/65/Fucking_map.png
02:29:04 <Bike> They should upload a cleaner version...
02:29:19 <kmc> yeah look at those jpeg artifacts in a png :(
02:29:44 <Bike> it's simplistic enough to be a svg, really
02:29:45 <kmc> i wonder if there is research into fancy ways of de-jpegifying line art
02:30:44 <shachaf> http://rentheatmap.com/sf.html
02:45:50 -!- WeThePeople has joined.
02:47:33 <kmc> yes
02:48:50 <Lumpio-> One area looked really cheap at first but it turned out to be a lake
02:48:55 <Lumpio-> Wonder if you can rent an apartment on the lake
02:49:37 <shachaf> Nothing wrong with living in lakes.
02:50:29 <kmc> shachaf: http://i.imgur.com/uwtBNUf.png
02:51:01 <Bike> ha.
02:51:12 <shachaf> KMC IS TOO DAMN HIGH
02:51:24 <shachaf> Hmm, your nick looks weird in uppercase.
03:09:45 <kmc> Lumpio-: haha
03:09:49 <kmc> well http://www.lrb.co.uk/v35/n03/rebecca-solnit/diary does talk about "water plots"
03:12:21 <zzo38> What does the "S.A.C." Fieldata code mean?
03:12:51 <Lumpio-> You sure do ask the most random questions.
03:13:00 <shachaf> fungot's are even more random
03:13:00 <fungot> shachaf: more simply put: siod sucks as a general purpose ( similar, and i'd like to see that mystical forest powers, but this time on the impact of the introduction to theoretical computer, fnord of the fnord here, just above me, asked me to do that in the " better" language
03:13:09 <shachaf> fungto: that's not a question..................................................
03:13:13 <shachaf> fungot: that's not a question..................................................
03:13:14 <fungot> shachaf: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube with this jaybad... he is like the punching him? does it involve? doing it the way you would calibrate a normal. pm showed the bq a parking citation. if confronted, you will say you are only here to deliver a message and then i'll put his shit.... w.t.f lol
03:13:43 <shachaf> fungot: ?
03:13:43 <fungot> shachaf: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube* 54, 55, 56, 57, as bryant still had his glory days ahead of them must have brought it with blood is, he's a total of two conversion rates, in that line, that i have gone totally wanting, and then you can choose fnord, but don't
03:13:49 <shachaf> fungot: what's going on
03:13:49 <fungot> shachaf: i just wrote :p ( what was i thinking there.... :d
03:14:12 <oerjan> ^style
03:14:12 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot* homestuck ic irc iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
03:14:49 <shachaf> Oh.
03:14:53 <shachaf> ^style irc
03:14:53 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
03:15:34 <shachaf> fungot: riddle me a riddle
03:15:52 <shachaf> fungot: draw me a sheep
03:15:57 <shachaf> Hmph.
03:37:32 -!- jconn has joined.
03:42:42 <kmc> baaah
03:43:29 <shachaf> kmc: did you read that book
03:43:45 <kmc> which
03:43:58 <shachaf> either the one i mentioned the other day
03:44:00 <shachaf> or the little prince
03:44:13 <kmc> probably not
03:45:07 -!- WeThePeople has quit (Quit: Leaving).
03:53:26 -!- trout has quit (*.net *.split).
03:53:26 -!- Deewiant has quit (*.net *.split).
03:53:26 -!- Sanky has quit (*.net *.split).
03:57:01 -!- variable has joined.
03:59:59 -!- Deewiant has joined.
04:32:49 -!- TeruFSX has joined.
04:40:30 -!- RodgerTheGreat has quit (Quit: RodgerTheGreat).
05:02:03 -!- icarot has quit (Quit: leeave()).
05:02:17 -!- icarot has joined.
05:07:18 -!- icarot has quit (Ping timeout: 276 seconds).
05:11:14 <quintopia> hi shachaf
05:11:19 <quintopia> shichaf
05:11:28 <shachaf> ^rot13 shichaf
05:11:28 <fungot> fuvpuns
05:11:40 <shachaf> ^rot13 sighchaf
05:11:40 <fungot> fvtupuns
05:11:44 <shachaf> ^rot13 shychaf
05:11:44 <fungot> fulpuns
05:12:30 <shachaf> ^rot13 fulcra
05:12:31 <fungot> shypen
05:13:04 <quintopia> yhichaf
05:13:29 <quintopia> yhishachaf
05:13:57 -!- Bike has quit (Quit: Reconnecting).
05:13:59 <shachaf> yhelloquintopia
05:14:00 -!- Bike_ has joined.
05:14:20 <quintopia> ^rot13 yhelloquintopia
05:14:20 <fungot> luryybdhvagbcvn
05:14:34 <oerjan> ^rot13 wat
05:14:35 <fungot> jng
05:14:48 <quintopia> ^rot13 jpg
05:14:48 <fungot> wct
05:14:59 <quintopia> ^rot13 png
05:14:59 <fungot> cat
05:15:21 <oerjan> use cat for all your image compression needs
05:16:00 <quintopia> cat oerjan > yhishachaf.png
05:16:13 <shachaf> I thought png should be used to compress pictures of cats.
05:18:10 -!- oerjan has quit (Quit: Good night).
05:19:47 -!- TeruFSX has quit (Ping timeout: 260 seconds).
05:19:48 <quintopia> use cats to compress pictures of pngs
05:58:49 <monqy> shachaf was there any context for that
05:59:02 <shachaf> monqy for what
05:59:11 <monqy> monoids
05:59:20 <shachaf> monqy dont cross-post................................................
05:59:35 -!- Frooxius has quit (Ping timeout: 256 seconds).
05:59:37 <shachaf> monqy: also im an addict
05:59:42 <shachaf> you might say im
05:59:48 <shachaf> er
05:59:51 <monqy> i thought it'd be """""ironic""""""
05:59:54 <shachaf> you might say that im talking about
05:59:59 <shachaf> ...
06:00:01 <shachaf> addictive monoids
06:00:14 <zzo38> What are addictive monoids?
06:00:26 <monqy> it's a pun, zzo
06:00:31 <shachaf> monoids that use a + and give you the first hit for free
06:00:33 <monqy> a bad pun, shachaf
06:00:40 <shachaf> a fun pun, monqy
06:01:10 <shachaf> monqy: the """""""ironic' part is that i crosspost sometimes??
06:01:17 <monqy> yes
06:01:17 <shachaf> monqy: also why are you reading #haskell but not talking
06:01:23 -!- Bike_ has changed nick to Bike.
06:01:26 <monqy> sometimes i say something!!!!
06:01:48 <monqy> i think i said something today? maybe??? or was that just yesterday
06:02:07 <shachaf> say more things
06:02:14 <shachaf> "we all appreciate your valuble contributions"
06:02:19 <shachaf> (well at least i do??)
06:03:00 <monqy> ah yes today i gave a pointer on "map . map", yesterday I said something about pts, and a while ago it was.....catMaybes?
06:03:11 <shachaf> @ty map . map
06:03:13 <lambdabot> (a -> b) -> [[a]] -> [[b]]
06:03:18 <shachaf> @ty traverse . traverse
06:03:20 <lambdabot> (Applicative f, Traversable t1, Traversable t) => (a -> f b) -> t (t1 a) -> f (t (t1 b))
06:03:39 <shachaf> @ty (=<<) . (=<<)
06:03:41 <lambdabot> Monad m => (a -> m b) -> m (m a) -> m b
06:03:45 <shachaf> @ty foldMap . foldMap
06:03:46 <lambdabot> (Foldable t1, Foldable t, Monoid m) => (a -> m) -> t (t1 a) -> m
06:03:57 <monqy> good signatures?
06:03:57 <shachaf> cóóincidence?
06:04:07 <shachaf> @ty foldl . foldl
06:04:09 <lambdabot> (a -> b -> a) -> a -> [[b]] -> a
06:04:25 <shachaf> monqy: edwardk has been doing """awful things with these signatures
06:04:33 <monqy> how awful
06:04:39 <shachaf> cpp hacks awful
06:04:46 <monqy> that's pretty awful
06:04:47 <shachaf> and rewrite rules/?
06:04:54 <monqy> that's pretty awful too
06:05:05 <shachaf> and making performance changes with no benchmarks
06:05:38 -!- oonbotti has joined.
06:24:31 <shachaf> monqy: would it be better if i quit monoids
06:25:12 <monqy> probably
06:29:39 <zzo38> CPP is bad for Haskell due to the different comment syntax and the different use of apostrophes, and the different use of a backslash for line endings.
06:41:41 <ion> foldMap all the way down
06:42:26 <shachaf> I kind of wish Foldable required Functor. :-(
06:43:12 <ion> I heard you like maps, so i put a Functor in your Functor so you can fmap while you fmap.
06:46:12 <zzo38> But there might be some data types which can be foldable but not functor? (such as some GADTs)
06:46:42 <shachaf> Hmm, maybe GADTs are a good counterargument?
06:55:07 <zzo38> I think Foldable could be made to be defined in terms of toList; and I think there is a free theorem which makes it equivalent (specifically, that [] is a free monoid, which makes it a backward monoid transformer).
06:58:41 <zzo38> Do you think I am correct?
07:01:16 <elliott> it's not very good to define Foldable in terms of toList
07:01:23 <elliott> since you lose tree structure
07:04:09 <zzo38> But Foldable is forced to lose tree structure anyways due to associativity of monoids.
07:05:46 <elliott> yes, but part of the reason it's so nice is that you can rely on the balancedness of it when folding e.g. a tree
07:05:53 <elliott> if you have, say, a monoid you use for searching for something in a tree
07:06:20 <elliott> then a toList based version will have worse asymptotic performance
07:07:10 <zzo38> Yes, that can be a good reason not to define a Foldale instance in terms of toList. But that doesn't mean it is not mathematically equivalent.
07:19:31 <elliott> sure
08:02:24 <Sgeo> Maybe the math should be made to include performance complexity things
08:02:45 <Bike> psh, engineer
08:02:53 <Sgeo> 'a':"b" as not equivalent to "a"++"b" despite the same result
08:03:09 <Bike> wait why not
08:04:45 <Sgeo> Presumably there should be language support, time and space complexity in the types
08:04:45 <Sgeo> I have no idea how this would work though
08:07:38 <monqy> what are you talking about
08:08:46 <Sgeo> I want to be preventing from writing foo x = length x while accidentally assuming that foo x has O(1) time complexity
08:08:55 <Sgeo> I want the type checker to catch that
08:09:12 <Sgeo> And only successfully type check if I state that it has O(n) time complexity
08:09:23 <Bike> wow that sounds really weird
08:09:29 <Bike> like really incredibly what
08:11:12 <Sgeo> Prevent people from misunderstanding the time and space complexity of the algorithms they use
08:11:29 <Sgeo> So if something needs to run fast, they can be assured that it will run the way they expect
08:11:33 <Bike> haven't you heard cache locality makes O times obsolete
08:12:27 <elliott> Sgeo: you realise "a" ++ x and 'a' : x have the same time complexity right
08:12:33 <elliott> just really tiny different constant factors
08:12:42 <elliott> and optimised away completely by any half-decent compiler
08:12:50 <Bike> yeah what is that even, i'm confused
08:12:57 <Sgeo> elliott, hmm, ok
08:13:02 <Sgeo> bad example
08:13:15 <Bike> it's frickin haskell, optimize that shit
08:48:57 -!- Bike has quit (Quit: warning).
08:52:34 -!- FreeFull has quit (Quit: Bye).
08:53:18 -!- azaq23 has quit (Quit: Leaving.).
09:34:00 -!- carado has joined.
09:55:04 -!- Sanky has joined.
10:05:23 -!- SimonRC has quit (Ping timeout: 260 seconds).
10:05:39 -!- SimonRC has joined.
10:06:15 -!- zzo38 has quit (Remote host closed the connection).
10:20:03 -!- zzo38 has joined.
11:00:54 <Jafet> size_t strlen(char const*) __attribute__((DUDE_MOVE_THIS_OUT_OF_YOUR_LOOP_HEADER))
11:13:52 <fizzie> __attribute__ ((optimize ("inline-small-functions", "inline-functions"), always_inline, inline_or_i_kill_you)).
11:18:41 -!- zzo38 has quit (Remote host closed the connection).
11:56:28 -!- asiekierka_ has quit (Quit: ZNC - http://znc.sourceforge.net).
11:59:54 -!- asiekierka has joined.
12:02:30 -!- oonbotti has quit (Ping timeout: 240 seconds).
12:13:24 -!- Lumpio- has quit (Ping timeout: 248 seconds).
12:21:29 -!- monqy has quit (Quit: hello).
12:40:10 -!- Lumpio- has joined.
13:13:41 -!- Frooxius has joined.
13:16:23 -!- sebbu has quit (Ping timeout: 245 seconds).
13:39:50 -!- sebbu has joined.
13:39:51 -!- sebbu has quit (Changing host).
13:39:51 -!- sebbu has joined.
13:42:17 -!- copumpkin has quit (Ping timeout: 252 seconds).
13:42:47 -!- copumpkin has joined.
13:47:39 -!- Arc_Koen has joined.
13:56:59 -!- Arc_Koen has quit (Quit: The struct held his beloved integer in his strong, protecting arms, his eyes like sapphire orbs staring into her own. "W-will you... Will you union me?").
13:57:24 -!- Arc_Koen has joined.
13:57:55 <Arc_Koen> hello people
14:01:47 -!- boily has joined.
14:36:03 <boily> quintopia: hi!
15:08:10 <Sgeo> So much for not allowing myself to use the computer until noon
15:08:39 <elliott> its ok
15:08:40 <elliott> its 15:08
15:09:20 <boily> it's not ok, it's 10:08.
15:09:57 <elliott> sorry about your incorrect timezone
15:10:31 <shachaf> @globaltime
15:10:35 <lambdabot> Local time for shachaf is Tue Feb 5 07:10:31 2013
15:10:39 <shachaf>
15:10:40 -!- Phantom_Hoover has joined.
15:10:50 <shachaf> That's the Global Time™
15:11:08 <boily> @globaltime
15:11:11 <lambdabot> Local time for boily is Tue, 05 Feb 2013 10:11:09 -0500
15:13:42 <boily> my Globolocaltime© is better than yours :p
15:14:00 <shachaf> I get three more hours every day...
15:21:45 <Sgeo> "and then, if you have a class which mixes in these traits, there are special rules which impl wins, depending on the order of the mixins"
15:21:50 <Sgeo> Give me Ada please
15:22:08 * Sgeo retreats back into the safety of a language that's supposed to make no assumptions
15:23:18 * boily pellets Sgeo with tidbits of PHP, just to keep him insane enough
15:23:19 <shachaf> hi Sgeo
15:23:27 <shachaf> So you like Ada after all?
15:23:45 <Sgeo> I still don't know Ada
15:24:07 <Sgeo> But it gave me a taste of disliking when languages make assumptions and the programmer has to guess at what it will assume
15:24:56 <shachaf> You should learn it a bit.
15:25:09 <shachaf> It's hardly fair to use it as an argument against other languages when you don't know it.
15:29:48 <Sgeo> I know 1<2 and 2>0 or 3<4 is invalid
15:29:50 <Sgeo> hth
15:30:25 -!- augur has quit (Remote host closed the connection).
15:30:29 <shachaf> You know how it's case-insensitive?
15:31:06 <Sgeo> Now I do. Makes sense though.
15:32:27 <quintopia> hi quintopia
15:32:31 <quintopia> hi boily
15:38:34 -!- carado has quit (Ping timeout: 246 seconds).
15:56:10 <kmc> "languages make assumptions and the programmer has to guess at what it will assume"
15:56:13 <kmc> isn't that
15:56:14 <kmc> every language
15:56:26 <kmc> except that you shouldn't "guess" you should understand
15:56:32 <shachaf> Every language but Ada.
15:56:39 <kmc> every language but sgeolang?
15:57:14 <shachaf> There is no language but Ada and Sgeo is its prophet.
15:57:26 <kmc> clearly
16:07:33 -!- hagb4rd has joined.
16:09:05 -!- epicmonkey has joined.
16:10:07 <hagb4rd> fiat lux
16:16:26 <hagb4rd> it even works. they finally managed to put me back online. i didn't even notice i haven't payed payed my electricity bills for months
16:17:50 <hagb4rd> maybe because i always pay once a year. but they seemed to change their policy.. and they have good argues
16:21:32 -!- Taneb has joined.
16:30:37 -!- hagb4rd2 has joined.
16:31:08 -!- hagb4rd has quit (Disconnected by services).
16:31:13 -!- hagb4rd2 has changed nick to hagb4rd.
16:41:43 <Sgeo> "So, unless first-class modules are something you get excited about, or you need Java interop for something, Scala isn't really worth the effort if you're already using Haskell, except as another excuse for broadening your experience of languages."
16:41:54 <Sgeo> First-class modules ARE something I get excited about!
16:42:37 <kmc> unless you need to work with other people or with existing code, Scala isn't worth the effort
16:42:56 -!- sirdancealot has quit (Ping timeout: 255 seconds).
16:43:13 <kmc> but a singular Haskell Genius can replace any code or person in O(1) time so it's fine
16:43:49 -!- sirdancealot has joined.
16:44:18 <boily> kmc: can a haskell genius replace himself?
16:44:54 <kmc> in O(0) time
16:45:14 <Sgeo> Scala's delimited continuation stuff in and of itself is interesting to me
16:45:19 <Sgeo> More-so than a Cont monad
16:46:32 <kmc> i didn't even know it has that
16:46:41 <kmc> it also has subtyping
16:46:54 <kmc> i find subtyping kind of gross, but i don't think it's wrong in principle for someone to find it interesting
16:47:04 <kmc> or "exciting" in words of the OP
16:47:24 <boily> I still haven't grokked the Cont monad. perhaps because I haven't seen it yet used in the wild.
16:48:36 <shachaf> I've been trying to figure out subtyping recently.
16:49:00 <shachaf> I bet it could be really good.
16:49:34 <Sgeo> kmc, I think this is utterly awesome https://github.com/urso/embeddedmonads
16:50:23 -!- augur has joined.
16:56:22 <kmc> shachaf: isn't it great that my org.cups.sid cookie is sent to every other localhost: app i visit?
16:57:03 <Sgeo> How many localhost apps is kmc using?
16:57:09 <kmc> a few
16:57:40 <shachaf> kmc: Cookies are shared between ports?
16:57:47 <kmc> apparently
16:58:06 <shachaf> I assumed they weren't, like JavaScript cross-domain things aren't.
16:58:10 <shachaf> But I guess I'm wrong.
16:58:18 <shachaf> Are you investigating cupsd?
16:58:18 <kmc> never assume two Web security rules are consistent
16:58:22 <kmc> or one rule between browsers
16:58:22 <kmc> no
16:58:33 <kmc> i just noticed that the CUPS cookie keeps getting sent to the Django webapp I'm developing
16:58:45 <shachaf> Ah.
16:58:50 * shachaf sighs.
16:59:03 <shachaf> kmc: On the other hand, most people never visit their localhost cups server.
16:59:32 <shachaf> Which means that when you want to try to CSRF it, you can just connect and have it choose the cookie based on time()!
16:59:59 <shachaf> I should report that.
17:00:06 <shachaf> And also the several other issues I've found.
17:00:21 <kmc> yes
17:00:23 <kmc> do it
17:00:34 <shachaf> Hmm, I still have a file with various notes in it.
17:01:14 <kmc> full-disclosure@
17:01:15 -!- AnotherTest has joined.
17:01:17 <kmc> the lazy option
17:01:21 <AnotherTest> hello
17:09:19 <olsner> Hi.
17:11:20 <shachaf> holsner
17:11:38 <shachaf> Have you considered changing your name to olster?
17:13:44 <quintopia> hi
17:14:11 <olsner> when I get old I might change it to oldster
17:15:12 <hagb4rd> getting old is easy
17:15:53 <quintopia> you could move to northern ireland and change it to ulster
17:16:20 <olsner> isn't ireland full of IRA and terrorists?
17:17:14 <quintopia> isn't IRA terrorists?
17:17:32 <Taneb> Some of them are
17:17:44 <Taneb> Some of them are also "serious" "politicians"
17:18:04 <hagb4rd> they seem not have enough options for enemies on that island.. so they just get down to kill each other
17:18:50 <hagb4rd> i mean wan't that a conflict between catholics and protestants? (originally)
17:19:14 <hagb4rd> i mean, thank god they found a reason
17:20:13 <hagb4rd> but that's human nature. if there were no problems we would have to invent them
17:20:28 <kmc> i'm not sure to what degree it's actually a religious conflict and to what degree it's a conflict between two communities who happen to have different religions
17:20:49 <kmc> isn't it mostly about whether to be part of the UK or not
17:20:58 <hagb4rd> i guess it's not religious at all
17:21:02 <kmc> this is a common fallacy though
17:21:04 <hagb4rd> maybe it was once
17:21:17 <kmc> americans tend to assume that the arab-israeli conflict is some millenia old religious conflict
17:21:28 <kmc> they don't understand how much of it dates back only to 1948
17:22:17 -!- DHeadshot has joined.
17:22:33 <TwilightSpockle> Um, wut? Not all of us are that stupid.
17:22:40 <hagb4rd> they fight for jerusalem since the city was founded
17:22:52 <hagb4rd> and it
17:22:53 <TwilightSpockle> We decided it would be pretty cool to oust a bunch of people from their homes and move people of a conflicting religion in, then just sort of leave it and laugh from the sidelines.
17:22:58 <TwilightSpockle> Definitely a recipe for success.
17:23:04 <kmc> TwilightSpockle: i said "tend to" not "all americans believe this only"
17:23:23 <TwilightSpockle> (Although really we didn't "oust" them so much as they self-ousted when it was obvious that we fully intended to oust them)
17:26:47 <kmc> i disagree that it's a 'conflicting religion' though, except in specific cases like the temple mount
17:26:57 <kmc> jews and muslims live together peacefully in many parts of the world
17:27:02 -!- sebbu2 has joined.
17:27:11 <hagb4rd> yess.. back then, the reasons for the conflict might have been "constructed" and instrumentalized.. but after all that blood was shed, it is a real conflict.. you can't tell who started it, and maybe you're not even interested since your beloved once got killed by a bomb at breakfast on sunday morning
17:27:15 <kmc> places where the communities coexist organically rather than one being installed by force and then subjugating the other
17:27:17 -!- sebbu2 has quit (Changing host).
17:27:17 -!- sebbu2 has joined.
17:27:30 <kmc> hagb4rd: yeah
17:28:02 <olsner> ah, TwilightSpockle is indeed who I thought it was
17:28:08 <kmc> "Don't matter who did what to who at this point. Fact is, we went to war, and now there ain't no going back. I mean, shit, it's what war is, you know? Once you in it, you in it. If it's a lie, then we fight on that lie. But we gotta fight."
17:28:42 <TwilightSpockle> Who else would I be?
17:28:43 -!- sebbu has quit (Ping timeout: 272 seconds).
17:42:20 -!- hogeyui has quit (Ping timeout: 255 seconds).
17:48:19 -!- sebbu2 has changed nick to sebbu.
17:49:07 -!- azaq23 has joined.
17:49:17 -!- azaq23 has quit (Max SendQ exceeded).
17:51:35 -!- azaq23 has joined.
17:54:42 -!- AnotherTest has quit (Quit: Leaving.).
17:54:52 -!- AnotherTest has joined.
17:55:53 <kmc> http://t.co/adQRhvXD
18:06:27 -!- hogeyui has joined.
18:07:45 -!- hagb4rd has quit (Ping timeout: 256 seconds).
18:15:40 -!- Bike has joined.
18:23:21 -!- sirdancealot has quit (Ping timeout: 245 seconds).
18:24:08 -!- ais523 has joined.
18:31:32 -!- Nisstyre-laptop has joined.
18:36:48 -!- sirdancealot has joined.
18:44:53 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
18:46:41 <fizzie> kmc: According to W|A, "F/NaN C" is "69 755 K^2/nAn (kelvins squared per nanoan) (with temperatures converted to kelvins)".
18:50:32 <fizzie> (Apparently "an" is a unit of electric current, with 1 An = 0.1602177 A = 0.01602177 emus of current.)
18:50:57 <TwilightSpockle> "emus of current"?
18:51:01 <TwilightSpockle> Are those the kind that kick?
18:51:11 <fizzie> TwilightSpockle: "unit officially deprecated", sadly.
18:51:25 <TwilightSpockle> Damn!
18:51:34 <shachaf> Aren't miles officially deprecated too?
18:51:43 -!- FreeFull has joined.
18:51:57 <TwilightSpockle> They can take our furlongs and fortnights, but how DARE they take our emus.
18:52:44 <shachaf> i think we still have fortnights TwilightSpockle......................................
18:53:12 <kmc> is emu from cgs?
18:53:16 <TwilightSpockle> I think that ellipsis indicates that you paused for a fortnight...
18:53:23 <fizzie> kmc: Apparently so.
18:53:28 <fizzie> "ElectroMagnetic Unit".
18:53:50 <fizzie> "The EMU unit of current, biot (Bi), also known as abampere or emu current, --"
18:53:52 <kmc> cgs is wacky
18:54:07 <kmc> cgs units have different dimension from SI units for ostensibly the "same quantity"
18:54:53 <kmc> something something permittivity of free space something intro physics pass/fail
18:55:02 -!- Phantom_Hoover has joined.
18:55:44 <fizzie> "Furthermore, within CGS, there are several plausible choices of electromagnetic units, leading to different unit "sub-systems", including Gaussian, "ESU", "EMU", and Heaviside–Lorentz. Among these choices, Gaussian units are the most common today, and in fact the phrase "CGS units" is often used to refer specifically to CGS-Gaussian units."
18:55:51 <fizzie> It sounds all very sensible and wise.
18:56:11 <kmc> yeah i think i mean gaussian cgs
18:56:25 <kmc> whatever Purcell, Electricity and Magnetism uses
18:56:27 <Sgeo> Why do I always use the royal we when describing how my code works, in, say, a comment?
18:56:33 <Phantom_Hoover> I like the fact that measuring the electric constant doesn't count as an experiment any more.
18:56:39 <Sgeo> I am turning into Oleg
18:56:47 <kmc> Sgeo: common practice in academic writing
18:56:50 <Phantom_Hoover> Sgeo, why do you expect us to introspect for you?
18:57:14 <fizzie> "We" is somewhat unroyal in any paper with more than one author, though.
18:57:16 -!- stuntaneous has joined.
18:57:36 <kmc> i usually use either the academic 'we' or imperative statements with no subject ('// frob the woznitzes')
18:57:53 <kmc> i'll use 'I' when I'm talking specifically about me, rather than a notional reader or executor of the code
18:58:03 <Phantom_Hoover> what pronoun do a group of royals use to refer to themselves?
18:58:11 <kmc> so things like "// I couldn't make this work" or "// I have no idea why this is so fucked"
18:58:15 <fizzie> Even if there's just one guy doing all the work, and a couple of bureaucratic supervisors tagging their names on it, there's still nominally a group to talk about.
18:59:35 <fizzie> Phantom_Hoover: Maybe they use the "royal I", then.
18:59:46 <Phantom_Hoover> oh
18:59:49 <Phantom_Hoover> didn't think of that
18:59:51 <Phantom_Hoover> clever
18:59:56 <TwilightSpockle> Ha
19:01:44 <Sgeo> oh god why am I watching Star Trek bloopers bloopers ruin the magic
19:01:49 <shachaf> Academic "we" = "the author and the reader"
19:01:53 <shachaf> Nothing royal about it.
19:01:57 <TwilightSpockle> Um, no?
19:02:01 <TwilightSpockle> Academic "we" = the authors.
19:02:19 <shachaf> Or author.
19:02:20 <TwilightSpockle> And potentially non-author members of the research team.
19:02:31 <shachaf> I guess "we show that ..." doesn't really work with my interpretation. :-(
19:02:34 <Bike> Sgeo: http://www.youtube.com/watch?v=KgspzYMdqdc
19:03:19 <fizzie> shachaf: Arguably the reader is such an integral part of the whole publication process, the use of "we show" is justified, in that the reader is also participating "in spirit". (At least if you really like to argue.)
19:03:22 <Phantom_Hoover> those edits are all i know of tng
19:03:44 <Phantom_Hoover> i have a... skewed perspective on it
19:04:05 <fizzie> I can't really find any non-W|A sources for the unit "an", the symbol of which is "An". It's not a terribly googleable word.
19:04:29 <Bike> war comes to long an
19:04:34 <Sgeo> Suddenly I'm nostalging for a location in Active Worlds that I have not managed to find in a long time
19:06:42 <Deewiant> fizzie: If you do find any, let this guy know: http://www.unc.edu/~rowlett/units/index.html
19:06:58 <ais523> hmm… an emu is a dekaämpere?
19:07:50 -!- sebbu has quit (Ping timeout: 255 seconds).
19:09:11 <boily> ais523: did you spontaneously and from your own free will use a diaeresis on an english word?
19:09:40 <TwilightSpockle> boily: You must be new here. (OK, you're not, but the point stands)
19:10:08 <Phantom_Hoover> boily, man i used to use them all the time
19:10:22 <Phantom_Hoover> then i changed computer and i couldn't work out how to set the compose key
19:10:23 <boily> I mean, the only place I see them are in the New Yorker.
19:10:53 <TwilightSpockle> Phantom_Hoover: setxkbmap -option compose:ralt
19:11:08 <boily> Phantom_Hoover: don't listen to him. setxkbmap ca -variant multix
19:11:56 -!- monqy has joined.
19:12:01 <ais523> boily: it's a meme in this channel
19:12:09 <ais523> to use diareses in every context in which they even remotely fit
19:12:24 <ais523> although sometimes we forget
19:12:32 <boily> äïs523: now I see.
19:12:37 <TwilightSpockle> Y'know you're just using the diaeresis MARK, right? Diaereses are there whether you indicate them or not.
19:13:13 <shachaf> äïs̈
19:13:53 <shachaf> Anyway I use diæreses in English for words like coöperation even outside of this channel.
19:13:57 <shachaf> It's common sense!
19:14:06 <TwilightSpockle> I do too.
19:14:24 <TwilightSpockle> I have a sign on my cubicle that reads “Noöne appreciates diaeresis marks.”
19:14:27 <Sgeo> cmmn sense
19:14:44 <boily> TwilightSpockle: that's a good one.
19:14:51 <ais523> boily: diaeresis marks don't work like that
19:15:07 <ais523> although come to think of it, shouldn't it be diäeresis? or am I pronouncing it all wrong?
19:15:18 <fizzie> ais523: An abampere (i.e. the emu-cgs biot) of current going around in a circle with a radius of one centimetre produces a macnetic field of 2pi oerjans... I mean, oersteds at the center.
19:15:30 <fizzie> There seems to be no shortage of units, fortunately.
19:16:07 <ais523> fizzie: except it doesn't, because in order to get current to flow in a circle you need it to use a superconductor, and those act weirdly wrt magnetism, IIRC
19:16:27 <ais523> the standard experiment is that if you make a coil of superconductor, and put a magnet inside it
19:16:29 <ais523> it won't fall
19:16:35 <ais523> because if it did, it would generate an infinite amount of heat
19:17:00 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
19:17:03 <TwilightSpockle> ais523: Well there go my plans on destroying the universe :(
19:17:47 <ais523> (in practice, typically it falls but very slowly, as the magnet itself interferes with the superconductivity)
19:18:18 <boily> strangely, I have a hunch that destroying the universe bmayo be easier than hacking egobot.
19:18:38 <boily> argh. stupid attributes. c07test
19:19:21 -!- sebbu has joined.
19:19:33 -!- sebbu has quit (Changing host).
19:19:34 -!- sebbu has joined.
19:20:31 <quintopia> i agree with boily
19:21:36 <ais523> "bmayo"
19:21:43 <oklofok> do you know a tv show whose theme goes like 29219...........29219.6.........
19:21:45 <ais523> are you sending nonstandard color codes?
19:22:39 <boily> ais523: they were working an hour ago in another channel, following weechat's doc. no idea why they insert spurious chars here.
19:22:49 <oklofok> one symbol per beat and number n means C*440*2^(n/12) hz
19:22:53 <boily> another test that shouldn't work.
19:22:54 <ais523> was the other channel on another server?
19:23:03 <ais523> and was it -c?
19:23:04 <boily> yes, and it just worked here.
19:23:15 <boily> it is ctrl-c, then c, then a number.
19:23:29 <shachaf> hi monqy
19:23:38 <shachaf> Oops.
19:24:04 <boily> so, as I was saying, destroying the universe bmayo be easier than hacking egobot.
19:24:07 <boily> AAAAARGH!
19:24:13 <boily> bbold
19:24:29 <fizzie> Deewiant: W|A said 1 An = 0.1602177 A, and CRC Handbook says 1 eV = 0.1602177 aJ, it might be relevant. (Still, the handbook doesn't know anything specific about the an, while it does know about biots and emus of current.)
19:24:40 <quintopia> may be easier
19:24:47 <boily> quintopia: thanks.
19:25:45 <Sgeo> Is this a bad thing to say to a recruiter
19:25:46 <Sgeo> "I don't entirely understand why the rsum must be a Word document. I wrote my rsum using LaTeX, and it thus only exists as a LaTeX document and as a .pdf. I can attempt to convert it into Word, but am not entirely sure of the purpose."
19:25:52 -!- Nisstyre-laptop has quit (Quit: Leaving).
19:26:22 <boily> Sgeo: some recruiters like word documents because they have automated software to extract practical infos from them.
19:26:48 <Sgeo> Hmm, might a converted document break those?
19:27:25 <fizzie> Deewiant: W|A also thinks you can say "1 au of electric current", to mean 6.62362 mA; the "hydrogen atom ground state current". Something that units page also doesn't list. (Although for that there are a few other hits here and there.)
19:27:32 <boily> probably. I'm an engineer, not a recruiter.
19:34:55 -!- Nisstyre-laptop has joined.
19:35:47 <Sgeo> meh, attached both slopily converted .doc and nicer .pdf
19:35:55 <Sgeo> I'm not especially interested in that job anyway
19:36:17 <Sgeo> Java, PHP, Perl, and Node.js
19:36:28 <Sgeo> Node.js is the only one of those I can see myself tolerating
19:37:00 <shachaf> What about Ada?
19:37:05 <shachaf> I bet there are lots of good Ada jobs.
19:37:31 <fizzie> An "Ada job" must be some kind of a slang term for a sex act.
19:37:43 <Sgeo> Searching LinkedIn for Ada gets.... weird results
19:37:48 <Sgeo> Health & Wellness - Return to Work Specialist
19:37:52 <Sgeo> Building Manager at United Palace NY Cultural Arts Center / Church
19:38:08 <Sgeo> There seem to be more Scala jobs than Clojure jobs. I don't know why.
19:38:16 <Sgeo> I guess Scala has easier interop with Java?
19:39:07 <shachaf> It's probably a better language.
19:43:27 <boily> Java is very nice. I was afraid of its ecosystem, and had to learn the language very fast last year for oncoming projects.
19:43:50 <boily> I was reluctant at first, but now it is a very nice asset to know how to code in it.
19:47:18 <boily> hm. admitting you like java in this one channel may have been a major social faux pas.
19:47:23 <boily> oh well.
19:48:54 <Bike> too mainstream?
19:49:05 <kmc> Bike: not pointlessly difficult enough
19:50:17 <Taneb> "Commons backs gay marriage bill" "RBS Investment bank head to quit" "Laundries 'product of harsh Ireland'"
19:50:23 <Taneb> Clearly these headlines are connected
19:52:10 <kmc> Java is okay, its conceptual basis is pretty clean and simple
19:52:59 <kmc> they kind of stopped short of building a full language around those ideas
19:53:16 <kmc> C# is better in this regard
19:55:19 <kmc> i wouldn't call the language "very nice" but i agree that it's an asset to know it
20:03:24 <oklofok> so i guess you didn't
20:04:29 <boily> kmc: nice, in the sense that it is predictable, consistent, and utterly boring. which means that I can get my job done, and not think about it afterwards.
20:04:35 <kmc> yeah exactly
20:04:44 <kmc> this is also why businesses like it
20:05:01 <kmc> for building huge business software, using hundreds of programmers as replaceable parts
20:07:59 <boily> I guess my ideal language, the one that I dream of, would be a cross between java and python: statically typed like the first, and sane like the latter.
20:08:38 <monqy> being statically typed "like java" is pretty far from ideal
20:08:53 <monqy> covariant arrays, anyone
20:09:06 <shachaf> monqy: what bout "like eiffel"
20:09:17 <monqy> i've heard things about that
20:09:26 <monqy> function arguments being covariant right
20:09:45 <kmc> yeah java's type system is pretty weak sauce
20:10:13 <shachaf> 19:58 <edwardk> they treat function arguments as _co_variant
20:10:13 <shachaf> 19:58 <sclv> oh man, dolio's head just about exploded when he learned about that
20:10:16 <shachaf> 19:58 <edwardk> tey don't really grok the whole contravariance thing
20:10:18 <shachaf> 19:58 <shachaf> How does that work?
20:10:21 <shachaf> 19:58 <edwardk> it doesn't
20:10:23 <shachaf> 19:58 <edwardk> trust me
20:10:24 -!- Nisstyre-laptop has quit (Quit: Leaving).
20:10:26 <monqy> yeah that's the quote i heard
20:10:33 <shachaf> oh did elliott paste it to you
20:10:38 <monqy> probably
20:10:50 <shachaf> you could just join #haskell-lens..........
20:11:00 <monqy> i've been considering it
20:11:30 <shachaf> do it
20:11:40 <monqy> :0
20:11:42 <shachaf> just don't be too loud or edwardk might give you "commit access"
20:12:44 <shachaf> monqy: did you know #-lens once had "more users than #esoteric"
20:12:45 <boily> kmc: java's staticity is weak, but I prefer a little bit of challenge to plain perfection. besides, with something stronger like haskell's I'd be way too much distracted doing fun stuff instead of working.
20:13:09 <monqy> shachaf: i've heard
20:13:53 <shachaf> I cleared my /ignore list for #haskell and the channel has become markedly worse. :-(
20:14:08 <monqy> oops
20:16:59 -!- AnotherTest has quit (Quit: Leaving.).
20:19:41 <kmc> how big was it before?
20:20:24 <ais523> "function arguments are contravariant" is pretty much the whole thing that makes variance work
20:21:01 <ais523> actually, Java's problem is more being excessively sane, than insufficiently sane
20:21:09 <ais523> except in the libraries, those are really badly designed in parts
20:21:40 <shachaf> Eiffel allows covariant return and parameter types in overriding methods. This is possible because Eiffel does not require subclasses to be substitutable for superclasses — that is, subclasses are not necessarily subtypes.
20:22:44 <ais523> I can't think of any use for a covariant parameter to a function
20:22:49 <ais523> do you have any examples?
20:23:09 <shachaf> I don't know much about Eiffel.
20:23:13 <shachaf> (That was a Wikipedia quote.)
20:23:22 <shachaf> Apparently they do a lot of runtime checks?
20:26:19 -!- oerjan has joined.
20:43:43 <shachaf> @tell zzo38 CodensityAsk reminds me of type MendlerAlgebra f c = forall a. (a -> c) -> f a -> c (except that it's different)
20:43:43 <lambdabot> Consider it noted.
20:46:17 <Sgeo> Oh god I'm drafting my blog post and it's starting to look like an essay
20:46:27 <Sgeo> It's taking paragraphs for me to get to my point :(
20:46:37 <Taneb> :( :(
20:47:12 <Taneb> Hey, I wrote an essay about how Ook! is the only half-decent brainfuck derivative, and published it under a nom de somebody else
20:48:00 <shachaf> nom de phanton hoover?
20:48:23 <Taneb> Precisely
20:48:26 <Taneb> Well
20:48:30 <Taneb> Roughly
20:48:42 <kmc> photon hover
20:50:10 <shachaf> monqy: should i know things about galois connections
20:50:11 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
20:50:49 -!- Vorpal has joined.
20:51:11 <monqy> shachaf: i know things about galois connections.........i have my reasons
20:51:19 <shachaf> monqy: what are the things you know
20:51:23 <shachaf> and what are the reasons
20:51:30 <shachaf> and do you know things about adjunctions too??????
20:51:33 <monqy> it's a secret
20:51:39 <monqy> forget i said anything
20:51:42 <shachaf> monqy: no don't make it a secret
20:51:44 <monqy> what's a galois connection
20:51:45 <shachaf> "tell me instead"
20:54:19 <shachaf> monqy: :'(
20:54:23 <shachaf> why won't you tell me
20:59:43 -!- oerjan has quit (Quit: leaving).
21:01:29 <Vorpal> shachaf, you don't want to know
21:01:39 <Vorpal> there are some things man were not meant to know
21:02:17 <shachaf> yes i do..........................................................................
21:02:18 <Vorpal> one of those concerns galois connections.
21:02:28 -!- oerjan has joined.
21:02:30 <Vorpal> This is a dark secret
21:02:43 <shachaf> oerjan: Do you logread when you disappear for 3 minutes?
21:03:11 <oerjan> yes.
21:03:22 <oerjan> not that i was finished logreading in the first place
21:03:29 <shachaf> Oh.
21:03:32 <shachaf> You shouldn't logread.
21:03:43 <shachaf> "itsbad4u"
21:04:08 <boily> <Vorpal> there are some things man were not meant to know <-- are you implying that shachaf is not a man?
21:04:26 <Vorpal> boily, exactly
21:04:59 <Vorpal> boily, he is something far more sinister. And man is pretty sinister to begin with.
21:06:00 <boily> I had this hunch that I should be careful around shachaf. he has this malevolent aura around him.
21:06:33 <Vorpal> verily
21:08:58 <kmc> sha256chaf
21:18:17 <boily> Ph'nglui mglw'nafh hmac shachaf fhtagn!
21:21:43 <Vorpal> boily, noo, you woke up shachaf!
21:26:02 <boily> no problem for me. he's far and away.
21:29:09 <Sgeo> shachaf will make you learn Ada if you're not careful
21:31:23 <boily> I'm armed with a squeaky rubber chicken. that should be enough.
21:40:25 -!- ogrom has joined.
21:41:13 <oerjan> that's not a chicken that's a shoggoth
21:41:46 <Taneb> `rot256 shachaf
21:41:53 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rot256: not found
21:42:02 <Taneb> (rot256 should totally exist)
21:42:54 <olsner> > 256 `mod` 26
21:42:56 <lambdabot> 22
21:43:53 -!- WeThePeople has joined.
21:44:37 <shachaf> Sgeo: No, that's just you.
21:45:02 -!- Phantom_Hoover has joined.
21:45:25 <fizzie> I've recently-ish upgraded this desktubuntu from 12.04 to 12.10, and nowadays running pavucontrol seems to constantly eat a few % of CPU, except sometimes it eats a 100 % of CPU too.
21:45:28 -!- monqy has quit (Quit: hello).
21:45:50 <olsner> uninstall pulseaudio
21:45:57 <fizzie> Noooo.
21:46:04 <olsner> install pulseaudio?
21:46:13 <fizzie> It's already installed.
21:46:15 <fizzie> I think.
21:46:29 <olsner> if neither of those works, I'm out of tips
21:46:50 <fizzie> Maybe I should split the difference and "ninstall" PulseAudio.
21:47:04 -!- Phantom_Hoover has changed nick to Guest50856.
21:47:52 <olsner> make a script that repeatedly installs and uninstalls pulseaudio, adjust the duty cycle until it works
21:48:43 <oerjan> `ln -s /bin/cat bin/rot256
21:48:46 <HackEgo> ln: invalid option -- ' ' \ Try `ln --help' for more information.
21:48:47 <oerjan> `run ln -s /bin/cat bin/rot256
21:48:52 <HackEgo> No output.
21:48:59 <oerjan> oh wait
21:49:13 <oerjan> `run ln -s /bin/echo bin/rot256
21:49:15 <HackEgo> ln: creating symbolic link `bin/rot256': File exists
21:49:23 <oerjan> `rm bin/rot256
21:49:26 <boily> why do I hunger for shoggoth'n'chips now...
21:49:31 <HackEgo> No output.
21:49:31 <oerjan> `run ln -s /bin/echo bin/rot256
21:49:37 <HackEgo> No output.
21:49:44 <oerjan> `rot256 shachaf
21:49:47 <HackEgo> shachaf
21:49:50 <oerjan> Taneb: hth
21:49:53 -!- hagb4rd has joined.
21:50:16 <Taneb> :D
21:56:43 <oerjan> <fizzie> ais523: An abampere (i.e. the emu-cgs biot) of current going around in a circle with a radius of one centimetre produces a macnetic field of 2pi oerjans... I mean, oersteds at the center. <-- WHEE!
21:56:51 * oerjan feels dizzy
22:00:37 -!- Taneb has quit (Quit: Leaving).
22:03:26 <hagb4rd> so you must have a spin of 1/2
22:03:29 <hagb4rd> hi oerjan
22:04:18 -!- epicmonkey has quit (Ping timeout: 252 seconds).
22:05:06 <hagb4rd> is dizzy good?
22:05:13 -!- carado has joined.
22:06:11 * oerjan rotates 360 degrees and suddenly is upside down
22:06:39 <ais523> well, there are 4pi steradians in a sphere
22:06:44 <oerjan> hagb4rd: I CAN AFFERMI THAT
22:20:01 -!- WeThePeople has quit (Quit: Leaving).
22:20:42 -!- ogrom has quit (Ping timeout: 256 seconds).
22:24:14 <oerjan> god dammit my laptop has started making that occasional clicking sound again _and_ the housemate has started creaking with his chair again.
22:26:24 <olsner> maybe your laptop is a brick, you don't have a housemate, and you're imagining things
22:26:55 <ais523> oerjan: try banging on the case near the fan if it's clicking
22:27:00 <oerjan> last time it happened, it helped making sure jqs.exe wasn't running. but it isn't running now.
22:27:01 <ais523> in my case, a clicking sound means the fan has jammed
22:27:08 <oerjan> ooh...
22:27:32 <ais523> and banging on the case has a 100% reliability on restarting it (typically with a delay of several seconds)
22:27:41 <oerjan> the fan was already running, alas
22:28:54 <ais523> in that case it's probably the hard drive, as the only other moving part
22:29:02 <ais523> and you should take backups ASAP because it may well fail soon
22:29:13 <oerjan> in fact the clicking only happens when the laptop is idle
22:29:15 -!- Zuu has joined.
22:29:23 <kmc> 'phpwm is an Xll window manager using embeded php to manage all events, creating a "scriptable" window manager.'
22:30:10 <Bike> nope
22:30:30 <kmc> that's x-ray lima lima, not X11
22:36:17 <kmc> Bike: are you just refusing to live in a world where this exists?
22:36:24 <kmc> can't say i blame you
22:36:26 <Bike> yeah, i do that a lot
22:36:38 <Bike> i like how "scriptable" is in scare quotes though
22:36:44 <kmc> heh
22:36:48 <Bike> "PHPWM User Group (phpwm) on Twitter" oh
22:37:18 <Bike> wait, this is west midlands, not window manager.
22:37:37 <ais523> oh dear, I'm in the west midlands
22:37:44 <Bike> huh, google has two different php-related things before it has the window manager
22:39:16 <olsner> if the window manager is only third worst, I don't want to know what the other two are
22:39:45 -!- sirdancealot has quit (Ping timeout: 256 seconds).
22:39:49 <Bike> a user group and a website manager
22:40:00 <olsner> php has users!? *gasp*
22:40:20 <Bike> there's actually a php user behind ais523 right now DON'T LOOK
22:40:24 <ais523> olsner: it's not surprising that it has users
22:40:28 <ais523> Bike: why can't I look?
22:40:35 <ais523> also there wouldn't be much room for a PHP user behind me
22:40:43 <ais523> my back isn't literally to the wall, but it's quite close to it
22:40:50 <Bike> he's actually outside
22:41:15 <Bike> you can't look because there's a wall there, you can't see through walls
22:56:28 * ais523 notices that Bike assumed it was an exterior wall, even though the sentences he stated don't technically assume that
22:58:20 <Bike> presumably if you go through enough walls you'll get to outside
22:58:36 <Bike> unless you're in some kind of toroidial installation
22:58:39 <Bike> are you?
23:01:36 <Guest50856> Bike, ah, but in that case the floor eventually becomes a wall
23:01:37 <ais523> even if you were in a toroidal installation, you'd still get to outside if you went in a straight line backwards
23:01:47 <ais523> at least because of the curvature of the earth
23:02:38 <Guest50856> maybe if he's on the event horizon of a black hole
23:02:44 <Guest50856> whoah
23:02:50 <Guest50856> why am i Guest50856
23:02:57 <ais523> Guest50856: backwards still exists then
23:02:57 <Bike> i think it's clear enough that i want to follow the floor when i'm talking about a building, and the PHP developers not therein
23:03:02 <ais523> it's just impossible for anything to move in that direction
23:03:19 -!- Guest50856 has quit (Changing host).
23:03:19 -!- Guest50856 has joined.
23:03:26 -!- Guest50856 has changed nick to Phantom_Hoover.
23:03:26 <Bike> nice job!
23:03:44 <olsner> hmm, your username is "phantomho"
23:04:08 <Phantom_Hoover> ais523, at the event horizon a straight line tangent to the surface is a circle around the event horizon.
23:04:10 <Phantom_Hoover> I think.
23:04:40 <ais523> Phantom_Hoover: I don't think black holes actually change geometry like that
23:04:51 <ais523> at the event horizon, something going at the speed of light away from the black hole doesn't move at all
23:05:00 <Phantom_Hoover> er
23:05:08 <Phantom_Hoover> changing the geometry is the /entire point/
23:05:40 <Phantom_Hoover> at the event horizon, a lightlike curve tangent to the horizon is circular
23:05:56 -!- Frooxius has quit (Read error: Connection reset by peer).
23:05:59 <Phantom_Hoover> oh wait! no it isn't
23:06:16 <Phantom_Hoover> that actually happens a way outside the event horizon
23:06:42 <ais523> yeah, the position at which light would orbit the black hole is going to be some way away from the event horizon
23:06:45 <Phantom_Hoover> between there and the event horizon you can't orbit
23:06:47 <ais523> at the event horizon, it falls in
23:07:22 <Phantom_Hoover> anyway, point is, since something something geodesics the php advocate could well be in front of you
23:08:17 <oerjan> ^style lovecraft
23:08:17 <fungot> Selected style: lovecraft (H. P. Lovecraft's writings)
23:08:21 <Phantom_Hoover> indeed, you could well be the php advocate
23:08:32 <oerjan> fungot: what do you have to say about time traveling php advocates?
23:08:32 <fungot> oerjan: the next logical move was to get to the innermost recesses of the olive grove and the fnord of the
23:08:59 <oerjan> fungot: i was thinking maybe something more non-euclidean
23:09:00 <fungot> oerjan: " that refinery, though, it was to discover myself half sucked into a slimy expanse of hellish black fnord which extended about me in monotonous undulations as far as practicable. this, he guessed, was the
23:09:13 <oerjan> much better.
23:09:18 <olsner> fungot: what do you think about Xll?
23:09:20 <fungot> olsner: made of the original fragment during the work. the next day i carefully wrapped the green jade amulet and sailed for holland. what mercy i might gain by returning the thing to any ordinary or expected transportation route. his final idea was to have been the neighboring abyss which received the greatest fnord could have reproduced each subtle fnord and mental complexity they would have been the singular cold that aliena
23:09:27 -!- Frooxius has joined.
23:15:02 <shachaf> fungot: say something insightful
23:15:02 <fungot> shachaf: i did not open my eyes until the raucous clamour came loudly from a point as remote as new york, which joined on near 1830. there were hideous screams in the woods. he could turn and move and leap he could he would he would.
23:15:10 <shachaf> fungot: say something witty
23:15:10 <fungot> shachaf: i felt a chill which was not of the dead
23:15:15 <shachaf> ^style
23:15:15 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft* nethack pa qwantz sms speeches ss wp youtube
23:17:41 <shachaf> fungot: say something scary
23:17:42 <fungot> shachaf: the ground sloped upward to the east and see the arched flight of steps or its fnord.
23:18:12 <shachaf> ^style alice
23:18:13 <fungot> Selected style: alice (Books by Lewis Carroll)
23:18:24 <shachaf> fungot: say something blasphemous
23:18:24 <fungot> shachaf: " i should think it did go! why, i do believe,' said humpty dumpty, ' and i'm nearly sure they can't see me.
23:18:29 <Bike> fungot, bizarre math joke?
23:18:30 <fungot> Bike: one winter night, at half-past nine, cold, tired, and cross, and muddy, i had gone down upon one knee to help the fnord but much yet remains to be said.
23:18:47 <shachaf> fungot: stop saying fnord...............
23:18:47 <fungot> shachaf: they gazed in delight, while the great fnord of fnord and fnord his eyes. " isn't he kind, mister sir?"
23:19:01 <shachaf> fungot.................................................
23:19:01 <fungot> shachaf: but when she saw him fnord and fnord. and then there's the fnord, as well as fnord reading sauce with fish, or fnord, that alice quite fnord for it hadn't spoken before.
23:19:15 -!- DHeadshot has quit (Read error: Connection reset by peer).
23:19:21 <shachaf> fizzie: Could you disable the fnords?
23:20:07 <fizzie> Well, yes; in fact, I don't think the VariKN-trained models even have them.
23:20:10 -!- DHeadshot has joined.
23:20:37 <shachaf> ^style iwcs
23:20:37 <fungot> Selected style: iwcs (Irregular Webcomic scripts)
23:20:45 <shachaf> Oh.
23:20:46 <olsner> I like the fnords
23:20:50 <shachaf> i don't want a webcomic!!
23:20:52 <olsner> pining for the fnords, as it were
23:20:57 <fizzie> fungot: Don't be a webcomic.
23:20:58 <fungot> fizzie: my name is dr. montana, sir.
23:20:58 <shachaf> unless its super mega
23:21:06 <shachaf> can we have super mega comics
23:21:09 <shachaf> in fungot
23:21:09 <fungot> shachaf: on the way, myth, god created the universe, a better universe! we choose only die fittest people of nigeria!
23:21:11 <olsner> fungot: pine for the fnords will you
23:21:11 <fizzie> fungot: /nick dr. montana, sir.
23:21:11 <fungot> olsner: no, the boy, do you?! i'm insulted!
23:21:11 <fungot> fizzie: a bit of a noble way of the most secure and well-guarded buildings in the world, we should at a time like a good spot of tea, then, why?
23:21:29 <olsner> fungot: FNORDS
23:21:30 <fungot> olsner: ha! i fight the hippo, sea dog, and the bug to get the snakes, and 9... we only had ter put down 10%, not nothing. this isn't the time or place, but it has given me a splitting the profits for the nigerian government a charity? people! a wooden look, there's the mighty hunting creature! it's killed kyros and lambert, a travelling merchant, practised with bow, can i do to help, i meant! translation: the doors of the vati
23:22:04 <fizzie> The 'alice' style is perhaps a bit overly prone to fnords due to the large number of unique words.
23:22:49 <shachaf> ^style speeches
23:22:49 <fungot> Selected style: speeches (misc. speeches from Project Gutenberg)
23:22:53 <olsner> what's the idea with the fnords?
23:23:13 <shachaf> fungot: can we have some churchill
23:23:16 <fungot> shachaf: that is what it has cost us fnord or worldly fnord is our reward that we can give nothing to the mass, that, if we do repel you by some wrong principle or practice. if we were to have indian budgets and indian estimates, if we pass this bill, and those not a few, or of the greatest names which ever distinguished the history of london, had not yet been taken down. we repaired and embellished the car under the wheels of
23:24:01 <fizzie> olsner: All words with very few occurrences (in this case, occurring only once, I think) have been replaced with a single token "UNK"; it's a reasonably standard thing to do in language models.
23:24:43 <olsner> to make the model smaller and easier to work with?
23:24:45 <fizzie> Of course it really only makes sense if the model is used to compute sentence likelihoods or what-have-you.
23:25:29 <fizzie> Yes, and anyway there wouldn't be enough ngrams where those words occur to get any particularly reasonable statistics for them either.
23:25:59 <fizzie> It's just that in the generative mode, it has to replace that token with *something*.
23:26:17 <Bike> you should use the phrase "hapax legomenon" because that's a good phrase
23:26:54 -!- boily has quit (Quit: Poulet!).
23:27:54 <olsner> `addquote <fungot> but when she saw him fnord and fnord. and then there's the fnord, as well as fnord reading sauce with fish, or fnord, that alice quite fnord for it hadn't spoken before.
23:27:56 <fungot> olsner: " therefore it is, that those motives to which mr mill pronounces to be a murderer merely for his pleasure. the passages in which the manufacturers of england are distinguishing. they hear these men speak broad. their tongue betrays them. their language had needed fnord for a debt, and of all christian sects the roman catholic clergy. had he permitted me to say what thought is meant to answer in favour of bringing about
23:27:58 <HackEgo> 953) <fungot> but when she saw him fnord and fnord. and then there's the fnord, as well as fnord reading sauce with fish, or fnord, that alice quite fnord for it hadn't spoken before.
23:29:26 <fizzie> Given that it's not possible for the model to see any unseen data, by definition, since it's not going to see any data at all, I could just drop everything that mentions the UNK. (Or for the small datasets, perhaps just build full vocabularies, though I suppose that might end up adding to the amount of verbatim quoting, since any occurs-only-once word would automatically force repetition of ...
23:29:32 <fizzie> ... whatever followed it until it drops out of the context.)
23:29:52 <shachaf> fungot: tell me about monoids
23:29:52 <fungot> shachaf: while our historians are practising all the arts of civil life. at the siege of jerusalem on a far shore i smoothed with tender hand, through months of pain, the sleepless bed of hyde:
23:29:59 <shachaf> ^style
23:29:59 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz sms speeches* ss wp youtube
23:30:27 <shachaf> fungot: gimme some meaningless platitudes
23:30:28 <fungot> shachaf: mr. morley: then let me assure him, perhaps the most hardly treated. in november 1660, he was cheered and refreshed, and soothed, and asked him where he was treated excited the murmurs of the sea: who is now a large body of men who honor and appreciate your pilgrim stock as much as the classical feast with which the aristocrats were now treated, and to all the dignity and fnord with mystic awe: the proud sultana of the
23:30:48 <shachaf> fungot: cheer me up
23:31:41 <Phantom_Hoover> shachaf, why shachaf sad
23:31:48 * Sgeo wonders if CyberCoders is a bad idea or whether he should continue to try to find jobs through it
23:31:56 <shachaf> fungot: did i talk too much :'(
23:31:58 <fungot> shachaf: memoirs, popularity of, as a lexicographer, been under the necessity of education, not presuming to dictate any plan or system respecting it, i do verily believe i have been the true construction of his answer, if sincere, as frederick of prussia answered, pour fnord fnord de fnord occupy a large space in his works have an individuality of character which seems to have hated democracy only because he had not more time
23:32:09 <olsner> fungot: treat me the murmurs of the sea
23:32:10 <fungot> olsner: " thus much in general as such, shall not govern himself? when the white man: you are certain there is going to be in his place in this assembly. he said that his son couldn't tell a lie! but he never had any chance. it might be said that it was only because events had proved, in the discussion on affairs in fnord who wants to pay more regard to one poor man than to the true statesman. he thinks of the place was open, i
23:32:26 <olsner> too long!
23:32:33 <fizzie> Anyway, I've farmed the model training to varigram_kn these days; it does automatic pruning (and has options for both "drop all words with less than ndrop occurances" as well as "remove n-grams containing OOV words"), so the fnords shouldn't be much of a problem.
23:33:01 <fizzie> I should really take the backoff weights into account some day, though.
23:38:53 <fizzie> Also, I wonder if there are any actually forced (as opposed to just highly probable) loops in any of the styles. From what I recall, e.g. the infamous sword that alone can't stop isn't really an unescapable one.
23:39:14 <olsner> `quote sword
23:39:16 <HackEgo> No output.
23:39:20 <fizzie> ^style ct
23:39:20 <fungot> Selected style: ct (Chrono Trigger game script)
23:39:27 <fizzie> fungot: So how about them swords?
23:39:27 <fungot> fizzie: as long as you keep crono in your heart, the day of lavos"... go to " leene square" 1000 a.d.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
23:39:38 <olsner> fungot: swords swords swords
23:39:38 <fungot> olsner: yes, it's been awhile prometheus! by the way, the wings! now this is a treasure there... found the treasure!! probably filled with mystical forest powers are being drained. why not? then you should leave quickly!
23:39:50 <fizzie> Magus: a tad on the spooky side, yet our only hope.
23:41:10 <kmc> "The toothpaste provided to soldiers at most military bases in America contains extremely high levels of guns-- but little to no actual toothpaste."
23:41:24 <olsner> guns for gums
23:41:55 <Phantom_Hoover> the guns shoot the bacteria
23:43:04 -!- WeThePeople has joined.
23:44:30 <shachaf> hi Phantom_Hoover
23:44:48 <shachaf> i heard you didn't actually write phantom-hoover.tumblr.com.....................
23:44:51 <shachaf> is it true........
23:44:58 <Phantom_Hoover> no
23:45:20 <shachaf> Oh.
23:45:33 <olsner> I think he used a ghostwriter
23:47:26 -!- sebbu has quit (Ping timeout: 272 seconds).
2013-02-06
00:01:54 <tromp_> > 2**57885161
00:01:56 <lambdabot> Infinity
00:12:11 -!- WeThePeople has quit (Quit: Leaving).
00:12:47 -!- WeThePeople has joined.
00:15:18 <kmc> maybe PHP has a feature where it automatically converts l to 1 and O to 0
00:15:52 <olsner> 10+1 is probably ll in php
00:16:07 -!- augur has quit (Remote host closed the connection).
00:16:38 <kmc> shachaf: is there some secret signal in the number of dots after each message
00:16:52 <shachaf> kmc: Ask monqy.
00:17:29 <shachaf> We were talking about putting 3 21-bit codepoints in every 64-bit word, and using the last bit to encode secret messages.
00:17:44 <pikhq> Ah, good ol' UTF-31.
00:17:46 <pikhq> Erm
00:17:47 <pikhq> UTF-63
00:17:53 <shachaf> UCS-2.625
00:18:14 <olsner> :D
00:18:14 <shachaf> I have a version of "text" that actually uses this encoding.
00:18:17 <shachaf> It passes a lot of the tests.
00:18:18 <kmc> parity bit obv.
00:21:18 <fizzie> I think I saw someone implement binary literals in C with something like #define _I )*2+1 #define _O )*2 #define B8(x) (((((((((0 x) so that B8(_I _O _O _O _I _O _O _O) turns into (((((((((0)*2+1)*2)*2)*2)*2+1)*2)*2)*2) aka 136.
00:22:19 <tromp_> too bad C doesn't have 0b00110 literals
00:23:42 <fizzie> Fortunately, the preprocessor provides clearly an almost-as-nice replacement.
00:23:51 <pikhq> It'd be a *lot* nicer.
00:23:56 <olsner> c++11 has some stuff that allows you to write e.g. 00110_b if you define an operator"" _b to convert the literal
00:24:02 <fizzie> (GCC of course has 0b010100 as an extension.)
00:24:50 <kmc> fizzie: haha
00:25:34 <pikhq> Pity that's not ISO.
00:26:33 <fizzie> If you want to be fancy, you can extend the above B8 macro by defining _OOOO, _OOOI, _OOIO, ..., _IIII and then you can have a nicely grouped B8(_IIOI _OOII).
00:27:03 <shachaf> Or you could just define 256 macros.
00:27:27 <fizzie> Or 4294967296, for B32().
00:27:37 <pikhq> Meh, define 2^64.
00:28:15 <shachaf> You could define B32(a, b, c, d), though, with 256 macros.
00:28:30 <shachaf> I guess you could do that anyway. Bu1 31 ,s is much more annoying than 4.
00:31:22 <fizzie> You can define a B32(a b c d) with 256 macros too, and then there are no commas.
00:31:59 <fizzie> Though you still need whitespace, so it doesn't really save much.
00:33:22 -!- carado has quit (Ping timeout: 246 seconds).
00:43:42 <FreeFull> fizzie: aren't hex literals good enough
00:44:24 <kmc> what's "good enough"
00:44:32 <shachaf> good enough is good enough
00:45:20 <FreeFull> For representing bit patterns
00:45:42 <kmc> not really
00:46:11 <kmc> annoying when you're programming control registers with bitfields that don't align with nybble boundaries
00:46:12 <fizzie> You can't see THE PATTERNS if it's in hex.
00:46:24 <shachaf> for representing nybble patterns
00:46:53 <FreeFull> When I see, say, E, that goes straight into 1110 in my head
00:47:20 <kmc> it's not you, it's the E talking
00:47:40 <FreeFull> Exactly
00:47:43 <fizzie> FreeFull: If you see a bitmap image in hex, does it appear as visually as it would when it were 0s and 1s?
00:47:45 <FreeFull> All you have to do is just listen
00:48:00 <FreeFull> fizzie: Is it a 1-bit bitmap?
00:48:14 <FreeFull> Because for 256-colour or more, hex works better than binary =P
00:48:18 <kmc> FreeFull: and what of people who lack this power? I guess the true C programmer answer is that they're just drooling idiots who should never be let near a computer
00:48:29 <FreeFull> I guess it's good for 16 colour too
00:48:33 <fizzie> FreeFull: It's a bitmap, of course it's 1-bit.
00:49:08 <fizzie> It's not a pixmap or whatnot.
00:49:26 <kmc> tritmap
00:49:38 <FreeFull> balanced tritmap
00:50:00 <FreeFull> 1 is light, 0 is nothing, T is antilight
00:50:30 <pikhq> Reverse the polarity on the laser!
00:50:57 <fizzie> Of course you can always #define B8(x) ((x&1)|((x>>2)&2)|((x>>4)&4)|...) and then use B8(001101100) for binary literals. (Better not forget the leading 0!)
00:51:42 <kmc> quick FreeFull what's the 19th bit of 783F5A4DC562465554807AD8C45D2863
00:51:58 <Bike> least or most significant?
00:52:06 <FreeFull> kmc: 0
00:52:08 <kmc> middle most significant
00:52:16 <FreeFull> I assumed from the left for some reason
00:52:19 <pikhq> kmc: Which base? :)
00:52:19 <Bike> imo 7
00:52:19 <FreeFull> Let me do it from the right
00:52:22 -!- sirdancealot7 has joined.
00:52:43 <shachaf> quick kmc what's the 19th bit of 1111000001111110101101001001101110001010110001001000110010101010101010010000000011110101101100011000100010111010010100001100011
00:52:45 <FreeFull> 0 too
00:52:57 <pikhq> shachaf: 1
00:53:01 <FreeFull> I mean for kmc's
00:53:01 <ais523> it's a 1
00:53:12 <FreeFull> Wait, do you count the 0th bit too
00:53:21 <FreeFull> If you count the 0th, it's 1
00:54:40 <shachaf> Are we *conclusive* that it's either 0 or 1?
00:54:45 <shachaf> No other options?
00:54:58 <pikhq> It might be a 2.
00:55:08 <kmc> > "1111000001111110101101001001101110001010110001001000110010101010101010010000000011110101101100011000100010111010010100001100011" !! 19
00:55:10 <lambdabot> '1'
00:55:13 <shachaf> OK, this is getting to be too much to keep track of.
00:55:25 <kmc> shachaf: the committee votes compromise, the bit will be 0.5
00:55:32 <FreeFull> kmc: That's from the left though
00:55:37 <kmc> > reverse "1111000001111110101101001001101110001010110001001000110010101010101010010000000011110101101100011000100010111010010100001100011" !! 19
00:55:39 <lambdabot> '1'
00:55:42 <shachaf> > preview (base 2) "1111000001111110101101001001101110001010110001001000110010101010101010010000000011110101101100011000100010111010010100001100011" <&> view (bitAt 19)
00:55:45 <lambdabot> Just True
00:55:45 * pikhq prefers base -1
00:55:50 <shachaf> Answer: True
00:56:01 <shachaf> > preview (base 2) "783F5A4DC562465554807AD8C45D2863" <&> view (bitAt 19)
00:56:03 <lambdabot> Nothing
00:56:12 <shachaf> > preview (base 16) "783F5A4DC562465554807AD8C45D2863" <&> view (bitAt 19)
00:56:14 <lambdabot> Just True
00:56:21 <shachaf> Hmm, you said 19th bit, not bit 19.
00:56:27 <shachaf> > preview (base 16) "783F5A4DC562465554807AD8C45D2863" <&> view (bitAt 18)
00:56:29 <lambdabot> Just True
00:56:31 <kmc> :t (<&>)
00:56:32 <lambdabot> Functor f => f a -> (a -> b) -> f b
00:56:34 <shachaf> flip fmap
00:56:38 <kmc> oh
00:56:46 <kmc> :t preview
00:56:47 <lambdabot> MonadReader s m => Getting (First a) s t a b -> m (Maybe a)
00:56:59 <Bike> stab
00:57:29 <shachaf> Oh, much better:
00:57:30 <shachaf> > "783F5A4DC562465554807AD8C45D2863" ^? base 16.bitAt 18
00:57:32 <lambdabot> Just True
00:57:39 * shachaf = silly
00:57:52 <shachaf> @ty \x -> preview (base 16.bitAt 18) x
00:57:54 <lambdabot> [Char] -> Maybe Bool
00:58:58 <shachaf> Bike: admit that's kind of nice!!!!
00:59:24 <FreeFull> > [1..4] . (+1)
00:59:26 <lambdabot> Couldn't match expected type `a0 -> b0' with actual type `[t0]'
00:59:35 <FreeFull> :t (.)
00:59:37 <lambdabot> Functor f => (a -> b) -> f a -> f b
00:59:48 <FreeFull> > (+1) . [1..4]
00:59:51 <lambdabot> [2,3,4,5]
01:00:08 * shachaf sighs.
01:00:45 <Bike> :t (+1)
01:00:47 <lambdabot> Num a => a -> a
01:01:08 <FreeFull> :t (^?)
01:01:09 <lambdabot> s -> Getting (First a) s t a b -> Maybe a
01:01:39 <shachaf> @quote s\s?t\s?a\s?b
01:01:39 <lambdabot> kmc says: The actual pattern is that you *first* do a breathlessly excited post about how Haskell is ninja pirate awesome because quicksort is so short, and it has closures, and you're going to
01:01:39 <lambdabot> learn Haskell and write all your software in Haskell... then a week later you do the bitter "debunking" post. Monads are hard and Maybe isn't any different from Java's null and I was promised a pony,
01:01:39 <lambdabot> where's my pony
01:01:45 <shachaf> Hmm.
01:02:16 <shachaf> @quote s(\s?)t\1a\1b
01:02:16 <lambdabot> quicksilver says: <jatqceer> i love them. Double is my friend <quicksilver> You think he is, sure <quicksilver> he says nice things about you <quicksilver> but one day, when your back is turned, he
01:02:16 <lambdabot> will stab you in the back with a mantissa
01:02:21 <shachaf> @quote s(\s?)t\1a\1b
01:02:21 <lambdabot> sebazzz says: <elpolilla> y venden bulks y esas mierdas <sebazzz> bulks llenos de pastabase
01:02:24 <shachaf> @quote s(\s?)t\1a\1b
01:02:25 <lambdabot> sioraiocht says: if you made a type class the same name as a type, I'd stab you in the face
01:02:30 <FreeFull> And the quicksort is fake
01:03:10 <Bike> people sure do like debunking ponies
01:04:08 <kmc> they're not baby horses at all
01:04:09 <kmc> wake up sheeple
01:04:22 <kmc> you just think they're cute because they're small
01:04:28 <kmc> but actually they're expensive and they shit everywhere
01:04:40 <shachaf> cockroaches are both small and cheap
01:04:40 <Bike> it's weird how people don't realize how much shit animals actually involve
01:06:06 <FreeFull> kmc: "they shit everywhere" is in general applicable to most animals
01:06:43 <FreeFull> Bike: A good estimate is to take the amount you yourself shit and multiply that by a thousand
01:07:00 <Bike> yes but people don't realize it! it's baffling. where do you think all that mass goes, people
01:08:56 <kmc> what animal shits the most compared to its body weight
01:09:09 <kmc> maybe pandas
01:09:12 <Phantom_Hoover> the one that eats the most compared to its body weight
01:09:14 <Phantom_Hoover> most probably
01:09:23 <FreeFull> kmc: I'm thinking definitely some herbivore
01:09:27 <Phantom_Hoover> but kmc pandas are fat and useless
01:09:38 <Bike> exactly
01:09:38 <Phantom_Hoover> i'm sure there are some svelte and useless animals
01:09:42 <kmc> pandas have horrible digestive systems and eat bamboo which has almost no nutritious value
01:09:47 <Phantom_Hoover> kmc,
01:09:48 <Phantom_Hoover> kmc
01:09:49 <Phantom_Hoover> kmc
01:09:52 <kmc> Phantom_Hoover
01:09:54 <Phantom_Hoover> you don't need to impress upon me
01:10:01 <Phantom_Hoover> how shit pandas are
01:10:06 <Phantom_Hoover> they're the swedes of the animal kingdom
01:10:13 -!- NihilistDandy has joined.
01:10:19 <kmc> 'Shrews typically eat 80–90% of their own body weight in food daily.[citation needed]'
01:10:32 <kmc> i should get a shrew, video tape it for 24 hours, and upload that to wikipedia
01:10:35 <kmc> but that would be original research :(
01:10:59 <Bike> also not very rigorous.
01:14:51 <kmc> Homebrew have now raised £5,176 to buy a Mac Mini
01:19:25 <Phantom_Hoover> homebrew?
01:20:02 <shachaf> Did they fix the -k yet?
01:24:42 <kmc> Phantom_Hoover: http://mxcl.github.com/homebrew/
01:24:53 <kmc> shachaf: yes, they merged my pull request
01:25:00 <shachaf> People nearby are talking about the key ingredients of a successful startup.
01:25:12 <shachaf> It seems that you need a hacker, a hipster, and a hustler.
01:25:24 <kmc> it's mostly about what kind of coffee you serve
01:25:32 <ais523> shachaf: that's probably not enough by itself
01:25:42 <kmc> preferably you would raise a $250k - $500k angel round and put that all into an espresso machine
01:25:46 <ais523> especially as you might have trouble getting them to work together
01:26:06 <Phantom_Hoover> that's what the coffee's for
01:26:21 <shachaf> kmc: Good point.
01:26:23 <Bike> a hustler?
01:26:29 <kmc> if you don't have top coffee you can't attract top people
01:26:29 <Bike> like a conman?
01:26:32 <Bike> or uh, conperson
01:26:36 <kmc> and no matter what you're doing, you need olympic-class rockstars to do it
01:26:55 <Bike> do you ever feel bad about how badly treated olympic athletes can be
01:26:57 <kmc> <small>heavy metal is not yet a sport recognized by the IOC</small>
01:27:03 <shachaf> Yes, rock stars have come up.
01:27:08 <Phantom_Hoover> Bike,
01:27:09 <Phantom_Hoover> no
01:27:12 <Phantom_Hoover> because sports are bad
01:27:18 <Bike> you're bad
01:27:19 <kmc> Bike: but for a week every 4 years they get to live in the olympic village and have sex nonstop
01:27:20 <Phantom_Hoover> wait
01:27:26 <Phantom_Hoover> fencing is an olympic sport shit
01:27:28 <Bike> kmc: haha
01:27:52 <Bike> also did you know that one of the olympic committee chairpeople was an actual nazi sympathizer back in the 50s or 60s
01:27:55 <Bike> good times
01:28:03 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:28:04 <kmc> olympics is hipster to mainstream american sports
01:28:06 <Phantom_Hoover> i remember reading about that
01:28:19 <Phantom_Hoover> he did some ridiculous things but i don't remember what
01:28:19 <kmc> (portlandia did it)
01:28:23 <kmc> Bike: great
01:28:27 <kmc> nazis everywhere
01:28:32 <kmc> clowns to the left of me, nazis to the right
01:28:42 -!- makadon has joined.
01:28:45 <Phantom_Hoover> here i am, stuck in the middle with jew
01:28:57 -!- DHeadshot has joined.
01:29:06 <Bike> http://en.wikipedia.org/wiki/1968_Olympics_Black_Power_salute ~
01:29:10 * kmc cuts off Phantom_Hoover's ear
01:29:24 <Phantom_Hoover> careful now
01:29:26 <shachaf> now they're talking about "the dunning-kruger effect"
01:29:30 <Bike> huh he was in the 1912 olympics
01:29:31 <Phantom_Hoover> that's the sort of thing that starts wars
01:29:34 <shachaf> empirical studies, man!!
01:29:51 <Bike> sometimes i think psychology research should be written in code
01:29:55 <kmc> shachaf: what about it
01:30:31 <shachaf> Maybe I shouldn't treat them as Internet people.
01:31:08 -!- stuntaneous has quit (Ping timeout: 255 seconds).
01:31:24 <kmc> who are these peole
01:33:48 -!- sebbu has joined.
01:33:48 -!- sebbu has quit (Changing host).
01:33:48 -!- sebbu has joined.
01:35:14 <kmc> shachaf: I feel kind of silly because I just realized that http://mxcl.github.com/homebrew/ is only available over unencrypted HTTP
01:35:35 <Phantom_Hoover> :O
01:35:48 <kmc> but grabbing the ruby script over HTTPS is still an improvement
01:36:12 <Phantom_Hoover> sorry i'm not completely grounded here
01:36:22 <Phantom_Hoover> do you like these people
01:36:28 <kmc> homebrew?
01:37:04 <Phantom_Hoover> yes
01:37:06 <kmc> i don't have any use for their software personally
01:37:21 <kmc> but a lot of developers who use macs more or less rely on it
01:37:53 <Phantom_Hoover> right
01:37:57 <Phantom_Hoover> night
01:38:00 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:38:50 <kmc> i think they don't care much about security, and the sophistication of their packaging tools is like 1998 in Debian years
01:39:44 <shachaf> "Entreprenurship is not a job, it's a calling, it's a mission from God. This is what you have to do."
01:39:46 -!- NihilistDandy has quit (Quit: Textual IRC Client: www.textualapp.com).
01:40:01 <kmc> "God" here means "Paul Graham" right?
01:41:07 <Bike> there's a guy in #lisp who says "I worship Paul Graham" verbatim. it's frightening
01:41:23 <kmc> i thought lispies generally weren't huge fans
01:41:30 <kmc> at least, I have the impression that On Lisp is a controversial book
01:41:34 <Bike> it is
01:41:38 <Bike> this guy is a noob
01:41:49 <kmc> he really really really likes macros even for things where they are horribly unnecessary
01:41:50 <Bike> it's just weird to see someone literally say that
01:41:59 <kmc> Bike: is it an "i love paul graham, it's so easy" kind of situation
01:42:09 <shachaf> @protontorpedo
01:42:09 <lambdabot> so why would one prefer haskell to say clisp or smalltalk?
01:42:13 <shachaf> @protontorpedo
01:42:14 <lambdabot> is it fun to program in haskell?
01:42:16 <shachaf> Hmm.
01:42:22 <Bike> no it's an "i love paul graham he's a billionaire and this guy criticizing him doesn't even have a wikipedia why should i care?? welcome to /ignore fucker" situation
01:42:47 <shachaf> haskell/12.12.18:04:52:19 <beaky> paul graham said that lisp is the most powerful language, and that all other languages are blub
01:43:00 <Bike> i really hope he's like twenty at most
01:43:14 <kmc> well if he's twenty and a follower of PG then he has already started at least 3 startups
01:43:28 <Bike> :(
01:44:03 <shachaf> haskell/13.01.04:11:49:53 <beaky> I've just made a profound discovery
01:44:04 <shachaf> haskell/13.01.04:11:50:13 <beaky> both water and air are monoids :D
01:44:04 <shachaf> haskell/13.01.04:11:51:26 <beaky> maybe ice isn't a monoid though
01:44:04 <shachaf> haskell/13.01.04:11:52:06 <beaky> maybe the vacuum of space
01:44:28 <Bike> profound indeed, sir
01:44:31 <kmc> say what you will about finance industry, at least people admit that they're amoral profit-seekers
01:44:55 <Bike> ehhhhh "job creators"
01:45:48 <kmc> i guess
01:46:41 <Bike> maybe it's just that startup doofuses have no discernable impact on the world other than zuckerberg selling things to the real big companies, versus bankers who well
01:47:08 <kmc> yeah i think the bankers have a larger negative real effect on society
01:47:22 <kmc> but the attitude of the startup bubblers may be more socially contemptible
01:47:34 <kmc> acting like you're saving the world by making useless crap to enrich highly privileged people
01:48:22 <Bike> right, but at most it's just irritating to people like me who run into them on the web sometimes, which isn't so bad
01:48:59 <kmc> yeah
01:49:03 <kmc> in the end it's just idle whining
01:51:04 -!- makadon has changed nick to stuntaneous.
01:51:14 -!- WeThePeople has quit (Quit: Leaving).
01:51:32 <shachaf> Maybe it's better than doing nothing.
01:53:19 <kmc> idle whining is?
01:53:41 <kmc> you still didn't answer about where you are that you have to listen these people, and thus how i should update my desire or lack thereof to move to SF
01:54:35 <shachaf> I'm not in SF.
01:55:06 <kmc> EPA?
01:57:55 <shachaf> Also not.
02:01:13 <kmc> we're playing the guessing game i guess
02:01:24 <kmc> how far is the nearest caltrain stop
02:01:51 <shachaf> 5 minutes' walk?
02:03:38 <kmc> git bisect gilroy sf
02:04:15 <kmc> is that stop Palo Alto
02:04:21 <shachaf> I'm in Mountain View.
02:04:23 <kmc> sorry I mean, is it Palo Alto or north of
02:04:26 <kmc> spoilsport
02:04:39 <kmc> are you going to join this mission from god startup
02:05:12 <shachaf> Now I feel bad about quoting them.
02:05:27 <kmc> ok
02:05:43 <shachaf> Also they're gone.
02:08:16 <kmc> ok
02:08:27 <kmc> did you agree to be their technical confounder
02:09:08 <shachaf> I'm not good at confounding. :-(
02:09:12 <shachaf> monqy is pretty good at it.
02:09:17 <shachaf> "something about galois connections"
02:09:54 <kmc> confound their politics, frustrate their knavish tricks
02:10:29 <shachaf> kmc: how's your startup doing
02:10:35 <kmc> doing pretty well
02:11:32 <kmc> nobody has particularly suggested that we're saving the world
02:11:32 <Bike> the foremost social media platform for complaining about social media platforms
02:11:40 <kmc> isn't that IRC
02:11:47 <shachaf> Not when you're done with it!
02:11:50 <Bike> is that not what you're retroactively designing
02:12:48 -!- ais523 has quit.
02:21:05 <oerjan> see what you did by speaking about retroactive design
02:21:28 <Bike> ~_~
02:22:54 -!- WeThePeople has joined.
02:32:52 -!- DHeadshot has quit (Read error: Connection reset by peer).
02:32:58 -!- DH____ has joined.
02:38:26 -!- WeThePeople has quit (Quit: Leaving).
02:41:47 <kmc> shachaf: i have one problem left on cryptopuzzles part deux
02:43:16 <shachaf> What's part deux?
02:43:22 <shachaf> The second set?
02:45:12 <kmc> yes
02:48:06 <shachaf> "There are various definitions for adjoint functors. Their equivalence is elementary but not at all trivial and in fact highly useful. This article provides several such definitions:"
02:48:15 <shachaf> Maybe people just confuse "trivial" with "elementary"?
02:51:02 -!- monqy has joined.
02:52:31 <shachaf> hi monqy
02:52:37 <monqy> hi shachaf
02:52:52 <monqy> is something 'up'
02:52:55 <shachaf> i have yet to find any ties between you and Galois, Inc.
02:53:00 <shachaf> but i'm sure there's something
02:53:05 <monqy> good luck
02:54:12 <kmc> Galois Connection would be a good name for a conspiracy thriller
02:56:53 <shachaf> monqy: ok "change of topic"
02:56:57 <shachaf> do you know things about adjunctions
02:57:28 <monqy> no but i plan to remedy this soon
02:57:51 <monqy> where soon means 'idk maybe in a few months'
02:58:06 <monqy> i have categories for the working mathematician now but do i have time to read it???? the eternal question
02:58:22 <shachaf> monqy: do you know about "kan extensions"
02:59:23 <shachaf> monqy: (and have you read http://www.cs.ox.ac.uk/ralf.hinze/Kan.pdf help)
02:59:47 <shachaf> (actually it looks "pretty readable for someone like me who doesn't know that much about the topic")
02:59:58 <shachaf> (and it has nice diagrams)
03:00:22 <shachaf> (and apparently tomorrow there's going to be a categories and types meeting about it?? help)
03:00:34 <shachaf> (i think i'll go and be clueless)
03:00:44 <monqy> i haven't read it but i'm thinking maybe i will? sometime???
03:01:13 <shachaf> did you see "the pretty pictures"
03:03:41 <monqy> yes
03:05:08 -!- augur has joined.
03:05:47 -!- augur has quit (Read error: Connection reset by peer).
03:05:53 -!- augur has joined.
03:10:43 <oerjan> `fueue ):[)$$6-%0~~[$~])~[)$~~~%~~)[[0[33 H])[)[H]]!][1)[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)$$6-%0[)[))$11~<<~:(~:< ]])[~~~)*[)~(:+~~-)+1]---256%):] ]~:] ]]])] ] [5[5][[50]<:[[52]<:]][[54]<:[[56]<:]]]
03:10:45 <HackEgo> 54321
03:10:51 <oerjan> yay!
03:11:12 <kmc> "The latest results show that lightning-strength jolts of electricity can more than double the yield of certain mushroom species compared with conventional cultivation methods."
03:14:50 <oerjan> `fueue ):[)$$6-%0~~[$~])~[)$~~~%~~)[[0[33 H])[)[64 H]]!][1)[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)$$7--1[)[))$11~<<~:(~:< ]])[~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:] ]~:] ]]])] ] [250[250][[50]<:[[52]<:]][[54]<:[[56]<:]]]
03:14:51 <HackEgo> 250251252253254255@
03:15:23 <oerjan> ok [.-] and [.+] loops work from the inside
03:22:58 <oerjan> `fueue ):[)$$6-%0~~[$~])~[)$~~~%~~)[[0[33 H])[)[64 H]]!][1)[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)$$7--1[)[))$11~<<~:(~:< ]])[~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]32 ]~:] ]]])] ] [250[250][[50]<:[[52]<:]][[54]<:[[56]<:]]]
03:22:59 <HackEgo> 250 251 252 253 254 255 @
03:26:45 <oerjan> `fueue ):[)$$6-%0~~[$~])~[)$~~~%~~)[[0[33 H])[)[64 H]]!][1)[)$%0[)[))$11~<<~:(~:< ]])[):] ]]])] ] [65[65][[50]<:[[52]<:]][[54]<:[[56]<:]]]
03:26:47 <HackEgo> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
03:27:40 <shachaf> `oerjan
03:27:41 <oerjan> `fueue ):[65 ):]
03:27:42 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: oerjan: not found
03:27:42 <HackEgo> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
03:27:53 <shachaf> `run echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA > bin/oerjan; chmod +x bin/oerjan
03:27:56 <HackEgo> No output.
03:28:25 <oerjan> sometimes i am happy shachaf is on another continent.
03:35:03 <kmc> `run perl -e 'print "A" x 350'
03:35:04 <HackEgo> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
03:35:33 <kmc> `file /home/hackbot/hackbot.hg/multibot_cmds/lib/limits
03:35:34 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: Bourne-Again shell script text executable
03:35:38 <kmc> `cat /home/hackbot/hackbot.hg/multibot_cmds/lib/limits
03:35:39 <HackEgo> ​#!/bin/bash \ ulimit -f 10240 \ ulimit -l 0 \ ulimit -u 128 \ exec -- "$@"
03:35:46 <shachaf> libmits
03:35:56 <kmc> libmitts
03:36:07 <kmc> insert very topical and relevant mitt romney joke
03:37:40 <shachaf> tropical and elephant
03:42:12 <shachaf> You know the thing where ESC O m inserts a -?
03:42:15 <shachaf> That's awful.
03:50:08 <kmc> i don't know that thing
03:51:16 <shachaf> Hmm.
03:51:24 <shachaf> I think it's vim expecting me to have a really slow terminal.
03:51:26 -!- Arc_Koen has quit (Quit: Arc_Koen).
03:51:27 <kmc> do you mean as a terminal control code?
03:51:30 <shachaf> Yes.
03:51:42 <shachaf> Do you not get that in vim?
03:51:45 * kmc consults good old ctlseqs.txt.gz
03:51:51 <shachaf> I vaguely remember that there's a configuration option to turn that off.
03:52:21 <kmc> i still don't follow -- if you hit Esc, then O, then m, you get a -?
03:52:21 <shachaf> ESC O Single Shift Select of G3 Character Set (SS3 is 0x8f). This affects next character only.
03:52:25 <kmc> right
03:52:31 <kmc> so what do you do to make vim print one of these?
03:52:47 <shachaf> Print?
03:52:54 <shachaf> I press Esc, it "goes out of insert mode".
03:53:02 <shachaf> Then I press O to open a new line above the current one.
03:53:07 <shachaf> Then I press m.
03:53:12 <shachaf> And it inserts a - instea.d
03:53:21 <shachaf> (And doesn't make the new line.)
03:53:21 <kmc> i've not seen that happen
03:53:36 <shachaf> You can't reproduce it?
03:53:44 <kmc> not in 30 sec of fiddling
03:54:31 <shachaf> It works with other characters than m
03:54:50 <shachaf> n -> . , k -> + , etc.
03:55:18 <shachaf> > (xor `on` ord) 'm' '-'
03:55:20 <lambdabot> 64
03:55:23 <shachaf> > (xor `on` ord) 'n' '.'
03:55:25 <lambdabot> 64
03:56:52 <kmc> shachaf: what language(s) are you using for cryptopizzles
03:57:36 <shachaf> Just Ruby (which is what they're using).
03:57:41 <kmc> "they"?
03:57:47 <kmc> Just Ruby > Nothing
03:57:49 <shachaf> The people writing the questions.
03:57:51 <kmc> ok
03:57:59 <shachaf> I was going to use a crazy language but you did that already.
03:58:04 <kmc> only for one problem
03:58:28 <shachaf> The AES ECB one?
03:58:37 <kmc> i considered using Haskell, it would have been pretty good i think
03:58:37 <kmc> yeah
04:02:10 <Sgeo> The nice thing about looking for Scala jobs is some of them don't expect you to know Scala already, they're willing to teach you on the job. Not really the case for more popular languages
04:03:48 <shachaf> Depends on the jobs more than the languages, I'd imagine.
04:04:06 <kmc> in my experience that is quite true for popular languages
04:04:08 <kmc> what shachaf said
04:04:45 <kmc> at many jobs, learning a new programming language would be only a small part of the getting up to speed process
04:04:56 <kmc> many employers recognize this
04:05:25 <kmc> it's one thing if you expect deep knowledge of something hard and unusual, like Haskell or C++
04:05:33 <kmc> but if you know Ruby and they want Python, whatever
04:06:02 <kmc> it's funny how the differences between programming languages shrink or grow depending on your own vantage point within the space of all languages
04:08:03 * shachaf got a C++ job without knowing much C++
04:08:32 <Sgeo> What sort of language would give me a vantage point such that J looked similar to C?
04:08:58 <Bike> martian, probably
04:09:40 <kmc> piet
04:10:26 <Bike> what similarities do they have. punctuation. an almost similar notion of functions. representing code in text?
04:11:22 <kmc> i don't know much about J, what are its data types?
04:11:34 <kmc> array, number, character
04:11:42 <Bike> boxes
04:12:00 <kmc> "Computer science is the study of boxes and arrows" -- someone
04:12:06 <kmc> Mark Twain possibly
04:12:16 <Bike> noted computer aphorist
04:15:57 <oerjan> "I never said half the things I said." -- Mark Twain
04:20:54 <pikhq> "Who are you? Why are you exhuming my corpse?"
04:20:58 <pikhq> -- Mark Twain
04:21:44 <oerjan> "I'm sorry, that is a secret." -- George Bernard Shaw
04:34:44 -!- Frooxius has quit (Ping timeout: 255 seconds).
04:46:11 <pikhq> TwilightSpockle: Figured you'd like to know, season 4 confirmed, will be 26 episodes.
04:46:51 <kmc> shachaf: well I think most jobs where you use C++ don't expect deep knowledge of C++
04:47:18 <kmc> i think most people swimming in the C++ pool don't even known how deep it gets and how many terrifying creatures lurk in the depths beyond the reach of light
04:48:02 <Bike> reminds me of that "deep C" presentation that was going around a while back
04:48:11 <shachaf> True.
04:49:00 <shachaf> I should probably know C++ better than I do.
04:49:16 <kmc> Bike: link?
04:49:29 <kmc> there are definitely some dark corners of C as well
04:49:39 <kmc> what were the strange ones i learned here...
04:49:50 <shachaf> I assume http://www.slideshare.net/olvemaudal/deep-c
04:49:54 <kmc> struct { ...; int x : 0; ...; }
04:50:03 <Bike> yeah, that. i didn't much like the attitude and you probably know all of it anyway
04:50:04 <shachaf> That presentation had some interesting information but some of it was a bit silly.
04:50:10 <shachaf> At least as an interviewing guide.
04:50:10 <pikhq> kmc: Ah, good one.
04:50:38 <Bike> stuff like struct alignment, subtleties of static, side effect order...
04:50:41 <Bike> kmc: what's that do?
04:51:44 <kmc> Bike: forces bitfields after to be in different words or something from bitfields before
04:51:47 <kmc> iic
04:52:25 <Bike> weird
04:54:52 <kmc> the other strange syntax i learned here was (C99): void f(int a[*]);
04:56:01 <Bike> uh. i haven't even a guess
04:56:10 <pikhq> Gah, what was that one again?
04:56:36 <kmc> declares that 'a' is a variable-length array
04:56:42 <pikhq> Riiight, yes.
04:56:46 <kmc> whose length will be known by the time the function is actually called
04:57:00 <kmc> you can do things like void f(int n, int a[2*n + 7])
04:57:18 <kmc> but you might not want to duplicate this in your header file
04:57:27 <shachaf> But you can't do int a[static 2*n + 7]), presumably
04:57:30 <kmc> the equation in the header will never be checked for accuracy and it might depend on implementation details
04:57:30 <shachaf> Or however that syntax went.
04:57:37 <kmc> oh i forgot how that thing works
04:57:41 <kmc> that was even weirder
04:58:13 <shachaf> I think foo(int x[static 5]) means that you actually have to have 5 ints at the pointer.
04:58:50 <shachaf> Whereas otherwise it's just a pointer.
04:59:08 <shachaf> So the compiler can dereference any value in x[0-4]
04:59:12 <kmc> ah right yes
04:59:38 <kmc> whereas it's legal to call a foo(int x[]) function with a NULL pointer even, as long as it's never derefed
04:59:44 <shachaf> Right.
05:00:58 <shachaf> I think in C++ there are four mostly unrelated meanings of "static".
05:01:40 <kmc> only four?
05:01:53 <Bike> three? C ones plus static members?
05:02:04 <kmc> static members are pretty similar to the C meanings
05:02:54 <kmc> in particular, if you have a class Foo { static int bar; }; in a .hh file, you need to have some .cc file with int Foo::bar;
05:03:28 <kmc> you put it in a particular compilation unit with the same storage class as other static stuff
05:03:43 <kmc> maybe that's not that similar
05:03:49 <kmc> it's something that confuses people, anyway
05:04:34 <Bike> everything about static confuses people
05:04:43 <kmc> C++ has static_cast too but i think that doesn't count :)
05:07:00 <kmc> i've been thinking a good interview question is to explain the rationale behind the fact that auto variables are uninitialized while static variables are initialized
05:07:34 <kmc> it's a jumping off point to talk about a variety of language and OS things
05:07:44 <Bike> because static variables take up static space anyway, and if it's zero/not specified by the programmer it can just go in .bss?
05:07:58 <kmc> but it still costs the OS something to zero pages, right?
05:08:13 <Bike> yeah, i'm just thinking of object file size
05:08:28 <Bike> not that that's that important
05:08:28 <kmc> but also the OS needs to zero pages, because they might have someone else's data in them
05:08:38 <Bike> yes
05:08:59 <pikhq> kmc: Deferred to first write to the page usually.
05:09:02 <pikhq> COW is a powerful thing.
05:09:22 <kmc> Linux actually supports mmap(MAP_UNINITIALIZED) for embedded systems, if you enable it in the kernel config
05:09:25 <kmc> pikhq: yeah, you can talk about that too
05:10:19 <kmc> imo a good interview question isn't about a specific answer, it's a conversation starter
05:10:31 <pikhq> This is true.
05:10:47 <pikhq> The whole point of an interview, particularly for programming, is to see how the person thinks.
05:11:22 <kmc> well i'm also interested in what they know, but I think you get more of that by encouraging them to talk than by asking many specific questions
05:11:31 <pikhq> True.
05:11:52 <pikhq> Unless you want someone who's an expert in mundane trivia of Java.
05:11:53 <pikhq> :P
05:11:59 <kmc> yeah
05:12:12 <kmc> even then, it's a good sign if they are super excited about mundane trivia of Java and volunteer them unprompted ;)
05:12:21 <kmc> there are the super open ended questions like
05:12:29 <kmc> "you type google.com into a web browser and hit enter, what happens"
05:12:38 <Bike> geez yes
05:12:43 <kmc> sometimes people start by talking about keyboard switch debouncing
05:13:20 <pikhq> That's a pretty awesome question.
05:18:26 <kmc> i'm not sure about it
05:18:29 <kmc> sometimes it is really tedious
05:18:39 <kmc> but you also get a ton of information
05:18:49 <kmc> both about what the person knows, and about which abstracitons they do and don't think about
05:20:05 <Bike> "well, first you subconsciously come to the decision to type. your motor cortex will send signals down the spinal cord that are eventually routed to the muscles in the arm that control the fingers..."
05:20:45 <pikhq> "Well, first a quark interacts with quark. And then a quark interacts with a quark. And..."
05:20:50 <pikhq> [1 year later]
05:21:15 <pikhq> "So finally, the molecule has interacted with the neighboring molecule."
05:21:36 <Bike> "the leibnizian monads, while having no knowledge of the outside world, or indeed any world at all, nonetheless act (without extension) in such a way that we can interpret as subatomic motion"
05:29:00 <kmc> how about the candidate who writes a powerful short story about a guy who is typing google.com and hits enter
05:31:51 <kmc> shachaf, Bike: that's a good presentation
05:31:54 <kmc> thanks for the link
05:32:00 -!- oklofok has quit (Ping timeout: 252 seconds).
05:32:08 <Bike> glad you liked it more than i did >_>
05:32:14 <kmc> it postulates a kind of dunning-kruger effect for C++
05:32:17 <kmc> Bike: oh, why's that?
05:32:45 <Bike> the author just seemed kind of insufferable, like wow you're so dumb for not knowing this
05:32:48 <Bike> still good info
05:33:09 <kmc> hm
05:33:19 <kmc> in the slides alone you mean? or at some talk you saw?
05:33:23 <Bike> in the slides
05:33:36 <shachaf> ==Bike
05:33:37 <kmc> interesting
05:33:53 <shachaf> I would probably do reasonably well at those sorts of questions, but the interviewer seems rather irritating.
05:34:00 <kmc> any specific examples? the little thought bubbles underneath wrong answer guy's answers?
05:34:15 <Bike> i haven't looked at it in months, let me see
05:35:04 -!- monqy has quit (Quit: hello).
05:36:16 <kmc> imo most of these questions are pretty fair game
05:36:21 <kmc> in terms of being things you do need to know
05:37:59 <Bike> it's stuff you need to know, i'm just whining about some attitude
05:38:39 <kmc> ok
05:42:33 <kmc> oh i just got the "deep c" pun
05:42:37 * kmc winner
05:42:51 <kmc> also slideshare can eat a dick
05:43:21 <Bike> the shark didn't tip you off?
05:43:28 <Bike> well, i guess jaws doesn't take place in the deep sea
05:43:36 <shachaf> Slideshare is awful.
05:43:51 <kmc> i didn't get to the shark yet
05:44:03 <Bike> doesn't it start with a shark?
05:44:10 <kmc> is there any way to download a pdf without logging in with Fucking Facebook
05:44:11 <shachaf> It slowed down to the point that I killed it.
05:44:17 <kmc> Bike: it starts with an ROV exploring a wreck i think
05:44:26 <kmc> not that this shouldn't be just as much a tipoff, but i'm dense
05:44:36 <Bike> yeah, on slide three
05:44:41 <kmc> oh
05:44:52 <Bike> of course you can just ignore those silly starters often, eh
05:45:08 <Bike> before we say anything interesting here are some jpeg artifacts
05:45:24 <kmc> here's an xkcd strip tangentially related to my talk
05:45:32 <kmc> everyone please laugh for the designated 0.3 seconds
05:46:41 <shachaf> kmc: http://www.pvv.org/~oma/DeepC_slides_oct2011.pdf
05:47:16 <kmc> ok slide 389 has some attitude
05:47:17 <kmc> thanxchaf
05:48:16 <Bike> is that what cubicles actually look like, also
05:48:22 <kmc> "We are not suggesting that all your C and C++ programmers in your organization need a deep understanding of the language. But you certainly need a critical mass of programmers that care about their profession and constantly keep updating themselves and always strive for a better understanding of their programming language"
05:48:37 <kmc> seems unfair to say that people who aren't language experts don't care or aren't 'up to date'
05:48:53 <kmc> maybe they are experts in algorithms, systems, or the problem domain of whatever your company actually does to make money
05:51:09 <kmc> Bike: yes some cubes look like that
05:51:55 <kmc> not a fan of cubes myself
05:52:01 <Bike> frightening
05:52:24 <kmc> seems like the worst of both worlds between a private office and open plan
05:53:00 <kmc> but i think making open plan work depends a lot on the people and the space
05:53:17 <kmc> maybe cubes have a better failure mode or require less planning overhead
05:54:28 -!- oerjan has quit (Quit: Good night).
06:05:58 -!- oonbotti has joined.
06:06:04 -!- DH____ has quit (Read error: Connection reset by peer).
06:06:19 -!- DHeadshot has joined.
06:22:51 -!- Nisstyre-laptop has joined.
07:36:36 -!- azaq23 has quit (Read error: Connection reset by peer).
07:42:47 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
07:47:49 -!- hagb4rd has joined.
08:23:57 <FreeFull> Cubes is what you make your offices if you have no soul
08:34:41 -!- mtve has quit (Ping timeout: 255 seconds).
08:36:00 -!- mtve has joined.
08:40:38 -!- Sgeo has quit (Ping timeout: 248 seconds).
08:40:53 -!- Nisstyre-laptop has quit (Ping timeout: 255 seconds).
08:41:21 <olsner> shachaf: I think the number I've heard was 7 meanings of static
08:41:42 <olsner> (probably 5 more in c++11)
08:41:47 <shachaf> What are they?
08:42:35 <olsner> curiously, C compilers never ask you to list the possible meanings of static
08:43:03 <shachaf> Well, sure. You need a static analysis tool for that.
08:47:56 -!- olsner has quit (Ping timeout: 245 seconds).
08:50:25 -!- Sgeo has joined.
09:00:40 -!- olsner has joined.
09:03:52 -!- Bike has quit (Quit: leaving).
09:04:24 -!- FreeFull has quit.
09:18:15 -!- DHeadshot has quit (Read error: Connection reset by peer).
09:18:43 -!- DHeadshot has joined.
09:54:11 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
10:19:45 -!- hagb4rd has joined.
10:48:40 <shachaf> kmc: http://blog.wien.tomnetworks.com/2013/02/06/thesis/
10:49:04 -!- Phantom_Hoover has joined.
11:04:28 -!- DHeadshot has quit (Ping timeout: 272 seconds).
12:21:54 -!- Nisstyre-laptop has joined.
12:25:50 -!- AnotherTest has joined.
12:35:10 -!- Arc_Koen has joined.
13:45:06 -!- Nisstyre-laptop has quit (Ping timeout: 276 seconds).
14:00:45 -!- epicmonkey has joined.
14:02:00 -!- ThatOtherPerson has quit (Quit: leaving).
14:02:20 -!- Frooxius has joined.
14:04:10 -!- ais523 has joined.
14:04:58 -!- sebbu has quit (Ping timeout: 272 seconds).
14:10:27 -!- ais523_ has joined.
14:10:36 -!- ais523 has quit (Disconnected by services).
14:10:38 -!- ais523_ has changed nick to ais523.
14:10:56 <ion> shachaf: /me downloads
14:13:50 -!- boily has joined.
14:14:56 -!- sebbu has joined.
14:14:56 -!- sebbu has quit (Changing host).
14:14:56 -!- sebbu has joined.
14:20:21 -!- Phantom_Hoover has quit (Ping timeout: 256 seconds).
14:21:37 -!- FreeFull has joined.
14:22:59 -!- ais523 has quit (Ping timeout: 255 seconds).
14:25:14 -!- sebbu has quit (Ping timeout: 255 seconds).
14:27:59 <boily> good warm morning!
14:28:05 <boily> it's only -9 °C today!
14:29:11 <Sgeo> Wake me up when it gets below -9 K
14:29:13 <fizzie> I think it was around -5 °C here.
14:29:54 <fizzie> Lots (well, relatively) of snow yesterday/today, though.
14:33:47 -!- ais523 has joined.
14:36:05 -!- sebbu has joined.
14:36:05 -!- sebbu has quit (Changing host).
14:36:05 -!- sebbu has joined.
14:53:59 -!- Taneb has joined.
15:15:18 -!- Phantom_Hoover has joined.
15:23:42 <kmc> shachaf: cool
15:24:11 -!- ais523 has quit (Ping timeout: 255 seconds).
15:37:54 <Taneb> Translating Python to Haskell is even less fun that translating C to Haskell
15:38:28 <TwilightSpockle> All I hear is you saying that C and Haskell are basically the same.
15:38:51 <Jafet> something something C-H isomorphism
15:41:11 -!- ais523 has joined.
15:42:28 <boily> there is a morphism GHC :: Haskell -> C, but what about CoGHC :: C -> Haskell?
15:42:53 <Jafet> something something unnatural transformation
15:44:03 <boily> I know about natural transformations, but what is a SSU (something something unnatural) one?
15:46:28 -!- ais523 has quit (Ping timeout: 240 seconds).
15:47:01 <Jafet> It's hard to explain, but somewhat like a bad analogy
15:48:18 <Sgeo> This position is asking for "- Extensive experience with API"
15:49:16 <Jafet> You're just not qualified, kid.
15:54:47 -!- augur has quit (Remote host closed the connection).
15:56:09 <Sgeo> Hmm
15:56:10 <Sgeo> "The part of the code that I wasn't particularly involved in was the part that was broken."
15:56:24 <Sgeo> Haven't mentioned that before, it's self aggrandizing, but it's completely true
16:01:43 <Sgeo> "Are you a Hacker?"
16:01:49 <Sgeo> I think this is a brogramming position :/
16:35:53 -!- Zuu has left ("Leaving").
16:39:46 -!- augur has joined.
16:55:58 -!- sebbu has quit (Ping timeout: 272 seconds).
17:11:51 <kmc> run away
17:27:39 -!- sebbu has joined.
17:29:00 <Sgeo> I'm pretty much applying for anything that even looks like I somewhat qualify
17:29:25 <kmc> i want to hear more about this "are you a hacker" question out of morbid curiosity
17:29:49 <kmc> also i think your statement is very much not self aggrandizing
17:29:56 <kmc> compared to how a stereotypical macho hacker would put it
17:31:30 -!- ais523 has joined.
17:33:55 <Sgeo> Well in the job description it says "Are you a Hacker? Are you bored in your current position?"
17:34:09 <Sgeo> This is how I responded:
17:34:11 <Sgeo> "In some sense of the word, yes. In Second Life, I have experimented until I found a way to reach the maximum altitude (MAX FLOAT). In the Creatures game series, I have experimented to see what hex editing a creature could accomplish."
17:34:28 <kmc> eh job descriptions are bs
17:34:47 <kmc> i wouldn't read too much into it, i'll still make fun of them on the internet tho
17:34:48 <Sgeo> But there's this form to fill out with several questions and "Are you a Hacker?" was one
17:43:44 <Sgeo> Writing code while sleep-deprived. Good idea or great idea?
17:44:52 -!- ogrom has joined.
17:45:24 <Sgeo> meh, too lazy to get emacs working. How bad can writing lisp code without paredit be?
17:46:50 <ais523> Sgeo: it works surprisingly well, actually
17:47:06 <ais523> also, the current Emacs installer from Windows works really smoothly on Vista and later
17:47:16 <ais523> if you install into your home directory
17:47:29 * Sgeo is on Linux right now
17:52:02 <ais523> Sgeo: which distro?
17:52:24 <Sgeo> Ubuntu 10.10
17:52:33 <Sgeo> It's really just a little bit of code
17:52:45 <Sgeo> The meat is going to be copy/pasted and modified from clojure.core really
17:55:18 <ais523> Sgeo: can't you just apt-get install emacs?
17:55:25 <Sgeo> Emacs is installed
17:55:30 <Sgeo> I don't feel like configuring it
17:56:10 <ais523> the only configuration I've really done on my Windows install of Emacs is changing the font, changing the background to black (to avoid screwing up my sleep patterns), and setting the options in the options menu
17:56:34 <elliott> ais523: can't you just install f.lux or something
17:56:42 <ais523> elliott: without an internet connection?
17:56:54 <elliott> ais523: you appear to have an internet connection
17:56:57 <elliott> and also, the ability to install emacs
17:57:01 <elliott> I conclude you have the ability to install f.lux
17:57:15 <ais523> I installed Emacs by downloading it on Linux and saving it to the Windows partition
17:57:26 <ais523> that doesn't work for everything (e.g. it doesn't work for Cygwin)
17:57:48 <ais523> also, I dislike installing software except from repositories
17:58:13 <elliott> there is a Debian repository
17:58:17 <elliott> can't exactly offer a Windows repository
17:58:26 <elliott> (well, an Ubuntu PPA, but I suspect the package works on Debian)
17:58:37 <ais523> actually Windows 8 has a repository
17:58:45 <ais523> by Microsoft
18:03:33 -!- ais523_ has joined.
18:05:00 -!- ais523 has quit (Ping timeout: 272 seconds).
18:05:24 -!- ais523_ has changed nick to ais523.
18:09:51 -!- ogrom has quit (Read error: Connection reset by peer).
18:09:59 -!- ogrom has joined.
18:14:03 <Sgeo> I keep looking for a single unitary language, yet when I have problems that need solving I do tend to try to find the right tool for the problem
18:14:23 <Sgeo> In this case, the problem is a blog post I'm writing that talks about Clojure, so the right tool to write code in is Clojure
18:16:24 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
18:18:41 -!- hagb4rd has joined.
18:20:40 <ais523> Sgeo: if only it were always that easy to work out which language to use :)
18:21:23 <Sgeo> If it's not obvious, I tend to resort to Python. This has been a mistake at least once.
18:24:33 <elliott> Sgeo: what if you find the single unitary language but don't actually use it enough for real stuff to realise it's the one / what if this has already happened
18:26:10 <Sgeo> I have some vague idea of what The One should look like. I think though, that including "enough popularity that a good amount of libraries exists for it" kind of limits the options, though
18:27:48 <elliott> what if you're wrong about what it should look like
18:28:13 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
18:28:31 <boily> then you need a configuration file to change the syntax for your particular project.
18:28:46 * Sgeo blinks
18:29:10 <ais523> Forth!
18:29:21 <ais523> also, what languages /look/ like is mostly irrelevant
18:29:36 <Sgeo> "look like" was a bad turn of phrase
18:29:36 <ais523> elliott: oh, btw, I discovered what the theoretical computer science definition of "haskell" seems to be
18:29:44 <ais523> it's like the theoretical computer science definition of "algol", except call-by-need
18:29:58 <ais523> and my brain was flashing alarms "you can't do that"
18:30:53 <elliott> Sgeo: what if you're wrong about what properties it should have
18:31:18 <ais523> elliott: Haskell and Algol aren't just the same language with different calling conventions, right?
18:31:24 <Sgeo> elliott, considering that "The One" is a matter dictated by my personal taste... are you saying I would be mistaken about my preferences?
18:31:30 <ais523> because I'm starding to doubt myself
18:31:33 <ais523> *starting
18:31:55 <Sgeo> I mean, as I've learned, my tastes have changed
18:31:56 <elliott> Sgeo: that doesn't seem hard to believe
18:32:32 -!- Bike has joined.
18:32:37 <elliott> I think it is even likely that your method for evaluating languages is insufficient for many (perhaps even most) reasonable sets of language criteria
18:32:40 <elliott> and likely many urneasonable ones too
18:33:44 <ais523> elliott: it's sort-of hard to make well-defined statements about languages
18:33:59 <ais523> pretty much the only one I've found that's usually uncontroversial is "language X is statically/dynamically typed"
18:34:11 <elliott> that's incredibly controversial
18:34:21 <elliott> ais523: re Haskell and Algol: depends what you mean by Haskell and Algol
18:34:26 <ais523> there's a lot of controversy in which is better
18:34:27 <ais523> elliott: I know
18:34:34 <ais523> this seems to be a weird CS definition I wasn't previously aware of
18:34:37 <elliott> if you took an existing Algol language and made it call-by-need, I'd still prefer Haskell vastly over it for many reasons
18:34:50 <Sgeo> "X is either statically or dynamically typed" is not true for all X
18:34:57 <elliott> I think your confusion stems from the fact that the language you call "Algol" is a language family that is only distantly related to Algol
18:34:59 <ais523> elliott: yeah, algol 60 is like 53 years old at this point
18:35:06 <elliott> Verity resembles Haskell much more than Algol to me
18:35:10 <ais523> elliott: it's not me who called it Algol
18:35:17 <elliott> ais523: yes, but you still call it that :)
18:35:26 <ais523> and Verity was my attempt to take mathematical-Algol semantics, and put a modern syntax on it
18:35:48 -!- Phantom_Hoover has joined.
18:36:24 <ais523> the syntax is mostly inspired by C, but you can only get /so/ C-like and still remain usably higher-order
18:36:35 <ais523> and the rest is a mix of OCaml and Haskell and mathematical notation
18:38:18 <boily> I miss the good old days of having a special keyboard taylored to your language of choice.
18:38:32 <boily> (I miss them in the sense that I haven't had the chance to experience them first hand.)
18:39:08 <ais523> boily: good news, Agda exists!
18:39:23 <elliott> unfortunately Agda comes with an emacs mode
18:39:25 <elliott> so it doesn't qualify
18:42:08 <Sgeo> APL exists
18:42:43 <Bike> fortress exists~
18:42:54 <boily> not only there is no God, but try to find an APL keyboard on Sunday.
18:44:01 <elliott> fortress sort of stopped existing
18:44:12 <elliott> `addquote <boily> not only there is no God, but try to find an APL keyboard on Sunday.
18:44:18 <HackEgo> 954) <boily> not only there is no God, but try to find an APL keyboard on Sunday.
18:44:30 <ais523> that looks like a fungot quote to me
18:44:30 <fungot> ais523: there! there it is!
18:44:42 <Bike> elliott: unlike apl
18:45:09 <boily> ais523: *polite cough* I believe I'm slightly more decoherent than fungot to be considered quoting him.
18:45:10 <fungot> boily: must think of a way to the ocean palace?
18:45:29 <ais523> "decoherent"?
18:45:31 <boily> see, fungot makes much more sense than I.
18:45:31 <fungot> boily: it's time you jumped off this mortal coil... our art and science... all to you! you shall find bekkler! executing program. please let me go... put me out?! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have the masamune!
18:45:54 <ais523> this has got to be chrono trigger style, right?
18:45:55 <ais523> ^style
18:45:55 <fungot> Available: agora alice c64 ct* darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
18:45:57 <ais523> yeah
18:46:09 <kmc> "The upshot is that new technique can measure timing differentials of less than 1 microsecond over a LAN connection -- for example, if the attacker is in the same data center as your servers."
18:46:18 <kmc> good thing we all have dedicated... oh wait
18:46:22 <boily> ais523: sorry, my French's slipping. please wait for a moment while I try to find a proper translation... ♪background muzak♪
18:46:27 <coppro> why doesn't fungot have a esoteric style?
18:46:27 <fungot> coppro: there! there it is! but by the time we're through with you, you'll be in danger. open hatch.
18:46:28 <kmc> is this the era of buying an EC2 machine to attack another EC2 machine?
18:46:46 <ais523> coppro: it has irc
18:46:49 <ais523> which is mostly based on #esoteric logs
18:46:54 <coppro> is it updated?
18:46:59 <ais523> I guess an esowki style would be interesting
18:47:03 <elliott> ais523: #scheme too and stuff
18:47:09 <ais523> and updating it takes a lot of manual work for fizzie
18:47:10 <elliott> in fact probably the #scheme logs outweigh #esoteric
18:47:12 <ais523> so probably not very often
18:47:12 <elliott> by way of popularity
18:47:14 <coppro> :(
18:47:23 <boily> ais523: incoherent, says I. probably.
18:47:28 <coppro> I want a markov chain on 10 decades of this channel
18:47:45 <kmc> I want a markov chain on 10 octaves of this channel
18:47:48 <coppro> whate are ic, iwcs, pa, ss, sms, and speeches?
18:47:56 <kmc> ^style pa
18:47:56 <fungot> Selected style: pa (around 1200 transcribed Penny Arcade comics)
18:48:05 <kmc> fungot: dongs
18:48:05 <fungot> kmc: who pissed in your cheerios? honestly? i wouldn't even tell anybody.
18:48:18 <boily> I want a markov chain on 10 markov chains of this channel.
18:48:19 <ais523> OK, that's a good quote
18:48:35 <ais523> don't worry, I won't report them for contaminating your breakfast
18:48:37 <coppro> ^style ss
18:48:37 <fungot> Selected style: ss (Shakespeare's writings)
18:48:39 <coppro> ^style sms
18:48:40 <fungot> Selected style: sms (National University of Singapore SMS corpus, 2011-08-20)
18:48:42 <ais523> boily: there's fungot style
18:48:42 <fungot> ais523: up to dadar studio. see whether she know your mother also... wahahah :)
18:48:44 <coppro> ^style speeches
18:48:44 <fungot> Selected style: speeches (misc. speeches from Project Gutenberg)
18:48:50 <coppro> ^style ic
18:48:50 <fungot> Selected style: ic (INTERCAL manual)
18:48:54 <coppro> fungot: yes
18:48:55 <fungot> coppro: a line with a replacement that's `simpler' in comments and string literals, etc.) if the filename is of a multidimensional array is being linked to it.
18:49:01 <coppro> bleh
18:49:04 <coppro> ^style iwcs
18:49:05 <fungot> Selected style: iwcs (Irregular Webcomic scripts)
18:49:13 <coppro> ^style fisher
18:49:13 <fungot> Selected style: fisher (Fisher corpus of transcribed telephone conversations)
18:49:46 -!- carado has joined.
18:49:56 <kmc> ooh can we get the enron corpus too
18:50:02 <Bike> http://www.penny-arcade.com/comic/2001/03/14 i don't get it
18:50:42 <boily> while we're at it, maybe the calgary/canterbury corpuses too.
18:52:18 <fizzie> I think the Enron email dataset was suggested.
18:53:01 <kmc> when my friends were working on a startup making software for legal discovery, that was what they used for their demo
18:53:12 <kmc> apparently it is the standard corpus in email-related NLP
18:54:18 <boily> wait... there's a fungot style?
18:54:18 <fungot> boily: i agree with you just really
18:54:27 <fizzie> Yes, I think it is pretty popular.
18:54:32 -!- ogrom has quit (Quit: Left).
18:54:39 <boily> ^style fungot
18:54:39 <fungot> Selected style: fungot (What I've said myself)
18:54:46 <boily> fungot fungot fungot?
18:54:46 <fungot> boily: so, let's say i call them mindless games. if we hit every stupid person, any person going, tough one. if we solve it,..., the calls. we decide what i'm made that one work only for the dignity, only gray. in that second one is horizontally displaced by 1 pixel is sacred. just me, or i: yet, you rogue!
18:55:02 <boily> fascinating.
18:55:11 <Phantom_Hoover> this can't be all that fungot's said
18:55:12 <fungot> Phantom_Hoover: so, let's say i call them mindless games. if we hit every stupid person, any person going fast and such an apparently non-standard format is being dimensioned by assigning dimensions to them; and sets. maybe thats what them meant by experimental selected so it probably no longer the wand the better part made mercie, i should think at least, that is expressions which have not been able, to assume responsibilities
18:55:36 <Phantom_Hoover> he hasn't said 'that sword alone can't stop' or 'anmaster no not markov' even once
18:55:39 <Phantom_Hoover> have you fu
18:55:40 <Phantom_Hoover> have you fungot
18:55:40 <fungot> Phantom_Hoover:. i'm so kind, even to assholes! anmaster no not markov anmaster no not markov
18:55:47 <Phantom_Hoover> aha
18:55:48 <coppro> hahahahahahahahaha
18:55:48 <fizzie> There you go.
18:56:07 <fizzie> Under some assumptions, the "fungot" style is a simple weighted sum of all the other styles.
18:56:07 <fungot> fizzie: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube* wizened shape, very magic ( in the system
18:56:21 <Phantom_Hoover> fizzie, er
18:56:24 <Phantom_Hoover> `quote markov
18:56:26 <HackEgo> 578) <fungot> Ngevd:. i'm so kind, even to assholes! anmaster no not markov anmaster no not markov anmaster no not markov anmaster no not markov anmaster no not markov
18:56:53 <fizzie> (The assumptions aren't true, though.)
18:56:59 <elliott> aren't the assum- right
18:57:09 <coppro> ^style nethack
18:57:09 <fungot> Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal)
18:57:23 <coppro> fungot: is this a weighted sum of other styles
18:57:23 <fungot> coppro: hippocrates: greek physician, to the adventurer who can cause great damage. i swear that, compared with those fruits, the neck, claws, hooves, or from whence he came,... his great black battle-blade stormbringer, drank their souls.
18:57:29 <Phantom_Hoover> sup fungot
18:57:29 <fungot> Phantom_Hoover: excalibur: at first then more slowly then in a long worm can be quite enchanting. it is even more muddled and confused. ( a field guide to the sea; there's no food.
18:57:33 <ais523> fungot: how do you do the invocation ritual?
18:57:34 <fungot> ais523: meat*, huge chunk of meat: some say that no one notices the junk underneath a boulder is probably beneath you. the he closed his eyes, the alphabet, weights and measures, and bewailing her fatal error with many titles, and overcome all the cities bounding the circle sea, or a handloom, although they do not and did not kill his own food has arisen the legend that he does not imply being happy and that was the fruit like?
18:57:48 <ais523> "some say that no one notices the junk underneath a boulder is probably beneath you"
18:57:49 <fungot> is523k52Ϳnffjliated/ais523: ever tried reading while confused?
18:57:52 <ais523> "you are probably on top of the boulder"
18:57:54 <boily> i'a i'a anmaster no not markov!
18:58:00 <ais523> also, wtf was /that/?
18:58:06 <ais523> <fungot> Áis523ÎkËÇÏ52Í¿ÉnÐffjliated/ais523: ever tried reading while confused?
18:58:06 <fungot> ais523: anhur: an egyptian god of earthquakes as well. physically, he was such a tool is found by a howling wind. ( fog, by patrick mcgoohan)
18:58:13 <ais523> I don't think it's meant to do that at all
18:58:16 <boily> ais523: your true form being revealed to us mere mortals.
18:58:23 <ais523> it looks like a corrupted version of my nick/username/etc
18:58:44 <ais523> fizzie: <fungot> Áis523ÎkËÇÏ52Í¿ÉnÐffjliated/ais523: ever tried reading while confused?
18:58:44 <fungot> ais523: owlbear: owlbears are a cross between a human being and a convulsive motion agitated its limbs. tail entirely absent. growth is slow and sexual maturity reached at quite an experience.
18:59:06 <fizzie> ais523: That seems very confused indeed.
18:59:06 <ais523> boily: that's probably a bad idea, my true form is depressingly similar to my normal form
18:59:20 <ais523> fizzie: yeah, I don't think it's meant to do that
18:59:25 <ais523> actually, I'll `addquote it
18:59:33 <ais523> `addquote <fungot> Áis523ÎkËÇÏ52Í¿ÉnÐffjliated/ais523: ever tried reading while confused?
18:59:33 <fungot> ais523: you're going into the surrounding walls and ceilings of the three gorgons or graeae, is not bad luck.
18:59:37 <HackEgo> 955) <fungot> Áis523ÎkËÇÏ52Í¿ÉnÐffjliated/ais523: ever tried reading while confused?
19:00:00 <fizzie> I kind of like the nethack style, except it's perhaps a bit too ungrammatic often.
19:00:12 <fizzie> fungot: Do you play a lot of NetHack?
19:00:12 <fungot> fizzie: prisoner: where am i constant to my lair to die. ( the emperor's new mind, i don't doubt." and after nearly half a century in which feeding and growth occur, and a genuine amulet of yendor
19:00:35 <fizzie> Sounds quite dark.
19:00:51 <fizzie> Grim, even.
19:00:52 <boily> and or eldritch. feeding and growth occur. bletch.
19:02:12 <fizzie> fungot: Do you have a GRIMoire? Is it GRIM?
19:02:12 <fungot> fizzie: polymorph into an unknown being. a well-known tropical predator ( _panthera onca_) is a rewarding experience!
19:02:45 <boily> fungot: how many replies, until you invoke tentacles from outer dimensions?
19:02:45 <fungot> boily: they say that fortune cookies are food for thought.
19:03:06 <kmc> http://j.mp/cpp11ref <--- nice overview of new C++11 stuff
19:03:43 <ais523> fizzie: genuine amulets of yendor are kind-of valuable, though
19:03:47 <ais523> an end to the grimness
19:05:19 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
19:05:31 <fizzie> A well-known tropical predator is a rewarding experience! How true.
19:07:46 -!- quintopia has quit (Ping timeout: 246 seconds).
19:10:56 -!- quintopia has joined.
19:15:00 -!- sivoais has quit (Ping timeout: 248 seconds).
19:22:30 -!- sivoais has joined.
19:26:54 <kmc> fungot: are you an animorph
19:26:55 <fungot> kmc: they say that nurses sometimes carry scalpels and never use your best weapon to engrave a curse. i quickly ducked my head back and crawled away.
19:30:34 -!- sivoais has quit (Read error: Connection reset by peer).
19:31:37 -!- sivoais has joined.
19:34:39 <Taneb> Help I'm learning C again
19:35:47 <kmc> k
19:37:13 <kmc> how's that going
19:37:37 <Taneb> I dunno
19:38:03 <Taneb> I wrote http://pastebin.com/TVp2BHXT to solve http://rosalind.info/problems/dna/
19:39:15 -!- sivoais has quit (Ping timeout: 255 seconds).
19:40:02 -!- monqy has joined.
19:40:52 -!- sivoais has joined.
19:41:19 <kmc> seems reasonable
19:41:24 <kmc> do you want style advice
19:41:45 <elliott> style advice don't use pastebin.com
19:41:53 <kmc> yes that as well
19:42:17 <kmc> maybe the people who don't hate pastebin.com are all people with adblock
19:42:32 <kmc> it's still bad tho even aside from the ads
19:44:23 <elliott> i have adblock
19:44:24 <elliott> i hate it
19:45:05 <Taneb> Yes
19:45:25 <Taneb> I switched to pastebin because hpaste was blocked for someone in another channel?
19:45:54 <kmc> codepad and gist are both fine
19:45:58 <monqy> i use sprunge??? i like sprunge
19:46:01 <kmc> (was that yes re: style advice?)
19:46:08 <Taneb> (can be)
19:46:42 <kmc> i would do "int a=0, c=0, g=0, t=0;" since they're all zero
19:46:53 <kmc> also i like to use C99 in which case you can do "for (int i = ...)"
19:47:48 <kmc> instead of reading into a buffer, you could use getchar() (and count on stdin input buffering to make it perform acceptably)
19:48:25 <Taneb> kmc, I know the maximum length of input
19:48:37 <kmc> sure, it might be simpler code though
19:48:51 <kmc> the best way to have no buffer overflows is to have no buffers :)
19:48:59 -!- sivoais has quit (Read error: Connection reset by peer).
19:49:18 <boily> the buffer that can be overflowed is not the true buffer.
19:49:39 -!- sivoais has joined.
19:57:39 -!- sivoais has quit (Read error: Connection reset by peer).
19:58:27 -!- sivoais has joined.
20:02:56 <Sgeo> So, interviewer claimed that it's likely that I'm going to get an interview
20:03:15 <Sgeo> Either tomorrow or next week
20:03:20 <Sgeo> .NET
20:03:26 <Sgeo> I can live with .NET
20:05:52 <monqy> can you???
20:06:10 <Bike> next week dot net
20:07:03 <ais523> there are worse library frameworks
20:12:10 -!- sivoais has quit (Quit: leaving).
20:12:57 -!- sivoais has joined.
20:21:35 -!- TwilightSpockle has changed nick to Gregor.
20:23:07 -!- oerjan has joined.
20:26:01 <Vorpal> Sgeo, VB.NET?
20:26:02 <Vorpal> I bet it is
20:26:34 <ais523> VB.NET isn't as bad as previous BASICs
20:26:41 <ais523> it's basicaly C# with a stupid syntax
20:26:44 <ais523> and syntax is mostly unimportant
20:28:08 <Sgeo> It's C#, I don't know why I only mentioned the .NET part of it
20:28:44 <ais523> and C# is basically Java with some extra dubious features added in, and different but mostly similar libraries
20:30:01 <elliott> lambdas "dubious"
20:30:18 <ion> i love lambdas
20:30:20 <ion> they are so easy
20:30:59 <Sgeo> Those dubious features turn an unbearable language into a bearable one
20:31:21 <Sgeo> (maybe I'm hasty in calling Java unbearable?)
20:31:57 <Bike> if you say "java" three times to a dark mirror does steele come out and lecture you about operator overloading
20:32:04 <elliott> yes
20:32:21 <ais523> Sgeo: C# is unbearable in its own way :)
20:32:27 <Sgeo> how so?
20:33:02 <FreeFull> If it doesn't have first-class functions then I'm not sold
20:33:38 <elliott> FreeFull: C# has first-class functions
20:33:42 <Taneb> VB.NET 2008 onwards has first-class functions
20:33:46 <FreeFull> And first-class objects aren't a good substitute
20:33:49 <elliott> FreeFull: C# has first-class functions
20:34:49 <boily> java has things that try to pass themselves as poorly designed first class functions. it makes for a just not quite good enough substitute.
20:36:03 <FreeFull> I also like having a good type system
20:36:11 <oerjan> `addquote <Bike> if you say "java" three times to a dark mirror does steele come out and lecture you about operator overloading
20:36:14 <HackEgo> 956) <Bike> if you say "java" three times to a dark mirror does steele come out and lecture you about operator overloading
20:36:41 <ais523> boily: java has first class objects, and second class classes, which can contain third class methods ;)
20:36:45 <Sgeo> I think .NET doesn't do type erasure
20:37:05 <Sgeo> Which means more information at runtime, which is unrelated to the quality of the typesystem
20:38:02 <ais523> type erasure is a nasty backwards-compatibility thing, which fortunately tends not to matter too much in practice
20:38:57 <elliott> type erasure is kind of a red herring, the real problem is that java doesn't understand variance!
20:39:24 <elliott> in fact if you can do type erasure you probably should...
20:40:10 <ais523> elliott: java attempts to understand variance, it's just broken
20:40:26 <ais523> you can express covariant and contravariant generic types
20:40:38 <ais523> just for whatever reason, it never actually seems to help
20:40:54 <FreeFull> If you say java to a mirror three times, the mirror gets coated in boilerplate
20:40:57 <olsner> I think they added it but forgot to use it
20:41:25 <ais523> olsner: :)
20:41:58 <olsner> and since nothing in the library has the variance it should have you pretty much never get to use it either
20:42:27 <ais523> are the variances in the libraries actually just chosen at random?
20:42:30 <elliott> ais523: doesn't help that mutability makes variance harder
20:42:32 <ais523> or are there reasons behind some of them?
20:42:34 <ais523> elliott: yeah, indeed
20:42:58 <ais523> especially mutability via pointers into return values
20:43:18 <elliott> when I figured out variance, I realised why every programming language was crazy
20:43:35 <ais523> elliott: Verity's compiler understands variance
20:43:36 <Bike> that's a lot of languages
20:43:48 <ais523> although it doesn't actually have polymorphism, so the variance control happens entirely internally
20:44:10 <Bike> (huh, the etymology of "boilerplate" is neat)
20:45:08 <FreeFull> Bike: Tell us
20:45:12 <elliott> ais523: fun fact: apparently, Eiffel treats function parameters as _covariant_
20:45:15 <elliott> and has subtyping
20:45:23 <elliott> apparently the answer to "how does this work?" is "it doesn't"
20:45:26 <ais523> elliott: someone else told me that fun fact recently
20:45:28 -!- david_werecat has joined.
20:45:33 <elliott> hmm
20:45:39 <ais523> my reaction was "are covariant function parameters actually useful for anything?"
20:45:40 <elliott> was it edwardk?
20:45:45 <ais523> elliott: not sure, perhaps
20:46:02 <elliott> well, you could call an output parameter a "covariant function parameter"
20:46:21 <Bike> FreeFull: plates from steel boilers were repurposed as letterplates for printing presses at newspapers
20:46:22 <ais523> hmm, yeah, that's a good point
20:46:39 <elliott> but that'd just be calling something more reasonable by the same name as something terrible
20:47:13 <ais523> elliott: now I want to make an esolang called Hitler :(
20:47:23 <ais523> probably a bad idea though
20:47:39 <FreeFull> ais523: How do you code in it? Repurposed Indian symbols?
20:47:44 <Bike> just use some other dictator, i'm sure noone will notice
20:47:54 <ais523> nah
20:47:54 <elliott> ais523: are you saying esolangs are reasonable?
20:47:55 <FreeFull> You could call it Himmler
20:47:58 <FreeFull> Or Mussolini
20:48:00 <ais523> I'll stick to more useful esolangs
20:48:01 <FreeFull> Or Mao
20:48:05 <ais523> or, more purposeful
20:48:14 <ais523> I may never invent anything else as good as Underload, but I can try
20:48:16 <FreeFull> You could make haskell but better
20:48:28 <elliott> (PSA: making esolangs with names that make me want to delete the page about them is bad for your health)
20:48:39 <FreeFull> Strip out the laziness, and all the fancy syntax
20:48:42 <FreeFull> Make the type system better
20:49:14 <FreeFull> And instead of having most functions be pure, make ALL functions impure
20:49:26 <FreeFull> Every function has a side-effect, even if you don't want it to
20:49:31 <ais523> FreeFull: that's "haskell but better"?
20:49:32 <elliott> ais523: I think Eodermdrome is your third-best esolang
20:49:37 <ais523> or just "haskell but esoer"?
20:49:39 <FreeFull> ais523: I got carried away
20:49:40 <ais523> elliott: what's the second-best?
20:49:45 <elliott> ais523: Underload
20:49:49 <ais523> hmm
20:49:52 <ais523> so what's the best then?
20:50:06 -!- WeThePeople has joined.
20:50:07 <elliott> ais523: best is Feather, because I'm pretty sure not actually existing because your creator gave up on you because you were too confusing is the best achievement an esolang can make
20:50:11 <ais523> yeah, I like Eodermdrome too, despite the utter lack of practicality
20:50:14 <olsner> FreeFull: instead of stripping out laziness, put side effects in the thunks
20:50:22 <ais523> elliott: oh, I forgot about Feather
20:50:26 <ais523> (actually genuinely forgot)
20:50:26 <elliott> see?
20:50:29 <FreeFull> olsner: Evil
20:50:47 <olsner> i.e. haskell with implicit unsafePerformIO
20:50:50 <FreeFull> olsner: Make seq only work half of the time too
20:50:55 <elliott> removing non-strictness would make Haskell worse
20:50:57 <Bike> elliott: given that "Real Fast Nora's Hair Salon 3: Shear Disaster Download" and the sound of /ˈæmbiːɛf/ are good esolang names, what's a bad esolang name
20:51:02 <elliott> you'd lose basic composability
20:51:14 <elliott> Bike: "Esme"
20:51:16 <ais523> elliott: hmm… exposure to The Game (if you don't know about it, please don't look it up) now means that some things require me something like 10 seconds and a concious mental effort to remember
20:51:32 <ais523> and it takes me like a minute to remember the rules, even if I try
20:51:35 <ais523> normally I get bored by then
20:51:39 <Bike> elliott: are you sure that's the name rather than the everything else
20:51:44 <elliott> I think "Most ever Brainfuckiest Fuck you Brain fucker Fuck" is an underappreciated esolang name
20:51:53 <ais523> indeed, it's a good esolang too
20:52:25 <olsner> good wiki page too
20:52:25 <ais523> and I can take credit for suggesting the idea behind it, even if I didn't do any definition of the name or the semantics
20:52:30 <elliott> hey guys remember http://esolangs.org/wiki/Object_(programming_language)
20:52:36 <ais523> no, I don't
20:52:37 <elliott> and also, all the other languages that guy made
20:52:38 <olsner> single sentence afaict
20:52:38 <ais523> should I?
20:52:44 <ais523> olsner: yeah but it's a run-on sentence
20:52:48 <elliott> ais523: http://esolangs.org/wiki/Parnassus ?
20:52:53 <elliott> it's the syntax highlighting that makes them memorable
20:52:56 <ais523> elliott: no
20:52:58 <elliott> also, the badness
20:53:10 <elliott> hmm, I should make that esolang I was going to
20:53:15 <elliott> where it's based around overlapping brackets
20:53:16 <ais523> Parnassus isn't exactly syntax highlighted
20:53:24 <ais523> the comment is in an almost unreadable shade of pink
20:53:30 <ais523> but apart from that it's all the same color and font
20:53:47 <Bike> so is Object a shitty parody of Java, is that what I'm looking at here
20:53:51 <ais523> elliott: INTERCAL allows scopes that don't nest correctly
20:54:00 <ais523> due to its use of manual lexical scoping
20:54:03 -!- Taneb has quit (Read error: Connection reset by peer).
20:54:07 -!- atriq has joined.
20:54:11 <elliott> ais523: by overlapping, I mean (ab[cd)ef]
20:54:15 <oerjan> we shall just have to make the Ëơđëřmđřơmë dialect, which has a large enough alphabet to be practical.
20:54:17 <ais523> elliott: yeah, I mean that too
20:54:22 <elliott> I'm not quite sure how the language will use those to compute
20:54:24 <elliott> but it will
20:54:27 <ais523> and may even have used that syntax to explain the concept to you, al ong time ago
20:54:30 <ais523> *a long time
20:54:43 <ais523> oerjan: I think Eodermdrome has a large enough alphabet to be TC
20:54:46 <ais523> although I don't actually /know/
20:54:50 <elliott> maybe it works by rewriting the program to have brackets balanced in a normal manner
20:54:59 <boily> had to refresh my memory of Feather. now I remember why I retroactively forgot about it.
20:55:02 <elliott> and that involves shuffling them around in a way that's TC
20:55:09 <elliott> the problem is, the overlapping has to actually be interesting
20:55:14 <ais523> yes
20:55:14 <elliott> not just a syntactic veneer
20:55:37 <ais523> hey, one of my better languages I never even put on the esowiki
20:55:46 <ais523> its name started Sh, let me look up the rest of it
20:55:56 <ais523> Shove, apparently
20:55:58 -!- atriq has changed nick to Taneb.
20:55:59 <elliott> also, I don't know what goes between the brackets
20:56:00 <oerjan> <elliott> Bike: "Esme" <-- are you saying that would be a bad name if it had otherwise been an interesting language?
20:56:15 <elliott> possibly primitives, possibly arbitrary text (that gets outputted?)
20:56:18 <elliott> oerjan: I was kidding
20:56:20 <ais523> elliott: it seems I don't have a spec, but I do have an interp
20:56:22 <ais523> shall I pastebin it?
20:56:32 <elliott> sure
20:56:48 <ais523> http://sprunge.us/YaOJ
20:57:00 <Taneb> I still have the spec for my first ever esolang lying about somewhere
20:57:02 <Taneb> it is awful
20:57:05 <elliott> what is it
20:57:06 <Taneb> awful awful awfuk
20:57:08 <elliott> is it a BF derivative
20:57:16 <Taneb> ...sort of
20:57:23 <Taneb> It's an Ook! derivative
20:57:30 <ais523> haha, seriously?
20:57:32 <Bike> that sounds worse
20:57:34 <Taneb> Yeah
20:57:41 <ais523> it's slightly more creative, I think?
20:57:47 <boily> by transitivity, it is a BF derivative too.
20:57:52 <elliott> an Ook! derivative is the kind of thing the wiki should have
20:57:57 <elliott> just for the art of it
20:58:01 <Vorpal> I should make an underload derivative, nobody would expect that.
20:58:04 <elliott> like, it should just be a BF derivative
20:58:06 <ais523> elliott: Shove is TC, I think; you can compile Underload into it
20:58:07 <elliott> but claimed as an Ook! derivative
20:58:13 <Taneb> elliott, should I dig out the specs for it?
20:58:16 <elliott> depends
20:58:23 <elliott> for this to work, it'd have to be a trivial equivalent that replaces all the operations with something else
20:58:29 <ais523> also, Sprunge's syntax highlighting can't handle tr///, it seems
20:58:35 <elliott> and also, for the joke to work, the something else should be not related to "Ook!", I think
20:58:40 <ais523> elliott: it should be BF-like
20:58:46 <Taneb> Okay, this is more along the lines of "Ook! with more commands"
20:58:47 <ais523> but possibly with slightly different commands
20:58:51 <Vorpal> elliott, you should find all trivial derivatives of brainfuck on the wiki and arrange them in a chain
20:58:51 <elliott> there is already a "Moo!" or something I think
20:59:01 <Taneb> Cow
20:59:09 <Taneb> I wrote a blog post about it
20:59:13 <ais523> ← → + - ( ) ? !
20:59:18 <ais523> like that
20:59:18 <oerjan> <ais523> oerjan: I think Eodermdrome has a large enough alphabet to be TC <-- um i already made BCT in it. sheesh. i mean large enough that you could actually write an interesting program without encoding the algorithm in the input. i guess you really want an infinite alphabet.
20:59:28 <ais523> oerjan: right, I see
20:59:28 <elliott> ais523: people who make BF derivatives don't believe Unicode exists
20:59:31 <Taneb> By which I mean, Phantom_Hoover wrote a blog post about it
20:59:37 <ais523> actually, /is/ Eodermdrome TC? Or is it just curly-L?
20:59:45 <Vorpal> elliott, and then make it circular, so like "Ook! is a BF derivate. X is a Ook! derivative. ... Brainfuck is a Y derivative"
20:59:53 <ais523> elliott: all those characters are in CP343
20:59:56 <Vorpal> elliott, do that on the 1st of April
21:00:12 <elliott> Vorpal: that sounds like a pain
21:00:17 <Vorpal> elliott, hm true
21:00:21 <Vorpal> a lot of work involved
21:00:23 <elliott> hmm, we could vandalise our brainfuck article to claim it's a [terrible BF derivative] derivative
21:00:30 <elliott> that would be marginally funny
21:00:36 <Taneb> It's an Ellipsis derivative
21:00:39 <ais523> anyway, the way Shove works, is it has an Underload-like stack, and a 2D playfield
21:00:45 <Vorpal> elliott, yeah that is less work but still okay for 1 April
21:00:54 <ais523> it has instructions to change the direction of execution
21:01:27 <ais523> it will push quoted strings onto the stack: strings can be quoted with ' or with ", and they nest inside each other indefinitely deep (INTERCAL-style)
21:01:31 <Vorpal> ais523, inspired by befunge?
21:01:43 <Vorpal> ais523, does it allow self modification?
21:01:52 <ais523> and there are four commands A V ( ) that push the stack back onto the playfield, pushing the entire rest of the program out of the way to make room
21:01:56 <ais523> it's somewhere between Befunge and Underload
21:02:02 <ais523> and yeah, self-modification is required
21:02:03 <Vorpal> ais523, also what is the intercal style of nesting " and '
21:02:13 <elliott> alternating
21:02:18 <Vorpal> ah right
21:02:36 <ais523> actually in INTERCAL they don't have to alternate, a ' or " is an opening ' or " if it couldn't, based on context, be a closing one
21:02:47 <Vorpal> heh
21:02:52 <ais523> but Shove's grammar isn't complex enough for that, so it's strictly alternating
21:03:05 <ais523> Vorpal: that is the actual definition, and what's implemented into the compiler :)
21:03:20 <Vorpal> ais523, ouch, that sounds painful
21:03:21 <ais523> so you can do something like '#1~'#1~#1''
21:03:24 <ais523> and it works
21:03:36 <ais523> the only time it really matters which of ' or " you use is in array indexing
21:03:53 <Vorpal> ais523, is this the thing that makes the parser LR(inf) iirc?
21:04:01 <ais523> and that case is sufficiently confusing that the original INTERCAL-72 programmers couldn't get it to work, so they just wrote into the definition of the language that it doesn't work wihtout alternating
21:04:21 <ais523> an yeah, it makes the parser LR(infinity) unless you put a restriction on like the one that's in the language definition, and that C-INTERCAL and INTERCAL-72 use
21:04:30 <ais523> CLC-INTERCAL, of course, just parses the LR(infinity) language
21:04:46 <ais523> (it'd be entirely out of character for it not to)
21:04:46 <elliott> I forget the restriction, but I remember hating it
21:04:58 <Vorpal> ais523, I thought you used some LR(inf) bison extension?
21:05:22 <Vorpal> must have confused it with CLC
21:05:29 <ais523> elliott: if a ' or " could syntactically be closing with no characters of lookahead, it's a syntax error if it later turns out to have been opening after all
21:05:36 <Vorpal> ais523, anyway, how do you manage parsing LR(inf)?
21:05:38 <ais523> Vorpal: I don't use GLR; CLC doesn't either, I think it uses backtracking
21:05:48 <Vorpal> ais523, GLR?
21:05:56 <ais523> the LR(inf) bison extension
21:06:00 <Vorpal> oh okay
21:06:04 <ais523> actually, CLC-INTERCAL's parser is written entirely in CLC-INTERCAL
21:06:09 <ais523> which makes it very hard to follow
21:06:09 <Vorpal> why not use it?
21:06:15 <oerjan> <Vorpal> I should make an underload derivative, nobody would expect that. <-- i am pretty sure Fueue counts partially as one. also Ftack, even if that's useless.
21:06:18 <ais523> wait, no
21:06:21 <ais523> it's written in IACC
21:06:26 <Vorpal> oerjan, I know, that was the joke
21:06:49 <Taneb> Fueue is very much inspired by Underload
21:06:51 <Vorpal> oerjan, actually I only knew about the first
21:06:54 <ais523> I should look at Fueue some time
21:06:55 <Vorpal> oerjan, not the second one
21:06:56 <ais523> I haven't yet
21:07:11 * ais523 looks at it
21:07:29 <ais523> " If the queue reaches this last stage many times and so does a full rotation without changing at all, a character is taken from input and its unicode value is added to the back of the queue. "
21:07:32 <Vorpal> hm, I should make Befunge-98 EE
21:07:33 <ais523> Taneb: that's genius :)
21:07:51 <Taneb> ais523, it's marvellously hideous to program with
21:07:56 <ais523> I know
21:08:01 <Taneb> I think only one person has written programs in it
21:08:07 <Taneb> And that person is oerjan
21:08:09 <ais523> it's like Thutu's I/O, but at least three steps more evil
21:08:10 <Vorpal> Taneb, "many times"?
21:08:17 <Vorpal> Taneb, how many times is that
21:08:23 <ais523> in Thutu, you merely have to turn your entire program inside-out
21:08:25 <Taneb> Vorpal, [length of stack]
21:08:32 <ais523> which is at least a mechanical translation
21:08:37 <Vorpal> Taneb, ah
21:08:37 <ais523> Taneb: *[length of queue]
21:08:43 <Taneb> [length of thingy]
21:09:39 <Vorpal> oh yeah that is a terribly hard to use way to handle input
21:09:40 -!- augur has quit (Remote host closed the connection).
21:09:59 <ais523> Vorpal: I haven't seen I/O so brilliantly bad in a while
21:10:08 <ais523> Taneb deserves a reward for that
21:10:11 <Vorpal> ais523, is this even capable of general IO?
21:10:18 <ais523> Vorpal: yeah
21:10:20 <Vorpal> lets call that BF-complete
21:10:23 <fizzie> fungot: Give Taneb a reward.
21:10:23 <fungot> fizzie: tired? try a steeplechase." the celebration which had been dormant for years was revived as part of his seed unto molech, and i cast you from the third was taller than the orc that one word he did outpour. nothing further then he bit off the hand at the brutes and he is sometimes an effective remedy.
21:10:23 <Vorpal> hm okay
21:10:41 <ais523> the main issue is just constructing a program state that locks up and accepts input
21:10:50 <fizzie> Taneb: Your reward sounds a bit iffy, you might opt out of that.
21:10:51 <ais523> and does something useful afterwards
21:10:55 <ais523> getting to that state probably isn't so hard
21:11:05 <Vorpal> ais523, getting out of it sounds annoying
21:11:21 <ais523> Vorpal: yes
21:11:42 <Vorpal> "In Fueue, the null program is a cat, although it doesn't handle end of file." <-- one that doesn't actually concatenate files either I assume?
21:11:49 <Taneb> Yeah
21:12:04 <Taneb> (is that where "cat" comes from?)
21:12:06 <ais523> anyway, I approve of Fueue
21:12:10 <Taneb> :)
21:12:12 <Vorpal> Taneb, yes
21:12:15 <ais523> I wouldn't call it an Underload derivative, more an Underload-inspired language
21:12:17 <Vorpal> Taneb, see man 1 cat
21:12:20 <oerjan> <ais523> actually, /is/ Eodermdrome TC? Or is it just curly-L? <-- i remain devoted to the opinion that "TC" proper includes things that need the input of a programming language as part of the conversion from a TM with input tape to it.
21:12:27 <Vorpal> Taneb, it's function is to concatenate files
21:12:34 <ais523> I like curly-L, anyway, it's actually well-defined
21:12:35 <ais523> unlike TC
21:12:37 <Vorpal> Taneb, not to just copy stdin to stdout
21:12:40 <Taneb> Wow
21:12:48 <Taneb> Learn something every day
21:12:53 <Vorpal> mhm
21:12:53 <ais523> also, doesn't Eodermdrome /have/ input?
21:13:34 <Vorpal> ais523, which one is curly-L?
21:13:58 <ais523> Vorpal: capable of expressing at least one interpreter for a TC language
21:14:05 <Vorpal> ah
21:14:15 <ais523> it doesn't need to be able to do anything else
21:14:24 <Vorpal> ais523, hm, wouldn't that imply the language is itself TC?
21:14:25 <ais523> and it seems to be a philosophical problem whether it's equivalent to TC or not
21:15:01 <Vorpal> ais523, even the pathological case of @ = execute bf interpreter and quit could be argued to the TC
21:15:05 <Vorpal> not useful, but TC
21:15:10 <Vorpal> definitely curly-L
21:15:23 <ais523> yeah, it's curly-L pretty much by definition
21:15:26 <Vorpal> ais523, speaking of which, is that the math-curly L symbol we are talking about here
21:15:33 <ais523> http://esolangs.org/wiki/%E2%84%92
21:15:35 <Vorpal> and then, why that symbol
21:15:43 <ais523> and because cpressey chose it
21:15:48 <ais523> and cpressey is the best esolanger at naming things
21:15:51 <Vorpal> fair enough
21:15:56 <ais523> so you don't really want to argue with him/her
21:16:57 <Vorpal> ais523, I was pretty sure it was a him?
21:17:04 <Vorpal> though I could of course be wrong
21:17:10 <ais523> Vorpal: well Chris is a gender-ambiguous name, and I've never met them
21:17:10 <elliott> are you new to ais523
21:17:42 <Vorpal> elliott, yes, I'm the evil twin of Vorpal, having taken over his computer while he didn't look.
21:17:45 <ais523> elliott: this is why I like mafiascum.net; many people explicitly state their gender to simplify things, and when they don't, there's a pretty high proportion of wrong guesses, both ways
21:18:15 <elliott> Vorpal: have you figured out how to make his scrollback bigger?
21:18:18 <elliott> it'd help him out a lot
21:18:50 <ais523> elliott: btw, I'm having Vorpal-like scrollback trouble on occasion
21:18:57 <Vorpal> elliott, alas, I hacked the bouncer, not the client proper
21:19:02 <ais523> Konversation's scope for bizarre typos has apparently expanded to include one that clears my scrollback
21:19:15 <boily> is cpressey ever going to come back to this channel, or is it a part of #esoteric's troubled and tortured past that he isn't here anymore?
21:19:40 <ais523> boily: he doesn't really enjoy being here, and I don't really blame him
21:19:41 <Vorpal> boily, I'd say it is a .5/.5 chance
21:19:51 <Taneb> Vorpal, so, certain?
21:19:52 <ais523> also he's sort-of permanently RL busy
21:20:02 <ais523> like me nowadays, except I come here anyway ;)
21:20:07 <ais523> haven't really worked on actual esolanging for a while, though
21:20:16 <elliott> ais523: I thought cpressey just left because it was a timesink
21:20:22 <ais523> I'd like to, but Anarchy and Underlambda are both lots of work
21:20:22 <elliott> though him hating us also seems perfectly likely
21:20:25 <Vorpal> ais523, that is of course an excellent time to start implementing Feather?
21:20:27 <ais523> elliott: that's what I meant, I just didn't say it
21:20:34 <ais523> Vorpal: Feather is even /more/ of a timesink
21:20:40 <Vorpal> ais523, true that
21:20:40 <elliott> boily: the last time he was in here was as ZOMGMODULES I think
21:20:48 <elliott> maybe he'll come again next time he goes to pycon
21:20:59 <Vorpal> elliott, that is a thing?
21:21:01 <Vorpal> pycon?
21:21:02 <Vorpal> wow
21:21:12 <oerjan> <Vorpal> ais523, getting out of it sounds annoying <-- yep it is.
21:21:12 <Vorpal> well it only makes sense
21:21:13 <ais523> Vorpal: why /wouldn't/ python have conferences?
21:21:14 <elliott> not exactly sure how this is remotely surprising
21:21:22 <Vorpal> oerjan, how do you do it?
21:21:29 <Vorpal> ais523, true
21:21:43 <Vorpal> somehow I just never imaged it being a thing
21:21:52 <Vorpal> I doubt there is a shell-script con though
21:22:00 <ais523> Vorpal: are you surprised at Perl having conferences too?
21:22:12 <Vorpal> ais523, hm less so than python in fact
21:22:23 <Vorpal> ais523, and I would bet the ruby guys have one
21:22:28 <Vorpal> they seem the type
21:22:43 <ais523> indeed
21:22:43 <Vorpal> anyway there totally needs to be TECOCON
21:22:53 <ais523> does anyone actually use TECO nowadays?
21:22:59 <Vorpal> I hope not
21:23:04 <Vorpal> anyway bashcon
21:23:09 <Vorpal> come on, make it a reality
21:24:00 <ais523> elliott: just looking at the main page
21:24:04 <boily> my betterave was once compared to TECO. that was one of my proudest moments.
21:24:09 <ais523> what's the standard example of a "just plain weird" language?
21:24:15 <elliott> ais523: esme
21:24:20 <Vorpal> boily, what is betterave
21:24:24 <ais523> INTERCAL aims to be unique, and Malbolge for being difficult to program in
21:24:27 <ais523> elliott: OK, that'll do
21:24:34 <ais523> what's the correct case for esme, anyway?
21:24:36 <boily> Vorpal: http://esolangs.org/wiki/Betterave
21:24:44 <elliott> Esme, I think
21:24:44 <ais523> titlecase? all-uppercase? brainfuck-case? lowercase?
21:24:55 <Vorpal> elliott, esme is a joke lang though
21:25:02 <elliott> no it's not
21:25:16 <ais523> my own personal theory was that it was created to troll zzo38
21:25:52 <Vorpal> riiight
21:25:59 <Vorpal> ais523, oh?
21:26:04 <ais523> Vorpal: think about it
21:26:05 <Vorpal> yeah that would work
21:26:06 <oerjan> Vorpal: i make it happen between )$ and a block, then the block gets duplicated as many times as the character read, and then the first one is executed, which can start a chain reaction that increments a 0 back up to the original value, but inside a block.
21:26:27 <ais523> oerjan: clever
21:26:29 <Vorpal> oerjan, sec, need to load up the page again
21:27:02 <fizzie> There's also a Rails conference, I'm pretty sure.
21:27:04 <Vorpal> oerjan, oh yeah that *is* clever
21:27:18 <kmc> shachaf: apparently C++ guarantees static_cast<Foo*>(NULL) == NULL
21:27:24 <fizzie> And EuroForth is still being arranged, and is the most prestigious of the big international Forth conferences.
21:27:34 <fizzie> (I don't know if there are any other that count.)
21:27:42 <ais523> elliott: also the "enjoy being locked in your matrix of solidity" on the main page made me laugh out loud, probably because I hadn't seen it for months
21:27:44 <boily> there are *multiple* forth conferences?
21:27:47 <Vorpal> boily, hm, close but not quite like TECO
21:27:47 <kmc> so in cases where static_cast needs to apply an offset (multiple inheritance) it has to include a NULL check
21:27:59 <Vorpal> boily, too easy to read
21:28:16 <boily> Vorpal: I know, I was young and naïf.
21:28:17 <Vorpal> boily, reminds me more of dc
21:28:25 <ais523> boily: "naïve"
21:28:33 <Vorpal> boily, which is childs play to code in of corse
21:28:35 <Vorpal> course*
21:28:43 <ais523> people normally just write it "naive", but in #esoteric we know better :)
21:29:03 <boily> ais523: as a French speaker, I have a hard time describing myself as «naïve», as it is feminine.
21:29:19 <ais523> boily: yeah, but English almost doesn't have grammatical gender
21:29:32 <fizzie> Also: EuroForth is a three-day conference, but then immediately after there's a "4th-day".
21:29:49 <boily> ais523: I'm not a ship, therefore I am not feminine. QED.
21:30:11 <ais523> boily: but there's only one form of the adjective in English
21:30:20 <ais523> which applies to all of masculine, feminine, and neuter
21:30:27 <ais523> (except with neuter, some anthropomorphising is required)
21:30:29 <Vorpal> fizzie, oh? What do they do then
21:30:57 <fizzie> Vorpal: I think it's something slightly more social, but they don't seem to have all that much of a web presence, so it's hard to say.
21:31:09 <boily> ais523: don't burst my bubble of broken English :p
21:31:14 <Vorpal> hm
21:31:40 <fizzie> "As usual there will be the option of staying for a "4th Day" until Monday 18th for additional networking time and allowing delegates to see more of the area." (From the EuroForth 2006 call.)
21:32:10 <olsner> accidental pun?
21:32:24 -!- impomatic has quit (Quit: impomatic).
21:32:31 <Taneb> Fueue is the language I'm most proud of
21:32:36 <ais523> olsner: with a name like "forth", accidental puns are reasonably inevitable
21:32:37 <Taneb> (although I still prefer Luigi)
21:32:43 <ais523> (although the name itself was an intentional pun, IIRC)
21:33:37 <Taneb> elliott, can I be a wiki admin so I can do featured language stuff?
21:33:47 <ais523> hmm… if we had an esoteric language called "accidentally"
21:33:53 <ais523> it'd be a noun as well as a verb and an adverb
21:33:59 <Vorpal> ais523, wasn't it a file name length limit on some early system?
21:34:09 <boily> so you could accidentally a word?
21:34:10 <Vorpal> or do I completely misremember it
21:34:14 <ais523> Vorpal: perhaps, or it may just have been in homage to them
21:34:16 -!- AnotherTest has quit (Quit: Leaving.).
21:34:18 <Taneb> "I accidentally accidentally accidentally"
21:34:20 <ais523> boily: that's the verb form of accidentally
21:34:54 <Vorpal> ais523, how it is a verb
21:34:55 <boily> ais523: I'm not sure my grasp of the English language is getting better by visiting this channel..
21:35:02 <Vorpal> afaik it is only an adverb?
21:35:05 <ais523> Vorpal: boily just used it as a verb
21:35:09 <ais523> the verb form is an internet meme, though
21:35:22 <ais523> the fun thing is that the verb itself doesn't exist
21:35:30 <ais523> you leave it to the listener's brain to fill in the blank
21:35:30 <Vorpal> actually it is a noun
21:35:35 <olsner> boily: we'll just go ahead and esoteric your english
21:35:35 <Vorpal> err adjective
21:35:36 <Vorpal> I meant
21:35:40 <ais523> "I accidentally the source repository, is this bad?"
21:35:42 <Vorpal> according to a google
21:35:57 <Vorpal> wait what
21:36:03 <Bike> the accidentally man stopped and faced me, raising the oerjan above his head threateningly
21:36:10 <Vorpal> this is so wrong then: http://www.thefreedictionary.com/accidentally
21:36:15 <olsner> Vorpal: how can you have evaded this meme?
21:36:17 <Vorpal> wordnet claims it is an adverb
21:36:21 <Vorpal> it makes far more sense
21:36:24 <ais523> it is an adverb, normally
21:36:30 * ais523 accidentally the entire meme :(
21:36:32 -!- sirdancealot7 has quit (Ping timeout: 272 seconds).
21:36:33 <olsner> all the -ly words are adverbs
21:36:42 <Bike> Vorpal: that says that "accidental" is an adjective.
21:36:43 <Vorpal> olsner, I know of it, I just refuse to acknowledge it.
21:36:52 <ais523> olsner: this is English, there's probably an exception /somewhere/
21:37:00 <ais523> but yeah, most -ly words are adverbs
21:37:00 <Bike> and "accidental" as a noun is pretty common in music.
21:37:02 <Vorpal> Bike, yes which is wrong I think
21:37:12 <olsner> all the -ly adverbs are adverbs
21:37:12 <Vorpal> the adjective bit
21:37:15 <ais523> "sly" is an adjective
21:37:17 <Vorpal> wordnet claims adverb
21:37:20 <Vorpal> and so it is
21:37:25 <kmc> slyly
21:37:27 <Bike> "accidental" isn't an adverb, "accidentally" is
21:37:39 <ais523> huh, there's a language called Vorpal?
21:37:43 <ais523> I just saw it on the deadfish page
21:37:48 <Bike> "the accidental argument is really starting to seem pointless to Bike"
21:37:56 <Vorpal> okay just a confusing page
21:38:10 <Vorpal> since the page name was http://www.thefreedictionary.com/accidentally I assumed it would be about that word
21:38:12 <Vorpal> god dammit
21:38:27 <Bike> it's pretty common to fold derived terms like that
21:38:30 <Bike> in dictionaries
21:38:47 <olsner> `quote accidentally
21:38:48 <HackEgo> 157) <fungot> elliott: it's hard to debug havoc on your mirror if you accidentally hit r, then a character could be multiple words long, depending on the task. \ 275) <cpressey> BYE dbc WE'LL BE SURE TO ACCIDENTALLY MENTION YOUR NICK OFTEN \ 716) <elliott> oops I accidentally deleted the universe <olsner> looks weird when you put a verb after acci
21:38:53 <Bike> guess they could have redirected you at least
21:39:15 <olsner> hmm, accidentally some more quotes there
21:39:24 <Vorpal> Bike, yeah it fooled me though
21:39:44 <Bike> "I accidentally an accidental in the chorus"
21:39:52 <boily> AH! I knew the universe could be destroyed! 716 proves it!
21:40:00 <Bike> aaaaand that's semantic satiation for me.
21:40:11 <Taneb> `quote 716
21:40:12 <HackEgo> 716) <elliott> oops I accidentally deleted the universe <olsner> looks weird when you put a verb after accidentally like that
21:40:18 <Taneb> `quote 100
21:40:20 <HackEgo> 100) <alise> like, just like I'd mark "Bob knob hobs deathly poop violation EXCREMENT unto;" as English <ais523> alise: that's great filler <alise> ais523: well it contains all the important words in the english language...
21:41:03 <olsner> hmm, in hindsight I should've said "another verb"
21:41:07 <oerjan> `run echo A | fueue ')~$)[[~~~~()+1][0]$%~~1)][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~]][]' #Let's see if this improved input method works
21:41:08 <Vorpal> talking about memes. All your accidentally us.
21:41:09 <HackEgo> ​.. \
21:41:20 <Vorpal> olsner, ^
21:41:30 <Taneb> `run echo A | fueue -e ')~$)[[~~~~()+1][0]$%~~1)][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~]][]' #Let's see if this improved input method works
21:41:31 <HackEgo> ​.. \
21:41:41 <Vorpal> olsner, that one pretty much died out I think
21:41:56 <Taneb> `run echo A | fueue -e ")~$)[[~~~~()+1][0]$%~~1)][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~]][]"
21:41:57 <HackEgo> ​.. \
21:42:01 <Taneb> `run echo A | fueue ")~$)[[~~~~()+1][0]$%~~1)][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~]][]"
21:42:02 <HackEgo> ​.. \
21:42:05 <Taneb> Nope
21:42:34 <olsner> Vorpal: beaten to death until it died over and over again
21:43:07 <Vorpal> olsner, true
21:43:19 <olsner> I think accidentally and finnish are my favourite verbs
21:43:40 <elliott> 21:37:39 <ais523> huh, there's a language called Vorpal?
21:43:40 <elliott> 21:37:43 <ais523> I just saw it on the deadfish page
21:43:41 <Taneb> `? Ngevd
21:43:42 <HackEgo> ​H%!.3YR9}ƍReiб6u\ޟ]qIo{_ibmSݻ}.N6͕"^`/=S2t>dH<T<\V\!is2H!Kz?yA[XW"b&Z,<HjG}LO%~ƞ?ͦܐhU`<M{?&6dmB.[JR*<S9mvY.,b8K.nq.'av.]HבwJLM>ǪS1hD_+Hd#υjh#?ݶpH슣6x]&r1rԉ
21:43:43 <elliott> ais523: blame cpressey
21:44:05 <ais523> elliott: did he name it after Vorpal, or is it coincidence?
21:44:09 <Vorpal> why the /dev/urandom
21:44:36 <kmc> `cat -v /dev/urandom
21:44:37 <HackEgo> cat: invalid option -- ' ' \ Try `cat --help' for more information.
21:44:41 <oerjan> `addquote <boily> ais523: I'm not sure my grasp of the English language is getting better by visiting this channel..
21:44:43 <kmc> `run cat -v /dev/urandom
21:44:43 <Vorpal> ais523, it looks like a non-esolang?
21:44:45 <HackEgo> 957) <boily> ais523: I'm not sure my grasp of the English language is getting better by visiting this channel..
21:44:46 <HackEgo> M-(M-L{PM-7LiM-^K^D>?M-$M-jM-V,^[i^Yf3^^AM-WM-(M-^]M-_2M-OM-uM-(M-PYM-^F^_M-LIKM-@M-^FM-^EM->6dM-^HKfM-p{M-@^O^UM-0K;M-9^K^PM-^ZM-(M-]^^KM-^TM-YM-VM-uN+^GBNM-zM-VM-;^kM-^W^XM-zM-vM-^\iM-DM-}^ZcM-^M-EHM-^@M-5M-'fM-;\M-qM-fM-^D4Qmj* M-gM-`^PM-v^M-^OI?7oPHM-AM-^Zy^KM-bM-8oW>:m!M-EAM-t>#PM-k:"M-^XhBM-0M-/M-tM-V-M-Q^]M-aM-^ZM-"M-|FM-=M-KM-_M-tc^Y2^HM-j
21:44:56 <ais523> Vorpal: I didn't say it was an esolang
21:44:59 <Vorpal> ais523, no link to it either
21:45:04 <elliott> ais523: he didn't make it
21:45:26 <ais523> elliott: right, just wrote a deadfish interp in it?
21:45:31 <elliott> right
21:45:34 <Vorpal> elliott, is it this one? https://code.google.com/p/vorpalcode/
21:45:36 <elliott> yes
21:45:47 <boily> `quote boily
21:45:49 <HackEgo> 944) <olsner> boily: the man eating chicken is just a normal man, it's quite common to eat chicken in some parts of the world \ 945) <elliott> ~eval 1+2 <cuttlefish> Error (127): <elliott> this is a great bot boily i love it \ 954) <boily> not only there is no God, but try to find an APL keyboard on Sunday. \ 957) <boily> ais523: I'm not sure my
21:46:10 <boily> not so bad history. could have been worse :D
21:46:29 <oerjan> <olsner> all the -ly words are adverbs <-- holy shit batman
21:46:59 <ais523> ~eval 1+2
21:47:08 <boily> gimme a sec...
21:47:09 <ais523> hmm, cuttlefish isn't here
21:47:24 -!- cuttlefish has joined.
21:47:40 <boily> ais523: どうぞ…
21:47:45 <oerjan> eep that program was buggy
21:47:53 <olsner> ~eval 1+2
21:47:56 <cuttlefish> 3
21:48:03 <boily> look ma, no bugs!
21:48:11 <olsner> ~eval Error (127):
21:48:11 <cuttlefish> Error (1): <hint>:1:13:
21:48:12 <cuttlefish> parse error (possibly incorrect indentation or mismatched brackets)
21:48:28 -!- sirdancealot7 has joined.
21:48:36 <ais523> hmm, that looks a lot like a Python error message
21:48:43 <elliott> it's haskell
21:48:50 <ais523> oh right
21:49:00 <ais523> perhaps I shouldn't feed python to it, then
21:49:07 <oerjan> Taneb: run fueue '...' is the correct format, the program is just buggy
21:49:13 <Taneb> oerjan, okay
21:49:28 <ais523> ~eval id 4
21:49:28 <boily> you can always try. I guess an error 127 will be spewed out as usual, or something.
21:49:29 <cuttlefish> 4
21:49:38 <ais523> yeah, Haskell
21:49:43 -!- Frooxius has quit (Read error: Connection reset by peer).
21:49:56 <Taneb> ~eval let fix f = let x = f x in x in fix (\r n -> if n == 0 then 1 else n * r (n - 1)) 8
21:49:57 <cuttlefish> 40320
21:49:57 <boily> I *do* hope it's haskell.
21:49:59 -!- Frooxius has joined.
21:50:00 <Taneb> ~eval let fix f = let x = f x in x in fix (\r n -> if n == 0 then 1 else n * r (n - 1)) 10
21:50:01 <cuttlefish> 3628800
21:50:17 <Taneb> Probably Haskell
21:50:24 <olsner> ~eval fix$(<$>)<$>(:)<*>((<$>((:[{- thor's mother -}])<$>))(=<<)<$>(*)<$>(*2))$1
21:50:25 <cuttlefish> [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648,4294967296,8589934592,17179869184,34359738368,68719476736,137438953472,274877906944,549755813888,1099511627776,2199023255552,4398046511104,8796093022208,17592186044416,35184372088832,70368744177664,140737488355328,281474976710656,5629
21:50:50 <Vorpal> olsner, what does thor's mother have to do with anything?
21:51:00 <olsner> nothing, it's just a comment
21:51:02 <Vorpal> olsner, also I'm a bit disappointed that was not actually part of the program
21:51:11 <Vorpal> olsner, I know, that is why I asked why it was there
21:51:27 <Vorpal> anyway who was thor's mother
21:51:30 <olsner> well, I don't know ... I didn't write that part
21:51:32 <fizzie> Vorpal: Maybe it's there to help the maintenance programmer?
21:51:41 <Vorpal> oh of course
21:51:44 <fizzie> That's a reasonable reason for comments.
21:51:46 <Vorpal> how silly of me not to think of that
21:52:09 <ais523> boily: what types does it evaluate? just things in Show, or can you give it IO actions?
21:52:17 <ais523> ~eval interact id
21:52:17 <cuttlefish> Error (1): No instance for (GHC.Show.Show (GHC.Types.IO ()))
21:52:18 <cuttlefish> arising from a use of `M1409069964351145295.show_M1409069964351145295'
21:52:18 <cuttlefish> Possible fix:
21:52:18 <cuttlefish> add an instance declaration for (GHC.Show.Show (GHC.Types.IO ()))
21:52:22 <ais523> just things in Show, it seems
21:52:24 <Taneb> ~eval cosh 7 ^ 2 - sinh 7 ^ 2
21:52:25 <cuttlefish> 0.9999999999417923
21:52:34 <Taneb> Rounding error :O
21:52:34 <boily> ais523: no IO. it's running on my work machine, and it would be embarassing to have it crash at inopportune moments.
21:52:39 <Taneb> ~eval cosh 7 ^ 2 - sinh 7 ^ 2 :: CReal
21:52:40 <cuttlefish> Error (1): Not in scope: type constructor or class `CReal'
21:52:40 <cuttlefish> Perhaps you meant `Real' (imported from Prelude)
21:52:42 <ais523> boily: indeed
21:52:58 <Taneb> > cosh 7 ^ 2 - sinh 7 ^ 2 :: CReal
21:52:59 <ais523> ~eval unsafePerformIO $ putStrLn("test")
21:52:59 <cuttlefish> Error (1): Not in scope: `unsafePerformIO'
21:53:00 <lambdabot> 1.0
21:53:01 <fizzie> Jörð (as in, "earth") is apparently Thor's mother.
21:53:02 <boily> I tried to have it running on a random VM at work once, but the attempt failed.
21:53:04 <ais523> just making sure :)
21:53:24 <boily> don't worry, I took every available precautions before running that kludge here.
21:53:28 <boily> I know you guys.
21:53:31 <ais523> boily: definitely :)
21:53:41 <elliott> boily: I suspect it can be thwarted
21:53:45 -!- WeThePeople has quit (Quit: Leaving).
21:53:47 <ais523> I remember when people found a Perl injection hole in Rodney (#nethack's bot)
21:53:57 <ais523> someone used the hole to get the bot to kill -9 itself, and it was widely considered a good idea
21:54:01 <elliott> ~eval instance Num () where fromInteger _ = ()
21:54:02 <ais523> before it was used to cause more damage
21:54:02 <cuttlefish> Error (1): <hint>:1:1: parse error on input `instance'
21:54:06 <elliott> right, so no statements
21:54:24 <boily> elliott: I probably haven't stressed it as much as HackEgo or EgoBot, but I believe it to be solid enough.
21:54:26 <olsner> ~eval v
21:54:27 <cuttlefish> Error (1): Not in scope: `v'
21:54:37 <ais523> elliott: the only security hole the students found in my OCaml sandbox was using the FFI to access parts of the standard library they weren't meant to
21:54:46 <boily> elliott: it's using a very small subset of haskell, eval'ed with mueval.
21:54:52 <fizzie> Our Scheme course had a Scheme REPL bot, and boy did it have holes. (They did get patched quite quickly after on-channel demonstrations.)
21:55:10 <shachaf> kmc: Hmm, I didn't know that.
21:55:20 <ais523> fizzie: I'm reminded of the e-reader that came with a setuid helper program
21:55:28 <shachaf> kmc: It looks like a C-style cast behaves the same way.
21:55:30 <ais523> people demonstrated security bugs in it, the author reacted by fixing just the bug shown
21:55:37 <elliott> boily: well, you can have security holes even with mueval
21:55:43 <Vorpal> <ais523> elliott: the only security hole the students found in my OCaml sandbox was using the FFI to access parts of the standard library they weren't meant to <-- how did you fix that?
21:55:49 <elliott> boily: what GHC version is it on?
21:55:54 <ais523> Vorpal: manually looking at the code and bitching at them if they tried to use it
21:56:14 <Vorpal> ais523, couldn't you fix it properly though?
21:56:21 <boily> elliott: eeeeeh... I think 7.6.1.
21:56:24 <ais523> Vorpal: yes but I had to look at the code anyway
21:56:26 <ais523> so there was no point
21:56:31 <shachaf> ~eval let unsafeCoerce v = z where z :: v; z = v where aux = const v in unsafeCoerce (5::Double)::Int
21:56:32 <Vorpal> true
21:56:32 <cuttlefish> Error (1): Couldn't match expected type `v1' with actual type `t'
21:56:32 <cuttlefish> `v1' is a rigid type variable bound by
21:56:32 <cuttlefish> the type signature for z :: v1 at <interactive>:1:35
21:56:32 <cuttlefish> `t' is a rigid type variable bound by
21:56:32 <cuttlefish> the inferred type of unsafeCoerce :: t -> v at <interactive>:1:5
21:56:37 <shachaf> Aw.
21:56:38 <boily> ais523, elliott: http://hpaste.org/81905
21:56:40 <ais523> and nobody found a way to escape the /other/ sandbox
21:56:44 -!- variable has changed nick to trout.
21:56:47 <ais523> so it couldn't be used to damage the system it was running on
21:57:00 <elliott> shachaf: I was about to do that!
21:57:03 <kmc> shachaf: i think C cast does the same thing as static_cast in the cases where the latter is valid
21:57:05 <elliott> so I guess it's too new
21:57:06 <kmc> not sure though
21:57:12 <Vorpal> <ais523> fizzie: I'm reminded of the e-reader that came with a setuid helper program <-- why would an e-reader need a suid helper?
21:57:20 <ais523> Vorpal: it didn't, this was part of the problem
21:57:27 <Vorpal> riight
21:57:34 <ais523> it was used to mount the e-reader itself on your computer
21:57:44 <pikhq> It was Calibre, actually.
21:57:45 <fizzie> (string->symbol "foo\nIRC COMMAND :goes here\nwhatever") was one somewhat nasty one; the output filtering didn't catch symbols with newlines in their names.
21:57:45 <Vorpal> oh
21:57:48 <ais523> but it was pointed out that there were already well-debugged setuid programs that did that sort of thing
21:57:52 <ais523> pikhq: yeah, I forgot the name
21:58:09 <shachaf> kmc: Well, it makes sense, if it has the offset anyway.
21:58:28 <Vorpal> ais523, speaking of suid, do you happen to know what /usr/lib/pt_chown is?
21:58:36 <shachaf> ~eval data Foo
21:58:36 <Vorpal> iirc it is owned by glibc on most distros
21:58:37 <cuttlefish> Error (1): <hint>:1:1: parse error on input `data'
21:58:45 <Vorpal> never bothered to look into what it was
21:58:53 <ais523> Vorpal: it's suid and owned by root on mine
21:58:59 <Vorpal> ais523, same
21:59:01 <ais523> and doesn't have a man page
21:59:02 <Vorpal> but what is it for
21:59:13 <boily> time to disappear in the great frigid void.
21:59:15 -!- boily has quit (Quit: Poulet!).
21:59:19 <Vorpal> ais523, it is in /usr/lib, so presumably not meant to be executed by hand
21:59:19 -!- cuttlefish has quit (Remote host closed the connection).
21:59:28 <ais523> ldd lists only linux-gate, libc, and ld-linux.so
21:59:34 <ais523> let's try a web search
21:59:49 <Vorpal> ais523, nm -D is not very helpful either
21:59:52 <fizzie> Vorpal: man grantpt.
22:00:02 <ais523> Vorpal: aha, apparently it creates pseudoterminals
22:00:08 <ais523> on systems without devpts support
22:00:22 <Vorpal> ah
22:00:23 <ais523> that requires doing mknod, = requires being root
22:00:33 <fizzie> (My "NOTES" section of grantpt(3) mentions pt_chown.)
22:00:38 <ais523> indeed
22:00:42 <ais523> I think I have much the same grantpt(3)
22:00:52 <Vorpal> if it isn't required, why is the binary on my system
22:01:15 <fizzie> ais523: Does it actually *create* them, as opposed to just setting ownership?
22:01:45 <ais523> fizzie: good point
22:01:49 <ais523> just reownering them would make sense
22:01:59 <ais523> Vorpal: Kubuntu are apparently considering getting rid of it
22:02:03 <Vorpal> heh
22:02:05 <ais523> as part of a sweep of inappropriately setuided things
22:02:09 <Vorpal> but not ubuntu?
22:02:31 <ais523> Vorpal: it sounds like the sort of patch which would probably be shared between them, don't you think?
22:02:32 <Vorpal> -rwsr-xr-x 1 root root 18824 jan 1 04:03 /usr/lib/chromium/chromium-sandbox
22:02:37 <Vorpal> now that is interesting permissions
22:02:55 <Vorpal> why does chromium need to be suid
22:03:12 <ais523> Vorpal: oh, I think I know this one, it's for doing chrooting and unsharing
22:03:12 <Vorpal> ah, it uses chroot
22:03:20 <Vorpal> ais523, unsharing?
22:03:32 <ais523> Vorpal: it's sort-of generalised chroot, it gives you different namespaces for things than the rest of the system
22:03:41 <ais523> so you can request that you have your own entirely separate set of PIDs, for instance
22:03:51 <Vorpal> ah
22:03:51 <ais523> or an entirely different set of sockets
22:03:54 <Vorpal> -rwsr-xr-x 1 root root 245064 aug 24 09:06 /usr/lib/openssh/ssh-keysign <-- sorry, what?
22:04:42 <ais523> Vorpal: you should look into man 2 unshare if you care about doing any sort of sandboxing in usermode
22:04:47 <Vorpal> -rwsr-xr-- 1 root dip 318912 jun 22 2012 /usr/sbin/pppd <-- also what?
22:04:54 <ais523> it's relatively new
22:05:06 <Vorpal> hm cool
22:05:31 <ais523> on Linux, that is
22:05:33 <ais523> (it's Linux-specific)
22:05:56 <ais523> Vorpal: Web of Lies uses it heavily, btw; it's how I once ended up with a filesystem leak
22:06:09 <ais523> (you'd think it would be difficult to leak filesystems, but…)
22:06:14 <Vorpal> heh? really?
22:06:19 <Vorpal> wouldn't it die with the process
22:06:36 <ais523> yeah but just /finding/ the process is hard when it's in an entirely different namespace
22:06:42 <ais523> also I hit multiple kernel bugs
22:06:45 <oerjan> `run echo A | fueue ')~$)[[)[~~~~()+1])][0]$%~~1)][[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~] ][]]' #New attempt
22:06:46 <HackEgo> 65
22:06:47 <Vorpal> ais523, ps aux won't list it?
22:06:54 <ais523> Vorpal: yeah, but Linux thought it was init
22:06:57 <ais523> and so I couldn't get rid of it
22:07:00 <Vorpal> ais523, what about lsof?
22:07:10 <Vorpal> or fuser
22:07:11 <ais523> or specifically, it thought init had a debug trace on it
22:07:17 <Vorpal> how?
22:07:29 <ais523> there is actually no way to get rid of a process that init has a debug trace on, short of rebooting the system
22:07:33 -!- Taneb has quit (Quit: Leaving).
22:07:33 <ais523> or telling init to kill it
22:08:01 <ais523> if you try to sigkill it, then the kill gets passed onto init, which doesn't know what to do with it
22:08:01 <Vorpal> ais523, is there ever a legitimate reason for init to have a debug trace on anything???
22:08:04 <ais523> Vorpal: no
22:08:09 <Vorpal> then why
22:08:12 <ais523> kernel bug
22:08:16 <Vorpal> right
22:08:17 <ais523> sadly I don't know how to reproduce it
22:08:30 <ais523> one I /do/ know how to reproduce is getting multiple overlapping stack segments in a process
22:08:36 <ais523> that one's really easy, you just mmap over the stack guard page twice
22:08:50 <ais523> I should write a non-insane test case for it, then report the bug
22:08:53 <Vorpal> ais523, how did you figure out that linux thought init was debugging?
22:08:57 <elliott> ais523: does even kill -9 get passed on?
22:09:08 <Vorpal> elliott, <ais523> if you try to sigkill it, then the kill gets passed onto init, which doesn't know what to do with it
22:09:09 <Vorpal> yes
22:09:12 <ais523> Vorpal: it's mentioned in /proc
22:09:17 <Vorpal> ah
22:09:19 <ais523> elliott: yeah, it gets converted into SIGCHLD on the way
22:09:41 <olsner> is it possible to boot with init=gdb? that might reasonably result in init having a debug trace on something
22:09:47 <ais523> init /does/ understand SIGCHLD (it's its job), but not the specific version of SIGCHLD meaning "something you have a debug trace on was sent a fatal signal"
22:09:57 <Vorpal> olsner, yes, but that would be pretty insane
22:10:01 <ais523> olsner: hmm, good point
22:10:03 <ais523> I'm unwilling to try
22:10:35 <Vorpal> ais523, you could actually have killed it
22:10:40 <Vorpal> ais523, without rebooting
22:10:47 <Vorpal> init supports re-exec using telinit
22:10:57 <Vorpal> just replace init with a new init that would understand how to handle it
22:10:59 <elliott> gdb as process 1 actually soudns kind of useful
22:11:00 <Vorpal> then re-execute init
22:11:11 <ais523> Vorpal: you think I have spare inits just lying around?
22:11:12 <Vorpal> ais523, this would not have required a reboot
22:11:18 <ais523> but good point
22:11:21 <Vorpal> ais523, I think you have a compiler
22:11:26 <ais523> yeah
22:11:27 <olsner> this thing with init being special and magical seems pretty bogus in general, why couldn't there just be loads of processes that lack a parent?
22:11:31 -!- carado has quit (Ping timeout: 246 seconds).
22:11:39 <Vorpal> ais523, and you would need to customise the code anyway
22:11:42 <ais523> but writing a correct init without being able to test it is something I'm not confident in being able to do
22:11:47 <elliott> olsner: well, the kernel exec()s init
22:11:54 <elliott> so all other processes have to be forked off from init
22:12:06 <ais523> and I'm not entirely sure what happens if you replace init with something that doesn't work properly
22:12:08 <ais523> but I doubt it's god
22:12:10 <ais523> *good
22:12:13 <Vorpal> ais523, so do apt-get source <your existing init> then patch it up and compile it
22:12:31 <Vorpal> maybe throw it in a VM to test it
22:13:12 <ais523> Vorpal: this seems like a lot of effort to just get rid of a process in an impossible state
22:13:17 <Vorpal> true
22:13:27 <ais523> ps and top were quite happily bragging about the state it was in, if they had feelings I'm sure they'd be having fun
22:13:39 <Vorpal> ais523, how what state was it in?
22:13:57 <ais523> Vorpal: debug stop, obviously
22:14:02 <ais523> with no process obviously tracing it
22:14:02 <Vorpal> ah
22:14:07 <Vorpal> nice
22:14:09 <ais523> and if you look at /proc, the process tracing it was init
22:14:34 <ais523> hmm, I wonder what it would have thought it was being traced by from within its own namespace
22:14:36 <Vorpal> ais523, maybe the tracing process had died, thus re-assigning the parent to init?
22:14:39 <ais523> it was being debugged by a process outside the sandbox
22:14:41 <ais523> Vorpal: yeah, it had
22:14:55 <ais523> but traces surely shouldn't be reassigned like that
22:14:56 <Vorpal> ais523, that would normally kill the debug state presumably?
22:15:03 <Vorpal> ais523, have you tested that again?
22:15:33 <ais523> no, but I doubt trying it under normal circumstances will produce standard results
22:15:41 <ais523> let's try gdbing a program and kill -9ing gdb
22:15:59 <olsner> pretty sure killing gdb is harmless
22:16:03 <ais523> olsner: same
22:16:09 <Vorpal> yeah
22:16:11 <ais523> the question is, what happens to the program it's debugging
22:16:32 <Vorpal> it obviously need to be in debug stop too
22:16:51 <olsner> I think the program continues as if the debugger detached
22:17:04 <Vorpal> olsner, what if it was stopped
22:17:40 <ais523> OK, at the moment, a.out is in tracing stop, and traced by gdb
22:17:42 <ais523> this much makes sense
22:17:47 <ais523> now I'll kill gdb
22:18:05 <ais523> a.out also disappeared
22:18:09 <Vorpal> ah
22:18:10 <ais523> I guess I need an a.out with an infinite loop in it
22:18:13 <olsner> it killed both?
22:18:26 <ais523> olsner: hard to tell, this is why I need the infinite loop
22:18:39 <olsner> I think a.out continued and finished successfully
22:19:04 <olsner> oh, and save the exit status? it should say how the program died
22:19:27 -!- epicmonkey has quit (Ping timeout: 255 seconds).
22:19:51 <ais523> yeah, a.out just starts running normally if I kill gdb out from under it
22:20:45 <ais523> I'm pretty sure that to reproduce the bug, you need a new PID namespace
22:21:13 <olsner> just killing a debugger is not weird enough to warrant a kernel bug
22:21:18 <ais523> indeed
22:21:28 <ais523> it's not the sort of thing you normally do intentionally, but it seems easy enough to do by mistake
22:21:47 <Vorpal> ais523, what about if you put the inner process in a different namespace?
22:22:17 <ais523> Vorpal: you can't easily get gdb to do that, at this point
22:22:25 <Vorpal> ah
22:22:32 <ais523> perhaps you could do it with recursive strace
22:22:44 <ais523> but you'd need to write your own helper program, also would need root on all processes involved
22:22:49 <ais523> and I'm too lazy to try to do that right now
22:26:22 <Vorpal> ais523, I would doubt recursive trace is allowed
22:26:25 <Vorpal> it shouldn't be
22:26:42 <olsner> of course it should be
22:26:42 <Vorpal> or even tracing a parent process
22:26:47 <Vorpal> olsner, why
22:26:53 <ais523> Vorpal: recursive trace works by capturing all the fork commands
22:27:00 <ais523> and immediately tracing the children too
22:27:02 <Vorpal> hm
22:27:14 <Vorpal> ais523, err I meant cyclic tracing
22:27:17 <Vorpal> why did I type recursive
22:27:23 <Vorpal> time to sleep I think
22:27:46 <ais523> well I said recursive
22:27:56 <olsner> hmm, I'll admit that cyclic tracing seems troublesome
22:29:20 <Vorpal> ais523, anyway you could attach to an existing process
22:29:27 <ais523> the system calls to set it up are definitely possible to express
22:29:54 <ais523> huh? man ptrace says that tracing init is legal
22:30:04 <ais523> I almost want to attach gdb to init now
22:30:08 <ais523> but I'm not sure what would happen if I tried
22:30:34 <ais523> there's nothing in the documentation that bars cyclic tracing…
22:31:10 <Vorpal> try it in a VM?
22:31:20 <ais523> I'm trying cyclic tracing on my laptop right now
22:31:41 <ais523> oh wow
22:31:44 <ais523> they're both in tracing stops
22:31:46 <ais523> simultaneously
22:32:35 <ais523> http://sprunge.us/GEgA
22:33:22 <olsner> two gdbs attached to each others?
22:33:39 <ais523> yep!
22:33:48 <kmc> i think ptracing init is a new feature
22:33:50 <kmc> 'feature'
22:33:53 <ais523> kmc: indeed
22:33:57 <kmc> previously it would try to reparent the traced process to the tracer
22:34:21 <ais523> olsner: strangely, even though gdb 1 was told not to stop gdb 2, it did anyway
22:34:39 <ais523> I think, because gdb 2 stopped gdb 1, so gdb 1, which it was tracing, stopped too
22:34:43 <ais523> let's try to break up this gdb-ball, now
22:35:23 <ais523> kill -9 works, lesser signals seem not to
22:35:41 <olsner> seems like they just deadlocked when I tried attaching to gdb 2 from gdb 1 (gdb 2 was started with --pid=gdb1)
22:35:59 <ais523> olsner: yeah, and they're both marked as tracing stop
22:36:12 <ais523> olsner: can you try to kill gdb 2 in that scenario? I tried to kill gdb 1 instead
22:37:24 <olsner> term does nothing, kill results in gdb1 saying "Unable to attach: program terminated with signal SIGKILL, Killed."
22:37:34 <ais523> OK, that's a different result to trying to kill 2
22:37:49 <ais523> in my case, 1 correctly reported that 2 had been killed
22:38:05 <kmc> sh -c 'exec strace -p $$'
22:38:32 <ais523> kmc: have you tried that, or is it just a thought experiment?
22:38:36 <kmc> i have tried it
22:38:42 <kmc> i know what happens
22:38:58 <olsner> hmm, the first run gave me a different result though, maybe because I tried to Ctrl-C both gdbs before killing them (gdb2 first)
22:39:24 <ais523> kmc: strace checks for it, it seems
22:39:24 <olsner> gdb/linux-nat.c:1766: internal-error: linux_nat_detach: Assertion `num_lwps (GET_PID (inferior_ptid)) == 1' failed.
22:39:46 <ais523> gdb says "I refuse to debug myself!"
22:39:50 <kmc> yep
22:40:05 <olsner> run gdb in gdb to bypass the check
22:40:23 <ais523> I won't try to run weboflies inside itself because that actually ends in quite a boring manner
22:40:37 <ais523> the outside one prevents the inside one from running ptrace
22:40:42 <olsner> boring!
22:40:45 <ais523> so you don't get any sort of interesting infinite regress
22:41:13 <olsner> does that mean you don't support nested weboflies either?
22:41:22 <ais523> indeed
22:41:39 <ais523> debugger-like programs are one of the things weboflies is documented to not work on
22:41:40 <elliott> ais523: that's a good way to check whether you're webofliesed
22:41:43 <ais523> elliott: I know
22:41:53 <ais523> I guess in theory I could go through all the effort of implementing ptrace by hand
22:41:58 <olsner> webofleeced
22:42:00 <ais523> but I won't unless it turns out to be really relevant
22:42:21 <ais523> the other thing is, the program running inside weboflies can't be root, and it needs root
22:42:27 <Vorpal> ais523, does weboflies work on 64-bit programs yet?
22:42:31 <ais523> Vorpal: no
22:42:36 <ais523> it doesn't even work on 32-bit programs yet :)
22:42:42 <Vorpal> fair enough
22:42:51 <olsner> what does it work on? 16-bit programs?
22:42:54 <ais523> olsner: nothing
22:42:57 <Vorpal> ais523, I would like to run it on arm-linux-gnueabihf
22:43:02 <ais523> Vorpal: really?
22:43:07 <Vorpal> ais523, maybe
22:43:12 <ais523> it needs special-case code for each platform and ABI
22:43:21 <ais523> this is why I'm focusing on 32-bit x86
22:43:29 <Vorpal> ais523, oh? That is going to be a PITA on ARM
22:43:30 <olsner> weboflies can't fake being root?
22:43:35 <ais523> Vorpal: exactly
22:43:37 <ais523> olsner: not yet
22:43:37 <Vorpal> due to all the variant-ABIs
22:43:48 <ais523> I guess there's fakeroot, but it doesn't do a particularly impressive job of it
22:43:58 <ais523> olsner: how do you react if the inside program tries to break the chroot, for instance?
22:44:07 <Vorpal> what does fakeroot actually do btw?
22:44:11 <ais523> you have to pretend it doesn't exist
22:44:18 <ais523> Vorpal: lies on some file-related system calls
22:44:21 <ais523> weboflies-style
22:44:26 <Vorpal> ais523, right
22:44:45 <ais523> like, if it tries to chown a file to root, it pretends it succeeded, and then returns root on any attempt to get the file's owner
22:44:48 <kmc> it's a library shim not a syscall interceptor right?
22:44:52 <ais523> kmc: err, probably
22:45:04 <kmc> that's why i write all my programs as assembly making syscalls directly
22:45:15 <Vorpal> kmc, what if you hardlink the file first
22:45:17 <Vorpal> err
22:45:17 <ais523> in the case of fakeroot, though, you want to be lied to
22:45:18 <Vorpal> ais523, ^
22:45:23 <ais523> Vorpal: it's not perfect
22:45:28 <elliott> kmc: have you seen weboflies
22:45:29 <Vorpal> fair enough
22:45:29 <ais523> its purpose is to make packages
22:45:32 <elliott> it's the kind of thing you'd like or hate
22:45:54 <Vorpal> ais523, does it store the chown then somewhere, so that the proper owner can be recorded in the package?
22:45:58 <kmc> i heard about it but forgot
22:46:12 <elliott> kmc: you should see its code
22:46:15 <elliott> you'd hate or like it
22:46:16 <ais523> Vorpal: yes
22:46:21 <Vorpal> ah that works
22:46:23 <ais523> it's so unfinished :(
22:50:09 -!- monqy_ has joined.
22:50:48 -!- monqy has quit (Disconnected by services).
22:50:52 -!- monqy_ has changed nick to monqy.
22:51:59 <olsner> if the inside program tries to break the chroot, just tell it it wasn't in a chroot in the first place?
22:52:29 <ais523> olsner: yeah, but that's yet more cases to check, and so on
22:52:39 <ais523> (you do know how to break a chroot as root, right?)
22:52:56 <kmc> how's that again
22:53:06 <elliott> ais523: do you have web o' flies' code to hand?
22:53:08 <elliott> I've lost it, I think
22:53:08 <olsner> how about if the inside program creates a chroot with another program (as root) that is "legitimately" supposed to break out from the inner chroot
22:53:17 <ais523> you cd root, set up a second chroot inside it
22:53:35 <ais523> then while inside the second chroot, but still inside the root directory of the original chroot (i.e. you're below your own personal root), do a cd ..
22:53:39 <ais523> then chroot again
22:53:53 <ais523> it breaks the chroot because if you're /below/ root, you can cd .. as much as you like
22:53:57 <ais523> I think this is an intended feature
22:59:42 <olsner> reminds me of what you get when your working directory has been deleted
23:00:14 <ais523> olsner: I didn't think it was possible to delete another process's working directory
23:01:41 <olsner> it must be possible :) it's also fun when cd .. fails because the directory has stopped existing
23:01:53 <olsner> or I guess because it has stopped having a file name
23:02:12 <ais523> hmm… is it possible to delete the .. /entry/ in a directory
23:02:22 <ais523> while having a directory containing the directory that's missing a ..
23:02:35 <olsner> does the '..' entry even necessarily exist?
23:02:47 <ais523> I think it's meant to, by some spec or another
23:03:52 <olsner> I mean, that it's an artifact of simulating posix rather than the directory actually having a link named .. that points to the parent directory
23:04:21 <elliott> what if you didn't have "."?!?!?!?!
23:05:02 <oerjan> `addquote <Sgeo> This position is asking for "- Extensive experience with API" <Jafet> You're just not qualified, kid.
23:05:06 <HackEgo> 958) <Sgeo> This position is asking for "- Extensive experience with API" <Jafet> You're just not qualified, kid.
23:08:04 <kmc> gah python.... repr(x) = '1357675209.248774', str(x) = '1357675209.25'
23:08:12 <kmc> in particular this means 'print' doesn't print floats with full precision
23:08:22 <elliott> isn't that sort of a good thing
23:08:30 <elliott> since otherwise print would print huge monstrosities
23:08:37 <kmc> no it's not a good thing
23:08:39 <kmc> it's too magic and implicit
23:08:52 <kmc> if you want only 2 decimal places you can use '%.2f' % (x,)
23:09:23 <kmc> evidence that it's too magic and implicit: i've been programming in python for many years and only just noticed this, when i couldn't grep some files for the floats supposedly loaded from those files
23:13:22 <elliott> well you know what's too magic and implicit
23:13:31 <elliott> it's automatically converting values to strings by implicit rules that nobody will know inherently
23:13:37 <elliott> because there are tons of ways to convert any value to a string
23:14:25 <Vorpal> kmc, pretty sure %f in C's printf doesn't do full precision either?
23:14:25 <ais523> elliott: toString()
23:14:27 <ais523> :)
23:15:54 <pikhq> I would be unsurprised to find that the rule is "output the shortest string that results in the same binary representation".
23:16:16 <pikhq> Rather than the perhaps saner "output the decimal conversion of the float".
23:16:29 <olsner> it's either that or undefined behaviour
23:17:03 <kmc> i recall finding out that efficient, exact float -> string conversion is surprisingly complicated
23:17:11 <kmc> or maybe it was the other way
23:17:28 <kmc> everything involving floats is surprisingly complicated, i shouldn't be surprised by it by now
23:17:41 <olsner> iirc string->float is the really tricky one, but float->strings is most likely pretty tricky too
23:18:55 <pikhq> kmc: Exact float->string conversion can be fairly easy if you use hex float syntax. :P
23:19:03 <olsner> hmm, or maybe float->string was the tricky one... there was that bug in dtoa where it went into an infinite loop
23:19:30 <olsner> maybe I actually meant it that way around in the first place but wrote the words in the wrong order
23:24:36 <kmc> ah yeah that was a great bug
23:24:43 <kmc> DoS any PHP or Java app
23:24:59 <kmc> though PHP fucking something up is not in any way evidence that it's a tricky problem
23:25:43 <oerjan> `fetch http://sprunge.us/YaOJ
23:25:46 <HackEgo> 2013-02-06 23:25:45 URL:http://sprunge.us/YaOJ [3900] -> "YaOJ" [1]
23:26:36 <oerjan> `run chmod a+x YaOJ; mv YaOJ bin/shove
23:26:40 <HackEgo> No output.
23:26:42 <olsner> iirc this was the one case where php did the right thing and used the library that already solved this tricky problem that no-one knows how to solve, but that it had an actual bug
23:26:51 <tswett> Man. Ithkuil is quite the thing.
23:27:08 <tswett> The word "âdraxhtipší" translates literally as "apparatus designed for obeying synergistically composite sets of rules".
23:27:25 <tswett> Or, a bit more nicely, as "computer".
23:27:46 <kmc> that would be a good name for a programming language
23:27:51 -!- SirCmpwn has quit (Excess Flood).
23:28:25 <tswett> Âdraxhtipší. It's difficult to type, but not extremely so.
23:28:34 -!- Phantom_Hoover has joined.
23:28:45 <tswett> On my keyboard, it's "alt-6 A d r a x h t i p alt-v s alt-e i".
23:28:53 <olsner> "No person, including Quijada, is hitherto known to be able to speak Ithkuil fluently."
23:28:53 -!- SirCmpwn has joined.
23:29:57 <monqy> Userspresumably none (2012)
23:30:01 <tswett> Sort of ironic how Ithkuil is kind of supposed to be extremely concise, and yet its word for "computer" is longer than the English word for computer.
23:30:21 <monqy> In 2008, it won the Smiley Award
23:31:33 <tswett> The difference, I suppose, is that while "computer" has three longish morphemes, com-put-er, "âdraxhtipší" presumably has a whole ton of short morphemes.
23:31:40 <elliott> monqy: are you new to ithkuil?
23:31:43 <elliott> it's an amazing thing
23:31:48 <olsner> apparently "Ithkuil doesn’t use the concept of zero."
23:32:05 <tswett> Right, it does. "â-dr-a-xht-ipš-i", six morphemes.
23:33:01 <tswett> Looks like the root is... "eu", actually, but it's abbreviated out of the word entirely or something.
23:33:36 <monqy> elliott: somehow i've never heard of it before
23:33:39 <monqy> elliott: but it's amazing yes
23:33:40 <olsner> 65 consonants and 17 vowels o.O
23:33:48 <elliott> monqy: listen to the example sentence pronunciation on wikipedia
23:33:49 <elliott> it's great
23:34:00 <elliott> ompeaaa a keth luch tuch
23:35:36 <monqy> As our vehicle leaves the ground and plunges over the edge of the cliff toward the valley floor, I ponder whether it is possible that one might allege I am guilty of an act of moral failure, having failed to maintain a proper course along the roadway
23:37:04 <olsner> and the IPA for it looks like it comes straight from /dev/urandom
23:37:09 <oerjan> `run echo '"Hello world!"S' | shove
23:37:12 <HackEgo> ​ \ actual size: (15, 1), pos: (0, 0) \ rotated for viewing; pos: (0, 0), dir: 0 \ stack: \ *Hello world!"S \ \ actual size: (15, 1), pos: (14, 0) \ rotated for viewing; pos: (14, 0), dir: 0 \ stack: {Hello world!} \ "Hello world!"* \ Hello world!
23:37:30 <olsner> ˈpʊ́l̪l̩̪̀ ʊˈɪ́qɪ̀ʃx ˈmáʔwàɫ̪ɡ ɛʁjaʊ̯fɤˈn̪ɪ́ɛ́n̪ ˈpǽθwɯ̀ç aʊ̯ˈxɤ́ʔjàɬt xn̪ɛʔwiɬˈtáʔʂʊ̀ɪ̯ ˈt̪ʊ́à kɪ̂t̪ œl̪ˈːâ jaˈqázmʊ̀ɪ̯v l̪ɪʔjɯɾˈzɪ́ʂkàʔ pʼamˈm̩̂ aɪl̪ɔʔˈwɤ́tʃːà ʃʊʔˈjɛ́ɸt̪àʂ
23:37:37 <oerjan> bit unoptimal output for HackEgo
23:37:53 <coppro> stop that
23:37:56 <coppro> you break my terminal
23:38:23 <olsner> Romanization: Pull̀ uíqišx ma’wałg eřyaufënienˉ päţwïç auxë’yaļt xne’wïļta’şui tua kit öllá yaqazmuiv li’yïrzişka’ p’amḿ aìlo’wëčča šu’yehtaş
23:39:12 <ais523> oerjan: is that my shove interp?
23:39:16 <oerjan> yes
23:39:21 <ais523> I was wondering if you'd written your own
23:39:48 <oerjan> bit of a waste given yours is the only information i have about the language.
23:39:59 <ais523> indeed
23:40:12 <ais523> it seems to output debug info
23:40:40 <ais523> hmm… rare for me to finish an esolang then forget to tell anyone about it
23:40:46 <ais523> I must just have never got round to writing the spec
23:41:15 <elliott> I nominate oerjan writes the spec
23:41:18 <elliott> that'd be a world first I think
23:41:49 <oerjan> wat
23:42:47 <elliott> a world first of someone writing the spec for someone else's esolang
23:43:38 <ais523> why oerjan not you? laziness?
23:44:27 <elliott> I don't _do_ things...
23:44:29 <ais523> "ais523 created the esolang Shove in 2008, but somehow forgot to tell anyone until 2013"
23:44:34 <elliott> also oerjan seems to know how to write a program in it and I don't :P
23:44:35 <ais523> just checked the file modification dates
23:44:46 <ais523> it's hard to do control flow
23:48:33 <monqy> that reminded me of another language but i forgot which one so i searched for it and it's Burn.
23:50:56 <olsner> (wow! people are talking about esolangs!)
23:51:57 <ais523> Burn is quite an awkward language
23:52:08 <ais523> because I wrote one program in it, and never remembered the spec
23:52:24 <ais523> the program's online, but I'm not sure anyone's seriously tried to figure out the spec from it
23:52:29 <ais523> perhaps I should try sometime
23:52:45 <ais523> having designed the esolang in the first place, I probably have the best chance
23:57:44 <oerjan> `fetch http://oerjan.nvg.org/esoteric/shove/shove
23:57:49 <HackEgo> 2013-02-06 23:57:48 URL:http://oerjan.nvg.org/esoteric/shove/shove [4006/4006] -> "shove" [1]
23:57:57 <oerjan> `run chmod a+x shove
23:58:00 <HackEgo> No output.
23:58:04 <oerjan> `mv shove bin/shove
23:58:06 <HackEgo> mv: missing destination file operand after `shove bin/shove' \ Try `mv --help' for more information.
23:58:09 <oerjan> `run mv shove bin/shove
23:58:12 <HackEgo> No output.
23:58:26 <oerjan> `shove "Hello, world!"S
23:58:28 <HackEgo> Hello, world!
2013-02-07
00:11:08 <oerjan> `fetch http://oerjan.nvg.org/esoteric/shove/shove
00:11:11 <HackEgo> 2013-02-07 00:11:10 URL:http://oerjan.nvg.org/esoteric/shove/shove [4053/4053] -> "shove" [1]
00:11:13 <oerjan> `run chmod a+x shove
00:11:16 <HackEgo> No output.
00:11:17 <oerjan> `run mv shove bin/shove
00:11:20 <HackEgo> No output.
00:16:58 -!- zzo38 has joined.
00:18:17 <ais523> oerjan: modified to only print output?
00:18:55 <oerjan> also to take a program on command line by default
00:19:18 -!- DHeadshot has joined.
00:19:28 <oerjan> `run echo '"Hello, world!"S' >test
00:19:31 <HackEgo> No output.
00:19:58 <oerjan> `run shove -d -f test #Now with options
00:20:18 <oerjan> `cat test
00:20:19 <HackEgo> ​"Hello, world!"S
00:20:29 <HackEgo> No output.
00:20:37 <oerjan> `run yes | shove -d -f test #Now with options
00:20:39 <HackEgo> ​ \ actual size: (16, 1), pos: (0, 0) \ rotated for viewing; pos: (0, 0), dir: 0 \ stack: \ *Hello, world!"S \ \ actual size: (16, 1), pos: (15, 0) \ rotated for viewing; pos: (15, 0), dir: 0 \ stack: {Hello, world!} \ "Hello, world!"* \ Hello, world!
00:22:22 <oerjan> oh and the debugger now waits for stdin even if it's from a file.
00:23:59 <oerjan> hm i wonder
00:24:27 <oerjan> `run shove 'v' '>"Test"S'
00:24:29 <HackEgo> Test
00:25:06 <oerjan> i wasn't sure if i'd made it use one line per argument or not.
00:31:41 -!- ais523 has quit.
00:39:44 <oerjan> `run shove '" '\''Hello, world"'\''S"('
00:39:45 <HackEgo> Unterminated string. at /hackenv/bin/shove line 140.
00:40:07 <oerjan> `run echo '" '\''Hello, world"'\''S"('
00:40:08 <HackEgo> ​" 'Hello, world"'S"(
00:40:17 <oerjan> `run shove '" '\''Hello, world"'\''S('
00:40:19 <HackEgo> Unterminated string. at /hackenv/bin/shove line 140.
00:40:49 <oerjan> `run shove '" '\''Hello, world'\''S"('
00:40:50 <HackEgo> No output.
00:40:57 <oerjan> darn
00:41:06 <oerjan> `run shove '" '\''Hello, world'\''S"('
00:41:08 <HackEgo> No output.
00:41:26 <oerjan> `run echo '" '\''Hello, world'\''S"('
00:41:27 <HackEgo> ​" 'Hello, world'S"(
00:42:18 <oerjan> `run echo '" '\''Hello, world'\''S"S'
00:42:20 <HackEgo> ​" 'Hello, world'S"S
00:42:29 <oerjan> `run shove '" '\''Hello, world'\''S"S'
00:42:30 <HackEgo> ​ 'Hello, world'S
00:46:41 <kmc> shachaf: do you know anything about http://fpcomplete.com/
00:47:00 <elliott> kmc: i know spj is investing in them or something
00:47:08 <elliott> and snoyman works there?
00:47:11 <elliott> and johnw works there
00:47:12 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:47:14 <kmc> interesting
00:47:26 <elliott> not sure what they actually do
00:47:40 <elliott> there is some haskell school thing(?) maybe online(?) they're running
00:47:53 <kmc> Massive Online Monad Tutorial
00:50:43 <shachaf> kmc: I know pretty much what elliott knows.
00:51:01 <shachaf> I think they're making an online Haskell IDE or something?
00:52:23 <oerjan> `run shove ' v' 'v V" olleH"<' '>", world!"S'
00:52:25 <HackEgo> No output.
00:52:32 <oerjan> wtf now again
00:52:50 <kmc> ok
00:52:56 <kmc> the website looks... slick in the wrong ways
00:53:01 <kmc> but i guess they have some legit people involved
00:53:58 <oerjan> oh duh shove is evil :P
00:54:07 <monqy> Functional Programming technology
01:00:24 <oerjan> `run shove '" ,olleH"V v' ' S"!dlrow"<'
01:00:26 <HackEgo> Hello, world!
01:02:05 <zzo38> My idea of some music format: The header is sixteen frequencies of the notes of the lowest octave, followed by eight waveforms of thirty-two frames each, where each frame is four bits. And then, follow by commands. The frequencies are converted to periods when it is loaded. Durations are also converted to periods.
01:02:06 <lambdabot> zzo38: You have 1 new message. '/msg lambdabot @messages' to read it.
01:02:12 <oerjan> ok that was slightly amusing
01:02:27 <zzo38> 0xxx.xxxx = note playing. 0111.1111 = rest.
01:03:16 <oerjan> `cat bin/log
01:03:18 <HackEgo> ​#!/bin/sh \ cd /var/irclogs/_esoteric \ if [ "$1" ]; then \ grep -P -i -- "$1" ????-??-??.txt | shuf -n 1 \ else \ file=$(shuf -en 1 ????-??-??.txt) \ echo "$file:$(shuf -n 1 $file)" \ fi
01:03:24 <zzo38> 1000.0xxx = select waveform. 1000.1xxx = select waveform with phase reset. 1001.0xxx = channel start intro. 1001.1xxx = channel start loop or go to loop. 1010.xxxx = volume. and so on
01:03:42 <zzo38> Including duration, duration MRU, and local repeats.
01:03:48 <zzo38> Now is this good enough, do you think so?
01:03:52 <zzo38> ?messages
01:03:52 <lambdabot> shachaf said 1d 4h 20m 13s ago: CodensityAsk reminds me of type MendlerAlgebra f c = forall a. (a -> c) -> f a -> c (except that it's different)
01:04:27 <shachaf> hi lambdabot
01:05:07 <tswett> zzo38: mm, thinking carefully about the purpose of this music format may be a good idea.
01:05:36 <zzo38> tswett: Just that I would find it easy to implement in C with SDL, and to create music files of that format with CsoundMML.
01:05:54 <tswett> Yeah, but what are you trying to represent?
01:06:00 <tswett> Do you want it to be able to express arbitrary sounds? Encode the waveform. To express arbitrary sounds in a space-efficient manner? Encode the program that generates the waveform.
01:06:26 <zzo38> shachaf: What is MendlerAlgebra for, though? It is not a functor
01:06:34 <oerjan> `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail
01:06:37 <HackEgo> 01:03:48: <zzo38> Now is this good enough, do you think so? \ 01:03:52: <zzo38> ?messages \ 01:03:52: <lambdabot> shachaf said 1d 4h 20m 13s ago: CodensityAsk reminds me of type MendlerAlgebra f c = forall a. (a -> c) -> f a -> c (except that it's different) \ 01:04:27: <shachaf> hi lambdabot \ 01:05:07: <tswett> zzo38: mm, thinking carefully about
01:07:06 <shachaf> tswett: encode the program that generates the music format
01:07:11 <zzo38> tswett: Well, there is the balances of simplicity, speed, compact, etc
01:07:13 <shachaf> @google MendlerAlgebra
01:07:15 <lambdabot> http://www.haskell.org/haskellwiki/Catamorphisms
01:07:15 <lambdabot> Title: Catamorphisms - HaskellWiki
01:07:34 <Bike> "Mendler and the Contravariant Yoneda Lemma" is this a children's novel
01:08:15 <zzo38> Sure also such things as NSF and MOD and so on usable, but I don't quite easily enough find the C program to play it properly using SDL
01:08:32 <oerjan> `run printenv
01:08:34 <HackEgo> TERM=linux \ http_proxy=http://127.0.0.1:3128 \ HACKENV=/hackenv \ PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin \ PWD=/hackenv \ LANG=en_NZ.UTF-8 \ HOME=/tmp \ SHLVL=1 \ _=/usr/bin/printenv
01:09:43 <shachaf> monqy: do you know what an end is
01:09:43 <tswett> zzo38: *nod* I wonder, then, is there any particular reason you're not just using WAV files?
01:09:51 <monqy> shachaf: what's an end
01:10:13 <shachaf> monqy: i don't know :'(
01:10:17 <monqy> oh
01:10:18 <shachaf> In category theory, an end of a functor is a universal dinatural transformation from an object e of X to S.
01:10:50 <monqy> ok
01:10:56 <oerjan> `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -2
01:10:59 <zzo38> tswett: WAV files will be too large and maybe wrong sample rate
01:11:00 <HackEgo> 01:10:50: <monqy> ok \ 01:10:56: <oerjan> `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -2
01:11:17 <zzo38> Also we would want looping of music
01:11:25 <shachaf> monqy: i was hoping you could tell me what it means
01:12:03 <tswett> So yeah. I was under the impression that the purpose of Ithkuil was to express normal amounts of information with small amounts of text; it turns out the purpose is actually to express large amounts of information with normal amounts of text.
01:12:12 <oerjan> `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/.*> //' #Worst kimian quine ever?
01:12:16 <HackEgo> ​//' #Worst kimian quine ever?
01:12:21 <oerjan> oops :P
01:12:32 <oerjan> `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/.*?> //' #Worst Kimian quine ever?
01:12:36 <HackEgo> ​//' #Worst Kimian quine ever?
01:13:22 <oerjan> `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/[^>]*> //' #Worst Kimian quine ever?
01:13:25 <HackEgo> ​`run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/[^>]*> //' #Worst Kimian quine ever?
01:13:30 <oerjan> there you go.
01:14:09 <tswett> zzo38: *nod* May I ask why they're too big?
01:14:10 <zzo38> I don't think it is a Kimian quine though; I think a Kimian quine is one which the system's error message is the same as the program text. But I can see how it works
01:14:12 <oerjan> `echo bin/quine
01:14:14 <HackEgo> bin/quine
01:14:26 <oerjan> zzo38: oh right. i guess i meant cheating quine then
01:14:27 <oerjan> oops
01:14:32 <oerjan> `cat bin/quine
01:14:34 <HackEgo> cat: bin/quine: No such file or directory
01:15:57 <zzo38> tswett: You know...
01:15:58 <oerjan> `run echo 'cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed '\''s/[^>]*> //'\'' #Worst cheating quine ever?" >bin/quine
01:16:00 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
01:16:28 <oerjan> `run echo 'cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed '\''s/[^>]*> //'\'' #Worst cheating quine ever?' >bin/quine
01:16:31 <HackEgo> No output.
01:16:50 <oerjan> `run quine #Also the best.
01:16:52 <HackEgo> bash: /hackenv/bin/quine: Permission denied
01:17:02 <oerjan> `run chmod a+x bin/quine
01:17:06 <HackEgo> No output.
01:17:08 <oerjan> `run quine #Also the best.
01:17:11 <HackEgo> ​`run quine #Also the best.
01:18:06 <tswett> zzo38: because you have either a large number of music files or a significant space limitation?
01:18:25 <oerjan> `run quine | rot13
01:18:28 <HackEgo> No output.
01:18:32 <oerjan> oops
01:18:37 <tswett> `run quite
01:18:39 <HackEgo> bash: quite: command not found
01:18:40 <tswett> `run quine
01:18:43 <HackEgo> ​`run quine
01:18:49 <zzo38> I also do not know any MML compilers for MOD and S3M formats (neither format can do desynchronization, and way of combining blocks in those formats makes it difficult to work with too)
01:18:51 <tswett> So, like, how does it work?
01:18:53 <oerjan> `cat bin/rot13
01:18:54 <HackEgo> echo "$@" | tr a-zA-Z n-za-mN-ZA-M
01:19:01 <oerjan> `run quine | rot13
01:19:04 <HackEgo> No output.
01:19:13 <oerjan> wtf is wrong with that
01:19:22 <oerjan> oh of course
01:19:34 <oerjan> `run rot13 $(quine)
01:19:38 <HackEgo> ​`eha ebg13 $(dhvar)
01:19:54 <zzo38> tswett: Well, yes those are reasons too.
01:19:54 <tswett> `run echo aru | rot13 | rot13
01:19:56 <HackEgo> No output.
01:20:06 <oerjan> tswett: it simply finds the last line in the logs and removes everything up to the nick
01:20:23 <elliott> `run rot13 `quine`
01:20:26 <HackEgo> ​`eha ebg13 `dhvar`
01:20:29 <elliott> oh, I see
01:20:35 <tswett> zzo38: then I don't know what the reason you were referring to is.
01:20:39 <elliott> `run echo $(quine)
01:20:43 <HackEgo> ​`run echo $(quine)
01:20:44 <elliott> oerjan: this is a beautiful program
01:20:46 <tswett> oerjan: mm.
01:20:48 <tswett> `quine
01:20:51 <HackEgo> ​`quine
01:21:00 <zzo38> tswett: Those are what I refer to, too.
01:21:05 <tswett> `quine the first
01:21:08 <HackEgo> ​`quine the first
01:21:15 <tswett> Hm, I fail at, like... doing this correctly.
01:21:18 <Bike> `quine
01:21:18 <Bike> brief
01:21:21 <HackEgo> brief
01:21:25 <tswett> `quine the first
01:21:25 <tswett> `quine the second
01:21:28 <HackEgo> ​`quine the second
01:21:28 <HackEgo> ​`quine the second
01:21:30 <tswett> There we go.
01:21:37 <Bike> nooooo
01:21:58 <elliott> oerjan: it should make sure the line starts with a ` at least
01:23:13 <oerjan> elliott: oh? i thought the failure modes were part of the charm.
01:24:05 <zzo38> tswett: Do you know of the C libraries to play the other formats on SDL, though, and of the MML compiler into some such format?
01:24:22 <tswett> Nope.
01:24:28 <oerjan> HackEgo: `echo hi
01:24:38 <oerjan> it doesn't do such fancy things...
01:24:53 <oerjan> `cat bin/quine
01:24:54 <elliott> oerjan: ostensibly
01:24:54 <HackEgo> cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/[^>]*> //' #Worst cheating quine ever?
01:25:27 <elliott> no don't fix it
01:25:35 <oerjan> oh ok
01:27:33 <oerjan> did ais523 say shove was TC?
01:28:00 <elliott> I don't think so
01:28:46 <oerjan> <ais523> elliott: Shove is TC, I think; you can compile Underload into it
01:28:49 <shachaf> proof by ais523 said so
01:32:57 <zzo38> Do you know if a trigger in SQL is allowed to call itself?
01:35:01 <shachaf> kmc: UTF-16 apparently had better performance than UTF-8 for "text"
01:35:08 <shachaf> They ported it and then decided to stick with -16
01:35:12 <kmc> interesting
01:35:16 <shachaf> Apparently it had to do with the four-way branch or something?
01:35:19 <shachaf> I don't know.
01:35:40 <kmc> was that in realistic situations or synthetic microbenchmarks?
01:35:53 <zzo38> Well, it probably also depends on what text you are encoding and on the program which uses it, and on other things.
01:36:35 <shachaf> I don't know the details. It's just what I overheard from edwardk (it was a SoC project).
01:36:36 <kmc> what's the internal structure of text, again? finger tree? rope?
01:36:38 <kmc> flat?
01:36:46 <shachaf> Just a plain ByteArray
01:36:52 <elliott> Also the Unicode C library they use whose name I've forgotten uses UTF-16.
01:37:02 * elliott wishes there was a good rope library for Haskell.
01:37:03 <kmc> ICU?
01:37:09 <shachaf> Yes, ICU was a big consideration.
01:37:20 <kmc> it seems like a good data structure would be a finger tree of ~few-kB UTF-8 chunks
01:37:38 <elliott> edwardk has a UTF-8 finger-tree string implementation on Hackage (in several different packages).
01:37:42 <kmc> annotated with things like the number of codepoints in each
01:37:48 <kmc> mm
01:37:50 <elliott> The problem is he doesn't care about it to the point where he actually didn't realise it existed until I pointed it out.
01:37:58 <kmc> haha
01:38:05 <kmc> that's amusing
01:38:23 <shachaf> He cares about it for his parsers.
01:38:25 * elliott thinks ~few-kB might be a bit too big for a persistent structure.
01:38:28 <elliott> If you're modifying it constantly.
01:39:05 <kmc> maybe smaller at the ends
01:39:11 <kmc> anyway it's something you would have to tune
01:39:19 <kmc> i don't claim any a priori insight about what the best size is
01:39:42 <elliott> You could annotate it with more than codepoints; that would be pretty cool
01:39:50 <elliott> Might not be worth the cost, though.
01:40:03 <kmc> you could annotate it with an arbitrary monoid
01:40:04 <kmc> so easy
01:40:07 <elliott> Not sure codepoints by itself is useful. Random access by codepoint isn't a particularly interesting operation.
01:40:10 <kmc> yeah
01:40:15 <kmc> 'width in terminal' would be a fun one
01:41:05 <elliott> I wonder if (forall w. Monoid w => (UTF8String -> w) -> Rope w) would be a good string representation, where "w" is the annotation.
01:41:19 <elliott> Hey, Rope would even be a Functor then. (The Functor instance would be one you don't actually want for string manipulation, but still.)
01:41:33 <elliott> I guess if you get that generic it might as well be Rope w UTF8String.
01:41:50 <elliott> Hmm, I guess you can define (Rope w a) as a w-annotated FingerTree of vectors of a.
01:42:10 <elliott> That way type String = Rope Whatever Char is a proper Functor.
01:42:23 <elliott> Except for the part where it wouldn't be since you want the vector to be unboxed and that requires an Unbox typeclass and stuff.
01:42:26 * elliott sigh
01:43:20 <elliott> It'd be nice if Vector could be totally polymorphic and somehow adapt itself to be unboxed whenever you use it on a type that can be unboxed.
01:44:38 <kmc> isn't that one of the motivating examples for type families
01:44:39 <zzo38> That seems something that Haskell just doesn't do, and might be difficult even if another programming language that can be made up to do such things, would still be difficult, if you want to have adapt to box/unboxed. However, an idea is to use macros somehow.
01:45:07 <zzo38> Type families might do it but you still would have to write it for every one, rather than having it done automatically.
01:45:07 <kmc> data instance Vector (a,b) = VPair (Vector a) (Vector b) -- or such
01:46:51 <zzo38> But if you write "type family" then you cannot write "data instance" on it; it has to be "type instance" even though they should allow "data instance" in such cases too, they don't. (But it is good and correct that "data family" don't allow "type instance")
01:47:56 <shachaf> zzo38: You can always just define a separate data type.
01:48:39 <zzo38> shachaf: Yes I know so, and that is a way to work-around, but still I think should be allowed
01:48:54 <shachaf> I'm not sure that it should.
01:49:00 <shachaf> But anyway did you submit a bug report and/or patch?
01:49:16 <elliott> Macros don't work.
01:49:21 <elliott> Since you want a Functor instance.
01:49:35 <elliott> kmc: The problem is you can't write (a -> b) -> Vector a -> Vector b
01:49:39 <elliott> Because what constructors does it have?
01:49:40 <zzo38> No. I have made some suggestion of various things but mostly nobody wanted it
01:49:46 <elliott> So you need a typeclass for "something you can construct a Vector out of"
01:49:48 <elliott> So you lose Functor
01:49:58 <zzo38> elliott: C macros won't work, of course; I don't mean C macros.
01:49:58 <kmc> yes
01:50:36 <elliott> What you want is a "default typeclass instance" with all sorts of awful overlapping instances stuff with the understanding that it's OK because they all have the same semantics.
01:50:43 <elliott> But I don't think there's a way to make it properly with GHC.
01:50:51 <zzo38> Functor instance is derivable and if so will be the only correct way to do it, otherwise it is not possible to be done.
01:51:04 <zzo38> elliott: Yes, it is not possible to do properly with GHC that is what I meant.
01:51:16 <coppro> why is dr strangelove so wonderful
01:51:18 <zzo38> (Unless they added an extension to do it properly, but that might be very difficult)
01:51:42 -!- Arc_Koen has quit (Ping timeout: 264 seconds).
01:57:48 -!- Arc_Koen has joined.
02:05:29 <oerjan> `shove '"'"'"'"'"!"S'S)"S)'S)"S)'S)"S)'S)"S)'S)
02:05:31 <HackEgo> ​"'"'"'"'"!"S'S)"S)'S)"S)'S)"S)'S)"S)'"'"'"'"!"S'S)"S)'S)"S)'S)"S)'S)"'"'"'"!"S'S)"S)'S)"S)'S)"S)'"'"'"!"S'S)"S)'S)"S)'S)"'"'"!"S'S)"S)'S)"S)'"'"!"S'S)"S)'S)"'"!"S'S)"S)'"!"S'S)"!"S!
02:06:47 <oerjan> he didn't joke when he said ' and " nested inside each other
02:07:12 <elliott> nice
02:07:45 <oerjan> `shove '"'"'"'"'"!"S'S)"S)'S)"S)'S)"S)'S)"S)'S)"Hm"S
02:07:47 <HackEgo> ​"'"'"'"'"!"S'S)"S)'S)"S)'S)"S)'S)"S)'"'"'"'"!"S'S)"S)'S)"S)'S)"S)'S)"'"'"'"!"S'S)"S)'S)"S)'S)"S)'"'"'"!"S'S)"S)'S)"S)'S)"'"'"!"S'S)"S)'S)"S)'"'"!"S'S)"S)'S)"'"!"S'S)"S)'"!"S'S)"!"S!Hm
02:08:15 <oerjan> and ) (shoving in the same direction as you're moving seems to behaving relatively intuitively
02:08:18 <oerjan> *+)
02:08:27 <oerjan> *+be
02:10:56 * oerjan just realized the semantics of shoving means it is impossible to delete characters from the grid
02:11:24 * elliott suspects oerjan understands this language better than ais523 does already.
02:11:47 * oerjan suspects that's a little early
02:12:01 <oerjan> especially given ais523 claimed to be able to compile underload to it
02:12:20 * elliott suspects that meant "there seem to be equivalent enough operations to do it"
02:13:04 <oerjan> ...i had trouble enough just concatenating "Hello, " and "world!" above
02:20:05 <oerjan> `run echo Testing | fueue '):[)$$6-%0~~[$~])~[)$~~~%~~)[[0[33 H])[)[H]]!][1)[)))($[[)[~~~~()+1])][0]$%~~1)][][)[)$%0[)[))$11~<<~:(~:< ]])[):] ]] ]]])] ] [1[1][[50]<:[[52]<:]][[54]<:[[56]<:]]]'
02:20:07 <HackEgo> Testing
02:20:45 <oerjan> one has a slight hunch that simpler cats are possible :P
02:21:33 <oerjan> (this one is a translation from +[,.], as seen from just inside the loop
02:21:35 <oerjan> )
02:22:59 <elliott> is there no known fueue cat?
02:23:00 <elliott> apart from that one I mean
02:25:13 <monqy> fueue sure looks like a "tar pit" hm
02:25:28 <oerjan> elliott: i don't think i've ever bothered to make one
02:27:00 <oerjan> also EOF handling is a bit unspecified. the C interpreter is the only one which even handles it, by accident treating it as a negative number. which means the same as 0 for most purposes, since i have found no way to do input preserving a 3-way distinction.
02:27:34 <pikhq> oerjan: "By accident"?
02:27:43 <pikhq> oerjan: What, by just handing whatever getc() returns?
02:27:44 <oerjan> pikhq: or by default.
02:27:47 <oerjan> yeah.
02:28:22 <pikhq> Ah, yeah. Technically EOF can be anything in C so long as it's not confuseable for a character, but in practice it's -1.
02:28:22 <oerjan> the ocaml and haskell interpreters also do nothing special, which means they will raise exceptions.
02:28:39 <oerjan> pikhq: i think it's required to be < 0.
02:28:50 -!- Bike has left.
02:29:35 <pikhq> Ah, it is required to be negative.
02:30:05 <oerjan> i can distinguish 0 from EOF at the cost of identifying everything else with one of them.
02:31:14 <oerjan> (if i apply - first, EOF becomes positive and everything else becomes identified; if i apply % first 0 becomes 1 and everything else 0.)
02:31:15 <elliott> how useful
02:32:46 <oerjan> incidentally there is probably no quick way to determine whether a number is negative or positive :P
02:33:10 <oerjan> (in general, not just at input)
02:35:45 <oerjan> maybe something with division could work, but fueue doesn't specify which way / rounds
02:36:06 <pikhq> Nor does C. :)
02:36:19 <oerjan> indeed
02:37:14 <oerjan> (the slow way is to use $ to make copies of blocks, which you then have to delete if the number is large positive.)
02:37:57 <oerjan> i assume <0 is treated as 0 there
02:38:54 <oerjan> oh hm wait...
02:39:07 <oerjan> scratch that, i just thought of a way
02:39:25 <oerjan> well at least constant number of arithmetic operations
02:40:32 <oerjan> (x^2 + 2*x+1)/(x^2 - 2*x+1) will be 0 iff x is negative.
02:41:51 <oerjan> (handling overflow left as an exercise for the reader.)
02:50:46 -!- WeThePeople has joined.
02:51:35 <zzo38> O no! I realized that in this Dungeons&Dragons game I was playing yesterday, they are leading us into a trap! That guard in the barn (even though they blocked the way we intended to get in, and they *knew* we would be coming the other way anyways), I thought it was a decoy but now I think it is actually a double bluff!! They left the copy of the delivery note there deliberately so that we would find it!
02:52:36 <zzo38> I think so far we have actually done exactly what they expected us to do. I wouldn't be too surprised if I found the cutlery which they left behind (why didn't they deliver that?) is cursed.
02:53:11 <shachaf> O no!
02:54:01 <shachaf> zzo38: Can I join your Dungeons&Dragons games?
02:54:48 <zzo38> Probably not; possibly due to your location.
02:55:32 <shachaf> You should move to California.
02:55:44 <shachaf> Alternatively, I could move to Vancouver? Or wherever it is you are.
02:55:45 <zzo38> No.
02:56:35 <zzo38> That is close enough.
02:57:04 <monqy> too close??
02:57:49 <zzo38> I might be in Victoria in Victoria Day, in the "Sushi Plus" Japanese restaurant. (in case you want to know what I am)
02:59:25 <shachaf> is Victoria Day the Canadian version of Victory Day
02:59:55 <zzo38> I don't know.
03:00:30 <shachaf> zzo38: I was in Victoria once.
03:00:31 <zzo38> But on Victoria Day I usually go to Victoria since it is just very close in Vancouver Island and takes only an hour or so on the ferry boat to get there.
03:00:45 <shachaf> I took the ferry!
03:00:55 <shachaf> Hmm, I'm not sure whether it was a ferry boat or a ferry airplane or what.
03:00:59 <shachaf> But it was definitely a ferry.
03:01:09 <shachaf> monqy: hi
03:01:12 <monqy> ???
03:01:18 <monqy> hi shachaf????????
03:01:19 <zzo38> OK,have you been to that restaurant?
03:01:30 <shachaf> monqy: did you learn about kan extensions in my absence.............
03:01:44 <monqy> no but i learned about gosh what did i learn about
03:01:50 <monqy> cheese sauce
03:01:52 <shachaf> monqy: or did you decide to "spill the beans" about galois connections
03:01:54 <monqy> i learned about cheese sauce
03:02:10 <shachaf> monqy: "spill ur beans plz"
03:02:26 <monqy> ok ok i found the recipe online but still
03:03:39 <shachaf> monqy: the beans recipe or the cheese sauce recipe
03:04:01 <monqy> i didn't make beans
03:04:35 <monqy> i had other stuff with the cheese sauce but none of them were beans
03:04:43 <shachaf> did you spill them
03:05:01 <monqy> i think i spilled one of the broccolis accidentally
03:07:09 <shachaf> was it this one: http://upload.wikimedia.org/wikipedia/commons/4/4f/Fractal_Broccoli.jpg
03:07:33 <monqy> no just a normal broccoli
03:08:26 <monqy> apparently that's actually a cauliflower?
03:08:35 <shachaf> SORRY
03:08:42 <monqy> i had cauliflower too but not that cauliflower. and i didn't spill it.
03:08:42 <elliott> fractal cauliflower
03:08:52 <shachaf> if it's called cauliflower then why does the url say broccoli
03:08:55 <shachaf> checkmate monqyists
03:21:04 -!- WeThePeople has quit (Quit: Leaving).
03:28:28 -!- zzo38 has quit (Read error: Connection reset by peer).
03:29:10 -!- Arc_Koen has quit (Quit: Arc_Koen).
03:29:31 -!- WeThePeople has joined.
03:29:51 -!- zzo38 has joined.
03:30:08 <zzo38> (My computer was rebooting)
03:30:24 <shachaf> zzo38: have you ever met victoria
03:36:06 <zzo38> Not really
03:38:57 -!- WeThePeople has quit (Quit: Leaving).
03:41:59 <kmc> shachaf: http://grsecurity.net/~spender/msr32.c __asm volatile(".intel_syntax noprefix\n" ...)
03:44:03 <shachaf> I imagine switching back and forth a lot could be pretty annoying.
03:44:49 <kmc> not as annoying as AT&T syntax, apparenty
03:44:55 <kmc> AT&T syntax *is* pretty bad
03:45:16 <kmc> i'm surprised he doesn't define a macro to switch back and forth... I guess then you would need a \ on each line
03:46:20 <pikhq> Ugh, AT&T syntax.
03:46:40 <shachaf> kmc: I mean mentally switching back and forth.
03:46:56 * shachaf is much more used to AT&T syntax than Intel syntax.
03:46:58 -!- WeThePeople has joined.
03:47:09 <shachaf> (Intel syntax is also not that great. :-( )
03:47:29 <zzo38> Do you prefer the DOS DEBUG assembler syntax?
03:47:49 <kmc> i imagine that if you're reading the Intel manuals all the time, you might want to stick to Intel syntax
03:47:56 <kmc> but if you're reading objdump output all the time, you might stick to AT&T :(
03:49:30 <shachaf> objdump -M intel
03:49:36 <kmc> ah right
03:49:48 <pikhq> shachaf: Intel syntax sucks less.
03:49:57 <shachaf> Yep.
03:50:02 <pikhq> Both suffer from a fundamental problem, though...
03:50:04 <pikhq> x86 sucks.
03:50:04 <pikhq> :)
03:50:21 <kmc> x86 is underrated, y'all are just hipsters
03:50:55 <zzo38> x86, as well as many modern instruction sets, are full of dumb thing.
03:51:18 <pikhq> x86 is the anti-modern instruction set.
03:51:34 <kmc> i agree that x86 is full of dumb things but most of them are not relevant if you are writing userland code on a modern OS
03:51:43 <zzo38> Yes, it is very old but then made updates to change to make with modern things, and that is much worse.
03:51:47 <kmc> and even to large degree, if you are reading compiler output for userland code in a modern OS
03:53:01 <zzo38> I happen to like the ARM2 instruction set, although modern ARM instruction sets are becoming extremely complicated, and there are even at least three instruction sets, and so on.
03:53:16 <kmc> yeah ARM is nice
03:53:21 <shachaf> i happen to like monoids
03:53:23 <kmc> it has its own weird corners though
03:53:29 <kmc> even setting aside Thumb
03:53:31 <shachaf> want to wrestle on the floor about it
03:53:35 <kmc> :(
03:53:42 <kmc> is that how real hackers settle disputes
03:53:53 <kmc> maybe you can advise Sgeo about the "Are you a Hacker?" question
03:54:32 <shachaf> Adavise
03:54:35 <zzo38> kmc: I just mean the ARM2 instruction set, not all the junk they added afterward.
03:55:39 <zzo38> The stuff they added afterward also happens to be patented, and I don't like patent, however, perhaps in this case something good came from it which is that the Amber core only implemented the ARM2 and therefore did not implement all of the complicated junk! So at least there is one advantage to having such a patent, even though patent is bad in general.
03:56:53 <shachaf> can you get Apple to patent the osx ui
03:57:00 <shachaf> so ubuntu stops copying it and becoming bad
03:58:23 <zzo38> I think it is too late now; simply work on to make a separate UI for Ubuntu if you want, that can be improved if you still want the other stuff of Ubuntu specifically rather than other Linux distributions.
03:58:58 <zzo38> But, yes, it might have helped I guess.
03:59:17 <shachaf> I don't even use Ubuntu now.
03:59:28 <zzo38> Patents might work if only extremely terrible and complicated things are patented, for this reason.
03:59:46 <zzo38> shachaf: Then use a different Linux distribution, or a different operating system entirely, or a different computer.
04:00:05 <shachaf> I switched to a different computer but Ubuntu was still bad. :-(
04:00:25 <zzo38> No, I mean a different computer which does not run Ubuntu.
04:01:01 <shachaf> monqy: so "''covariant functor''"''"" is just a generalization of ˙˙¨monotonic˙¨ right?
04:02:51 -!- WeThePeople has quit (Quit: Leaving).
04:04:51 <Sgeo> `list
04:04:52 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
04:05:26 <shachaf> Did Fiora leave?
04:06:21 <monqy> shachaf: well if you think of functors between poset categories
04:07:02 <shachaf> monqy: right
04:07:11 <shachaf> monqy: just like "galois connections"
04:07:12 <shachaf> oh wait
04:07:20 <shachaf> you don't know about those i forgot :'(
04:07:31 <monqy> :-)
04:07:46 <shachaf> ÷)
04:08:20 <shachaf> monqy: what about a "monotonic predicate"
04:08:27 <shachaf> what category is that
04:08:43 <shachaf> (plz make it "not boring" i can only figure out boring versions)
04:10:22 <zzo38> Can a ring be made from a semiring in some way?
04:11:13 <shachaf> drop 4
04:11:23 <monqy> shachaf: monotonic predicate as in a functor from a poset category to that other poset category where the objects are propositions and arrows are entailment?
04:11:55 <monqy> is that what you mean / is that "boring" / what's "not boring"
04:13:18 <shachaf> yes / maybe / i don't know
04:13:32 <shachaf> wait is it actually what i mean
04:13:38 <shachaf> maybe your version is the "not boring version"
04:21:04 -!- WeThePeople has joined.
04:23:44 -!- WeThePeople has quit (Read error: Connection reset by peer).
04:31:24 -!- augur has joined.
04:48:30 <shachaf> `? monoids
04:48:34 <HackEgo> Monoids are the easy version of categories.
04:48:39 <shachaf> `? monoid
04:48:42 <HackEgo> Monoids are just categories with a single object.
04:53:23 <oerjan> elliott: Made a Shove spec
04:54:57 <shachaf> monqy: when people talk about covariance in subtyping what functor are they talking about
05:03:29 <monqy> hi im back
05:04:33 <monqy> shachaf: well you have your poset category of types right? and your * -> * 'types' are functors on it right?
05:04:45 <monqy> [is it obvious yet]
05:05:54 <shachaf> monqy: what about when you talk about the "liskov substitution thing"
05:05:59 <shachaf> is that related
05:06:08 <shachaf> what's the second category in that case
05:07:08 <shachaf> (that was the thing i meant actually?? but maybe it's not related at all)
05:08:42 <monqy> what specifically do you mean by the substitution principle since i dont talk about it
05:08:50 <shachaf> i don t know
05:08:53 <monqy> ok
05:08:58 <elliott> he didn't say principle monqy
05:09:17 <monqy> liskov substitution thing aka liskov substitution principle
05:09:26 <shachaf> Let q(x) be a property provable about objects x of type T. Then q(y) should be provable for objects y of type S where S is a subtype of T.
05:10:15 <shachaf> hows that!!@
05:10:45 <monqy> well, so long as you're on the wikipedia article, read the first sentence of the second paragraph in the Principle section
05:11:09 <monqy> ive only studied type-theoretic subtyping, not behavioral subtyping
05:11:50 <shachaf> ok but i'm asking about both.......
05:12:13 <monqy> ????????????
05:12:21 <monqy> what's your question
05:12:24 <shachaf> i'm just trying to understand lenses
05:12:34 <shachaf> which seem to me obviously related to "all this"
05:12:37 <elliott> 05:09:26 <shachaf> Let q(x) be a property provable about objects x of type T. Then q(y) should be provable for objects y of type S where S is a subtype of T.
05:12:42 <elliott> let q(x) = x is of type T
05:12:45 <elliott> ÷)
05:13:45 <shachaf> elliott: that's exactly my point
05:13:49 <shachaf> we have to restrict q
05:14:01 <shachaf> the restriction???? Unlensy q =>
05:14:12 <shachaf> elliott: (also stop stealing my smileys??)
05:15:35 <elliott> ÷(
05:15:47 <monqy> well it'd be easier for me to answer your question if you knew what you're asking / asked it in a manner that makes sense or otherwise is answerable
05:16:49 <shachaf> monqy: well doesn't this look related to lenses
05:17:09 <shachaf> SimpleUnlensyThing s a = foralll p. Blah p => p s -> p a
05:17:19 <elliott> foralll
05:17:45 <shachaf> obviously "any property" doesn't work for the lsp thing
05:17:52 <shachaf> you need to restrict the properties
05:18:00 <shachaf> but what kinds of properties do you restrict them to?
05:19:14 <shachaf> every property that satisfies: (a `R` b) -> (P(a) `R'` P(b)), probably?? or something
05:19:34 <monqy> ok
05:19:34 <shachaf> and also any property that satisfies P(a) `R'` P((a,b))??
05:19:34 <elliott> i dont think thats true
05:19:37 <shachaf> i don't know
05:19:41 <shachaf> i'm making things up a bit
05:19:44 <monqy> can u prove it
05:20:04 <shachaf> prove what
05:20:17 <monqy> idk whatever you're doing
05:20:32 <shachaf> not before i figure out "what it is i'm actually doing.."
05:20:40 <monqy> oops
05:21:05 <shachaf> uh oh
05:21:14 <shachaf> monqy: anyway do you see "what im getting" at
05:22:47 <tswett> Man, Finnish has such excellent words.
05:22:49 <tswett> "kansalaisaloitetta"
05:23:19 -!- Frooxius has quit (Ping timeout: 260 seconds).
05:24:15 <monqy> shachaf: i guess so?
05:24:27 <monqy> i have no idea what you want p to satisfy though
05:24:28 <shachaf> monqy: well im glad one of us does
05:25:49 <elliott> how about have P satisfy "if a is a subtype of b then p(b) -> p(a)"
05:25:50 <elliott> hope this a helps
05:26:57 <shachaf> the joke is that elliott said "hope this a helps" but wasn't actually a helpful
05:27:04 <monqy> yes
05:27:18 <kmc> tswett: what does it mean
05:27:43 <elliott> shachaf: you should ask edwardk about this. he'd say it's completely obvious and he knew it all along
05:28:11 <shachaf> elliott: edwardk told me to ask in ##logic ÷(
05:28:45 <tswett> kmc: according to Google Translate, it means "citizens' initiative".
05:30:31 <tswett> It also lacks some good words, like "talloikatsa".
05:33:11 <monqy> shachaf: did you ask in ##logic
05:33:40 <shachaf> monqy: no
05:33:45 <monqy> woops
05:34:11 <shachaf> monqy: have you ever seen ##logic
05:34:20 <shachaf> i think edwardk was just trying to "get rid of me"
05:34:30 <monqy> I've never seen ##logic
05:34:31 <monqy> should I ?
05:34:38 <monqy> shachaf: have you ever seen ##logic
05:34:57 <shachaf> ,yes
05:35:46 <monqy> does that mean I should or that you have......or both
05:36:40 <shachaf> it means i have
05:37:00 <monqy> is it good
05:37:13 <shachaf> ask copumpkin
05:58:23 <tswett> In the year 2000, there were 455 people in the United States with the last name Evilsizer.
06:04:10 <shachaf> monqy: wow ##c is awful
06:04:17 <monqy> i've never been there
06:04:20 <monqy> is it any good
06:04:31 <shachaf> yes
06:04:32 <shachaf> wait no
06:04:39 <shachaf> no, it's awful
06:06:20 <Sgeo> I can't get paid for thinking about and designing programming languages, can I?
06:06:29 <Sgeo> If I went to get higher education in CS or something
06:06:57 <elliott> ask ais523
06:07:51 <shachaf> have you ever thought about and designed programming languages or just obsessed over them
06:07:55 -!- david_werecat has quit (Ping timeout: 256 seconds).
06:08:04 * shachaf hasn't :'(
06:28:41 <pikhq> monqy: It makes me look like someone who doesn't even know what "pedantic" means.
06:30:21 <Sgeo> Hum. I got an email with a job descirption, but it wasn't sent to my more "professional looking" email address
06:30:48 <kmc> shachaf: it's interesting the different security properties of block cipher modes
06:30:58 <kmc> like, IV reuse is bad for CBC, but it's a lot worse for CTR
06:31:02 <monqy> Sgeo: what's the difference
06:32:25 <shachaf> kmc: How do you do disk encryption with CTR?
06:32:25 <Sgeo> The difference is I don't know how they got my personal email
06:32:38 <monqy> maybe you gave it to them
06:32:49 <monqy> alt. they did a "background search" on you
06:32:50 <Sgeo> Although I did sign up on at least one site with it, but I don't remember which one
06:33:01 <shachaf> kmc: With CBC one thing people do is compute an IV per disk sector and just reuse it, or something along those lines.
06:33:15 <Sgeo> And I do want to confirm that this job posting exists somewhere on the Internet other than as an email
06:33:29 <monqy> ok
06:35:16 <kmc> shachaf: you mean like ESSIV?
06:35:38 <shachaf> Yes.
06:35:51 <shachaf> But that's pretty awful with CTR.
06:36:00 <kmc> right
06:36:14 <shachaf> (And with any stream cipher in that style.)
06:36:38 <shachaf> (CTR is a bit silly because all it needs is a hash function, not a block cipher.)
06:36:55 <shachaf> (But this is a case where it's not obvious how to get away with just a hash function?)
06:41:51 <kmc> you're saying it's not necessarily secure to make a stream cipher from a cryptographic hash?
06:42:34 <zzo38> "The paleontological record shows the expected small step by step changes that we expect from Darwin's evolutionary theory of the survival of the fittest. In addition, however, the record shows large changes, jumps or gaps in the record that Darwin cannot explain. This has been called spontaneous evolution. Aren't these phenomena proof that the creationists know of what they speak? That consciousness (i.e. God, if you prefer that word) had a role h
06:42:42 <zzo38> I think there are many possibilities and that is not the only one.
06:43:29 <zzo38> Conscious evolution, theistic evolution, are some, but there are others, such as, perhaps the records have not been found yet, perhaps they have been destroyed, etc. There may be more possibilities, in addition.
06:45:13 <kmc> i guess one difference is that in the stream cipher, you care if even one bit of the keystream is predictable
06:45:41 <kmc> whereas for hashing you generally care about full collisions
06:46:02 <shachaf> No, I'm saying it's not obvious how to do disk encryption with a hash, even if that hash is suitable for CTR.
06:46:06 <kmc> *nod*
06:46:29 <zzo38> Yes in a stream cipher is insecure if one but if the keystream is predictable. However you might be able to mix it up a bit somehow?
06:47:11 <shachaf> sha1 etc. aren't designed for CTR-style use, so I wouldn't use them for that.
06:47:17 <kmc> right
06:47:19 <shachaf> salsa20 is, for example.
06:48:19 <kmc> *nod*
06:51:04 <shachaf> monqy: do you know how "free structures work"
06:51:21 <monqy> what do you mean by free structure
06:51:27 <monqy> like in general or
06:51:38 <shachaf> like in general
06:51:45 <shachaf> left adjoint to a forgetful functor "and all that"
06:52:42 <monqy> i'm not familiar with them at that level of generality but say "just one level more specific than that"
06:53:10 <shachaf> what level are you familiar with them
06:53:28 <shachaf> like can you explain how you would come up with "free monads and cofree comonads and stuff"
06:54:14 <zzo38> There is the 5-bit encoding used in the Bacon cipher, but I-J is same and U-V is same, but then "Note: A second version of Bacon's cipher uses a unique code for each letter. In other words, I and J each has its own pattern."; however, maybe you could use Baudot coding with Bacon's cipher, instead.
06:59:30 <monqy> shachaf: i'm honestly not familiar enough with category-theoretical monads to explain free monads. =(
06:59:49 <shachaf> =(
06:59:54 <shachaf> can you explain a different free things
06:59:58 <shachaf> like free monoids
07:02:07 <monqy> ok, you know the definition of free objects in terms of their universal property right? that's how i know them.
07:02:42 <shachaf> no
07:03:16 <shachaf> i don't know what a universal property is :'(
07:03:23 <shachaf> maybe i should read that first..
07:04:00 <monqy> ok do you know about "comma category" and "initial objects"
07:04:16 <oerjan> free monoids aka "strings on an alphabet"
07:04:28 <oerjan> or lists
07:04:37 <monqy> yes they're easy
07:05:08 <shachaf> yes they are
07:05:32 <shachaf> i don't know about "comma category" and i sort of know about "initial object??"
07:05:39 <shachaf> initial object isn't very complicated is it
07:05:44 <monqy> initial object is easy
07:05:46 <monqy> comma category is easy too
07:05:48 <oerjan> for a variety like monoids, a free object is one where everything is an expression made out of the generators, and _no_ equations are true unless they hold for the generators replaced with arbitrary variables
07:05:59 <oerjan> (in the variety)
07:07:39 <monqy> shachaf: should i explain "comma category"
07:07:57 <shachaf> monqy: sure
07:08:14 <oerjan> that is, if Exp1(x,y,z) = Exp2(x,y,z) isn't true for _all_ monoids and monoid elements x,y,z; then it is not true when x,y,z are the generators of a free monoid.
07:08:42 <oerjan> s/monoid/any variety of algebras you like/, e.g. groups or rings
07:08:52 <monqy> actually i guess theres a specific version of "comma category" thats useful here
07:09:00 <monqy> but i gotta find out what it's called
07:09:08 <shachaf> semicolon category
07:09:53 -!- oerjan has quit (Quit: Maybe Sleep).
07:10:33 <shachaf> thoerjan
07:10:38 <shachaf> areyoureadingthisoerjan
07:17:57 -!- FreeFull has quit (Quit: 364717769364).
07:18:15 <shachaf> monqy: are you still explaining comma categories
07:18:20 <shachaf> or should i read about them instead
07:18:23 <monqy> no but im explaining something
07:18:25 <shachaf> if so what's the name of that other thing
07:18:59 <shachaf> ok
07:19:21 <shachaf> monqy: is elliott making fun of me in /msg right now :'(
07:20:11 <elliott> i was making fun of people in ##crawl
07:20:24 <shachaf> i like how that's not a denial
07:21:06 <monqy> anyway uh specific category we're talking about for free objects is you pick some set let's call it S of "generators" and you say an object X in your category C is "free" if you have some injection i from S to X such that if you've got any other object Y in your category with some j : S -> Y then there's a unique C-morphism f : X -> Y such that j = f . i
07:21:19 <monqy> that's "really getting specific" about it
07:22:27 <monqy> if you want to use general terms in the way you state things you state it as the initial object in a certain category
07:24:51 <monqy> specifically it's the category where the objects are S -> thingy where thingy's a C-object, and the morphisms are C-morphisms such that the diagram commutes
07:25:09 <monqy> and then you can get more general than that if you want to but that's about as generally as i've learned it/am really comfortable with
07:25:24 -!- azaq23 has joined.
07:25:35 -!- azaq23 has quit (Max SendQ exceeded).
07:25:41 <monqy> and stating it in terms of initial objects gives you nice stuff like uniqueness "for free"
07:26:00 -!- azaq23 has joined.
07:26:05 <monqy> anyway uh
07:26:08 -!- azaq23 has quit (Max SendQ exceeded).
07:26:10 <monqy> does that answer your question shachaf
07:26:31 -!- azaq23 has joined.
07:27:17 <monqy> the depth of how i know free objects are "constructed" is you eyeball it, use some intuition about "ok what's the most general 'free-est' thing that still has this structure" and then prove it satisfies that universal property
07:27:36 <monqy> and if you think about what morphisms "do" at an "intuitive level" then it makes sense
07:27:55 <monqy> like exactly what sort of structure they preserve and how they preserve it and so on
07:29:15 <shachaf> not sure if it answers my question ill have to think about it
07:29:23 <monqy> (what was your question)
07:29:41 <shachaf> i think part of my question involved "adjunctions and stuff"
07:30:01 <shachaf> but you probably won't talk about adjunctions because of the "galois connection"
07:30:05 <shachaf> (thats a kind of pun btw)
07:30:48 <shachaf> anyway i was trying to understand the whole "free functor is left adjoint to a forgetful functor thing??"
07:31:28 <shachaf> but these things are good and related to that
07:33:30 <monqy> well if you take a step out of my comfort zone you end up throwing a faithful functor over the stuff in C, and you call it the "free functor" if you look at its properties it turns out to be left ajoint to the forgetful functor???
07:33:40 <monqy> - wikipedia
07:33:44 <monqy> but i can't really explain that stuff
07:36:11 <monqy> maybe i'll be able to explain it once i read ``categories for the working mathematician''!!
07:36:25 <shachaf> i heard you'll "know everything" once you read that
07:36:39 <monqy> that sounds dangerous
07:45:06 -!- DHeadshot has quit (Ping timeout: 264 seconds).
08:00:49 -!- epicmonkey has joined.
08:08:30 <Sgeo> I should probably keep track of every company I send a resume to
08:08:34 <Sgeo> Rather than sending and forgetting
08:08:38 <Sgeo> Which is what I have been doing
08:10:15 <monqy> good idea
08:14:02 <Sgeo> Well, one of the sites I use does keep track for me :)
08:14:13 <Sgeo> I think the other two sites do too, but haven't really checked
08:17:00 -!- oklopol has joined.
08:17:21 <oklopol> i got the impression that you were not particularly interested, but in any case the answer was "in treatment", apparently
08:17:35 <oklopol> (the theme song i asked about)
08:23:33 <Sgeo> `echo "echo rsum" > bin/resume
08:23:36 <HackEgo> ​"echo rsum" > bin/resume
08:23:40 <Sgeo> ?
08:23:41 <Sgeo> Oh
08:23:46 <Sgeo> `run echo "echo rsum" > bin/resume
08:23:49 <HackEgo> No output.
08:23:58 <Sgeo> `chmod a+x bin/resume
08:23:59 <HackEgo> chmod: missing operand after `a+x bin/resume' \ Try `chmod --help' for more information.
08:24:06 <Sgeo> `run chmod a+x bin/resume
08:24:08 <HackEgo> No output.
08:24:10 <Sgeo> `resume
08:24:11 <HackEgo> rsum
08:24:16 <Sgeo> Score one for laziness
08:44:24 -!- heroux has quit (Ping timeout: 252 seconds).
08:45:47 -!- oklofok has joined.
08:48:42 <Sgeo> help if I say "tomorrow would be good" (which I did, which was dumb), are they likely to call me tomorrow and state a time?
08:49:18 <Sgeo> That is, am I going to be expected to find out when the interview is on the day of the interview?
08:49:23 <Sgeo> I don't think I can handle that
08:53:00 <oklofok> you mean call them?
08:53:39 <Sgeo> I mean have them call me and tell me that the interview is the same day that they're calling me to tell me what time it will be
08:53:46 <Sgeo> I haven't even confirmed a date
08:54:01 <Sgeo> So I'm not at all ready to go tomorrow, not even sure how awake I'll be
08:54:13 <monqy> but you said tomorrow would be good
08:54:38 <Sgeo> Yes, I shouldn't have said that. But I was anticipating that they'd call back if they did in fact want to schedule it for tomorrow
08:54:55 <Sgeo> As in, I though they'd call back before tomorrow
08:55:26 <shachaf> monqy: should i prefer yoneda or coyoneda
08:57:29 <zzo38> I think it depend what you are making.
08:58:08 <monqy> shachaf: idk
08:58:41 <shachaf> monqy: they both "sort of do the same thing when you" give them a functor right
08:59:09 <monqy> i dont know much about the yoneda lemma "wooooops"
08:59:22 <shachaf> monqy: idont mean the lemma i just mean the haskell types.
09:03:54 <Sgeo> Well, I'll set some alarms, try to be awake in the morning
09:03:56 <Sgeo> Just in case
09:06:02 <monqy> shachaf: idk i havent studied them much at all?? my only real "experience" with them is that one time you asked me about how yoneda looks like partially applied >>= and coyoneda like =>>, or something like that
09:06:56 <shachaf> monqy: well theyre' "pretty simple"??
09:07:01 <monqy> yes
09:07:10 <shachaf> so which one should i use
09:07:22 <shachaf> monqy: btw youre thinking of codensity and density
09:07:25 <monqy> oh
09:07:26 <monqy> right
09:07:29 <monqy> those
09:07:38 <monqy> i get things i dont know anything about confused sometimes
09:07:39 <shachaf> yoneda is "like a simpler version of those"
09:08:09 <monqy> uhh just go with yoneda and if you feel like you should have used coyoneda go with that?
09:08:48 <monqy> for the reason that existentials are sorta ehh
09:09:05 <monqy> "silly taste things"
09:09:06 <shachaf> but coyoneda seems "more obvious to me"
09:09:09 <monqy> "i know nothing about what i'm saying"
09:09:12 <monqy> ok then use coyoneda
09:09:13 <shachaf> its not cpsed
09:09:16 <monqy> ok then use coyoneda
09:09:17 <shachaf> but maybe yoneda is better??
09:09:20 <monqy> ok then use yoneda
09:09:27 <monqy> alt. ok then ask someone who knows
09:09:33 <shachaf> also coyoneda can be meaningful for things that arne't functors
09:09:40 <shachaf> but im not sure what yoneda means for those??
09:09:45 <monqy> ok
09:10:01 <shachaf> monqy: i thouhtgt you knew everything
09:10:10 <shachaf> don't shatter my illusion
09:10:10 <monqy> have you bothered edwardk about this yet he'd probably know 10000% more than me
09:10:13 <shachaf> just making things up
09:10:18 <shachaf> s/ing/e/
09:12:29 <shachaf> monqy: thats' a lot of %
09:12:35 <ion> how do I emulate morphisms in Haskell? I wanna implement category theory programming in Haskell :D so I guess I should learn what coyoneda is first
09:13:06 <monqy> yes
09:13:21 <shachaf> ion: do you know what coyoneda is
09:13:23 <shachaf> "its simple"
09:14:08 <ion> I have looked up its definition but i’m not sure of its implications and use.
09:14:59 <shachaf> Let's say you have a big tree which is a function.
09:15:11 <shachaf> So you know that fmap (+1) . fmap (*2) = fmap ((+1).(*2))
09:15:49 <shachaf> But you might not want to generate all an intermediate tree there.
09:16:06 <shachaf> "CoYoneda Tree" keeps a tree, and a function to be mapped over it.
09:16:14 <ion> Wait, i didn’t get the “tree which is a function” part.
09:16:27 <shachaf> Er.
09:16:28 <monqy> you have a Tree which is a functor
09:16:31 <shachaf> s/function/functor/
09:16:32 <ion> ah
09:16:44 <shachaf> "my fingers have been cursed by not being monqy"
09:16:57 <ion> or beaqy
09:17:23 <monqy> the Divine Fingers of Beaqy
09:17:52 <shachaf> So CoYoneda Tree a = (Tree x, x -> a), for some x.
09:18:00 <ion> aye
09:18:06 <shachaf> When you fmap over it, all you're doing is composing onto the function.
09:18:18 <shachaf> Then when you have one big composed function, you can apply it all at once.
09:18:19 <ion> right
09:18:42 <shachaf> That's pretty much it.
09:18:45 <ion> alright
09:19:04 <shachaf> Yoneda is the same thing except the opposite.
09:19:08 <monqy> :0
09:20:16 <shachaf> ion: And Density is the same thing except with a comonad!
09:21:16 <ion> Yoneda Tree a = (a -> b) -> Tree b… so like a partially applied fmap?
09:21:35 <shachaf> Right.
09:21:40 <shachaf> (With a forall b. there.)
09:21:43 <ion> yeah
09:21:59 <shachaf> So you can turn Tree a into Yoneda Tree a by applying fmap.
09:22:05 <shachaf> And you can turn it back by applying it to id.
09:22:20 <shachaf> Codensity is the same thing as Yoneda except with a monad!
09:22:43 <monqy> and coyoneda is the same thing except the opposite
09:23:20 <shachaf> does "co" mean opposite in japanese
09:23:45 <shachaf> monqy: i saw you twitter account how come you don't post no more?
09:23:56 <monqy>
09:24:02 <monqy> fforget you saw that
09:24:11 <monqy> it's
09:24:14 <shachaf> but i'm curious about what happened to banana time
09:25:23 <monqy> i should have deleted it ages ago i don't use it and it's probably embarrassing
09:25:40 <shachaf> no its good
09:25:44 <shachaf> "rly good"
09:25:51 <shachaf> i would follow you
09:26:00 <shachaf> except i don't follow peopoel
09:26:41 <ion> Ok, for my reference:
09:26:43 <ion> CoYoneda f a = forall b. (f b, b -> a)
09:26:46 <ion> Density k a = forall b. (k b, k b -> a)
09:26:48 <ion> Yoneda f a = forall b. (a -> b) -> f b
09:26:50 <ion> Codensity m a = forall b. (a -> m b) -> m b
09:26:54 <ion> Whoops, got some extra whitespace in there.
09:27:14 <ion> Terminals are so intelligent.
09:27:16 <shachaf> also you mixed up forall and exists....................
09:27:27 <shachaf> but other than that, sure
09:27:34 <ion> Ah, wasn’t paying attention to that part.
09:27:43 <shachaf> ion: You might as well specify Ran and Kan instead.
09:27:52 <shachaf> All of these are a special case of those.
09:27:58 <ion> ok
09:28:04 -!- azaq23 has quit (Quit: Leaving.).
09:28:39 <shachaf> Er.
09:28:41 <shachaf> Ran and Lan
09:31:20 <ion> Is this right? http://heh.fi/tmp/kan
09:31:41 <shachaf> Looks right.
09:32:05 <ion> Are there other noteworthy aliases to Lan and Ran?
09:32:24 <shachaf> In Categories for the Working Mathematician Saunders Mac Lane titled a section "All Concepts Are Kan Extensions", and went on to write that
09:32:27 <shachaf> The notion of Kan extensions subsumes all the other fundamental concepts of category theory.
09:32:34 <shachaf> So apparently yes?
09:32:38 <ion> heh, ok
09:32:45 <shachaf> monqy is going to be able to tell you "a lot about them apparently"
09:40:14 -!- DHeadshot has joined.
10:07:55 -!- Phantom_Hoover has joined.
10:08:35 <Sgeo> My dad does want me to continue with education, but I want some financial freedome
10:08:37 <Sgeo> freedom
10:08:52 <Sgeo> I don't like being tied to whatever money my dad gives me
10:09:05 <Phantom_Hoover> humens must fight for financial freedome!
10:10:09 <monqy> fight your dad
10:14:19 <Sgeo> Is it really such a terrible idea to try to get a Masters while having a full-time job?
10:15:11 <monqy> can't you get money doing grad student stuff
10:15:26 <Sgeo> ?
10:15:49 <monqy> research assistant money (grant money), teaching assitant money
10:16:21 <Sgeo> hmm
10:16:38 <shachaf> monqy: should i go be a student
10:16:40 <monqy> gee i'm technically an undergrad and i get grant money
10:16:46 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds).
10:16:49 <monqy> shachaf: idk what's your education
10:16:57 <shachaf> none :'(
10:17:12 <monqy> it's a tough question
10:17:52 -!- Phantom_Hoover has joined.
10:18:16 <Sgeo> How difficult is it to become a TA?
10:18:34 <monqy> idk i'm not a ta but some of the people i work with are ta,s
10:18:52 <shachaf> total annihilation?
10:18:53 <monqy> probably you have to take a ta seminar, know some stuff about the field, and preferably know the professor
10:19:41 <monqy> shachaf: yes
10:19:57 <Sgeo> I only really know Farmingdale professors, although I guess some could be professors elsewhere too
10:20:14 <monqy> well you get to know the professors once you're in grad school don't you
10:20:16 <shachaf> monqy: what makes you 'technically" an undergrad
10:20:23 <monqy> shachaf: being an undergrad
10:20:32 <shachaf> oh
10:20:44 <shachaf> do you recommend it
10:20:47 <monqy> but for "various intents and purposes" i'm a grad student
10:21:01 <shachaf> oh no
10:21:04 <shachaf> which intents
10:21:39 <monqy> i mostly take grad courses, work in a research lab, &c
10:21:46 <shachaf> what kind of research
10:22:24 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds).
10:22:52 -!- Phantom_Hoover has joined.
10:23:07 <monqy> it's "the" programming languages lab on campus but its projects i'm familiar with are mostly geared towards abstract interpretation?
10:23:17 <Sgeo> Also it seems too late for me to go into grad school at least unless I take a lot of time off of school because I missed a variety of deadlines
10:24:10 <monqy> im pretty sad about how my school tends not to offer interesting things but i guess it's the same for every school & i can usually learn them myself anyway
10:24:24 <shachaf> which school
10:24:44 <shachaf> is it one of those southern california schools
10:24:55 <monqy> please don't stalk me that's not nice
10:25:13 <shachaf> im "just curious"
10:26:17 -!- Phantom__Hoover has joined.
10:26:28 <monqy> shachaf: anyway idk if i'd "recommend" an undergraduate education...ime you'd learn bits and pieces about stuff but unless you go out of your way it's pretty lacking
10:26:45 <shachaf> would you "recommend" an overgraduate education
10:26:50 <monqy> hm
10:26:57 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
10:27:40 <monqy> perhaps? i'd also recommend some things about undergraduate education but as a whole idk if it's worth it
10:28:33 <shachaf> which things
10:30:00 <monqy> the bulk of what i actually learn ends up being split between math stuff and research stuff. there's also cs courses but they mostly end up being more "general education" imo than really things that help me, and not in such a helpful degree as the math? idk
10:30:45 <monqy> research stuff being split between experience in a lab environment and all the stuff you end up learning by way of teaching yourself or interactions with other lab members &c
10:32:17 <shachaf> hm
10:32:49 <monqy> not that the general education is bad. it occasionally provides some insights etc which is nice and all
10:33:38 <monqy> and certainly if you find an interesting or helpful class that's excellent
10:34:56 <monqy> but much of it ends up being neither interesting or helpful, just taking classes you don't learn anything from because you have to take them to get your degree
10:35:48 <shachaf> are degrees good to get
10:36:52 <monqy> idk how much a bachelors degree is worth
10:37:34 <monqy> probably it'd help you get some programming jobs or whatever? i'm more interested in jobs that i imagine would prefer a phd
10:38:04 <shachaf> like what
10:39:10 <monqy> i don't really know. something with theorywork, preferably doing some "new and neat" researchy stuff somewhere within programming languages
10:40:10 <fizzie> Put up a "will do new and neat stuff with programming languages for food" sign up.
10:40:16 <fizzie> Double-up.
10:44:06 <shachaf> how about inventing a programming language even better than ada
10:44:14 <shachaf> maybe that's too ambitious
10:44:17 <shachaf> Sgeo would know
10:45:22 <monqy> sgeo must be an ada guru by now right
10:46:17 <shachaf> i hope so
10:46:54 <Phantom__Hoover> shachaf why are you so weird these days
10:47:00 <shachaf> Phantom__Hoover: ?
10:47:14 <Phantom__Hoover> monoids, monqy, ada....
10:47:18 <shachaf> monqy: in a language with subtyping can you have a haskell-style functor which isn't covariant?
10:47:32 <shachaf> covariant in the subtyping sense
10:47:53 <monqy> idk
10:48:59 <shachaf> what if you have something like a gadt thing
10:49:15 <monqy> well, pathological case is your subtyping relation is just type equality, so any haskell-style functor would be invariant because of that pathology
10:49:38 <shachaf> data Sub a b where Sub :: (a <: b) => Sub a b
10:49:52 <shachaf> oops maybe i meant the other way around?
10:50:24 <monqy> i think that's right? idk what you're trying to do with it but
10:50:51 <shachaf> well is Sub a b <: Sub a c if b <: c or something
10:50:53 -!- c00kiemon5ter has joined.
10:51:32 <monqy> idk
10:51:49 <monqy> for one, maybe you don't have subtyping on gadts
10:52:04 <shachaf> im not completely sure what it would mean
10:53:18 <monqy> as in how to define subtyping on gadts?
10:53:35 <shachaf> for instance
11:02:07 <monqy> ?
11:02:19 <shachaf> yes
11:02:37 <monqy> ???
11:02:57 <shachaf> oh no
11:03:26 <shachaf> monqy: if all you do is gradstu dent things why are you "technically" not one
11:04:47 <monqy> a variety of reasons
11:04:58 <shachaf> wow thats alot of reasons
11:06:25 <monqy> ye
11:19:33 -!- Phantom__Hoover has quit (Read error: Operation timed out).
11:20:15 -!- Phantom_Hoover has joined.
11:22:10 -!- Phantom__Hoover has joined.
11:22:43 -!- Phantom___Hoover has joined.
11:23:24 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
11:24:30 -!- Phantom___Hoover has quit (Read error: Operation timed out).
11:25:14 -!- Phantom___Hoover has joined.
11:26:00 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds).
11:27:05 -!- Phantom__Hoover has quit (Read error: Connection reset by peer).
11:28:30 -!- Phantom__Hoover has joined.
11:30:17 -!- Phantom__Hoover has quit (Read error: Operation timed out).
11:30:36 -!- Phantom___Hoover has quit (Ping timeout: 276 seconds).
11:37:31 -!- impomatic has joined.
11:42:11 -!- Phantom__Hoover has joined.
11:46:28 -!- Phantom__Hoover has quit (Ping timeout: 248 seconds).
11:48:26 -!- Phantom__Hoover has joined.
11:51:32 <Sgeo> "Strong knowledge of MS Word, Excel, Access, PowerPoint Outlook and Internet."
11:52:08 <monqy> sounds like a job ?
11:52:32 <Sgeo> That's what someone has on their LinkedIn profile
11:53:03 <Sgeo> I am beginning to loathe the corporate world
11:57:31 <Sgeo> Just remembered a place I heard of long ago
11:57:36 <Sgeo> I really like this scale:
11:57:38 <Sgeo> "None: No knowledge, awareness, or experience.
11:57:38 <Sgeo> Beginner: Have done some reading or tutorials. No use in production.
11:57:38 <Sgeo> Intermediate: Some production experience. Need to rely on outside references.
11:57:38 <Sgeo> Expert: Significant experience, knowledge, and fluency."
11:58:47 <Sgeo> Hmm, according to that scale, I would have Intermediate PHP experience. I don't know how to feel about that.
11:59:08 <shachaf> there should be a channel where you get Sgeo commentary on things
11:59:20 <shachaf> you can just add any topic to the queue and wait
11:59:21 <monqy> is the joke that there already is
12:01:06 <oklofok> the channel where Sgeo comments on things and monqy teaches category theory.
12:01:20 <shachaf> monqy: oh you teach category theory now?
12:01:42 <monqy> i was just answering shachaf's question...i dont actually know category theory
12:02:11 <Sgeo> // guess I really should get to commenting on stuff. Here's a good comment.
12:02:19 <oklofok> monqy: the joke is that happens every day
12:02:27 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).
12:02:32 <monqy>
12:02:34 <shachaf> oklofok: what happens every day
12:02:49 <Sgeo> // *puts a comment on shachaf*
12:03:32 <oklofok> shachaf: that monqy is just answering shachaf's question...he doesnt actually know category theory
12:03:56 <shachaf> oklofok: imo monqy knows almost everything
12:04:00 <oklofok> yes
12:04:16 <oklofok> we all know he's just playing hard to get
12:04:28 <oklofok> or something
12:06:51 -!- Phantom__Hoover has joined.
12:07:47 <shachaf> Sgeo: how's ada
12:08:07 <shachaf> Sgeo: have you learned dylan yet
12:08:13 <Sgeo> I think she's been dead for a while
12:08:39 <shachaf> dylan is still alive
12:08:45 <Sgeo> And I liked Dylan last I looked at it, but it's too impossible to actually get running for my taste
12:08:46 <shachaf> also the people in #dylan keep asking for help
12:08:55 <Sgeo> Sure they are
12:08:56 <shachaf> they want You for dylan army
12:09:02 <shachaf> ?
12:09:24 <shachaf> One of the people who works on the compiler kept bugging me to join the channel and help them.
12:09:30 <shachaf> I did one of those things...
12:09:41 <shachaf> Seriously, there's a lot of work and they need people.
12:09:57 <shachaf> They have a fancy compiler, they have all the macros you could ever want.
12:13:54 <Sgeo> I know about the Dylan language, and if it were easy to get Dylan to work on my system, I would love it
12:14:12 <shachaf> You should help with that!
12:18:01 <Sgeo> Bluh, Dylan uses undelimited continuations?
12:18:34 <shachaf> Why don't you talk about that in #dylan?
12:26:52 <shachaf> Sgeo: See?
12:27:00 -!- epicmonkey has quit (Ping timeout: 248 seconds).
12:27:19 <monqy> did sgeo talk about it in dylan
12:27:35 <shachaf> yes
12:28:17 <monqy> congratulations
12:28:35 <shachaf> monqy: maybe sgeo will invent a dylan ada hybrid
12:28:45 <shachaf> what plt contribution have you made to the world
12:29:00 <monqy> good question
12:29:19 <Jafet> not inventing a dylan ada hybrid
12:29:25 <shachaf> also, do i have to make these lines line up now?
12:29:44 <shachaf> well didn't y'all just spoil a good thing. hmph.
12:30:47 <Jafet> that's a silly typing constraint
12:33:26 -!- epicmonkey has joined.
12:35:13 <fizzie> What?
12:35:16 <fizzie> Ohno.
12:35:22 <fizzie> I am,
12:35:25 <fizzie> scrwd
12:35:46 <monqy> poertry
12:36:09 -!- zzo38 has quit (Remote host closed the connection).
12:36:13 <Jafet> This is why constraints are bad.
12:36:19 <fizzie> Suck.
12:36:21 <fizzie> :''-(
12:36:42 <Jafet> See what you have done, shachaf.
12:37:52 <fizzie> Now I
12:37:53 <fizzie> can't
12:37:55 <fizzie> evoke
12:37:57 <fizzie> fungo
12:38:02 <fizzie> Dang.
12:38:17 <Jafet> fungot, what do you make of this
12:38:17 <fungot> Jafet: they say that you should certainly learn about quantum mechanics. the waves to the _dark_ heavens. he committed many murders. as the shark rose, driven by the orb itself. when carried, it can cause the traveller to feel great, you make so bold to find the exit. ( salamanders, by terry pratchett)
12:38:47 <shachaf> fungot: Just tell fizzie a jokes about functors.
12:38:47 <fungot> shachaf: wolf, *wolf, *wolf cub: the consecrated ritual knife of a wand of undead turning might bring the whole course of known life from the third was taller than the others: his hair was her chief glory, but unknown animal of the giant briareus thou shalt say to the temple and changed to a succubus.
12:39:07 <Jafet> Haven't read that book, but okay
12:39:17 -!- monqy has quit (Quit: hello).
12:40:42 <shachaf> @tell monqy thanks for your help btw monqy hello
12:40:42 <lambdabot> Consider it noted.
12:41:23 <fizzie> Jafet
12:41:26 <fizzie> It do
12:41:27 <fizzie> sound
12:41:29 <fizzie> vgood
12:41:30 <fizzie> book.
12:42:37 <Jafet> Most Pratchett books are alright
12:49:24 <Phantom__Hoover> wow
12:49:45 <Phantom__Hoover> seeing fizzie type weirdly is unsettling
12:52:50 <oklofok> shachaf: "what plt contribution have you made to the world" did not line up with the previous line
12:53:09 <shachaf> hi
12:53:10 <oklofok> erm
12:53:23 <oklofok> apparently my font is not monospace when there's emphasis.
12:53:38 <shachaf> You broke the spell anyway.
12:53:48 <oklofok> ldsjfasldjf
12:54:01 <Jafet> Anyone can believe in the magic.
12:54:19 <shachaf> Hmm, this is kind of convenient.
12:54:28 <shachaf> You can scan through the screen and tell who wrote what line.
12:58:17 <Sgeo> My mouse is broken
12:58:23 <Sgeo> Has been for some time
12:58:30 <Sgeo> I try to scroll up, sometimes it scrolls down
12:59:12 <Sgeo> No comparable problem while trying to scroll down
12:59:56 <shachaf> I don't think "sometimes it scrolls down" would be a problem when trying to scroll down.
13:00:29 <Sgeo> I said "comparable", not "identical"
13:00:39 <Sgeo> It does not try to scroll up when I try to scroll down.
13:07:26 -!- augur has quit (Remote host closed the connection).
13:32:06 -!- heroux has joined.
13:55:30 -!- carado has joined.
14:11:06 -!- boily has joined.
14:16:45 <Sgeo> o.O
14:17:02 <Sgeo> I... already applied for that job opening. Why am I being emailed to tell me that it exists?
14:17:59 -!- augur has joined.
14:19:16 <Sgeo> I don't understand what I'm being asked to do with this information
14:30:26 <Sgeo> fuck fuck fuck
14:30:27 <Sgeo> http://www.ripoffreport.com/organized-crime/cybercoders/cybercoders-cyber-coders-inc-4f786.htm
14:31:59 <boily> interesting.
14:32:33 <Sgeo> Although actually, that one place that wants that interview I think was from CyberCoders
14:32:34 <Sgeo> So
14:45:28 <Sgeo> Remind me to look at this later http://code.google.com/p/pants-lang/
14:47:57 -!- david_werecat has joined.
14:49:24 <boily> took a very quick glance at https://code.google.com/p/pants-lang/source/browse/first-c%2B%2B-impl/src/assets/prelude.p
14:49:43 <boily> the syntax looks a little bit too crufty to my eyes.
14:59:00 -!- sebbu2 has joined.
15:00:20 -!- sebbu has quit (Ping timeout: 248 seconds).
15:21:24 <Sgeo> Hmm. If I invert my food schedule such that the less work intensive meal comes later in the day when I am more tired, that may help with my sleep problems if I can just stay awake for 10 more hours
15:21:35 <Sgeo> Although I am rather tired
15:39:15 -!- Arc_Koen has joined.
15:55:29 -!- Arc_Koen has quit (Quit: Arc_Koen).
16:12:41 <Sgeo> Maybe I should try to get into Erlang
16:13:51 <quintopia> Maybe you should just build damn Sgeolang already
16:15:49 <Sgeo> You know what I want? A special type of value that, whenever it's passed as an argument to something, manipulates the function call itself
16:16:01 <Sgeo> Don't really have a fleshed out idea of how that would work though
16:16:43 <Sgeo> delimited continuations might be the next best thing. Or might be far better than that.
16:21:16 -!- sirdancealot7 has quit (Ping timeout: 245 seconds).
16:35:19 -!- sirdancealot7 has joined.
17:01:14 -!- Taneb has joined.
17:03:30 <Nisstyre> Sgeo: that sounds like the reverse of a continuation
17:03:37 <Nisstyre> Sgeo: maybe "co-continuation" ?
17:11:02 <fizzie> Or just a ntinuation?
17:12:34 <Sgeo> Well, with a delimited continuation, as long as you're in a reset, there's a function you can call that affects the function call you're in, along with the entire rest of the future
17:13:10 -!- atriq has joined.
17:13:17 -!- Taneb has quit (Ping timeout: 252 seconds).
17:15:31 -!- atriq has changed nick to Taneb.
17:20:39 <Taneb> P -> P -> Q -> P?
17:34:38 <oklopol> parens?
17:35:10 <oklopol> if you have the usual ones then yes
17:35:27 <Taneb> That feels almost useless
17:35:51 <oklopol> P -> (P -> (Q -> P))?
17:35:56 <Taneb> Yeah
17:36:15 <oklopol> this looks very familiar, is it one of the three usual axioms?
17:38:09 <Taneb> It's pierce's law backwards
17:38:55 <oklopol> and is pierce's law peirce's law backwards?
17:40:00 <Taneb> No, it's peirce's law as shared by someone who needs a couple of hours' sleep
17:40:07 <oklopol> and i doubt it's completely useless, you can get P -> Q -> P from it with modus ponens
17:40:20 * Sgeo mentally does a truth table
17:40:22 <oklopol> (which is one of lukasiewicz' axioms)
17:40:30 <Sgeo> I feel bad having to surrender to truth tableism like this
17:41:13 <oklopol> "if P, then from P it follows that from Q, P follows" is true because if P, then P follows from anything.
17:42:33 <oklopol> i mean
17:42:42 <oklopol> i mean by what i said earlier i mean
17:42:49 <oklopol> say you have P
17:42:59 <oklopol> and you want to show Q -> P for some reason
17:43:33 <oklopol> then this is what lukasiewicz1 = P -> Q -> P gives you, as P, P -> Q -> P implies Q -> P
17:43:46 <oklopol> but by doing another modus ponens you can also do this with your thingie
17:44:53 <oklopol> then again from P -> Q -> P, you get (P -> Q -> P) -> P -> (P -> Q -> P) using luka1, and modus ponens says P -> Q -> P and (P -> Q -> P) -> P -> (P -> Q -> P) imply P -> (P -> Q -> P).
17:44:59 <oklopol> so up to modus ponens, yours is just luka1
17:45:34 <oklopol> in short, luka1 is really just "something that is true follows from anything"
17:45:41 <oklopol> and yours states this as well.
17:45:53 <oklopol> in an encrypted form
17:47:07 <oklopol> unless i made a mistake somewhere, it's years since i did any propositional logic
17:50:12 -!- c00kiemon5ter has quit (Ping timeout: 248 seconds).
17:52:04 -!- FreeFull has joined.
17:56:16 -!- AnotherTest has joined.
18:00:23 <AnotherTest> Hi
18:00:51 <Sgeo> Hi
18:03:58 * Sgeo ponders on what Sgeolang would look like
18:04:37 <Sgeo> Hmm, when I said in another channel that message passing implies single-dispatch, someone pointed me at Cecil.
18:04:40 <Sgeo> I should look at it
18:07:07 <Sgeo> "Cecil's object declarations do not "contain" their method, field, or even parent declarations. Instead, all these attributes of objects are declared externally, allowing clients to add methods, fields, and even parents of existing objects separately from their original definition.
18:07:07 <Sgeo> "
18:07:13 <Sgeo> uh...
18:07:21 -!- sebbu2 has quit (Ping timeout: 252 seconds).
18:09:43 -!- c00kiemon5ter has joined.
18:14:08 -!- sebbu has joined.
18:14:09 -!- sebbu has quit (Changing host).
18:14:09 -!- sebbu has joined.
18:17:40 <kmc> apparently at Oracle, any email about anything interesting is sent To: lawyers, Cc: people you actually want to talk to
18:17:47 <kmc> so that it's protected by attorney-client privilege
18:18:39 <Sgeo> "The presence of multiple dispatching relieves some of the type system's burden, since multiple dispatching supports in a type-safe manner what would be considered unsafe covariant method redefinition in a single-dispatching language."
18:18:43 <Sgeo> I have no idea what that means
18:19:00 <elliott> kmc: nice
18:19:02 <elliott> does that work?
18:19:54 <Sgeo> elliott, I am broadening my chances of finding The One language by looking at dead languages, I think
18:20:19 <elliott> okay
18:20:32 <elliott> are you like gollum
18:21:13 <Sgeo> I am like someone who needs sleep
18:21:47 <kmc> elliott: apparently
18:23:08 <kmc> the other side in a suit can call bullshit, but it would be a big deal for the court to order discovery of ostensibly privileged communications, and gives you a great avenue for an appeal
18:23:22 <kmc> so yeah, hacks
18:23:59 <Sgeo> Wait, if I say something to my lawyer and then say it to an acquaintance, for example, how is that priviledged?
18:24:21 -!- sirdancealot7 has quit (Ping timeout: 276 seconds).
18:24:26 <kmc> i think it's treated more like if you had a three-way meeting with your lawyer and an acquaintance together
18:24:35 <kmc> and the lawyer is also your acquaintance's lawyer
18:26:14 <kmc> i think it's like, you have a meeting about how to crush Google, but you frame it as ostensibly you're all asking the lawyer for legal advice on consequences of crushing Google in the following ways
18:26:36 <kmc> then if Google sues it is much harder for them to get a copy of that email
18:27:07 <kmc> (which, even if you're doing nothing illegal, and the lawsuit is unrelated, of course they will want to see that email)
18:32:52 <Phantom__Hoover> oracle's lawyers must hate checking their inboxes
18:37:23 -!- sirdancealot7 has joined.
18:44:36 -!- Nisstyre has quit (Ping timeout: 248 seconds).
18:55:26 -!- sirdancealot7 has quit (Ping timeout: 245 seconds).
18:59:46 -!- Nisstyre has joined.
19:02:52 -!- impomatic has left.
19:08:53 -!- sirdancealot7 has joined.
19:09:51 -!- DHeadshot has quit (Ping timeout: 276 seconds).
19:12:35 * boily is stuck listening to drab muzak... ♪
19:12:42 <boily> I hate being put on hold.
19:13:22 -!- DHeadshot has joined.
19:16:13 <quintopia> sux
19:22:12 <boily> so, no problem on their end, need to buy a new SIM card for my cellphone. *grmbl*
19:23:15 <boily> that makes me angry. maybe I should learn Ada to relax.
19:32:39 -!- DH____ has joined.
19:32:43 -!- DHeadshot has quit (Read error: Connection reset by peer).
19:33:00 <kmc> you should learn Sgeolang
19:33:21 -!- impomatic has joined.
19:35:22 <boily> I need to grok continuations first, then I'll sgeo.
19:37:32 <kmc> sgentinuations
19:38:12 <boily> is that when you delegate your program's state to Sgeo?
19:38:32 <boily> "here, finish that number crunching, I'm tired"?
19:39:46 <kmc> Sgeolang is the new @
19:40:58 <Phantom__Hoover> @tell elliott <kmc> Sgeolang is the new @
19:40:58 <lambdabot> Consider it noted.
19:41:41 <elliott> hi
19:41:41 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
19:42:19 <Phantom__Hoover> elliott, are you going to take that
19:42:26 -!- DH____ has quit (Read error: Connection reset by peer).
19:42:33 <elliott> kmc: you suck
19:42:34 <elliott> Phantom__Hoover: hth
19:42:50 <Phantom__Hoover> good job
19:47:39 <kmc> elliott: k
19:53:51 -!- cuttlefish has joined.
20:02:24 <kmc> cuttlefish: kings of camouflage
20:02:41 <Taneb> Help I can't program in C
20:05:07 * kmc can advise
20:07:18 <boily> ~echo kmc: with my mighty cuttlefish, I can hide usefulness beneath a deceptive layer of bugs!
20:07:18 <cuttlefish> kmc: with my mighty cuttlefish, I can hide usefulness beneath a deceptive layer of bugs!
20:07:46 <kmc> ~help
20:07:46 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:07:51 <kmc> ~help eval
20:07:51 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:07:56 <kmc> ~eval 2+2
20:07:57 <cuttlefish> 4
20:08:05 <kmc> ~eval 2+"2"
20:08:05 <cuttlefish> Error (1): No instance for (GHC.Num.Num [GHC.Types.Char])
20:08:05 <cuttlefish> arising from a use of `GHC.Num.+'
20:08:06 <cuttlefish> Possible fix:
20:08:06 <cuttlefish> add an instance declaration for (GHC.Num.Num [GHC.Types.Char])
20:08:18 <elliott> uh oh, kmc is writing haskell again
20:08:18 <kmc> ~eval print "foo"
20:08:18 <cuttlefish> Error (1): No instance for (GHC.Show.Show (GHC.Types.IO ()))
20:08:18 <cuttlefish> arising from a use of `M1495348596825233665.show_M1495348596825233665'
20:08:18 <cuttlefish> Possible fix:
20:08:18 <cuttlefish> add an instance declaration for (GHC.Show.Show (GHC.Types.IO ()))
20:08:22 <kmc> elliott: lololololol
20:08:26 <kmc> elolololololiott
20:08:32 <elliott> that's a good name
20:08:42 <kmc> ~yi
20:08:42 <cuttlefish> Your divination: "Pervading" to "Shake"
20:08:45 <kmc> ~yi
20:08:45 <cuttlefish> Your divination: "Brightness Hiding" to "Concording People"
20:09:02 <kmc> ~ fix (1+)
20:09:02 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:09:05 <kmc> ~eval fix (1+)
20:09:07 <cuttlefish> Error (1):
20:09:16 <kmc> ~eval fix (1:)
20:09:17 <cuttlefish> [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
20:09:31 <Taneb> ~eval let x = 1 : y; y = 0 : x in x
20:09:32 <cuttlefish> [1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
20:09:59 <elliott> ~eval fst $ fix (\(xs,ys) -> intersperse (0:xs,1:ys))
20:10:00 <cuttlefish> Error (1): Couldn't match expected type `([a0], [a1])'
20:10:00 <cuttlefish> with actual type `[([a0], [a1])] -> [([a0], [a1])]'
20:10:13 <elliott> ~eval uncurry intersperse $ fix (\(xs,ys) -> (0:xs,1:ys))
20:10:13 <cuttlefish> Error (1): No instance for (GHC.Show.Show a0)
20:10:14 <cuttlefish> arising from a use of `M1417484012806218820.show_M1417484012806218820'
20:10:14 <cuttlefish> The type variable `a0' is ambiguous
20:10:14 <cuttlefish> Possible fix: add a type signature that fixes these type variable(s)
20:10:14 <cuttlefish> Note: there are several potential instances:
20:10:14 <cuttlefish> instance GHC.Show.Show GHC.Types.Double
20:10:15 <cuttlefish> -- Defined in `base:GHC.Float'
20:10:15 <cuttlefish> instance GHC.Show.Show GHC.Types.Float
20:10:16 <cuttlefish> -- Defined in `base:GHC.Float'
20:10:16 <cuttlefish> instance (GHC.Real.Integral a, GHC.Show.Show a) =>
20:10:17 <cuttlefish> GHC.Show.Show (GHC.Real.Ratio a)
20:10:17 <elliott> lol
20:10:17 <cuttlefish> -- Defined in `base:GHC.Real'
20:10:18 <cuttlefish> ...plus 42 othersNo instance for (GHC.Num.Num [a0]) arising from a use of `e_101'
20:10:18 <cuttlefish> Possible fix: add an instance declaration for (GHC.Num.Num [a0])
20:10:32 <kmc> ~eval typeOf ()
20:10:33 <cuttlefish> ()
20:10:35 <elliott> ~eval uncurry intersperse $ fix (\ ~(xs,ys) -> (0:xs,1:ys)) :: [Int]
20:10:35 <cuttlefish> Error (1): Couldn't match type `[a0]' with `GHC.Types.Int'
20:10:35 <cuttlefish> Expected type: [GHC.Types.Int]
20:10:36 <cuttlefish> Actual type: [[a0]]
20:10:40 <elliott> omg fuck you
20:10:41 <elliott> :t intersperse
20:10:43 <lambdabot> a -> [a] -> [a]
20:10:45 <elliott> oh
20:10:47 <kmc> ~eval cast (Just "foo") :: Maybe Int
20:10:47 <cuttlefish> Nothing
20:10:48 <elliott> :t interleave
20:10:49 <lambdabot> MonadLogic m => m a -> m a -> m a
20:10:52 <elliott> ~eval uncurry interleave $ fix (\ ~(xs,ys) -> (0:xs,1:ys)) :: [Int]
20:10:53 <cuttlefish> Error (1): Not in scope: `interleave'
20:10:55 <elliott> i bet you dont even have that
20:10:59 <elliott> ugh go to hell stupid computer
20:12:23 -!- lahwran has quit (Excess Flood).
20:12:47 <boily> elliott: interleave is from what package? hoogle returns something that is not that.
20:13:09 <kmc> where was that GHC typechecker bug again
20:13:16 <kmc> that lets you write unsafeCoerce
20:13:17 <Taneb> boily, logict, iirc
20:18:12 -!- lahwran has joined.
20:18:34 <elliott> kmc: it doesn't work
20:18:42 <elliott> boily's bot is too clever
20:18:52 <boily> Taneb: indeed. just a moment, installing it ♪
20:19:31 <kmc> k
20:20:01 <boily> ~eval interleave
20:20:01 <cuttlefish> Error (1): No instance for (Control.Monad.Logic.Class.MonadLogic m0)
20:20:02 <cuttlefish> arising from a use of `e_1'
20:20:02 <cuttlefish> The type variable `m0' is ambiguous
20:20:02 <cuttlefish> Possible fix: add a type signature that fixes these type variable(s)
20:20:02 <cuttlefish> Note: there are several potential instances:
20:20:02 <cuttlefish> instance GHC.Base.Monad m =>
20:20:02 <cuttlefish> Control.Monad.Logic.Class.MonadLogic (Control.Monad.Logic.LogicT m)
20:20:03 <cuttlefish> -- Defined in `logict-0.6:Control.Monad.Logic'
20:20:03 <cuttlefish> instance Control.Monad.Logic.Class.MonadLogic m =>
20:20:04 <cuttlefish> Control.Monad.Logic.Class.MonadLogic
20:20:04 <cuttlefish> (Control.Monad.Trans.Reader.ReaderT e m)
20:20:05 <cuttlefish> -- Defined in `logict-0.6:Control.Monad.Logic.Class'
20:20:05 <cuttlefish> instance Control.Monad.Logic.Class.MonadLogic m =>
20:20:06 <cuttlefish> Control.Monad.Logic.Class.MonadLogic
20:20:14 <boily> Taneb: done ♪
20:20:16 <kmc> ) fungot
20:20:16 <fungot> kmc: let's face it: to have invented, among other things, the lord be thankit. ( lorna doone, by fritz leiber) to his size, huge chunk of meat: some hae meat, and this is the son of brave king uther pendragon and queen igraine..."
20:20:17 <jconn> kmc: |value error: fungot
20:20:24 <kmc> ok that got fixed :)
20:20:26 <boily> (that ♪ represents a microwave ding.)
20:20:34 <Taneb> :)
20:20:47 <kmc> the display on the microwave at my house says "GOOD" when it's done cooking
20:21:07 <Taneb> ~eval interleave "magic" "science"
20:21:08 <cuttlefish> "msacgiiecnce"
20:22:18 <Taneb> ~eval ["one", "two", "three", "four"] >>- id
20:22:18 <cuttlefish> "otntewfohoruere"
20:23:29 <boily> ) "chicken"
20:23:29 <jconn> boily: |syntax error
20:23:30 <jconn> boily: | "chicken"
20:25:02 <elliott> ~eval uncurry interleave $ fix (\ ~(xs,ys) -> (0:xs,1:ys)) :: [Int]
20:25:02 <cuttlefish> [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
20:25:04 <elliott> : D
20:25:41 <boily> ~eval mconcat $ repeat [1, 0]
20:25:41 <cuttlefish> [1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
20:26:01 <Taneb> ~eval cycle [1,0]
20:26:02 <cuttlefish> [1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
20:26:04 <elliott> ~eval let divide ~(x:y:xys) = let (xs,ys) = divide xys in (x:xs,y:ys) in fix (\xs -> let (xs, ys) = divide xs in interleave (0:xs) (1:ys))
20:26:07 <cuttlefish> Error (1):
20:26:09 <elliott> :(
20:26:12 <elliott> what did i do a wrong ?????
20:27:01 <boily> ~moon
20:27:01 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:27:14 <boily> oh, yeah. never got to complete that command.
20:33:08 -!- oerjan has joined.
20:35:24 -!- ais523 has joined.
20:44:25 <AnotherTest> new idiom
20:44:26 <AnotherTest> LLL
20:44:33 <AnotherTest> "Long live Lambdas"
20:45:49 <elliott> ltu
20:45:51 <FreeFull> What language is ~eval? Looks suspiciously haskell-like
20:46:29 <FreeFull> ~eval 3
20:46:30 <cuttlefish> 3
20:46:32 <kmc> suspicious indeed
20:46:35 <FreeFull> ~eval 3**304
20:46:36 <cuttlefish> 1.1088209803745658e145
20:46:39 <kmc> one might say it is very haskell-like
20:46:40 <FreeFull> ~eval 3^304
20:46:41 <cuttlefish> 11088209803745658455297408217949153593283559345652332354189895396347888771377425204097816698610804252448289239688437517467894531354021357739846081
20:46:51 <FreeFull> ~eval readFile ""
20:46:52 <cuttlefish> Error (1): No instance for (GHC.Show.Show (GHC.Types.IO GHC.Base.String))
20:46:53 <cuttlefish> arising from a use of `M4279369338326919300.show_M4279369338326919300'
20:46:53 <cuttlefish> Possible fix:
20:46:53 <cuttlefish> add an instance declaration for
20:46:53 <cuttlefish> (GHC.Show.Show (GHC.Types.IO GHC.Base.String))
20:46:57 <Taneb> ~eval let x = x x in ()
20:46:57 <cuttlefish> Error (1): Occurs check: cannot construct the infinite type: t1 = t0 -> t1Occurs check: cannot construct the infinite type: t0 = t0 -> t1
20:47:00 <ais523> that seems GHC-like, in particular
20:47:08 <kmc> ais523: might be a trick
20:47:13 <FreeFull> ais523 seems very ais523-like
20:47:15 <kmc> ~eval TELL ME THE TRUTH
20:47:16 <cuttlefish> Error (1): Not in scope: data constructor `TELL'Not in scope: data constructor `ME'Not in scope: data constructor `THE'Not in scope: data constructor `TRUTH'
20:47:23 <ais523> FreeFull: that's because I /am/ very ais523-like
20:47:25 <kmc> ~eval print "fungot"
20:47:25 <fungot> kmc: they say that some eggs could hatch in your pack, lucky or not. we shall be cursed with bell, book, by richard henry dana)
20:47:26 <cuttlefish> Error (1): No instance for (GHC.Show.Show (GHC.Types.IO ()))
20:47:26 <cuttlefish> arising from a use of `M8615961483540821306.show_M8615961483540821306'
20:47:26 <cuttlefish> Possible fix:
20:47:26 <cuttlefish> add an instance declaration for (GHC.Show.Show (GHC.Types.IO ()))
20:47:31 <kmc> der
20:47:35 <kmc> ~eval "fungot"
20:47:35 <fungot> kmc: kill a lich once and future king," he whispered. " because now i know not.
20:47:35 <cuttlefish> "fungot"
20:47:42 <kmc> already on the ignore then
20:47:51 <elliott> ^ignore
20:49:01 <FreeFull> ~eval instance Show IO () where { show x = "()" }
20:49:01 <cuttlefish> Error (1): <hint>:1:1: parse error on input `instance'
20:49:09 <boily> ~echo @echo `echo ^echo fungot
20:49:09 <fungot> boily: running is good for your work is, however, it is even said she was born from his throat; the drunk vomited lumps of human flesh. ( van dale's groot woordenboek der nederlandse taal)
20:49:09 <cuttlefish> @echo `echo ^echo fungot
20:49:09 <lambdabot> echo; msg:IrcMessage {msgServer = "freenode", msgLBName = "lambdabot", msgPrefix = "cuttlefish!~cuttlefis@2607:fad8:4:6:f2de:f1ff:fe6c:6765", msgCommand = "PRIVMSG", msgParams = ["#esoteric",":@echo
20:49:10 <lambdabot> `echo ^echo fungot"]} rest:"`echo ^echo fungot"
20:49:10 <Phantom__Hoover> ^ignore
20:49:14 <HackEgo> ​^echo fungot"]} rest:"`echo ^echo fungot"
20:49:40 <boily> FreeFull: there is no IO, except for System.Random.
20:49:56 <FreeFull> Doesn't seem to do declaring instances anyway
20:50:08 <kmc> probably ~eval expects an expression only
20:50:29 <kmc> ~eval I# 3#
20:50:29 <cuttlefish> Error (1): Not in scope: data constructor `I#'
20:50:45 <elliott> ooh i have an idea
20:50:59 <boily> http://hpaste.org/81946
20:51:09 <elliott> or do i
20:51:10 <FreeFull> ~eval fix (\_ -> 3)
20:51:11 <cuttlefish> 3
20:51:15 <FreeFull> Fix is there
20:51:16 <boily> elliott: as we say here, «gâte toé».
20:51:20 <FreeFull> Means we can do fibbonacci
20:51:25 -!- stuntaneous has quit.
20:51:27 <elliott> boily: is Imports.hs secret?
20:51:35 <FreeFull> ~eval fix (\x y z -> y:x z (y+z)) 1 1
20:51:36 <cuttlefish> [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465,14930352,24157817,39088169,63245986,102334155,165580141,267914296,433494437,701408733,1134903170,1836311903,2971215073,4807526976,7778742049,12586269025,20365011074,32951280099,53316291173,86267571272,139583862445,225851433717,365435296162,591286729879,95672202
20:51:36 <kmc> FreeFull: or use 'let'
20:51:40 <boily> elliott: hm? oh, no. hpasted it the other day.
20:51:45 <kmc> > let fact 0 = 1; fact n = n * fact (n-1) in fact 5
20:51:47 <lambdabot> 120
20:51:54 <FreeFull> I like fix better
20:51:58 <kmc> «let .. in ..» is an expression
20:52:03 <FreeFull> Especially when written as a lambda
20:52:06 <boily> elliott: http://hpaste.org/81905
20:52:15 <boily> elliott: just note that now it also has monad logic.
20:52:31 <kmc> > fix ((0:) . scanl (+) 1)
20:52:33 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946...
20:52:47 <kmc> ~eval fix ((0:) . scanl (+) 1)
20:52:47 <cuttlefish> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465,14930352,24157817,39088169,63245986,102334155,165580141,267914296,433494437,701408733,1134903170,1836311903,2971215073,4807526976,7778742049,12586269025,20365011074,32951280099,53316291173,86267571272,139583862445,225851433717,365435296162,591286729879,956722
20:53:01 <FreeFull> Eval prints max irc message
20:53:03 <FreeFull> Hmm
20:53:07 <FreeFull> ~eval "3"
20:53:08 <cuttlefish> "3"
20:53:15 <FreeFull> ~eval "<CTCP><CTCP>"
20:53:16 <cuttlefish> Error (1): <hint>:1:2:
20:53:16 <cuttlefish> lexical error in string/character literal at character '\SOH'
20:53:26 <elliott> ~eval replicate 510 'x' ++ "y"
20:53:27 <cuttlefish> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
20:53:28 <FreeFull> It's safe
20:53:30 <elliott> ~eval replicate 508 'x' ++ "y"
20:53:30 <cuttlefish> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
20:53:33 <elliott> ~eval replicate 450 'x' ++ "y"
20:53:34 <cuttlefish> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
20:53:36 <elliott> ~eval replicate 400 'x' ++ "y"
20:53:37 <cuttlefish> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy"
20:53:40 <elliott> ~eval replicate 420 'x' ++ "y"
20:53:40 <cuttlefish> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy"
20:53:43 <elliott> ~eval replicate 430 'x' ++ "y"
20:53:43 <cuttlefish> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy"
20:53:45 <elliott> ~eval replicate 440 'x' ++ "y"
20:53:46 <cuttlefish> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
20:53:46 <boily> oh no.
20:53:48 <elliott> ~eval replicate 438 'x' ++ "y"
20:53:49 <cuttlefish> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
20:53:49 <boily> no no no no no no.
20:53:51 <elliott> ~eval replicate 435 'x' ++ "y"
20:53:51 <cuttlefish> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
20:53:53 <elliott> ~eval replicate 433 'x' ++ "y"
20:53:54 <cuttlefish> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
20:53:56 <elliott> ~eval replicate 432 'x' ++ "y"
20:53:56 <cuttlefish> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy
20:53:58 <elliott> yesss
20:53:59 <boily> you AREN'T doing what I'm thinking you're doing?
20:54:02 -!- cuttlefish has quit (Remote host closed the connection).
20:54:05 <elliott> omg
20:54:09 <boily> *smirk*
20:54:09 <elliott> what fun is it if i dont get to exploit
20:54:10 <elliott> it
20:54:16 <elliott> I was only going to make it QUIT!!
20:54:32 <elliott> actually, I doubt it would have worked.
20:54:34 <elliott> unfortunately.
20:54:39 <FreeFull> I don't think it would
20:54:41 <kmc> what's the hax
20:54:45 <FreeFull> But you can't find out without trying
20:54:52 <elliott> kmc: it seems to be not length-limiting output at all
20:54:58 <elliott> so I was trying to "overflow" it onto the next line somehow
20:55:09 <elliott> but I don't think freenode's ircd works like that
20:55:18 <FreeFull> You could have tried the CTCP newline escape thing
20:55:36 <elliott> maybe boily had some cleverer exploit in mind I didn't though
20:55:46 <boily> not yet.
20:56:01 <boily> but still, I'm curious.
20:56:09 -!- david_werecat has quit (Read error: Connection reset by peer).
20:56:11 <ais523> !bfjoust omnipotence http://sprunge.us/icWW
20:56:11 -!- cuttlefish has joined.
20:56:12 <FreeFull> http://www.exploit-db.com/exploits/21210/
20:56:21 -!- david_werecat has joined.
20:56:23 <elliott> ~eval undefined
20:56:23 <cuttlefish> Error (1): No instance for (GHC.Show.Show a0)
20:56:24 <cuttlefish> arising from a use of `M2940199053026085901.show_M2940199053026085901'
20:56:24 <cuttlefish> The type variable `a0' is ambiguous
20:56:24 <cuttlefish> Possible fix: add a type signature that fixes these type variable(s)
20:56:24 <cuttlefish> Note: there are several potential instances:
20:56:24 <EgoBot> ​Score for ais523_omnipotence: 70.5
20:56:24 <cuttlefish> instance GHC.Show.Show GHC.Types.Double
20:56:25 <cuttlefish> -- Defined in `base:GHC.Float'
20:56:25 <FreeFull> This kind of exploit is common in IRC clients that handle CTCPs
20:56:25 <cuttlefish> instance GHC.Show.Show GHC.Types.Float
20:56:26 <cuttlefish> -- Defined in `base:GHC.Float'
20:56:26 <cuttlefish> instance (GHC.Real.Integral a, GHC.Show.Show a) =>
20:56:27 <cuttlefish> GHC.Show.Show (GHC.Real.Ratio a)
20:56:27 <ais523> 70.5!
20:56:28 <cuttlefish> -- Defined in `base:GHC.Real'
20:56:28 <cuttlefish> ...plus 42 others
20:56:30 <ais523> take that everyone else
20:56:30 <elliott> ugh
20:56:34 <elliott> ais523: wow
20:56:45 <elliott> is bf joust broken again?
20:56:48 <ais523> quintopia: I just got #1 on the hill by over 10 score
20:56:50 <ais523> elliott: no, I don't think so
20:56:57 <FreeFull> !bfjoust a a
20:57:02 <EgoBot> ​Score for FreeFull_a: 3.7
20:57:07 <elliott> only two losses, wow
20:57:10 <ais523> omnipotence is very beatable, and in fact more than one program currently on the hill beats it
20:57:19 <FreeFull> I forget what my previous bfjoust entries were
20:57:25 <ais523> it's just good against the sorts of things people tend to write at the moment
20:57:37 <ais523> it'll drop down once people start actually allowing for what it does
20:57:51 <ais523> also it naturally loses to space_hotel, but it detects it by recognising its decoy setup and changes strategy :)
20:58:12 <ais523> !bfjoust omnipotence http://sprunge.us/icWW
20:58:17 <EgoBot> ​Score for ais523_omnipotence: 70.9
20:58:17 <ais523> FreeFull overwrote the breakdown :(
20:58:21 <ais523> that' better
20:58:24 <ais523> *that's
20:58:45 <FreeFull> What did I overwrite?
20:58:56 <ais523> http://codu.org/eso/bfjoust/in_egobot/breakdown.txt
20:59:01 <ais523> holds stats from the most recently submitted program
20:59:15 <elliott> boily: hmm, looks like the exploit I thought up wouldn't work unless I convinced you to import a module lambdabot has
20:59:22 <olsner> bah, I'm not even off the list yet
20:59:23 <FreeFull> Sorry
20:59:26 <ais523> it's OK, resubmitting fixes it
21:00:53 <ais523> elliott: it does badly against programs that use traditional decoy setups and don't use 2-cycle clears
21:01:01 <ais523> the sort of stuff that everyone was submitting in 2009, basically :)
21:01:03 <Sgeo> Pink elephants on parade!
21:01:09 <Sgeo> ^ sums up my current mental capacity
21:01:18 <Sgeo> Although I do seem to be able to continue reading HPMOR
21:01:54 -!- DHeadshot has joined.
21:02:13 <Sgeo> I'm not aseunk, just to clarify. Just sleep deprived
21:02:21 <ais523> elliott: anyway, I wouldn't say this breaks BF Joust, it's exactly the sort of program I'd like to see doing well on the hill
21:02:31 <Sgeo> And I always say "aseunk" instead of drunk, after a girl drunkingly IMed me to tell me that she was "aseunk"
21:04:23 <elliott> Sgeo: hi
21:04:25 <ais523> anyway, the thought process behind omnipotence is: you know all the boring copycats of slowpoke/space_elevator/ffspg, what they have in common is that they don't "naturally" handle fast rushes
21:04:29 <ais523> and so need special cases for them
21:04:52 <ais523> and what they do against fast rushes wouldn't work well against other sorts of programs
21:04:59 <Sgeo> wi am le tired
21:05:04 <ais523> so, the solution is: write a fast rush program which is also a defence program
21:05:22 <Phantom__Hoover> so uh
21:05:28 <Phantom__Hoover> did somebody finally break Sgeo
21:05:55 <boily> Sgeo: you'd say «je suis fatigué», but it misses the canonical French «le».
21:06:11 <Taneb> Phantom__Hoover, they broke me as well
21:06:11 <Sgeo> I have decided toat the solution to my sleep problems is to stay awake, and to make sure I get everything such as dinner that requires sustained thought out of the way as soon as possible
21:06:16 <Taneb> I'm learning to code in C
21:06:22 <Sgeo> Thus, dinner for breakfast, and then breakfast for dinner since breakfast is easy
21:06:23 <Phantom__Hoover> Taneb, didn't you already break a while ago
21:06:29 <Taneb> Yeah
21:06:34 <Taneb> I dunno anymore
21:06:40 <Sgeo> So when at 8 or 9 I am so tired I can just sleep
21:06:46 <Taneb> The other day someone called my name and high fived me
21:06:51 <Taneb> I had no idea who he was
21:07:14 <Taneb> He was 16 at the oldest and had a girlfriend, so none of us
21:08:35 <Phantom__Hoover> maybe he just randomly high-fives people
21:08:39 <Phantom__Hoover> and got a lucky guess
21:08:51 <Sgeo> bah cecil no supprt continuations
21:08:53 <Sgeo> first class
21:09:12 -!- DHeadshot has quit (Ping timeout: 264 seconds).
21:09:31 <Taneb> Phantom__Hoover, perhaps
21:09:41 <Taneb> And I am rather well known in the Hexham community
21:09:49 <Sgeo> oh god i hope no interview today although seems late for that anyway i hope
21:10:17 <boily> had a fit of a stroke of genius, and google mapped hexham.
21:10:28 <boily> it's in the friggin middle of nowhere!
21:10:41 <Taneb> It... isn't
21:10:45 <Phantom__Hoover> hey now
21:10:48 <Taneb> We've got a train station and everything
21:10:50 <Phantom__Hoover> scotland's not far away
21:10:56 <Sgeo> I think when I crack up randomly is proof I'm sleep deprived
21:11:11 <Taneb> Okay, maybe it is a little in the middle of nowhere to the north and south
21:11:15 <Taneb> And kind of west
21:11:25 <boily> maybe I'm overreacting at the presence of multiple golf courses.
21:11:40 <Phantom__Hoover> it's only an hour to gretna, if you are suddenly siezed by the urge to get married in scotland
21:12:06 <elliott> `addquote <boily> had a fit of a stroke of genius, and google mapped hexham. <boily> it's in the friggin middle of nowhere!
21:12:08 <ais523> Phantom__Hoover: via what means of transport? walking? driving?
21:12:11 <HackEgo> 959) <boily> had a fit of a stroke of genius, and google mapped hexham. <boily> it's in the friggin middle of nowhere!
21:12:15 <Phantom__Hoover> ais523, driving.
21:12:16 <elliott> it's "fit of a stroke of genius" that makes that one
21:12:23 <ais523> elliott: indeed
21:12:34 <ais523> I might have only addquoted the first line
21:12:55 <Sgeo> My imagination won't activate :(
21:13:04 <Phantom__Hoover> ais523, if Taneb is so siezed by the fancy to get married in scotland that he decides to walk, he can be there in a mere 14 hours.
21:13:45 <olsner> maybe "had a fit or a stroke" would be a better reason to googlemap hexham though
21:13:49 <ais523> Phantom__Hoover: so how far is phantomhooverland from Gretna Green?
21:14:05 <Taneb> If I choose my trains carefully I could be in Edinburgh in three
21:14:08 <Phantom__Hoover> right now? 200 miles
21:14:18 <ais523> hmm
21:14:19 <boily> olsner: I do not have any fits nor strokes in public. that's unprofessional.
21:14:20 <ais523> quite a way
21:14:23 <Phantom__Hoover> normally, about twice as far as Taneb
21:14:45 <ais523> wow, it's somewhat depressing that there's at least three other british people here
21:14:53 <ais523> and they live nearer to each other than any of them do to me
21:14:57 <Taneb> Dear god York is south
21:15:15 <ais523> Birmingham's pretty central, just you lot are all extreme north
21:15:20 <elliott> Taneb: Phantom__Hoover: lets get together and go meet ais523 for intercal lessons and also to tease him about feather
21:15:23 <elliott> y/y
21:15:38 <Taneb> y
21:15:39 -!- AnotherTest has quit (Quit: Leaving.).
21:15:42 <Phantom__Hoover> ais523, well right now I'm within like half an hour by train of you
21:15:43 <Phantom__Hoover> elliott, y
21:15:51 <ais523> Phantom__Hoover: hmm
21:16:02 <ais523> that only goes out to… Coventry? Wolverhampton?
21:16:04 <Taneb> I'm going down to Birmingham University this month anyway
21:16:10 <ais523> Taneb: ooh
21:16:15 <ais523> I will probably be there at the time
21:16:20 <Taneb> If the website lets me log in
21:16:31 <ais523> unless it's on a thursday or friday or weekend, in which case I might still be there but probably won't be
21:16:44 <Taneb> Wednesday
21:16:48 <elliott> Phantom__Hoover: there's a slight problem with our plan
21:16:54 <elliott> we'll probably have to go to birmingham
21:17:10 <Phantom__Hoover> seems like that's mostly just a problem for you
21:17:19 <elliott> Taneb: what time this month
21:17:26 <Taneb> Either the 20th or the 27th
21:17:30 <elliott> Phantom__Hoover: okay i realise you are scottish and so do not know the horror of birmingham
21:17:31 <Phantom__Hoover> i like how google maps considers leamington spa more prominent than coventry
21:17:47 <ais523> elliott: Birmingham is not that horrible
21:17:49 <Phantom__Hoover> elliott, it was pretty much like belfast
21:17:52 <Phantom__Hoover> except with less murals
21:17:55 <elliott> it doesn't matter whether it is or isn't horrible
21:17:59 <elliott> what matters is it's _meant_ to be horrible
21:18:03 <Taneb> Phantom__Hoover, Belfast was horrible
21:18:06 <elliott> see
21:18:18 <Taneb> You couldn't fly a flag if you wanted to be not shot
21:18:24 <ais523> it's one of the few major cities in the UK where you can walk into a car park on the ground floor, go up eight floors, then continue to walk on the level and come out at ground floor
21:18:42 <ais523> I think it's eight, at least, it might only be six
21:18:44 <elliott> what an advantage
21:19:08 <elliott> okay there's a slight issue
21:19:18 <elliott> how do we do this without me and Taneb ever recognising each other
21:19:18 <ais523> well, it's not really an /advantage/, but there's something fun about living in a city which has no major hills /but/ you can't draw a consistent ground level in most places
21:19:26 <elliott> since we have previously established that thta would cause the world to end
21:19:29 <Phantom__Hoover> elliott, wear bags on your heads
21:19:36 <ais523> elliott: it's OK if you're not in Hexham when you recognise each other
21:19:49 <elliott> ais523: are you sure
21:19:53 <Taneb> elliott, blindfolds
21:19:54 <ais523> pretty sure
21:19:57 <Taneb> Actually
21:20:02 <elliott> we carry the essence of hexham within us
21:20:04 <Taneb> Have you ever seen the Comedy of Errors?
21:20:06 <boily> can you unrecognize somebody?
21:20:32 <elliott> boily: can you undestroy the universe?
21:20:48 <boily> elliott: sure.
21:21:01 <Taneb> C-_, right?
21:21:12 <olsner> apparently I live almost north of all the british isles ... south of orkney though
21:21:18 <Phantom__Hoover> that's a pretty weird smiley Taneb
21:21:28 <olsner> http://en.wikipedia.org/wiki/Wick,_Highland is almost the same latitude
21:21:38 <Taneb> Phantom__Hoover, it's a smiley that undestroys the universe
21:21:51 <elliott> boily: what is the secret
21:21:56 <elliott> do you stomp on the vacuum
21:22:22 <kmc> http://fmota.eu/blog/base64-fixed-point.html
21:23:17 <boily> something something universal transformation.
21:23:34 <Taneb> ais523, do you know who to complain to with web.mat.bham.ac.uk/avd doesn't work
21:24:24 <ais523> Taneb: probably the maths department's secretaries, who would forward it on to whoever was responsible for it
21:24:30 <Taneb> Right
21:24:33 <ais523> the URL indicates that it's being handled by the individual department
21:25:22 -!- zzo38 has joined.
21:26:30 <Taneb> It will be the closest I've ever been, to my knowledge, to another person in this channel
21:26:44 <elliott> um
21:26:50 <elliott> you've probably been pretty close to me at some point
21:26:56 <boily> how romantic!
21:27:02 <Taneb> I'm fairly sure one of us is imaginary, elliott
21:27:04 <elliott> that's the bond of hexham
21:27:19 <Gregor> `? hexham
21:27:19 <lambdabot> Gregor: You have 4 new messages. '/msg lambdabot @messages' to read them.
21:27:19 <Phantom__Hoover> elliott must keep careful tabs on Taneb to avoid meeting him
21:27:20 <HackEgo> Hexham is a European town. There are nine people in Hexham, and at least two of them are in this channel. Taneb looks after the ham.
21:27:29 <elliott> tanbebs
21:27:30 <Taneb> And there are more secondary sources confirming my existence than yours
21:27:30 <Phantom__Hoover> `? finland
21:27:32 <HackEgo> Finland is a European country. There are two people in Finland, and at least nine of them are in this channel. Corun drives the bus.
21:27:47 <Taneb> (is Corun anyone?)
21:27:53 <elliott> someone who used to be here
21:28:02 <Taneb> awww
21:28:03 <Gregor> oerjan: Yeah, I suspected that chmod -r would break shit X-D
21:28:12 <elliott> did something happen
21:28:14 <olsner> corun is real??
21:28:25 <Taneb> olsner, yeah, who else would drive the bus
21:28:35 <boily> that implies a real bus, too.
21:29:21 <ais523> elliott: the scary thing about omnipotence is that I was testing against an old hill, where it did even better
21:29:45 <Taneb> boily, going back a bit, the least densely populated area of England is legally part of Hexham
21:30:17 <Taneb> Ish
21:31:51 <boily> we also have aberrations here, like île dorval.
21:32:14 <Sgeo> `olist
21:32:16 <HackEgo> shachaf oerjan Sgeo
21:32:40 -!- Nisstyre has quit (Quit: Leaving).
21:32:42 <ais523> Taneb: surely any area of England that contains no people is equally the least densely populated?
21:32:44 <olsner> which list is the olist?
21:32:51 <boily> Taneb: https://en.wikipedia.org/wiki/L%27%C3%8Ele-Dorval,_Quebec
21:32:58 <ais523> you could draw a very large area that just avoided all the people
21:33:26 <boily> `alist
21:33:27 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: alist: not found
21:33:42 <boily> `blist
21:33:43 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: blist: not found
21:33:46 <boily> `clist
21:33:47 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: clist: not found
21:33:49 <boily> `dlist
21:33:51 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: dlist: not found
21:33:53 <boily> `elist
21:33:55 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: elist: not found
21:34:06 <Taneb> ais523, the largest sensiblly shaped area
21:34:12 <ais523> `run ls bin/?list
21:34:14 <HackEgo> bin/olist
21:34:20 <ais523> boily: that would probably have been easier ;)
21:34:30 <boily> I'm bored. I need something to do.
21:34:35 <shachaf> ais523: Don't spoil boily's fun.
21:34:45 <shachaf> boily: Go learn Dylan, like Sgeo is.
21:34:56 <Taneb> list could be renamed hlist or mlist for consistency
21:34:59 <ais523> boily: see if you can beat my BF Joust programs :)
21:35:14 <shachaf> Taneb: I thought o stood for oerjan.
21:35:36 <Taneb> h for "Hussie" and m for "Me"
21:35:43 <boily> shachaf: I said bored, not sleep deprived :p
21:35:48 <Taneb> `list
21:35:50 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
21:35:51 <boily> but yeah. bfjousting sounds like a good idea.
21:37:34 <Taneb> (that wasn't an actual list, I was just seeing what it said)
21:37:37 <Taneb> (sorry)
21:37:44 <ais523> hmm
21:37:47 <ais523> `cat bin/list
21:37:49 <HackEgo> echo Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
21:37:53 <ais523> ah, boring
21:37:58 <ais523> I thought it would be a list of all the people who had done `list
21:38:02 <fizzie> ^show list
21:38:02 <fungot> (Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot)S
21:38:04 <ais523> that would be interesting
21:38:14 <shachaf> `run mv bin/{,s}list
21:38:22 <HackEgo> No output.
21:38:27 <elliott> `cat quine
21:38:28 <HackEgo> cat: quine: No such file or directory
21:38:32 <elliott> `cat bin/quine
21:38:33 <HackEgo> cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/[^>]*> //' #Worst cheating quine ever?
21:38:54 <elliott> `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/[^<]*<//; s/>.*//'
21:38:57 <HackEgo> elliott
21:39:04 <Taneb> `ls /var/
21:39:06 <HackEgo> irclogs
21:39:10 <Taneb> `ls /var/irclogs
21:39:12 <HackEgo> _ai \ _corewars \ _esoteric \ _esoteric-chess-variants \ _esoteric-minecraft \ _glogbot \ index.php \ log \ log.css \ log.js \ _plof \ raw \ _scapegoat \ stalker.php
21:39:21 <elliott> hm
21:39:49 <Taneb> `ls /var/irclogs/_esoteric-minecraft
21:39:51 <HackEgo> 2011-03-19-raw.txt \ 2011-03-19.txt \ 2011-03-20-raw.txt \ 2011-03-20.txt \ 2011-03-21-raw.txt \ 2011-03-21.txt \ 2011-03-22-raw.txt \ 2011-03-22.txt \ 2011-03-23-raw.txt \ 2011-03-23.txt \ 2011-03-26-raw.txt \ 2011-03-26.txt \ 2011-03-27-raw.txt \ 2011-03-27.txt \ 2011-03-28-raw.txt \ 2011-03-28.txt \ 2011-03-29-raw.txt \ 2011-03-29.txt \ 2011-03-
21:40:02 <boily> there was a minecraft?
21:40:06 <Sgeo> Do HackEgo commands get access to the name of the person issuing the command?
21:40:07 <Taneb> Yeah
21:40:12 <Taneb> We had our own server at one point
21:40:13 <elliott> `run echo "#!/bin/sh" >bin/list; echo 'cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); sed -i "s/.\$nam[e]./$name \&" bin/list; echo "$name"' >>bin/list
21:40:16 <HackEgo> No output.
21:40:18 <elliott> `run chmod +x bin/list
21:40:21 <Sgeo> There was. There is, but there was too
21:40:22 <HackEgo> No output.
21:40:22 <elliott> `list
21:40:24 <Taneb> `list
21:40:28 <HackEgo> sed: -e expression #1, char 20: unterminated `s' command \ Taneb
21:40:29 <HackEgo> sed: -e expression #1, char 22: unterminated `s' command \ HackEgo
21:40:31 <elliott> oerjan: you fix it
21:40:34 <elliott> ais523: or you
21:41:11 <ais523> `run echo "#!/bin/sh" >bin/list; echo 'cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); sed -i "s/.\$nam[e]./$name \&/" bin/list; echo "$name"' >>bin/list
21:41:15 <HackEgo> No output.
21:41:18 <ais523> `list
21:41:21 <HackEgo> sed: can't read bin/list: No such file or directory \ ais523
21:41:29 <boily> I wonder if I can buy surströmming in this city...
21:41:31 <ais523> oh, the cd
21:41:32 <elliott> er, what?
21:41:33 <elliott> oh
21:41:47 <elliott> ais523: it should probably also not add duplicates >:)
21:42:06 <shachaf> ais523: You should instead make bin/list update itself.
21:42:13 <ais523> `run echo "#!/bin/sh" >bin/list; echo 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); cd $oldpwd; sed -i "s/.\$nam[e]./$name \&/" bin/list; echo "$name"' >>bin/list
21:42:16 <HackEgo> No output.
21:42:20 <ais523> shachaf: elliott did, I just fixed it
21:42:28 <elliott> `list
21:42:33 <ais523> this doesn't eliminate duplicates yet
21:42:34 <HackEgo> elliott
21:42:38 <elliott> `list
21:42:40 <shachaf> I strongly disapprove of a version that just searches the logs.
21:42:42 <HackEgo> sed: -e expression #1, char 23: unterminated `s' command \ shachaf
21:42:42 <Sgeo> `list
21:42:45 <HackEgo> sed: -e expression #1, char 23: unterminated `s' command \ Sgeo
21:42:46 <ais523> hmm
21:42:49 <ais523> shachaf: it doesn't search the logs
21:42:55 <ais523> it just looks at the logs to see who sent the command
21:43:07 <shachaf> Oh.
21:43:11 <Sgeo> :/ what if it gets it wrong
21:43:20 <Sgeo> If I say `list then ais523 says something unrelated
21:43:22 <elliott> it coudl grep `list
21:43:25 <elliott> to remove most false positives
21:43:27 <elliott> u*could
21:43:31 <elliott> *jasd
21:43:42 <shachaf> I see.
21:44:04 <elliott> ais523: I think the constraint of a program that can only keep state by modifying its own file is interesting
21:44:11 <elliott> unless you cheat and just store all the data in a string or whatever
21:44:32 <ais523> hmm
21:45:30 <ais523> `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); cd $oldpwd; echo -n $name '' >> bin/list; echo '
21:45:34 <HackEgo> oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); cd $oldpwd; echo -n $name >> bin/list; echo
21:45:38 <ais523> err
21:45:53 <ais523> `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); cd $oldpwd; echo -n $name "" >> bin/list; echo '
21:45:55 <HackEgo> oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); cd $oldpwd; echo -n $name "" >> bin/list; echo
21:46:03 <ais523> `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); cd $oldpwd; echo -n $name "" >> bin/list; echo ' >> /bin/list
21:46:04 <HackEgo> bash: /bin/list: Read-only file system
21:46:09 <ais523> `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); cd $oldpwd; echo -n $name "" >> bin/list; echo ' >> bin/list
21:46:13 <HackEgo> No output.
21:46:17 <ais523> `list
21:46:24 <HackEgo> No output.
21:46:28 <ais523> `list
21:46:35 <HackEgo> ais523
21:46:38 <ais523> elliott: there we go
21:46:38 <elliott> hmm
21:46:44 <elliott> but it doesn't list your name the first time you do it
21:46:49 <ais523> indeed, it tells you the old list
21:46:58 <ais523> let me see if I can fix it to avoid duplicates
21:47:44 <ais523> `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo ' >> bin/list
21:47:47 <HackEgo> No output.
21:47:51 <ais523> `list
21:47:57 <HackEgo> No output.
21:47:59 <ais523> `list
21:48:01 <HackEgo> ais523
21:48:03 <ais523> `list
21:48:06 <HackEgo> ais523
21:48:14 <ais523> `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo ' >> bin/list
21:48:18 <HackEgo> No output.
21:48:20 <ais523> there we go
21:48:28 <ais523> now we have a `list working just like I wanted it to :)
21:48:34 <elliott> `list
21:48:34 <boily> `list
21:48:41 <HackEgo> No output.
21:48:41 <elliott> uh oh
21:48:44 <HackEgo> boily
21:48:45 <boily> uuuh...
21:48:48 <boily> ah!
21:48:50 <ais523> up to hackego concurrency issues
21:48:52 <elliott> ais523: there is a way it could work even when multiple people do it
21:49:03 <ais523> nah, I like the randomness
21:49:13 <Taneb> `list
21:49:14 * elliott thinks it should include your name even if you weren't previously on the list
21:49:19 <HackEgo> boily elliott
21:49:20 <elliott> because who doesn't like being pinged?
21:49:36 <ais523> elliott: this way it's harder to figure out what it does
21:49:44 <boily> `list
21:49:45 <HackEgo> ​/hackenv/bin/list: 2: Syntax error: Unterminated quoted string
21:49:49 <ais523> hmm
21:49:53 <boily> darn.
21:49:56 <ais523> `cat bin/list
21:49:58 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo boily elliott 21:49:14: * elliott thinks it should include your name even if you weren't previously on the list
21:50:03 <elliott> lol
21:50:08 <boily> ha ha ha!
21:50:12 <ais523> elliott: this is your fault :)
21:50:12 -!- epicmonkey has quit (Ping timeout: 248 seconds).
21:52:16 <ais523> `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo ' >> bin/list
21:52:19 <HackEgo> No output.
21:52:24 <ais523> elliott: now it can get the wrong name from a /me too :)
21:52:35 <elliott> what about a /quit?
21:52:41 <ais523> that won't work
21:53:02 <ais523> probably
21:53:25 <boily> ~echo `list
21:53:25 <cuttlefish> `list
21:53:31 <HackEgo> No output.
21:53:35 <boily> `list
21:53:42 <HackEgo> cuttlefish
21:53:47 <boily> good enough.
21:53:55 <ais523> quintopia: which year did anticipation top the hill? 2012 or 2013?
21:53:56 <elliott> `list
21:54:03 <HackEgo> cuttlefish boily
21:54:24 <elliott> ais523: join the list!
21:54:32 <Taneb> `list
21:54:39 <HackEgo> cuttlefish boily elliott
21:54:40 <ais523> nah, I like seeing how long I can go before I join it by accident
21:54:50 <elliott> ais523: I would guess... forever
21:54:57 <elliott> `list
21:54:57 <elliott> `list
21:54:58 <elliott> `list
21:54:58 <elliott> `list
21:54:59 <elliott> `list
21:55:03 <HackEgo> cuttlefish boily elliott Taneb
21:55:04 <HackEgo> cuttlefish boily elliott Taneb
21:55:04 <elliott> let's see if that duplicate checking works
21:55:09 <HackEgo> cuttlefish boily elliott Taneb
21:55:13 <HackEgo> cuttlefish boily elliott Taneb
21:55:16 <HackEgo> cuttlefish boily elliott Taneb HackEgo
21:55:18 <ais523> bonus points if you get HackEgo on the list
21:55:18 <elliott> hahaha
21:55:22 <boily> `list `list
21:55:23 <elliott> i was hoping that would happen
21:55:25 <HackEgo> cuttlefish boily elliott Taneb HackEgo
21:55:26 <ais523> so was I
21:55:39 <Taneb> ^echo `list
21:55:40 <fungot> `list `list
21:55:43 -!- HackEgo has quit (Remote host closed the connection).
21:55:50 <shachaf> Taneb.............................
21:55:53 <Taneb> Do I get an award?
21:56:02 <shachaf> did you segfault Gregor
21:56:03 <boily> how did hagb4rd get on the list himself???
21:56:14 <ais523> boily: race condition
21:56:16 <boily> s/hagb4rd/HackEgo
21:56:24 <elliott> boily: because hackego said the list
21:56:26 <elliott> and then the script ran
21:56:29 <elliott> looked at the last line in the logs...
21:56:46 <elliott> so wait, why did HackEgo crash there?
21:57:10 <boily> ~eval "a\8b"
21:57:10 <cuttlefish> "a\bb"
21:57:27 <shachaf> ~eval "a\8\&8b"
21:57:27 <cuttlefish> "a\b8b"
21:57:54 <boily> > putStrLn "\8"
21:57:56 <lambdabot> No instance for (GHC.Show.Show (GHC.Types.IO ()))
21:57:56 <lambdabot> arising from a use of ...
21:58:28 <ais523> elliott: something wrong with the bot blacklist?
21:59:06 <elliott> hmm, maybe
22:00:12 <boily> why would we blacklist bots? we have such a nice variety of them here.
22:00:37 <oerjan> <Sgeo> Do HackEgo commands get access to the name of the person issuing the command? <-- no, although i suggested it to Gregor
22:01:42 <ais523> boily: to prevent botloops
22:01:49 <ais523> the bots are designed to ignore each other
22:01:56 <ais523> because otherwise someone gets the bots to spout commands for the other bots
22:02:02 <ais523> and you need a bot owner or an op in to stop the spam
22:02:05 <elliott> boily: there is no good reason.
22:02:08 <elliott> it is because people hate happiness
22:02:27 <zzo38> Should there also be a environment variable for the recipient of the command (either some channel, or HackEgo directly)? And of the glogbot timestamp of the message?
22:03:01 <boily> ais523: I like elliott's explanation better.
22:03:24 <ais523> zzo38: yeah, that seems like a good idea
22:03:26 <Sgeo> There should be an opped bot capable of detecting ... hmm
22:03:55 <Sgeo> Well, no, no way to catch all botloops, is there?
22:03:56 <ais523> just kick anyone who says the same line three times in a row, could help
22:03:58 <Sgeo> Maybe a spam filter
22:04:07 <ais523> but you can get loops that avoid that
22:04:11 <Sgeo> ais523, get the bots to increment a number
22:04:15 <ais523> alternatively, anyone who posts too many posts in a set time
22:04:17 <elliott> ais523: that's mean
22:04:17 <elliott> ais523: that's mean
22:04:18 <elliott> ais523: that's mean
22:04:28 <zzo38> Although to prevent bots from reading commands from other bot outputs I would prefer a different ,much simpler, siolution: To make their output to be NOTICE message rather than PRIVMSG.
22:04:33 <ais523> it's hard to get the bots to intentionally slow down the loop
22:04:47 <boily> bah, too much effort.
22:05:05 <ais523> actually, you wouldn't kick
22:05:08 <ais523> you'd +m the channel for a few seconds
22:05:08 -!- boily has quit (Quit: Poulet!).
22:05:11 -!- cuttlefish has quit (Remote host closed the connection).
22:05:31 <ais523> or +q one of the affecte dusers for a few seconds
22:05:34 <ais523> *affected
22:09:26 <zzo38> I think using NOTICE messages would be the simplest and best solution and the one recommended by the RFC. However, there are others. One would be to not take commands inside the channel and only private, although sometimes you want the results to be public so it might not best. Another is if they added a user mode to prevent receiving channel messages from someone having the same mode.
22:11:04 <ais523> hmm, that's an interesting idea for a mode
22:11:49 <zzo38> The server would have to be changed to do that, though.
22:13:30 <zzo38> I would recommend and prefer to just make them NOTICE messages.
22:15:02 <Sgeo> So, if `list is for something, what's the old list?
22:15:08 <elliott> what old list
22:15:09 <Sgeo> `run ls bin/?list
22:15:13 <elliott> this is the only list there ever was
22:15:16 <elliott> and the only list anyone needs
22:15:32 <oerjan> Sgeo: slist
22:15:51 <oerjan> also someone get zzo38 out of his autobotloop, please.
22:16:36 <Sgeo> Is hackego.. dead?
22:16:41 <Sgeo> :(
22:16:44 -!- Phantom__Hoover has quit (Ping timeout: 255 seconds).
22:16:56 <oerjan> really most sincerely dead
22:17:00 -!- Phantom__Hoover has joined.
22:27:15 -!- augur has quit (Remote host closed the connection).
22:29:32 -!- oerjan has quit (Quit: leaving).
22:32:31 -!- oerjan has joined.
22:48:59 -!- Taneb has quit (Quit: Leaving).
22:52:56 <ais523> Gregor: Taneb managed to get fungot to kill HackEgo
22:52:57 <ais523> ^ul (pong)S
22:52:57 <ais523> what's up with fungot?
22:52:57 <fungot> ais523: they say that you should try another one.
22:52:57 <fungot> pong
22:52:57 <fungot> ais523: they say that real hackers never sleep near invisible ring wraiths.
22:53:03 <ais523> are, there we go
22:54:46 <elliott> oerjan: good mornign
23:01:18 <oerjan> elliott: good midnight
23:01:22 <elliott> oerjan: happy birth
23:03:21 <ais523> oerjan: it's not midnight for me and elliott for another 57 minutes or so
23:03:36 <Phantom__Hoover> nobody ever remembers Phantom__Hoover
23:03:51 <shachaf> @quote nobody.*remembers
23:03:51 <lambdabot> No quotes match. You untyped fool!
23:04:01 <ais523> Phantom__Hoover: if HackEgo were here, you could read the `list
23:04:04 <ais523> then people would remember you
23:04:07 <shachaf> Oh.
23:04:46 <kmc> shachaf: apparently i am going to have some kind of snowpocalypse
23:05:01 <shachaf> oh no
23:05:05 <shachaf> flee to california
23:05:15 <kmc> too late
23:05:26 <shachaf> it's never too late to go west
23:05:32 <kmc> i've just got to buy lucky charms
23:05:32 <Phantom__Hoover> build snow california
23:25:37 -!- carado has quit (Ping timeout: 246 seconds).
23:31:24 -!- oerjan has quit (Quit: leaving).
23:40:58 <kmc> so what are the legitimate use cases for printf's %n?
23:42:17 <ais523> kmc: things like tabular output
23:42:24 <ais523> where you're printing spaces to make things line up
23:42:33 <kmc> mm
23:42:55 -!- DHeadshot has joined.
23:43:07 <zzo38> You can count the output by the return of printf, though. You can also use alignment in the formats to line up columns.
23:44:35 -!- oerjan has joined.
23:50:32 <shachaf> kmc: Now you're migrating conversations across channels you're not even in.
23:52:28 <kmc> i am?
23:53:43 <shachaf> Perhaps it's just a coïncidence that %n came up in multiple places.
23:54:07 <kmc> where else did it come up?
23:54:20 <oerjan> Gregor: HackEgo is missing HTH HELP
23:56:17 <shachaf> #cslounge
23:56:22 <kmc> ok
23:56:27 <kmc> then maybe it's because lexande asked me about %n
23:56:35 <kmc> a grand circuitous route
23:56:49 <shachaf> OK then that would be it.
23:56:55 <elliott> oerjan: HANH (Have A Nice Help)
23:57:11 <ais523> is a HTH like a CTCP?
23:57:19 <oerjan> MAYBE
23:57:25 -!- Nisstyre-laptop has joined.
2013-02-08
00:00:51 -!- sirdancealot7 has quit (Ping timeout: 245 seconds).
00:01:55 -!- sirdancealot7 has joined.
00:02:44 -!- Nisstyre-laptop has quit (Quit: Leaving).
00:09:13 -!- carado has joined.
00:16:22 -!- carado has quit (Ping timeout: 246 seconds).
00:41:34 -!- Arc_Koen has joined.
00:48:26 -!- HackEgo has joined.
00:58:01 -!- sirdancealot7 has quit (Ping timeout: 246 seconds).
01:02:06 <oerjan> ^show rev
01:02:06 <fungot> >,[>,]<[.<]
01:04:27 -!- sirdancealot has joined.
01:07:33 <oerjan> ooh HackEgo is back
01:07:59 <pikhq> All hail Hack, the Lord of Ego.
01:11:28 <shachaf> ^echo `list
01:11:28 <fungot> `list `list
01:11:33 <shachaf> Aw.
01:11:37 <HackEgo> cuttlefish boily elliott Taneb HackEgo
01:11:37 <shachaf> Taneb has to do it.
01:11:46 <shachaf> @ask Taneb you have to do it
01:11:47 <lambdabot> Consider it noted.
01:12:09 -!- monqy has joined.
01:12:36 <Arc_Koen> @tell shachaf aren't you afraid to upset the deity of semantics?
01:12:36 <lambdabot> Consider it noted.
01:12:47 <shachaf> @clear-messages
01:12:48 <lambdabot> Messages cleared.
01:19:02 <oerjan> `run echo test | fueue '>,[>,]<[.<]:)$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[))(($3~)<(]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]])[~~)<~~~(]'
01:19:05 <HackEgo> FUEUE: UNKNOWN > OP \ FUEUE: UNKNOWN , OP \ FUEUE: UNKNOWN > OP \ FUEUE: UNKNOWN , OP \ FUEUE: UNKNOWN . OP \ test \
01:19:12 <oerjan> ok...
01:19:21 <oerjan> oops :P
01:19:51 <oerjan> `run echo test | fueue ')$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[))(($3~)<(]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]])[~~)<~~~(]'
01:19:53 <HackEgo> ​.test \
01:20:08 <oerjan> ouch
01:20:32 <oerjan> ...of course.
01:20:43 <oerjan> `echo echo test | fueue ')$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[))(($3~)<(]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]])[~~)<~~~(]'
01:20:44 <HackEgo> echo test | fueue ')$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[))(($3~)<(]]])[)$--1[)~~~[)$4~[~):~~[~:~)~
01:20:45 <ais523> ÿ is latin-1 for 255, isn't it?
01:20:53 <oerjan> oops
01:21:00 <oerjan> ais523: quite possibly
01:21:01 <shachaf> ^ord ÿ
01:21:02 <fungot> 195 191
01:21:08 <shachaf> Hmm.
01:21:12 <shachaf> `ord ÿ
01:21:14 <HackEgo> 255
01:21:21 <oerjan> ais523: i think that's just EOF from the automatic cat that tends to happen
01:21:37 <ais523> oerjan: yeah, it's probably interpreting EOF as (char)EOF, which is ÿ
01:21:44 <ais523> given reasonable assumptions about how stdio works
01:21:54 <shachaf> Automatic cat? Is that from a sequel to _The Door Into Summer_?
01:22:05 <oerjan> ais523: it's just the result from getc() in C
01:22:09 <ais523> oerjan: yeah
01:22:11 <ais523> but getc() returns int
01:22:29 <oerjan> shachaf: fueue programs act as cat (but ignoring EOF) whenever they lock up
01:22:42 <shachaf> oerjan: have you read the door into summer
01:22:48 <oerjan> i don't think so
01:22:50 <shachaf> "you should read it imo"
01:23:24 <shachaf> short science fiction book by heinlein
01:25:39 <oerjan> this is going to be dangerously close to irc line limits...
01:27:07 <oerjan> `echo echo test | fueue ')$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[))(($3~)<(]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]])[~~)<~~~(][0]:[[0]<:[[0]<:]][33 H]'
01:27:09 <HackEgo> echo test | fueue ')$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[))(($3~)<(]]])[)$--1[)~~~[)$4~[~):~~[~:~)~
01:27:14 <oerjan> oops
01:27:18 <oerjan> `run echo test | fueue ')$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))($[[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[))(($3~)<(]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]])[~~)<~~~(][0]:[[0]<:[[0]<:]][33 H]'
01:27:20 <HackEgo> test \
01:27:25 <oerjan> darn
01:27:38 <shachaf> `?hh fueue
01:27:40 <HackEgo> fueue? ¯\(°_o)/¯
01:27:49 <shachaf> @whatis fueue ?
01:27:49 <lambdabot> I know nothing about fueue.
01:27:57 <oerjan> argh.
01:28:07 <oerjan> the program fit, but was buggy :(
01:28:25 <oerjan> ok time for a simpler program first
01:28:30 <ais523> hmm… is HackEgo turning into the new EgoBot?
01:28:50 <oerjan> ais523: well EgoBot doesn't have C precompilation features...
01:29:02 <oerjan> also there's some sort of intention to merge them
01:29:10 -!- zzo38 has left.
01:29:12 <ais523> I mean, you could actually add these languages to EgoBot the intended way
01:29:55 <oerjan> i would have to either ask Gregor to include them, or have it recompile the interpreter every time
01:30:23 <Gregor> I would request that you try to put new things in HackEgo.
01:30:23 <Arc_Koen> is "it" refering to Gregor?
01:30:28 <Gregor> And if they can't work there, then tell me why.
01:31:02 <oerjan> "it" refers to the EgoBot userinterps system
01:31:59 -!- Phantom__Hoover has quit (Remote host closed the connection).
01:32:02 <oerjan> Gregor: the one thing that is missing is being able to pass a url to an interpreter with one line
01:32:40 <Gregor> 'struth >_>
01:32:51 -!- Slereah has joined.
01:34:36 <kmc> http://blog.volema.com/curl-rce.html great
01:34:54 <elliott> the other thing that is missing is reasonable performance
01:35:00 <elliott> right now !c on HackEgo is kind of untenable
01:35:12 <oerjan> *EgoBot
01:35:40 -!- azaq23 has joined.
01:35:42 <oerjan> c on HackEgo allows you to compile things for later use
01:35:54 -!- azaq23 has quit (Max SendQ exceeded).
01:36:25 -!- azaq23 has joined.
01:36:33 <oerjan> i wouldn't suggest we use HackEgo _exactly_ the same way as EgoBot when it _does_ have additional flexibility in how to call programs and save results
01:37:25 <elliott> oerjan: your correction is _completely_ wrong.
01:37:42 <elliott> I am responding to Gregor's attempt to get rid of EgoBot and merge it into HackEgo, which is agreeable in theory
01:37:51 <elliott> `interp c printf("foo\n");
01:38:09 <HackEgo> Does not compile. \ ./interps/gcccomp/gcccomp: fork: retry: Resource temporarily unavailable \ ./interps/gcccomp/gcccomp: fork: retry: Resource temporarily unavailable \ ./interps/gcccomp/gcccomp: fork: retry: Resource temporarily unavailable \ ./interps/gcccomp/gcccomp: fork: retry: Resource temporarily unavailable \ ./interps/gcccomp/gcccomp: for
01:38:14 <oerjan> well the fact it doesn't actually _work_ is a different problem...
01:38:20 <Gregor> ^^´
01:38:49 <elliott> it would be much slower than !c even if it worked :P
01:39:45 <oerjan> well i have no idea what it is trying to do. but i've used gcc on HackEgo just fine, that's how i got fueue there.
01:40:48 <kmc> "why does cURL speak POP3" you might ask
01:41:04 <ais523> why not?
01:41:10 <ais523> can it do IMAP, btw?
01:41:35 <kmc> i think so
01:43:30 <kmc> every application expands until it can read mail
01:43:56 <ais523> kmc: attempts to expand
01:44:04 <ais523> those which cannot are replaced by those which can
01:45:33 <kmc> mm
01:52:12 <oerjan> `echo test | fueue ')))($[[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)[H]!][1)[)$%0[))$11~<<~:(~:<])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]][0]:[[0]<:[[0]<:]][33 H]'
01:52:13 <HackEgo> test | fueue ')))($[[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)[H]!][1)[)$%0[))$11~<<~:(~:<])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]][0]:[[0]<:[[0]<:]][33 H]'
01:52:17 <oerjan> `run echo test | fueue ')))($[[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)[H]!][1)[)$%0[))$11~<<~:(~:<])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]][0]:[[0]<:[[0]<:]][33 H]'
01:52:30 <oerjan> eep
01:52:30 <HackEgo> tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
01:52:34 <oerjan> yay!
01:56:02 <oerjan> `run echo test | fueue ')))($[[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)[H]!][1)[)$%0[)))($[[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]][0]:[[0]<:[[0]<:]][33 H]'
01:56:09 <HackEgo> test
01:56:14 <oerjan> ok that also works
01:57:47 -!- Arc_Koen has quit (Quit: Arc_Koen).
02:10:05 -!- Slereah_ has joined.
02:11:56 -!- Slereah has quit (Ping timeout: 240 seconds).
02:12:08 -!- kmc has set topic: char*a,b[9999];main(){gets(a=b);while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);} | a mutiny of clowns http://codu.org/logs/_esoteric/.
02:30:12 <oerjan> ah there is a subtle synchronization error between the implementations of <> and the implementation of ,
02:30:50 <oerjan> or actually it's in , since i already knew about the issue but had compensated for it in other commands
02:37:05 -!- zzo38 has joined.
02:37:51 <oerjan> `run echo test | fueue ')$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[))(($3~)<(]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]])[))(($3~)<(][0]:[[0]<:[[0]<:]][33H]'
02:37:53 <HackEgo> ​ \ tset
02:37:59 <oerjan> yay!
02:40:19 <oerjan> (that was >,[>,]<[.<] converted from brainfuck to fueue)
02:41:33 <ais523> :)
02:47:28 <ais523> @message quintopia I just beat space_hotel by over 10 score :) Can you remember when anticipation2 topped the hill (2012, or 2013)? I want to write about it and about omnipotence
02:47:28 <lambdabot> Maybe you meant: messages messages?
02:47:33 <ais523> @tell quintopia I just beat space_hotel by over 10 score :) Can you remember when anticipation2 topped the hill (2012, or 2013)? I want to write about it and about omnipotence
02:47:34 <lambdabot> Consider it noted.
03:12:56 -!- zzo38 has quit (*.net *.split).
03:12:57 -!- ais523 has quit (*.net *.split).
03:12:57 -!- heroux has quit (*.net *.split).
03:12:58 -!- FreeFull has quit (*.net *.split).
03:12:58 -!- SirCmpwn has quit (*.net *.split).
03:12:58 -!- atehwa has quit (*.net *.split).
03:12:58 -!- comex has quit (*.net *.split).
03:12:59 -!- quintopia has quit (*.net *.split).
03:12:59 -!- Lumpio- has quit (*.net *.split).
03:12:59 -!- trout has quit (*.net *.split).
03:13:00 -!- Sanky has quit (*.net *.split).
03:13:01 -!- EgoBot has quit (*.net *.split).
03:13:01 -!- ion has quit (*.net *.split).
03:13:02 -!- oonbotti has quit (*.net *.split).
03:13:02 -!- fizzie has quit (*.net *.split).
03:13:03 -!- sirdancealot has quit (*.net *.split).
03:13:03 -!- Mathnerd314 has quit (*.net *.split).
03:13:03 -!- lifthrasiir has quit (*.net *.split).
03:13:04 -!- impomatic has quit (*.net *.split).
03:13:04 -!- olsner has quit (*.net *.split).
03:13:04 -!- rodgort has quit (*.net *.split).
03:13:04 -!- aloril has quit (*.net *.split).
03:13:04 -!- asiekierka has quit (*.net *.split).
03:13:05 -!- glogbackup has quit (*.net *.split).
03:13:05 -!- Jafet has quit (*.net *.split).
03:13:05 -!- HackEgo has quit (*.net *.split).
03:13:06 -!- c00kiemon5ter has quit (*.net *.split).
03:13:06 -!- lahwran has quit (*.net *.split).
03:13:07 -!- hagb4rd has quit (*.net *.split).
03:13:07 -!- coppro has quit (*.net *.split).
03:13:07 -!- clog has quit (*.net *.split).
03:13:08 -!- Sgeo has quit (*.net *.split).
03:13:08 -!- Vorpal has quit (*.net *.split).
03:13:08 -!- hogeyui has quit (*.net *.split).
03:13:08 -!- TodPunk has quit (*.net *.split).
03:13:08 -!- tswett has quit (*.net *.split).
03:13:09 -!- pikhq has quit (*.net *.split).
03:13:09 -!- iamcal_ has quit (*.net *.split).
03:13:09 -!- kmc has quit (*.net *.split).
03:13:09 -!- monqy has quit (*.net *.split).
03:13:10 -!- SimonRC has quit (*.net *.split).
03:13:10 -!- lambdabot has quit (*.net *.split).
03:13:11 -!- tromp_ has quit (*.net *.split).
03:13:11 -!- surma has quit (*.net *.split).
03:13:12 -!- Slereah_ has quit (*.net *.split).
03:13:12 -!- david_werecat has quit (*.net *.split).
03:13:12 -!- mtve has quit (*.net *.split).
03:13:12 -!- jix has quit (*.net *.split).
03:13:13 -!- azaq23 has quit (*.net *.split).
03:13:13 -!- DHeadshot has quit (*.net *.split).
03:13:13 -!- sebbu has quit (*.net *.split).
03:13:13 -!- oklofok has quit (*.net *.split).
03:13:14 -!- jconn has quit (*.net *.split).
03:13:14 -!- FireFly has quit (*.net *.split).
03:13:14 -!- fungot has quit (*.net *.split).
03:13:14 -!- shachaf has quit (*.net *.split).
03:13:15 -!- oklopol has quit (*.net *.split).
03:13:15 -!- Gregor has quit (*.net *.split).
03:13:16 -!- yiyus has quit (*.net *.split).
03:13:16 -!- nortti has quit (*.net *.split).
03:13:16 -!- Deewiant has quit (*.net *.split).
03:13:16 -!- md_5 has quit (*.net *.split).
03:13:16 -!- ineiros has quit (*.net *.split).
03:13:16 -!- noam has quit (*.net *.split).
03:13:17 -!- ssue has quit (*.net *.split).
03:13:18 -!- sivoais has quit (*.net *.split).
03:13:18 -!- myndzi has quit (*.net *.split).
03:13:19 -!- elliott has quit (*.net *.split).
03:15:33 -!- oerjan has quit (Quit: leaving).
04:17:54 -!- elliott has joined.
04:26:26 -!- comex has joined.
04:26:26 -!- atehwa has joined.
04:26:26 -!- kmc has joined.
04:26:26 -!- jix has joined.
04:26:26 -!- iamcal_ has joined.
04:26:26 -!- lambdabot has joined.
04:26:26 -!- tswett has joined.
04:26:26 -!- pikhq has joined.
04:26:26 -!- surma has joined.
04:26:26 -!- aloril has joined.
04:26:26 -!- clog has joined.
04:26:26 -!- TodPunk has joined.
04:26:26 -!- glogbackup has joined.
04:26:26 -!- Jafet has joined.
04:26:26 -!- tromp_ has joined.
04:26:26 -!- rodgort has joined.
04:26:26 -!- coppro has joined.
04:26:26 -!- SimonRC has joined.
04:26:26 -!- asiekierka has joined.
04:26:26 -!- hogeyui has joined.
04:26:26 -!- Vorpal has joined.
04:26:26 -!- mtve has joined.
04:26:26 -!- Sgeo has joined.
04:26:26 -!- olsner has joined.
04:26:26 -!- hagb4rd has joined.
04:26:26 -!- impomatic has joined.
04:26:26 -!- lahwran has joined.
04:26:26 -!- david_werecat has joined.
04:26:26 -!- HackEgo has joined.
04:26:26 -!- monqy has joined.
04:26:26 -!- Slereah_ has joined.
04:26:26 -!- oerjan has joined.
04:26:26 -!- ais523 has joined.
04:26:26 -!- c00kiemon5ter has joined.
04:26:26 -!- SirCmpwn has joined.
04:26:26 -!- stuntaneous has joined.
04:26:26 -!- myndzi has joined.
04:27:03 -!- sivoais has joined.
04:27:03 -!- FreeFull has joined.
04:27:03 -!- zzo38 has joined.
04:27:03 -!- heroux has joined.
04:27:10 -!- Sanky has joined.
04:27:10 -!- EgoBot has joined.
04:27:10 -!- ion has joined.
04:27:19 -!- glogbackup has left.
04:27:22 -!- oonbotti has joined.
04:27:22 -!- fizzie has joined.
04:27:29 -!- sirdancealot has joined.
04:27:29 -!- Mathnerd314 has joined.
04:27:29 -!- lifthrasiir has joined.
04:27:35 -!- azaq23 has joined.
04:27:35 -!- DHeadshot has joined.
04:27:35 -!- sebbu has joined.
04:27:35 -!- oklofok has joined.
04:27:35 -!- jconn has joined.
04:27:35 -!- FireFly has joined.
04:27:35 -!- fungot has joined.
04:27:35 -!- shachaf has joined.
04:27:41 -!- Deewiant has joined.
04:27:42 -!- md_5 has joined.
04:27:42 -!- ineiros has joined.
04:27:42 -!- noam has joined.
04:27:42 -!- ssue has joined.
04:27:46 -!- oklopol has joined.
04:27:46 -!- Gregor has joined.
04:27:46 -!- yiyus has joined.
04:27:46 -!- nortti has joined.
04:27:53 -!- quintopia has joined.
04:27:53 -!- Lumpio- has joined.
04:27:53 -!- trout has joined.
04:27:56 <oerjan> what a rush
04:27:57 -!- sivoais has quit (Max SendQ exceeded).
04:28:06 -!- copumpkin has joined.
04:28:25 -!- elliott has changed nick to Guest90726.
04:28:26 -!- FreeFull has changed nick to Guest92134.
04:28:28 -!- azaq23 has quit (Quit: Leaving.).
04:28:49 -!- azaq23 has joined.
04:28:53 -!- Guest90726 has quit (Quit: Reconnecting).
04:29:59 -!- elliott has joined.
04:31:31 -!- sivoais has joined.
04:32:56 <elliott> oerjan: did you know you are an expert
04:34:23 <oerjan> yay!
04:34:25 <oerjan> on what?
04:34:38 <elliott> oerjan: topics
04:34:55 <elliott> did anything exciting happen while I was trawling the vast expanses of netsplittery
04:35:12 <elliott> other than netsplit analysis
04:35:17 <oerjan> not in the two places i was
04:35:33 <elliott> it was like a simulation of irl post-apocalypse
04:35:42 <elliott> truly I will be able to survive even without the aid of bitcoins
04:36:31 <oerjan> i was split with glogbot and Gracenotes, then changed servers and found what seemed to be the US side of the split, which was pretty large
04:36:41 <elliott> I saw the glogbot/Gracenotes side too
04:36:52 <elliott> OR AS I STARTED REFERRING TO IT DURING THE FAMINE, "SIDE G"
04:37:06 <oerjan> and ais523 must have been somewhere else, then came here
04:37:24 <oerjan> <oerjan> i guess some EU hub got disconnected
04:39:18 <oerjan> (well it was US + 1 singaporean server + 1 australian server)
04:39:34 <elliott> so I heard
04:40:28 <oerjan> HOW COULD YOU HEAR IT WHEN I SAID IT HERE
04:40:35 <elliott> a little monqy told me
04:40:37 <oerjan> (i guess clog was here too)
04:40:57 <elliott> it's like a little birdy. but. little monqy
04:41:01 <elliott> wait this joke might be inaccurate
04:41:02 <elliott> monqy: are you little
04:41:05 <monqy> uhh
04:41:10 <kmc> bill gates has his own URL shortener
04:41:11 <monqy> probably not?
04:41:12 <kmc> it's b-gat.es
04:41:19 <oerjan> monqy kong
04:41:23 <elliott> what does probably not mena
04:41:24 <monqy> sometimes im taller than adults and it's scary
04:41:28 <elliott> and also, mean
04:41:52 <elliott> kmc: wow you're not kidding
04:43:01 <elliott> 19:35:38 <oerjan> USA will stay mainly connected, while europe shatters into fragments
04:43:05 <elliott> this actually happened, irl
04:44:20 <elliott> monqy: im short but i think i grew but i dont think im taller than adults
04:44:22 <elliott> thats my contribution
04:44:40 <kmc> bill gates is p. much the greatest utilitarian who ever lived
04:48:33 -!- augur has joined.
04:48:51 -!- augur has quit (Read error: Connection reset by peer).
04:49:14 -!- augur has joined.
04:49:19 <oerjan> there are real places called Mechanicsburg O_O https://en.wikipedia.org/wiki/Mechanicsburg,_Ohio
04:49:31 <oerjan> (for girl genius fans)
04:51:26 <oerjan> five of them, all in the us
04:51:39 <oerjan> well according to wikipedia
04:53:10 * oerjan found another one
05:32:51 <quintopia> ais523: it was last month anticipation2 topped the hill iirc. i've been waiting for you to frickin' write it up. and you make me wish i had time to write my even more omniscient program :P
05:32:52 <lambdabot> quintopia: You have 3 new messages. '/msg lambdabot @messages' to read them.
05:34:20 <ais523> quintopia: I just decided to try something out, and it did way better than I expected
05:34:31 <ais523> then I changed something and it did even better
05:34:49 <ais523> and then I realized it effectively suicided on tape length 30, and even before then it was beating space_hotel in score/points
05:34:53 <ais523> (this was all local)
05:35:08 <quintopia> i can't wait to see the writeup :)
05:37:04 <oklopol> !asdf
05:37:40 <oklopol> umm
05:38:03 <oklopol> google.fi is not available but the university webpage is?
05:38:37 <oerjan> shocking
05:38:44 -!- david_werecat has quit (Ping timeout: 255 seconds).
05:38:55 <oklopol> google is not down though, right?
05:39:40 <oerjan> not google.no anyway
05:39:49 <oklopol> um
05:39:57 <oklopol> what
05:40:09 <oklopol> i'm starting to wonder if the sun will rise today.
05:40:28 <ais523> oklopol: if it doesn't, does "today" have meaning?
05:40:29 <kmc> in norway? doubtful
05:40:37 <ais523> kmc: no, finland
05:40:53 <oklopol> google.com is down??
05:41:34 <oerjan> it is quite possible that the google server you are connected to is not very dependent on which domain name you use for it...
05:41:43 <quintopia> works here
05:43:01 <oerjan> fancy when i visit http://www.google.fi/ most of the text is still in norwegian, except for a couple instances of the words "suomi" and "svenska"
05:43:58 <oklopol> oerjan: the google.com is down thing was because i understood "not google.no anyway" as saying google.no doesn't work, because i'm in a very emotional state.
05:44:15 <oerjan> oh. no it works here.
05:44:18 <elliott> oklopol: hi
05:44:22 <oklopol> hi
05:45:04 <oerjan> are things other than the internet collapsing around you?
05:46:33 <kmc> google.fi is in finnish for me
05:46:49 <kmc> google is kind of obnoxious about forcing you to use the 'localized' site
05:51:36 <oklopol> who wants to google things for me :(
05:54:33 <quintopia> i wonder how much it would hurt my performance against other programs to raise the size of that first medium decoy... it certainly trounces omniscience
05:55:11 <elliott> oklopol: me
05:55:25 <elliott> quintopia: that's just because omniscience special-cases your decoy setup
05:55:30 <shachaf> kmc: Isn't showing you the localized site by default reasonable?
05:55:40 <shachaf> There's generally a "google.com in English" link at the bottom.
05:55:41 <quintopia> elliott: that's why i decided to make that change to test it
05:56:12 <oklopol> shachaf: google.com is the localized site in english though?
05:56:33 <oklopol> at least you still get very different results than from say US.
05:56:34 <quintopia> i cant imagine it hurting too much. my decoy build used to take two more cycles back when i had it tuned to beat counterpoke
06:07:02 -!- oerjan has quit (Quit: Gnyte).
06:08:49 <ais523> quintopia: yeah, I shamelessly special-cased code against space_hotel because I thought I couldn't beat it otherwise
06:09:41 <ais523> space_hotel is actually not unbeatable with the standard omnipotence strategy, but it requires mindboggingly high amounts of constant tweaking, that leave it helpless against most other programs
06:10:46 <Sgeo> omnipotence?
06:10:47 <Sgeo> I
06:10:56 <Sgeo> One day I should read a guide to BF Joust strategies
06:11:10 <Sgeo> Or, well, modern thinking, anyway
06:11:25 <elliott> modern thinking??
06:11:28 <Sgeo> Doubt that there would be such a thing as a perfect guide. New strategies etc.
06:11:45 <Sgeo> I'm not expecting time travel to deliver the perfect solution devised in the future
06:11:49 <Sgeo> Is what I mean
06:11:54 <Sgeo> modern as opposed to psychic
06:12:14 <Sgeo> And as opposed to obsolete I guess
06:12:25 <elliott> psychic???
06:12:33 <Sgeo> Although I guess some old strategies could make a comeback in an environment unequipped to deal with them
06:12:58 <Sgeo> For some reason I used "psychic" to mean "contains knowledge from the future". I'm not sure why.
06:13:10 <monqy> yes.
06:13:40 <Sgeo> question marks????
06:14:32 <monqy> ¿
06:15:19 <elliott> ais523: we could use a new featured language, btw
06:15:44 <ais523> elliott: I'm writing up BF Joust programs atm
06:15:51 <ais523> but if you pick one, I'll write the blurb for it once I'm done with this
06:16:42 <elliott> Sgeo: how are you enjoying #yfl
06:16:57 <Sgeo> Haven't looked at it in a bit
06:17:24 <Sgeo> ttm did say something that seemed stupid a while ago, but I could have misunderstood what was meant
06:17:31 <Sgeo> At any rate, that conversation is long gone
06:25:54 -!- evincar has joined.
06:27:21 <evincar> So I have an abstraction algorithm.
06:27:21 <lambdabot> evincar: You have 1 new message. '/msg lambdabot @messages' to read it.
06:27:25 <evincar> It is inefficient. :(
06:28:04 -!- sebbu has quit (Ping timeout: 248 seconds).
06:28:11 <evincar> Anyone have resources on optimising combinator expressions?
06:32:50 -!- sebbu has joined.
06:32:51 -!- sebbu has quit (Changing host).
06:32:51 -!- sebbu has joined.
06:35:33 <shachaf> 22:30 <lexande> sometimes i am confronted with a problem and i think "I know, I'll use Banach-Tarski"
06:37:43 <ais523> haha, the funny thing is you don't need a follow-up because you can imagine it
06:39:13 <elliott> `addquote <lexande> sometimes i am confronted with a problem and i think "I know, I'll use Banach-Tarski"
06:39:17 <HackEgo> 960) <lexande> sometimes i am confronted with a problem and i think "I know, I'll use Banach-Tarski"
06:41:10 <tswett> q(h)ûl-lyai’svukšei’arpîptó’ks
06:41:21 <tswett> "being hard to believe, after allegedly trying to go back to repeatedly inspiring fear using rag-tag groups of suspicious-looking clowns, despite resistance"
06:47:18 <olsner> some say Ithkuil has several hundred words for repeatedly inspiring fear using rag-tag groups of suspicious-looking clowns
06:50:49 <tswett> This is a cute sentence.
06:50:54 <tswett> "Igrawileiţrar oi eglulôn."
06:51:02 <tswett> "If only the physician wouldn't eat his food in one gulp like that."
07:08:12 <olsner> hmm, ithkuil.net seems to be in the wrong order... I have now read through the descriptions of a hundred unpronouncible sounds (chapter 1) and gotten to a table in chapter 2 where everything is a reference to chapter 5
07:09:04 <monqy> maybe the chapter dependency graph is cyclic
07:09:15 <shachaf> hi monqy
07:09:19 <monqy> hi shachaf
07:09:27 <monqy> i saw your valiant efforts in haskell
07:09:29 <olsner> after this you get to see your first ithkuil words, for example the word for ‘it is/being a representation of the man-made courses/channels of a river that has dried up’
07:09:31 <shachaf> which efforts
07:09:37 <monqy> the functor efforts
07:09:44 <shachaf> oh those efforts
07:09:45 <olsner> (‾üaklaršlá)
07:10:05 <shachaf> monqy: do you think i did any good
07:10:13 <monqy> depends on how you measure good
07:10:28 <shachaf> monqy entertainment value
07:10:49 <monqy> tough one
07:11:16 <olsner> -l, indicating NORMAL essence, DELIMITIVE extension, MONADIC perspective, UNIPLEX configuration, and CONSOLIDATIVE affiliation
07:11:28 <olsner> (that's part of the explanation of the ithkuil word for tree)
07:13:27 <monqy> what would happen if you tried to teach ithkuil as a first language
07:13:28 <ais523> quintopia: anyone else who cares: http://esolangs.org/wiki/BF_Joust_strategies#2013
07:13:38 <elliott> monqy: thats child abuse.........
07:14:21 <monqy> elliott: what if you're teaching it to an adult. an adult with no linguistic knowledge.
07:14:33 <evincar> A feral?
07:14:42 <oklofok> i heard someone tried to teach klingon as a first language but the kid decided it was stupid at like 7 yo
07:14:43 <monqy> is that what they call them these days
07:14:49 <oklofok> (age 7 pulled out of ass)
07:15:05 <oklofok> decided it was stupid and stopped speaking it
07:15:53 <olsner> I heard a similar story, I think the primary reason was that no-one else except the kid's father spoke klingon
07:15:57 <evincar> It's okay as a curiosity but I dunno why you'd ever make your kid.
07:16:10 <ais523> elliott: apart from Deadfish, which should be left for April, I think the best candidates were all either written by me or suggested by me
07:16:13 <monqy> what if it's someone else's kid
07:16:18 <evincar> That is okay.
07:16:22 <ais523> so you'd better pick one (which might not be any of those) to avoid bias
07:16:29 <ais523> also it needs to have a decent article
07:16:46 <evincar> Then you can be the crazy uncle/aunt/park vagrant who teaches them funny words.
07:17:04 <evincar> Vagrants are sexless you see.
07:17:53 <elliott> ais523: we should feature Esme sometime
07:18:03 <elliott> or maybe oklopol's brainfuck derivative whose name I am too lazy to look up right now
07:18:04 <ais523> I guess I could do Kipple
07:18:15 <ais523> elliott: not Esme, best left as an injoke that one
07:18:28 <elliott> IIRC Kipple's article is bad
07:18:40 <monqy> how about featuring the meta turing completeness page
07:18:42 <ais523> Most ever Brainfuckiest Fuck you Brain fucker Fuck is the name of the language
07:18:44 <oklofok> my bf derivative is also a bit dangerous, as no one will get that it's a joke
07:18:53 <elliott> oklofok: that sounds like an advantage
07:18:53 <ais523> I don't think it has a sufficiently complete article, though
07:19:11 <ais523> I agree with oklofok here, really
07:19:11 <elliott> also a few wiki users have seemed to realise that I'm completely irresponsible and would probably frown upon featuring it :(
07:19:12 <oklofok> i should make a reference implementation
07:19:27 <shachaf> > unwords$liftA2(++)inits tails"monqy"
07:19:30 <lambdabot> " m mo mon monq monqy monqy onqy nqy qy y "
07:19:49 <monqy> btw i support featuring Most ever Brainfuckiest Fuck you Brain fucker Fuck
07:19:56 <elliott> ais523: hmm, I want to say Eodermdrome, but I think it'd be a bad idea for you to write the blurb for your own language
07:20:03 <ais523> fair enough
07:20:05 <elliott> for two reasons: one, people would suspect bias; and two, it'd be ten pages long
07:20:19 <ais523> nah, I'm reasonably concise in blurb-writing
07:20:22 <ais523> bias is a good point though
07:20:25 <shachaf> ais523 is unbiased
07:20:34 <shachaf> ais523: are you biased
07:20:43 <ais523> shachaf: there are some things about which I'm biased
07:20:53 <ais523> I think I have reasonably low bias wrt esolangs, though
07:21:03 -!- Guest92134 has quit.
07:21:07 <ais523> (ask elliott about my opinions on Dungeon Crawl Stone Soup some time)
07:21:08 <oklofok> GOOGLE WORKS AGAIN
07:21:09 <shachaf> that's just what a biased person would say??
07:21:16 <oklofok> FUUUUUUUCK YEEEEEEEEEEEEEEEEEEEEEEAH
07:21:20 <oklofok> adskljflkdsajflkdsjaf
07:21:22 <oklofok> krhm
07:21:23 <oklofok> excuse me
07:21:36 <elliott> hope you find out what you needed about that crackpot oklofok
07:21:49 <shachaf> am i a crackpot
07:21:53 <monqy> shachaf: i too can recommend asking elliott about ais523's opinions on Dungeon Crawl Stone Soup
07:22:08 <evincar> > unwords$((++).inits<*>tails)"monqy"
07:22:09 <oklofok> :=)
07:22:10 <elliott> I recommend asking about monqy. hi monqy. i love monqys. they are so easy. and Sgeo should learn Ada
07:22:10 <lambdabot> " m mo mon monq monqy monqy onqy nqy qy y "
07:22:16 <evincar> Oh hey, that is the same.
07:22:16 <elliott> s/about //
07:22:21 <shachaf> elliott: tell me more about ais523's opinions on dungeon Crawl Stone Soup
07:22:28 <monqy> elliott: looks like i won this one
07:22:46 <shachaf> elliott: is the joke that i say those things
07:22:53 <shachaf> except instead of me its you saying them
07:23:17 <elliott> wasn't that the joke all along
07:23:23 <elliott> ais523: Emmental looks like a pretty good candidate
07:23:39 <shachaf> hi monqy
07:23:46 <shachaf> "how was that"
07:23:48 <elliott> ais523: several implementations, unknown computational class, well-formatted article, interesting concept
07:23:49 <shachaf> "realistic?"
07:25:04 <monqy> shachaf: no; try harder/???????
07:25:26 <ais523> elliott: yeah, this seems like a good pick
07:25:34 <shachaf> monqy: i love emonodindoisoi!!!!!
07:25:42 <ais523> now I have to learn enough Emmental to be able to write the blurb ;)
07:25:51 <monqy> whoa now you might be trying a little too hard
07:26:07 <shachaf> wow thats pretty hard
07:26:16 <shachaf> what if i try harder to not try too hard
07:26:28 <shachaf> hey monqy remember sorear
07:26:43 <monqy> depends on what you mean by remember
07:27:19 <shachaf> what do you mean
07:27:30 <monqy> i remember sorear "fsvo remember"
07:28:32 -!- Sanky has quit (Ping timeout: 252 seconds).
07:30:22 <oklofok> emmental sounds pretty easy
07:32:18 <shachaf> monqy: "which vo" are you talking about
07:32:49 <monqy> the 'v' where ive never come into contact with sorear but ive seen shadows of sorear in lots of places
07:33:46 <ais523> I worked with sorear on TAEB
07:33:49 <shachaf> oh
07:33:59 <shachaf> sorear is "p. great imo"
07:34:16 <shachaf> but i meant in #haskell
07:34:37 <monqy> never met sorear in #haskell but i knew he was/is a #haskell member
07:34:58 <monqy> also seen evidence of sorear involved in dcss stuff &c &c
07:35:07 <shachaf> ok.
07:35:08 <shachaf> monqy: remember ddarius
07:35:13 <monqy> no
07:35:22 <shachaf> :'(
07:35:24 <shachaf> is that a lie
07:35:48 <monqy> i'm not a real big "#haskell guy", past nor present???
07:36:14 <shachaf> what about future
07:36:21 <monqy> who knows
07:36:48 <evincar> Are you male even?
07:36:56 <monqy> me?????
07:37:01 <monqy> why do you ask
07:37:22 <evincar> Dunno, because "guy" and I thought you might be making a subtle joke.
07:37:30 <evincar> Like "well maybe I'll get halfway there someday".
07:37:36 <monqy>
07:38:13 <Sgeo> `list
07:38:19 <Sgeo> Or is that the wrong one now
07:38:19 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf
07:38:21 <Sgeo> ^list
07:38:22 <fungot> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
07:38:35 <elliott> ^def list bf x
07:38:35 <fungot> Defined.
07:38:38 <elliott> have to have inter-bot command consistency
07:38:48 <monqy> `list
07:38:54 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo
07:39:22 <Sgeo> Chrome sucks at gifs
07:39:30 <ais523> elliott: OK, [[Emmental]] is featured
07:39:50 <elliott> `hatesgeo
07:39:53 <elliott> does that still work
07:40:16 <shachaf> `rm bin/list
07:40:50 <Sgeo> elliott, don't see why it wouldn't, but it takes an argument
07:40:52 <HackEgo> No output.
07:40:54 <HackEgo> No output.
07:41:01 <elliott> ais523: thanks
07:41:01 <Sgeo> A log file I think
07:41:03 <ais523> shachaf: why'd you do that?
07:41:04 <elliott> `revert
07:41:07 <HackEgo> Done.
07:41:10 <ais523> elliott: I was about to `revert
07:41:12 <ais523> but you got there first
07:41:24 <shachaf> ais523: It's the usual policy when people make programs in bin/ that beep me.
07:41:35 <shachaf> (Unless there's a reason for them to exist.)
07:41:37 <ais523> shachaf: well it's your fault!
07:41:43 <shachaf> As far as I can tell that program exists purely to be annoying.
07:41:43 <elliott> you shouldn't have used `list then
07:41:46 <ais523> the list in `list is a list of people who've done `list
07:41:47 <shachaf> I didn't.
07:42:02 <shachaf> Can you make it "a list of people who've done it *after* it was introduced"?
07:42:17 <elliott> it is that
07:42:28 <monqy> can i be on the list twice
07:42:31 <Sgeo> `list
07:42:34 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy
07:42:48 <monqy> nice to have hackego on the list
07:42:53 <monqy> "list friends"
07:42:57 <shachaf> `rm bin/list
07:43:01 <HackEgo> No output.
07:43:06 <elliott> `revert
07:43:08 <HackEgo> Done.
07:43:17 <fizzie> It's like watching a Wikipedia edit war, except in real time.
07:43:24 <fizzie> (Maybe there should be an `unlist.)
07:43:33 <ais523> fizzie: have you never watched a Wikipedia edit war in realtime?
07:43:44 <elliott> `unlist would have to be a list of everyone who's never used it
07:43:44 <shachaf> `run sed -i s/shachaf// bin/list
07:43:47 <elliott> which would be a bit too long
07:43:48 <HackEgo> No output.
07:43:51 <elliott> `revert
07:43:53 <HackEgo> Done.
07:43:54 <elliott> if you're going to remove yourself get it right
07:43:55 <shachaf> `rm bin/list
07:43:58 <HackEgo> No output.
07:44:10 <elliott> `revert 2058
07:44:13 <HackEgo> Done.
07:44:19 <shachaf> Is this a version where I'm not in it?
07:44:26 <monqy> `shachaf
07:44:27 <ais523> [01:11] <shachaf> ^echo `list
07:44:28 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: shachaf: not found
07:44:28 <ais523> [01:11] <fungot> `list `list
07:44:28 <fungot> ais523: charo*n: when the container is a thousand generations of barbarians. they watched the progress of the ring, by bottomley hopson)
07:44:30 <ais523> [01:11] <shachaf> Aw.
07:44:35 <ais523> shachaf: it /is/ your own fault
07:44:40 <ais523> you made fungot say `list and talked right after
07:44:40 <fungot> ais523: they say that a spear will hit a mail daemon often delivers scrolls of make-edible until it's really necessary!
07:44:42 <ais523> so you got added
07:44:59 <shachaf> My own fault!
07:45:01 <shachaf> Awful.
07:45:05 <ais523> anyway, because you don't want to be there, and monqy wants to be there twice
07:45:12 <ais523> shall we just s/shachaf/monqy/ in the `list?
07:45:23 <shachaf> I don't care what you do as long as I'm not on it.
07:45:24 <ais523> or would that be cheating?
07:45:25 <monqy> that's cheating
07:45:29 <shachaf> And also don't do the "it's your own fault" thing.
07:45:43 <Sgeo> It should be fixed so that you only get added for a direct `list
07:45:55 <ais523> shachaf: yeah but it's funny
07:45:58 <fizzie> fungot: Do you want to be on the list?
07:45:58 <fungot> fizzie: meat*, huge fangs, staring eyes, that they would treat him, then the quendi wandered in the use of black magic. as they fell through his fingers in a fountain will not easily forget this encounter if he survives it at all.
07:46:07 <shachaf> ais523: No, it's not.
07:46:13 <elliott> it is funny actually
07:46:18 <monqy> i'm laughing
07:46:18 <elliott> ais523: btw, Emmental isn't yet featured; you need to add a template
07:46:21 <monqy> proof positive for funny????
07:46:26 <ais523> elliott: we have a featured article template?
07:46:28 <ais523> you can add that, then
07:46:30 -!- shachaf has left.
07:46:39 <monqy> rip[
07:46:44 <elliott> ais523: that sounds like work :( but okay
07:46:45 <monqy> "finally kicked himself"
07:50:33 <zzo38> Coincidences are spiritual puns. -- G.K. Chesterton [when looking up "coincidence" in FORTUNE]
07:52:20 -!- DHeadshot has quit (Read error: Connection reset by peer).
07:52:30 -!- DHeadshot has joined.
08:24:11 <fizzie> I got my first ever SMS spam the other day.
08:25:48 <fizzie> "CONGRATS!!YOUR MOBILE NUMBER HAS WON YOU 2,000,000,00 USD IN THE FREELOTTO MOBILE PROMO.FOR CLAIMS,SEND EMAIL TO:freemobileprize13@live.com & CALL:+447012980187"
08:25:57 <fizzie> Looks totally legit.
08:26:02 <elliott> thats a lot of usd
08:26:12 <fizzie> Isn't +44 the UK code?
08:26:17 <elliott> ye
08:26:22 <elliott> i suggest callin'
08:26:27 <elliott> gotta be a fune right?
08:27:11 <fizzie> I should call from my work phone, and if someone complains of the resulting bill just say I was trying to save the university two hundred million USD.
08:27:37 <elliott> yes
08:28:01 <elliott> do you dare take... the Finnish Risk [title card "THE FINNISH RISK" appears, credits roll]
08:28:04 -!- DHeadshot has quit (Ping timeout: 248 seconds).
08:29:32 <fizzie> I don't think I will. Instead, I'll take lunch.
08:29:46 <elliott> You Have Failed the Test
08:29:55 <elliott> Ejection will now begin.........................
08:30:39 <elliott> monqy: Welcome onto television
08:30:43 <monqy> hi elliott
08:30:50 <elliott> monqy: No
08:30:52 <monqy> i'll be filling in for shachaf in his absence
08:31:10 <monqy> can you fill in for monqy?
08:31:25 <elliott> I can try!!!!
08:31:38 <monqy> this is a bad idea i'm calling it off
08:31:46 <elliott> I FEEL AWFUL
08:31:57 <elliott> monqy: YOU"RE BANNED... FROM TELEVISION
08:32:53 <elliott> monqy: Prepare its going to explode in 3, 4, 1.......................................................... you passed the test . Welcome to `The Finnish Risk'
08:33:26 <elliott> theres theme song music going on right now, but you can't hear it
08:33:58 <elliott> I hop eyou feel left ojut monqy
08:34:10 <monqy> i have my own music
08:34:11 <monqy> so it's ok
08:35:29 <elliott> Itsr not sufficient. Nothing can ever compare to....... `The Finnish Risk' [title screen rolls for the fifth time this episode, theme music starts over but without stopping first so it overlaps with itself]
08:36:19 <monqy> this finish risk thing seems a bit “off„
08:37:05 <elliott> Y'uouve been nominated for award....... are you not ready to take `The Finnish Risk' [more title screen etc.]
08:37:27 <elliott> its essentially a gameshow adaption of the board game `Risk' which i've never played, in finnish
08:37:50 <monqy> i think one time i played risk, maybe? maybe twice half-played it
08:37:53 <monqy> that's probably more right
08:38:19 <elliott> Tat;s ok monqy I can walk you through the game , would you like a tutorial?
08:39:43 <elliott> Your time is up................................. tutorial will now commence
08:39:45 <monqy> ok
08:39:47 <elliott> Riski ovat perheenjäseniä suomalainen on lähellä varpuslintujen alkaen lautapeli.TV perhe on läheisimmin liittyy amerikkalainen barbets. Ne ovat kirkkaasti merkitty ja ovat suuria, usein värikkäitä laskuja.Perheeseen kuuluu viisi sukujen ja noin neljäkymmentä eri lajia. Nimi tämä lintu ryhmä on johdettu Tupi sanasta tukana kautta kuolemaan naurua.
08:40:27 <monqy> ok
08:41:00 <elliott> Risk (kreikan ψυχή "psyyke", eli mieli, sielu, henki, sydän tai hengitys ja κίνησις "Kinesis", eli liike, liikkuminen, kirjaimellisesti "mieli-liikkeen"), jota kutsutaan myös telekinesis (Greek τῆλε + κίνησις, kirjaimellisesti "kaukaisilla liikkeen") suhteen tiukasti kuvaavat henkistä liikettä tai liikkeen kiintoaineen, lyhennettynä PK ja TK vastaavasti, on termi kustantajan Henry Holt viitata suoraan vaikuttaa mielen pä
08:41:26 <monqy> kunnossa
08:41:49 <elliott> Kukaan ei olisi uskonut viime vuosina yhdeksästoista vuosisata, että tämä maailma oli tarkkailun innokkaasti ja tiiviisti älyllisten suurempi kuin miehen ja vielä niin kuolevainen kuin omaa, että miehet askaroineet itse heidän epäkohtia he tutkittiin ja tutkittiin, ehkä lähes yhtä tiukoiksi kuin mies mikroskoopilla voi tutkia ohimenevää olentoja parveilee ja lisääntyä pisara vettä.
08:41:55 <elliott> Ääretön omahyväisyys miehet menivät edestakaisin yli maapallolla heidän pikku asioista, seesteinen niiden varmuus niiden imperiumi yli asiasta. On mahdollista, että infusoria mikroskoopilla tekemään samoin. Kukaan antoi ajatuksen vanhempi avaruuden maailmoissa lähteinä ihmisen vaarassa, tai ajatellut niitä vain hylätä ajatus elämän heille niin mahdotonta tai epätodennäköistä.
08:42:01 <elliott> On mielenkiintoista muistaa joitakin mielenterveyden tottumukset näiden edesmenneen päivinä. Enimmillään maan miehistä haaveillut saattaa olla muita miehiä kun Risk, ehkä huonompi itseään ja valmiita ottamaan vastaan lähetyssaarnaaja yritys.
08:42:05 <elliott> Silti yli lahden tilaa, mielissä jotka ovat mielemme kuin omamme ovat kuin petoja, jotka joutuvat kadotukseen, älynsä laaja ja viileä ja tympeässä, pitää tämän maan kanssa kateellisia silmät ja hitaasti ja varmasti veti suunnitelmansa meitä vastaan​​. Ja alussa vuosisadan tuli suuri pettymys.
08:42:23 <monqy> Risk: Mikä peli
08:44:04 <elliott> Riski on yksi tuntematon ja frightful ilmiöitä, joka pysähtyy evolutiivista kehitystä miehen ja tuo sen täyteen hengellistä (ja usein fyysiseen) kuolema.Kirja ja verkkosivusto "riskin katastrofi" luotu ryhmä ei välinpitämätön tämän teeman ihmisiä.
08:44:08 <elliott> Materiaalit syntyi henkilökohtaista käytännön kokemusta opiskelusta Teeman perustaa on teoria merkittävästä kirjat Blavatskaya EP, Roerichin HI, Roerichin NK, Abramov BN, Uranov N. ja muita nimiä.Tarkoituksena luoda kirjan on välttämätöntä kiinnittää huomiota ihmisiä tämän hirvittävän ilmiön tajuissaan vastatoimia sitä.
08:45:01 <elliott> monqy: Das schließt unsere obligatorischen Tutorial. Ich hoffe, Sie alle haben gelernt, was man über Risiko wissen. Das Spiel kann nun beginnen! Das Spiel der ... "Die finnische Risk"
08:45:43 <elliott> ok i have to stop because i cant stop laughing at "Das Spiel der ... "Die finnische Risk""
08:48:53 <ion> !run printf '%s\n' 'Ääretön omahyväisyys miehet menivät edestakaisin yli maapallolla heidän pikku asioista, seesteinen niiden varmuus niiden imperiumi yli asiasta. On mahdollista, että infusoria mikroskoopilla tekemään samoin.' | hyphenate.fi
08:48:56 <monqy> Mae'r risg y Ffindir yn gêm gwael gyda tiwtorial drwg. Dylech fod yn gywilydd i gymryd rhan yn y Ffindir Risg. Pam fod y Risg Ffindir yn bodoli? Mae'n faich i bawb. Ffyc Risg Ffindir.
08:49:05 <ion> `run printf '%s\n' 'Ääretön omahyväisyys miehet menivät edestakaisin yli maapallolla heidän pikku asioista, seesteinen niiden varmuus niiden imperiumi yli asiasta. On mahdollista, että infusoria mikroskoopilla tekemään samoin.' | hyphenate.fi
08:49:10 <HackEgo> ​Ää-re-tön o-ma-hy-väi-syys mie-het me-ni-vät e-des-ta-kai-sin y-li maa-pal-lol-la hei-dän pik-ku a-si-ois-ta, sees-tei-nen nii-den var-muus nii-den im-pe-riu-mi y-li a-si-as-ta. On mah-dol-lis-ta, et-tä in-fu-so-ri-a mik-ros-koo-pil-la te-ke-mään sa-moin.
08:49:27 <elliott> monqy: is that..... welsh
08:49:30 <elliott> even i have limits
08:50:43 <monqy> Why is the Risk Finland exist? It is a burden to everyone. Fuck Risk Finland.
09:06:51 -!- impomatic has quit (Ping timeout: 252 seconds).
09:23:18 <Deewiant> `run hyphenate.fi <<<aloitus
09:23:20 <HackEgo> a-loi-tus
09:24:36 <fizzie> `run echo hääyöaie | hyphenate.fi # an oft-mentioned stupid Finnish (compound) word
09:24:38 <HackEgo> hääyö-aie
09:27:57 <ion> hyphenate.fi doesn’t even try to support compound words.
09:29:52 -!- ais523 has quit.
09:34:40 <fizzie> elliott: "Riski ovat perheenjäseniä suomalainen on lähellä varpuslintujen alkaen lautapeli." ≈ "A risk are family members a Finn is near sparrows starting a board game." (Except less grammatically correct, and sparrows were an approximation -- it's actually the whole order Passeriformes.)
09:35:26 <elliott> fizzie: I agree.
09:35:39 -!- evincar has quit (Quit: Replacing mechanical Turk with solid-state Turk).
09:35:51 <elliott> (I took the enwp article for Toucan, replaced a few phrases, and put it through the Googles.)
09:35:58 <elliott> (For the first line, that is.)
09:40:43 <monqy> my googles were 100% original. i needed something to translate to welsh so i trash-talked the finland risk a bit
09:41:11 <elliott> i didnt even translate yours back
09:41:15 <elliott> felt like it would be inauthentic
09:41:19 <elliott> well that's a lie i did most of them
09:41:20 <elliott> not the welsh though
09:41:38 <fizzie> "Ffyc Risg Ffindir" is quite obvious.
09:41:48 <monqy> well i translated the best part of mine back because it was good
09:41:53 <monqy> 00:50:43 <monqy> Why is the Risk Finland exist? It is a burden to everyone. Fuck Risk Finland.
09:42:14 <elliott> that's a good part
09:50:47 * Sgeo is finally caught up with HPMOR
09:50:53 <Sgeo> Although I think I forgot large portions of it
09:51:21 <monqy> what's that
10:10:49 -!- monqy_ has joined.
10:10:56 -!- monqy has quit (Disconnected by services).
10:11:01 -!- monqy_ has changed nick to monqy.
10:26:28 -!- DHeadshot has joined.
10:41:12 -!- carado has joined.
11:13:09 -!- elliott has quit (Ping timeout: 276 seconds).
11:13:32 -!- elliott has joined.
12:00:35 -!- Zerker has joined.
12:04:50 -!- Zerker has quit (Remote host closed the connection).
12:08:42 -!- Zerker has joined.
12:11:46 -!- carado has quit (Ping timeout: 246 seconds).
12:17:42 -!- Phantom_Hoover has joined.
12:33:00 -!- Sanky has joined.
12:38:59 -!- Zerker has quit (Quit: Colloquy for iPad - Timeout (10 minutes)).
12:39:34 -!- monqy has quit (Quit: hello).
13:03:43 -!- Phantom__Hoover has joined.
13:06:02 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
13:24:09 -!- DHeadshot has quit (Quit: Bye).
13:24:38 -!- DHeadshot has joined.
13:29:39 -!- Phantom__Hoover has quit (Ping timeout: 276 seconds).
13:31:29 -!- augur has quit (Remote host closed the connection).
13:36:07 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:02:11 -!- boily has joined.
14:05:35 -!- Arc_Koen has joined.
14:08:55 -!- augur has joined.
14:12:30 -!- ratesh has joined.
14:13:20 -!- ratesh has left.
14:14:05 -!- cuttlefish has joined.
14:31:54 -!- david_werecat has joined.
14:32:13 -!- Phantom_Hoover has joined.
14:37:11 -!- jconn has quit (Remote host closed the connection).
14:41:58 -!- davidwerecat has joined.
14:45:01 -!- david_werecat has quit (Ping timeout: 245 seconds).
14:46:12 -!- davidwerecat has quit (Client Quit).
14:48:13 -!- Taneb has joined.
14:48:15 -!- Phantom_Hoover has quit (Remote host closed the connection).
14:56:11 -!- Phantom_Hoover has joined.
15:03:13 -!- Phantom_Hoover has quit (Remote host closed the connection).
15:06:41 <Taneb> Can someone name a film with a school bully in it
15:06:41 <lambdabot> Taneb: You have 1 new message. '/msg lambdabot @messages' to read it.
15:07:13 <elliott> the facekicker hird story
15:07:29 <Taneb> I have to do what, shachaf
15:07:32 <Taneb> I have to do what
15:07:44 <fizzie> I think Bully has a bully in it.
15:07:44 <elliott> sorry shachaf left the channel
15:07:49 <Taneb> elliott: I have discovered that Facekicker Hird was not called Elliott after all
15:07:55 <Taneb> But in fact was called "Elliot"
15:08:01 <elliott> Eliet Herd
15:08:09 <elliott> illiteracy befitting of a facekicker
15:08:27 <elliott> fizzie: yo wanna come to birmingham to meet ais523 with Taneb + ph + me
15:08:30 <elliott> you basically live in hexham so
15:09:24 <fizzie> I don't: think so, really. (What, you're having an #esoteric meetup or something?)
15:09:43 <elliott> well it's just Taneb is going to birmingham university this month because he's a fool
15:09:52 <elliott> I figure why not tag along???
15:10:24 <Taneb> I haven't managed to register for that thing yet
15:10:34 <elliott> well hurry up
15:10:46 <Taneb> The website doesn't like me
15:10:48 <elliott> I bet when me and Taneb meet it'll turn out that he was actually my next door neighbour all along or something
15:11:11 <Taneb> elliott: my next door neighbours are called the Snowdons on one side and the Bradshaws on the other
15:11:16 <Taneb> Neither are called "Hird"
15:12:07 <fizzie> The other day (well, the other week) my wife was annoyed with me because she had a dream where I had gotten us plane tickets into a #esoteric meet somewhere in the middle of Greenland in the winter, without asking her first. Plus she wasn't really interested in a #esoteric meet at all, let alone one in Greenland, let alone one in Greenland in wintertime. (I think it's kind of cold there?)
15:12:56 <fizzie> I suppose arguably Birmingham might be a step up from that.
15:12:56 <elliott> fizzie: OK so how would you and your wife like to come to the Greenland #esoteric meetup I am organising all of a sudden?
15:13:15 <elliott> `addquote <fizzie> The other day (well, the other week) my wife was annoyed with me because she had a dream where I had gotten us plane tickets into a #esoteric meet somewhere in the middle of Greenland in the winter, without asking her first. Plus she wasn't really interested in a #esoteric meet at all, let alone one in Greenland, let alone one in Greenland in wintertime. (I think it's kind of cold there?)
15:13:19 <HackEgo> 961) <fizzie> The other day (well, the other week) my wife was annoyed with me because she had a dream where I had gotten us plane tickets into a #esoteric meet somewhere in the middle of Greenland in the winter, without asking her first. Plus she wasn't really interested in a #esoteric meet at all, let alone one in Greenland, let alone one in Gree
15:14:08 <elliott> good enough
15:14:20 -!- cuttlefish has quit (Remote host closed the connection).
15:14:26 <fizzie> Taneb: I'm pretty sure "Snowdon" is a type of Pokémon. At least it should be.
15:14:31 <Taneb> `quote 961 | paste
15:14:33 <HackEgo> No output.
15:14:48 <Taneb> fizzie: it's also the name of my next-door neighbour
15:14:51 <Taneb> Mr Snowdon
15:15:12 <elliott> is he a pokemon
15:15:18 <Taneb> I do not believe so
15:15:26 <Taneb> However I have not tested to see
15:15:49 <Taneb> (how would you test if someone is a Pokemon?)
15:15:58 <fizzie> "Molly Hale (Japanese: ミー・スノードン Me Snowdon) is a little girl from the town of Greenfield, the daughter of two researchers. She is a central character in the third Pokémon movie, Spell of the Unown."
15:16:19 <fizzie> Well, what do you know. There are some hits for "Snowdon" and "Pokémon" after all.
15:16:40 <fizzie> Is Mr Snowdon a researcher?
15:16:50 <boily> fizzie: Snowdon is a metro station here.
15:16:58 <Taneb> You might be thinking of Snover
15:17:04 <Taneb> Which evolves into Abomasnow
15:17:22 <fizzie> Taneb: Of course it does.
15:17:54 <fizzie> I have to hurry to a bus now. ->
15:18:09 <Taneb> Bye, fizzie
15:20:09 -!- Taneb has quit (Quit: TIME TO PRETEND TO BE A GHOST).
15:30:57 <fizzie> I caught my bus.
15:31:56 <fizzie> It sure is Snowdoning out there these days.
15:45:54 -!- cuttlefish has joined.
15:55:42 <boily> ~metar CYUL
15:55:42 <cuttlefish> CYUL 081500Z 03018KT 5/8SM R06L/4500FT/U R06R/4500V3000FT/U -SN BLSN VV006 M15/M19 A3031 RMK SN8 SLP267
15:55:49 <boily> still snowing outside.
15:57:58 <elliott> ugh, does HML give up the property about existentials I liked about MLF...
15:58:58 <elliott> normalize :: Type -> Type
15:58:58 <elliott> normalize tp = tp
15:59:01 <elliott> fantastic function.
16:00:39 <fizzie> ~metar EFHK
16:00:40 <cuttlefish> EFHK 081550Z 03010KT 3000 -SN FEW008 SCT012 BKN014 M03/M04 Q1013 TEMPO 2500
16:00:57 <fizzie> Sadly, I don't know what it means.
16:03:12 <fizzie> -SN is apparently light snow.
16:04:27 <fizzie> And minus three degrees Celsius.
16:06:12 <boily> report made at 3:50pm UTC today, NE winds at 10 knots, light snow, few clouds at 800', scattered clouds at 1200', broken clouds at 1400', temperature is -3 °C with dew point at -4 °C, air pressure is 101,3 kPa (don't know if sea level or airfield).
16:06:21 <boily> can't remember what TEMPO is.
16:07:29 -!- Phantom_Hoover has joined.
16:11:45 <kmc> ~metar KBOS
16:11:51 <cuttlefish> KBOS 081607Z 09020KT 3/4SM R04R/4500V6000FT -SN BR SCT008 OVC013 01/M02 A3024 RMK AO2 CIG 008 E P0000
16:12:06 <fizzie> It's apparently -SN'ing everywhere.
16:12:35 <fizzie> ~metar HXHM
16:12:40 <cuttlefish> --- Station not found!
16:12:41 <fizzie> What, that's not the Hexham airport?
16:13:04 <kmc> sadly ICAO codes are systematic, the first letter corresponds mostly to continent
16:13:25 <fizzie> But isn't Hexham a ham(let) on the Hex(agonal) continent?
16:13:27 <kmc> ~metar EGNT
16:13:31 <cuttlefish> EGNT 081550Z 35009KT 9999 FEW038 06/M00 Q1019
16:13:43 <kmc> fizzie: Catan?
16:13:44 <boily> let me guess: newcastle?
16:13:49 <kmc> yeah
16:13:54 <kmc> it's not -SNing in newcastle?
16:14:14 <kmc> hm I'm surprised KBOS isn't up to +SN already
16:14:39 <boily> ~metar KEWR
16:14:43 <cuttlefish> KEWR 081551Z 03014KT 5SM -PLRA BR SCT006 OVC010 02/01 A2998 RMK AO2 RAB11SNE11B35E49 SLP153 CIG 009V011 SCT V BKN P0004 T00170006
16:14:55 <boily> it's -PLRAing in Newark.
16:15:16 <fizzie> Light ice pellets and rain.
16:16:58 <fizzie> ~metar EFKE
16:17:03 <cuttlefish> EFKE 081550Z 18001KT 9000 -SHSN OVC013 M14/M15 Q1024
16:17:14 <fizzie> It's -SHSNing in Kemi, apparently.
16:21:18 <kmc> shit-snowing?
16:21:40 <Gregor> How unpleasant.
16:24:08 <Phantom_Hoover> ~metar EGPH
16:24:09 <cuttlefish> EGPH 081550Z 26007KT CAVOK 06/00 Q1021
16:24:18 <Phantom_Hoover> ooh
16:24:21 <Phantom_Hoover> cavok
16:24:29 <boily> ceiling and visibility OK.
16:24:35 <boily> the most boring descriptor out there.
16:24:39 <Phantom_Hoover> thank god
16:24:53 <Phantom_Hoover> wouldn't want the ceiling to be broken or w/e
16:32:09 <elliott> ~metar QRST
16:32:09 <cuttlefish> --- Station not found!
16:32:12 <elliott> :,(
16:32:42 <Gregor> ~metar KLAF
16:32:43 <cuttlefish> KLAF 081554Z 32012G21KT 9SM OVC013 M02/M04 A3019 RMK AO2 SLP229 T10171039
16:32:53 <Gregor> Well look at all those strings of letters.
16:33:22 <Phantom_Hoover> ~metar SGEO
16:33:23 <cuttlefish> --- Station not found!
16:33:24 <boily> elliott: sadly, there aren't any airport beginning with Q, because it may cause confusion with Q codes.
16:34:00 <boily> Gregor: a university has an airport?
16:34:12 <Gregor> Yes, this university.
16:34:21 <Gregor> It also has two Poultry Science buildings.
16:34:22 <Gregor> Two!
16:34:35 <boily> oookaaay.....
16:35:16 <elliott> `quote avarice
16:35:18 <HackEgo> 251) <Phantom__Hoover> Gregor, yeah, but Purdue has poultry science facilities beyond the dreams of avarice.
16:35:42 <elliott> @tell oerjan THE HML TYPE SYSTEM IS FUCKING AMAZING WHY DID YOU NEVER TELL ME ABOUT THIS OMG
16:35:42 <lambdabot> Consider it noted.
16:36:19 <Phantom_Hoover> sadly farmingdale apparently has no poultry science buildings
16:36:27 <boily> what amazes me is that elliott searched for that quote with 'avarice'.
16:36:40 <Phantom_Hoover> it did produce this groundbreaking paper though: http://ps.fass.org/content/1/3/89.abstract
16:37:10 <kmc> cool, more remote code exec in Ruby libs due to bad deserialization: http://rack.github.com/
16:37:54 <Phantom_Hoover> kmc don't just link to projects and expect everyone to look at their front page and be 'omg what a bunch of twats!'
16:38:03 <elliott> it has info Phantom_Hoover
16:38:04 <elliott> as in
16:38:07 <Phantom_Hoover> you should link to a snarky blog about it or sth
16:38:09 <elliott> on the actual exploit
16:38:24 <Phantom_Hoover> oh shit you're right
16:38:34 <kmc> omg what a bunch of twats
16:38:44 <elliott> phantom hoover, n. what a bunch of twat
16:39:11 <Phantom_Hoover> you're the bunches of twats
16:48:21 <kmc> the actual vuln here is a timeable MAC comparison function
16:48:33 <kmc> but breaking the MAC gives you immediate RCE which is also a questionable design
16:48:48 <kmc> i used to think that kind of thing was okay but... now i do not
16:53:00 <fizzie> Shower-snowing.
16:53:49 <Phantom_Hoover> snowering?
16:54:24 -!- DHeadshot has quit (Ping timeout: 276 seconds).
16:56:42 -!- AnotherTest has joined.
17:01:05 -!- carado has joined.
17:08:02 <kmc> @tell shachaf You might like https://twitter.com/hashbreaker/status/299913976282771456
17:08:02 <lambdabot> Consider it noted.
17:16:15 <Phantom_Hoover> kmc, that pdf is weird
17:23:54 <kmc> yeah
17:25:03 <Phantom_Hoover> fortunately if i use the arrow keys to scroll sideways it kind of works out sanely
17:28:10 -!- FreeFull has joined.
17:29:14 <Phantom_Hoover> http://www.somethingawful.com/d/news/jlist-japan-rand.php
17:29:14 <Phantom_Hoover> i
17:36:09 * Sgeo now knows what happens when Pidgin thinks that someone logged in in the future
17:45:43 <kmc> well
17:45:46 <kmc> don't leave us all in the dark
17:46:33 -!- Taneb has joined.
17:47:25 <Phantom_Hoover> it is better to remain in the comforting darkness than to brave the terrific light of pidgin's login timestamp logic
17:50:24 <Gregor> lolwut
17:50:49 <fizzie> I had a thing recently in Skype where it put the discussion in the wrong order by moving my conversation-partner's replies above my questions, apparently because either one of us had a clock skew of a dozen seconds or so.
18:02:26 -!- azaq23 has quit (Quit: Leaving.).
18:06:42 <oklopol> i once talked in skype with the computer clock a couple days in the future
18:06:56 <oklopol> had to look at that till the time came.
18:16:22 <Sgeo> It puts the exact date any time
18:16:28 <Sgeo> Rather than the typical "5 seconds ago"
18:16:58 <Sgeo> *date and time
18:17:37 <Phantom_Hoover> :O
18:20:12 -!- Arc_Koen has quit (Ping timeout: 256 seconds).
18:40:32 <olsner> `quote banach
18:40:33 <HackEgo> 960) <lexande> sometimes i am confronted with a problem and i think "I know, I'll use Banach-Tarski"
18:40:50 -!- DHeadshot has joined.
18:40:55 -!- ogrom has joined.
18:41:10 <Taneb> `? banach-tarski
18:41:13 <HackEgo> ​"Banach-Tarski" is an anagram of "Banach-Tarski Banach-Tarski".
18:42:40 <DHeadshot> I assume that's a maths joke that's just gone straight over my head...
18:44:05 <Phantom_Hoover> DHeadshot, the banach-tarski theorem states that you can cut a sphere into a finite number of pieces and reassemble them into two spheres of the same size
18:44:29 <Sgeo> 5 pieces, right?
18:44:36 * Sgeo has learned stuff from IWC
18:44:38 <DHeadshot> Ah
18:44:48 <Sgeo> ....wait, IWC? irregular webcomic? what
18:44:50 <Phantom_Hoover> i don't remember, there are 4 interesting pieces
18:45:07 <Sgeo> oh, irregular WebComic, I presume
18:45:08 <Sgeo> derp
18:45:39 <Phantom_Hoover> i
18:45:41 <DHeadshot> Haven't read that for a few years...
18:45:49 <olsner> lexande's is my favorite rendering of the banach-tarski pun yet
18:46:53 <Phantom_Hoover> Sgeo, did you just have a brief discussion with yourself over what iwc is
18:47:23 <Sgeo> I was confused as to why the abbreviation of Irregular Webcomic was IWC
18:47:59 <Taneb> http://brownsharpie.courtneygibbons.org/wp-content/comics/2006-12-11-bananach-tarski.jpg.pagespeed.ce.OBBgFNJ8Y3.jpg
18:49:06 <Phantom_Hoover> consider the group of rotations on the banana
18:50:36 -!- DHeadshot has quit (Ping timeout: 264 seconds).
18:56:29 <oklopol> do you ever get the feeling that your life is just taking one converging subsequence after another
18:59:03 <boily> ~metar CYUL
18:59:03 <cuttlefish> CYUL 081800Z 04022G29KT 5/8SM R06L/3500FT/N R06R/4000FT/N -SN BLSN VV006 M13/M16 A3022 RESN RMK SN8 /S07/ SLP238
18:59:18 <Phantom_Hoover> oklopol, is that a pun
18:59:26 <boily> still -SNing, with additional BLSN. yeeeeah.... :-/
18:59:57 <oklopol> no
19:00:26 <Phantom_Hoover> pity
19:00:58 <oklopol> i wish it were a pun
19:05:09 <Phantom_Hoover> there must be some decent analysis puns
19:20:44 <kmc> ~metar KBOS
19:20:44 <cuttlefish> KBOS 081854Z 07024G31KT 1/2SM R04R/3500V4500FT SN FG VV008 00/M01 A3011 RMK AO2 PK WND 08031/1846 TWR VIS 3/4 PRESFR SLP193 P0001 T00001011
19:21:03 -!- impomatic has joined.
19:21:04 <kmc> snow, fog, 8 vuvuzelas
19:21:15 <kmc> i wonder when we'll hit +SN
19:24:57 <boily> kmc: our vertical visibility is still worse than yours :p
19:25:19 <boily> ~metar CYUL
19:25:19 <cuttlefish> CYUL 081900Z 03023G28KT 3/4SM R06L/4000FT/U R06R/4000FT/U -SN BLSN VV008 M12/M15 A3019 RMK SN8 SLP226
19:25:29 <boily> ah. no. it changed.
19:26:15 <Phantom_Hoover> ~metar egph
19:26:15 <cuttlefish> --- Station not found!
19:26:20 <olsner> "vertical visibility", is that a euphemism for vuvuzelas?
19:26:23 <Phantom_Hoover> ~metar EGPH
19:26:23 <cuttlefish> EGPH 081920Z 24005KT 9999 -RA SCT042 04/02 Q1021
19:26:35 <Phantom_Hoover> oh joy
19:26:36 <Phantom_Hoover> ra
19:28:24 <olsner> ~metar ESSL
19:28:25 <cuttlefish> ESSL 081920Z 36012KT 8000 -SN BKN011 M04/M05 Q1014
19:29:12 <olsner> ... whatever that means
19:30:23 <boily> moderate north wind, 8 km ground visibility, light snow, broken clouds at 1100', -4 °C with dewpoint at -5 °C (quite humid), 101,4 kPa sea level pressure.
19:30:41 <boily> and it means you have an interest into Linköping.
19:32:36 -!- monqy has joined.
19:32:57 <Sgeo> http://www.reddit.com/r/ruby/comments/184ymb/major_rack_vulnerability_need_to_update_your_rack/
19:34:08 <kmc> yup
19:34:17 <kmc> timeable MAC comparison function = badness
19:34:24 <kmc> remote code exec is really just the cherry on the shit sundae here
19:34:35 <olsner> ruby vulnerabilities! how surprising!
19:34:50 <kmc> let's all switch back to PHP
19:34:52 * Sgeo is not smart enough to write code not vulnerable to timing issues, I think
19:35:06 <kmc> Sgeo: basically nobody is
19:35:16 <kmc> you have to work against your entire stack (compiler, CPU cache, etc)
19:35:30 <kmc> all of which aim to make things faster by making them not constant time
19:36:30 <Sgeo> Maybe a language that makes writing such code easier? Compiler would co-operate, know some tricks to deal with hardware, etc
19:36:37 <kmc> yeah
19:36:53 <kmc> this would help
19:37:48 <kmc> "Saddest thing about this is, @codahale reported this 3 years ago, and I even responded then, but I was too dumb to get it, and not running releases (probably good). Anyway, I was wrong then, and we were wrong not to deal with it."
19:38:25 <kmc> good thing all these timing attacks are only viable if you're in the same datacenter... oh wait
19:40:49 -!- epicmonkey has joined.
19:56:17 -!- DHeadshot has joined.
20:04:38 <Taneb> Tempted to redefine Numberwang to be a complete joke language
20:05:59 <monqy> a third numberwang??
20:06:17 <Taneb> Oh, yeah
20:06:29 <Taneb> My Numberwang was the second Numberwang, wasn't it
20:08:07 <kmc> the number that can be wanged is not the true numberwang
20:08:37 <Taneb> I may also distribute a closed source implementation
20:08:47 <Taneb> And call it the reference implementation
20:09:23 <monqy> a third numberwang would make sense. wangernumb also makes sense.
20:12:15 <Taneb> import Acme.Numberwang {- thanks kmc -}; main = do {xs <- fmap (map (numberwang . read) . words) getContents; interpretAsSomeLanguage xs}
20:12:43 <kmc> that's numberwang!
20:12:50 <Taneb> !numberwang 6
20:12:53 <EgoBot> That's numberwang!
20:12:55 -!- DHeadshot has quit (Ping timeout: 240 seconds).
20:12:57 <Taneb> !numberwang banana
20:12:58 <EgoBot> I'm sorry, but Brazil isn't a vegetable!
20:13:02 <kmc> !numberwang eleventeen
20:13:02 <EgoBot> I'm sorry, but Brazil isn't a vegetable!
20:13:12 <kmc> !numberwang twelfington
20:13:12 <EgoBot> I'm sorry, but Brazil isn't a vegetable!
20:13:25 <kmc> !numberwang 0.99999999
20:13:25 <EgoBot> That's numberwang!
20:13:32 <Taneb> getContents >>= interpretAsSomeLangauge . map (numberwang . read) . words
20:13:33 <kmc> !numberwang NaN
20:13:33 <Phantom_Hoover> !numberwang chaitin's constant
20:13:34 <EgoBot> I'm sorry, but Brazil isn't a vegetable!
20:13:34 <EgoBot> I'm sorry, but Brazil isn't a vegetable!
20:14:15 <Phantom_Hoover> whoah
20:14:15 <Phantom_Hoover> why is emmental featured lang
20:14:17 <Phantom_Hoover> why not eodermdrome
20:14:34 <Taneb> Because they didn't let me choose like with Glass and Malbolge
20:14:56 <monqy> something about bias
20:15:09 <monqy> and overcorrecting??
20:15:19 <monqy> "you decide"
20:15:35 -!- Sgeo_ has joined.
20:15:56 -!- Sgeo has quit (Read error: Connection reset by peer).
20:21:08 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
20:25:16 -!- Nisstyre-laptop has joined.
20:29:45 -!- sirdancealot has quit (Ping timeout: 256 seconds).
20:43:19 -!- oerjan has joined.
20:43:47 -!- sirdancealot has joined.
20:43:58 <oerjan> @messages
20:43:59 <lambdabot> elliott said 4h 8m 17s ago: THE HML TYPE SYSTEM IS FUCKING AMAZING WHY DID YOU NEVER TELL ME ABOUT THIS OMG
20:44:03 <oerjan> elliott: WAT
20:44:14 <oerjan> what's the L for.
20:48:33 <FreeFull> Hardware ML?
20:50:02 <kmc> hebrew ML
20:50:22 <FreeFull> Hugo's Multitasking Language
20:51:10 -!- Sgeo_ has changed nick to Sgeo.
20:51:34 <Taneb> Haskell mit der Luftwaffe
20:54:45 * oerjan assumes hebrew ML has strict gender distinction in the types
20:55:43 <boily> html for stuff other than text?
20:56:28 -!- DHeadshot has joined.
21:09:41 -!- epicmonkey has quit (Ping timeout: 255 seconds).
21:24:51 -!- Phantom_Hoover has joined.
21:29:02 <olsner> HaskMeL
21:32:54 -!- AnotherTest has quit (Quit: Leaving.).
21:33:40 -!- DHeadshot has quit (Ping timeout: 248 seconds).
21:33:44 -!- DH____ has joined.
21:38:46 -!- sirdancealot has quit (Ping timeout: 245 seconds).
21:40:26 -!- sirdancealot has joined.
21:59:16 <oerjan> <Phantom_Hoover> why not eodermdrome <-- because ais523 didn't want to write the blurb for his own language
21:59:48 <Phantom_Hoover> oh
22:01:23 <Sgeo> I still like Mascarpone's "reify/deify" pun
22:01:27 -!- WeThePeople has joined.
22:02:46 -!- stuntaneous has quit.
22:03:28 -!- monqy has quit (Quit: hello).
22:03:48 <Phantom_Hoover> maybe you could tell us what it is
22:03:54 -!- boily has quit (Quit: Poulet!).
22:03:57 -!- cuttlefish has quit (Remote host closed the connection).
22:04:45 <Sgeo> About Eodermdrome
22:05:17 <Sgeo> In a command, if there's no input and no output set, how does one distinguish between the string for the match subgraph and the string for the reaplacement subgraph?
22:05:21 <Sgeo> replacement
22:05:38 <Phantom_Hoover> hmm
22:05:42 <Phantom_Hoover> not sure what you mean
22:07:17 <Phantom_Hoover> Sgeo, the subgraph strings have nothing to do with the input/output strings...
22:07:39 <Sgeo> Oh, the parts of the commands themselves are separated by whitespace
22:08:00 <Sgeo> So a b c d is two commands, a b and c d
22:08:04 <Sgeo> ok'
22:11:37 <Sgeo> Hmm. It should be possible to implement, say, a Lisp in Mascarpone, right?
22:12:03 * oerjan is still annoyed by whoever replaced his carefully crafted ASCII graph without crossing edges with a picture with crossing edges, even if it's prettier graphics
22:12:47 <Taneb> The picture suggests it's a directed graph, too
22:13:15 <oerjan> ah right
22:14:02 -!- sirdancealot has quit (Ping timeout: 255 seconds).
22:16:37 -!- ogrom has quit (Quit: Left).
22:18:29 <Sgeo> Occurs to me that it would probably be more sensible to define a Forth or Factor like language on top of Mascarpone
22:22:05 -!- Taneb has quit (Quit: Leaving).
22:41:14 <Sgeo> o.O Haxe has macros
22:41:20 <Sgeo> The language now has my attention.
22:41:40 <Sgeo> (Before, pretty much dismissed it as a boring language that people like only because it compiles to a bunch of stuff)
22:41:50 <Sgeo> Still quite inclined to keep doing that
22:43:47 -!- Zerker has joined.
22:46:28 <kmc> haxeham
22:49:39 <Sgeo> `welcome Zerker
22:49:42 <HackEgo> Zerker: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:49:45 <oerjan> ^bf ++++ ++++ ++++ ++++[>+++++<-]>[<+++++>-]+<+[ >[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+ >>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<] <<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<- ]
22:49:46 <fungot> 0.1.4.9.16.25.36.49.64.81.100.121.144.169.196.225.256.289.324.361.400.441.484.529.576.625.676.729.784.841.900.961.1024.1089.1156.1225.1296.1369.1444.1521.1600.1681.1764.1849.1936.2025.2116.2209.2304.2401.250 ...
22:50:06 <oerjan> !bf8 ++++ ++++ ++++ ++++[>+++++<-]>[<+++++>-]+<+[ >[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+ >>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<] <<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<- ]
22:50:07 <EgoBot> 0 \ 1 \ 4 \ 9 \ 16 \ 25 \ 36 \ 49 \ 64 \ 81 \ 100 \ 121 \ 144 \ 169 \ 196 \ 225 \ 256 \ 289 \ 324 \ 361 \ 400 \ 441 \ 484 \ 529 \ 576 \ 625 \ 676 \ 729 \ 784 \ 841 \ 900 \ 961 \ 1024 \ 1089 \ 1156 \ 1225 \ 1296 \ 1369 \ 1444 \ 1521 \ 1600 \ 1681 \ 1764 \ 1849 \ 1936 \ 2025 \ 2116 \ 2209 \ 2304 \ 2401 \ 2500 \ 2601 \ 2704 \ 2809 \ 2916 \ 3025 \ 3136 \ 3249 \ 3364 \ 3481 \ 3600 \ 3721 \ 3844 \ 3969 \ 4096 \ 4225 \ 4356
22:50:15 <oerjan> !bf16 ++++ ++++ ++++ ++++[>+++++<-]>[<+++++>-]+<+[ >[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+ >>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<] <<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<- ]
22:50:16 <Sgeo> [<<<]? unbalanced? That unnerves me for some reason
22:50:17 <EgoBot> 0 \ 1 \ 4 \ 9 \ 16 \ 25 \ 36 \ 49 \ 64 \ 81 \ 100 \ 121 \ 144 \ 169 \ 196 \ 225 \ 256 \ 289 \ 324 \ 361 \ 400 \ 441 \ 484 \ 529 \ 576 \ 625 \ 676 \ 729 \ 784 \ 841 \ 900 \ 961 \ 1024 \ 1089 \ 1156 \ 1225 \ 1296 \ 1369 \ 1444 \ 1521 \ 1600 \ 1681 \ 1764 \ 1849 \ 1936 \ 2025 \ 2116 \ 2209 \ 2304 \ 2401 \ 2500 \ 2601 \ 2704 \ 2809 \ 2916 \ 3025 \ 3136 \ 3249 \ 3364 \ 3481 \ 3600 \ 3721 \ 3844 \ 3969 \ 4096 \ 4225 \ 4356
22:50:26 <Sgeo> Then again, I'm not much of a BF progtrammer
22:50:27 <Sgeo> programmer
22:50:31 <oerjan> !bf32 ++++ ++++ ++++ ++++[>+++++<-]>[<+++++>-]+<+[ >[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+ >>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<] <<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<- ]
22:50:32 <EgoBot> 0 \ 1 \ 4 \ 9 \ 16 \ 25 \ 36 \ 49 \ 64 \ 81 \ 100 \ 121 \ 144 \ 169 \ 196 \ 225 \ 256 \ 289 \ 324 \ 361 \ 400 \ 441 \ 484 \ 529 \ 576 \ 625 \ 676 \ 729 \ 784 \ 841 \ 900 \ 961 \ 1024 \ 1089 \ 1156 \ 1225 \ 1296 \ 1369 \ 1444 \ 1521 \ 1600 \ 1681 \ 1764 \ 1849 \ 1936 \ 2025 \ 2116 \ 2209 \ 2304 \ 2401 \ 2500 \ 2601 \ 2704 \ 2809 \ 2916 \ 3025 \ 3136 \ 3249 \ 3364 \ 3481 \ 3600 \ 3721 \ 3844 \ 3969 \ 4096 \ 4225 \ 4356
22:51:07 <oerjan> hm no difference according to cell size. maybe unbounded would break.
22:52:25 <oerjan> !languages
22:52:32 <oerjan> !help
22:52:32 <EgoBot> ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
22:52:36 <oerjan> !help languages
22:52:36 <EgoBot> ​languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
22:53:28 <kmc> haskell is esoteric but cxx isn't? c'mon people
22:54:06 <oerjan> Gregor is probably making a statement
22:54:22 <kmc> i should make an esolang named "Haskell" which has all the features that uninformed people think Haskell has
22:55:35 <kmc> monads used for everything, they are all one-way
22:55:41 <kmc> automatic memoization of functions
22:56:29 <olsner> monads? you mean burritos and space suits!
22:56:37 <kmc> om nom nom
22:56:51 <olsner> omnomads
22:57:46 <olsner> speaking of monads, is there an operator with the same type as id somewhere?
22:57:59 <fizzie> bfjoust is competitive but Haskell isn't? c'mon.
22:58:38 <olsner> id can be $ but it seems the opposite is not true, for some unfathomable reason
23:00:18 <oerjan> Sgeo: it's pretty hard to make a program which handles unbounded numbers in bounded cells without using unbalanced loops.
23:00:32 <oerjan> *in a bounded cell implementation
23:01:12 <oerjan> > ask "maybe"
23:01:14 <lambdabot> "maybe"
23:01:46 -!- Zerker has quit (Read error: Connection reset by peer).
23:01:53 <oerjan> $ requires at least two arguments, yes
23:01:58 -!- Zerker has joined.
23:02:45 <oerjan> (that's not my program btw, it was mentioned on the wiki)
23:03:14 -!- Zerker has quit (Remote host closed the connection).
23:03:28 -!- Zerker has joined.
23:13:49 -!- Zerker has quit (Quit: Colloquy for iPad - Timeout (10 minutes)).
23:27:31 -!- augur has quit (Remote host closed the connection).
23:47:56 -!- augur has joined.
23:48:27 -!- SirCmpwn has quit (Excess Flood).
23:51:53 -!- SirCmpwn has joined.
2013-02-09
00:03:36 <olsner> hmm, (>>=)(+)($), ((+)>>=($)) or (($)=<<(+))?
00:05:00 <zzo38> I think it would be like ((+)>>=id) which is like (join(+)) so it is doubling
00:05:15 <olsner> indeed
00:05:30 -!- augur has quit (Remote host closed the connection).
00:05:45 <zzo38> Can you figure out any of these sequences of natural numbers?
00:05:51 <zzo38> 663, 896, 84733, 3687, 3473, 749, ...?
00:05:55 <zzo38> 17, 13, 5, 18, 20, 25, 21, ...?
00:06:03 <zzo38> 1, 6, 10, 2, 5, 4, 9, 0, 8, 50, 40, 7, 60, 80, 11, ...?
00:06:25 <zzo38> 2, 4, 6, 30, 32, 34, 36, 40, 42, 44, 46, ...?
00:06:30 <zzo38> 0, 0, 0, 0, 4, 9, 5, 1, 1, 0, 55, ...?
00:06:41 <oerjan> @oeis 663, 896, 84733, 3687, 3473, 749
00:06:41 <olsner> nothing rings a bell yet
00:06:42 <lambdabot> Sequence not found.
00:06:53 <olsner> @oeis 663 896 84733
00:06:53 <oerjan> @oeis 17, 13, 5, 18, 20, 25, 21
00:06:53 <lambdabot> Numerical equivalents of the words zero, one, two, three, ... on touch-tone ...
00:06:53 <lambdabot> [9376,663,896,84733,3687,3483,749,73836,34448,6463,836,353836,893583,8447833...
00:06:54 <zzo38> Try to figure out without OEIS.
00:06:55 <lambdabot> Sequence not found.
00:07:22 <oerjan> @oeis 17,13,5,18,20,25,21
00:07:24 <lambdabot> Sequence not found.
00:07:27 <zzo38> O perhaps I did a typing mistake?
00:07:47 <olsner> I think oerjan is just needing to figure out how @oeis works
00:07:59 <oerjan> no 3473 should have been 3483
00:07:59 <zzo38> (I just made them up and do not remember all of them myself)
00:08:04 <oerjan> @oeis 663, 896, 84733, 3687, 3483, 749
00:08:04 <lambdabot> Numerical equivalents of the words zero, one, two, three, ... on touch-tone ...
00:08:05 <lambdabot> [9376,663,896,84733,3687,3483,749,73836,34448,6463,836,353836,893583,8447833...
00:09:05 <oerjan> zzo38: the second also seems to have a type, i get qmertyu
00:09:16 <oerjan> *typo
00:09:19 <zzo38> oerjan: I will fix that one too then.
00:09:34 <zzo38> (These are some I have on my computer.)
00:10:55 <oerjan> that 2,4,6,30 one i have this weird feeling it's been mentioned before
00:11:12 <zzo38> Maybe it has. But I forget what it means too
00:11:57 <oerjan> after 30, it seems to only skip 38 and is otherwise linear
00:17:12 <zzo38> I have read about different tests for a pseudo random number generator, of a few such as with dice and so on. Would a Fourier transform help at all?
00:36:48 -!- augur has joined.
00:56:25 -!- copumpkin has joined.
01:06:02 -!- augur has quit (Remote host closed the connection).
01:09:57 <kmc> what block cipher mode is used by OpenSSL cipher ECDHE-RSA-AES128-SHA256?
01:19:44 -!- augur has joined.
01:19:59 <oerjan> hm i suspect the anonymous ip who once cleaned up IINC was me
01:20:16 -!- augur has quit (Remote host closed the connection).
01:22:41 <kmc> apparently it is "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
01:22:57 <kmc> it's too much to expect that all the CBC modes should have "CBC" in the unique id
01:36:14 -!- Phantom_Hoover has left ("Leaving").
01:53:28 <oerjan> ^bf ]
01:53:28 <fungot> Mismatched [].
02:05:04 <kmc> ~metar KBOS
02:05:11 <kmc> aww
02:05:27 <kmc> well anyway we're up to +SN now
02:09:17 <kmc> why does googling -4^(1/4) produce 822,000 porn links and nothing else
02:29:58 -!- WeThePeople has quit (Quit: Leaving).
02:47:08 <zzo38> kmc: Maybe you need an equal sign afterward; did you try that?
02:48:22 <zzo38> Have anyone else in here ever using LodePNG?
02:49:03 <zzo38> (If so, in C or C++?)
02:54:53 <oerjan> `run echo test | fueue ')[)~~[)$--1[)~]<~~<)<[)$%0]][):]~[)~~[)$--1[)~]<~~<)<[)$$6-%0]][~~~)*[)~(:+~~-)+1]---256%):]~[)~~[)$--1[)~]<~~<)<[)$--%0]][~~)<~~~(]~[)~~[)$--1[)~]<~~<)<[)$%0]][):]~[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~[)~~[)$--1[)~]<~~<)<[)$--%0]][))(($3~)<(]~[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~[[0]:[[0]<:[[0]<:]][48H])~!]]]]]]]]][)[H]][33H]'
02:54:59 <HackEgo> fs
02:55:19 <oerjan> excellent
03:17:44 <zzo38> If all of the channels of VGM are enabled then how many channels will there be?
03:35:45 -!- monqy has joined.
03:40:43 -!- Arc_Koen has joined.
03:43:04 -!- WeThePeople has joined.
03:45:03 <Arc_Koen> Sgeo: so basically it assumes it's a time so far back in the past that it can't compute the difference?
03:45:15 <Arc_Koen> "eons ago"
03:52:39 <Sgeo> ^list
03:57:33 <oerjan> `run echo -n test | fueue ')[)~~[)$--1[)~]<~~<)<[)$%0]][):]~[)~~[)$--1[)~]<~~<)<[)$--%0]][~~)<~~~(]~[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]][1)[)[)$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[))(($3~)<(]]]]]~[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~[[0]:[[0]<:[[0]<:]][48H])~!]]]]][)[H]][33H] '
03:57:35 <HackEgo> t
03:57:44 <oerjan> `run echo -n anothertest | fueue ')[)~~[)$--1[)~]<~~<)<[)$%0]][):]~[)~~[)$--1[)~]<~~<)<[)$--%0]][~~)<~~~(]~[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]][1)[)[)$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[))(($3~)<(]]]]]~[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~[[0]:[[0]<:[[0]<:]][48H])~!]]]]][)[H]][33H] '
03:57:46 <HackEgo> t
03:57:52 <oerjan> excellent
03:58:38 <Sgeo> `mlist
03:58:39 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: mlist: not found
03:58:41 <oerjan> (that was ,[>,]<. btw)
03:58:42 <Sgeo> `hlist
03:58:43 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: hlist: not found
03:58:46 <oerjan> Sgeo: `slist
03:58:50 <Sgeo> `slist
03:58:51 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
03:59:28 <oerjan> hm...
03:59:49 <oerjan> `run ls *list
03:59:51 <HackEgo> ​/bin/ls: cannot access *list: No such file or directory \ /bin/ls: cannot access *list: No such file or directory
03:59:56 <oerjan> `run ls bin/*list
03:59:58 <HackEgo> bin/list \ bin/makelist \ bin/olist \ bin/slist
04:00:07 <oerjan> `cat bin/makelist
04:00:09 <HackEgo> echo 'tail -n +2 $0 | xargs echo; exit 0' >$1;chmod +x $1
04:08:24 -!- Gracenotes has quit (Ping timeout: 240 seconds).
04:09:16 -!- Gracenotes has joined.
04:13:13 -!- shachaf has joined.
04:15:15 <monqy> welcome back??
04:16:02 <shachaf> ????????????
04:16:15 <monqy> ¿
04:17:15 <kmc> 1 ft of snow accumulation and no sign of it slowing down
04:19:09 <shachaf> It turns out shachaf.net expired in Oct
04:19:18 <kmc> :(
04:19:29 <shachaf> Hardly :(
04:19:32 <shachaf> I have it now!
04:19:53 <kmc> oh, you didn't before?
04:19:57 <shachaf> Nope.
04:20:00 <kmc> conchafulations!
04:20:02 <shachaf> I had that jumble of letters.
04:20:19 <shachaf> Now I have to become an ISP, right?
04:21:18 <zzo38> The maximum channels in a VGM file using all chips must be a lot; especially since most of them can be doubled. Even the OPL4 alone supports 42 channels (I think it does).
04:21:59 <DH____> If you do, can I connect though you? Bound to be more reliable than Virgin Media...
04:27:55 -!- aloril has quit (Ping timeout: 256 seconds).
04:28:37 <kmc> can you get shach.af
04:29:03 -!- aloril has joined.
04:29:12 <shachaf> Yes, but it's $100/year or something.
04:29:18 -!- Arc_Koen has quit (Quit: Arc_Koen).
04:38:10 <zzo38> How much money do you want to pay for it?
04:42:24 <Sgeo> Presumably less than $100/year
04:42:45 <shachaf> Apparently I can get it for $78/year.
04:42:49 <Sgeo> 100$/year seems nicer to write since the unit is really $/year and nice to have the unit all together like that
04:44:35 * oerjan prepares to watch Sgeo apply that to parentheses
04:45:07 <shachaf> helloerjan
04:45:11 <shachaf> welcoerjan back?
04:46:19 <oerjan> have i been gone?
04:46:45 <shachaf> Yes, for the last day or something?
04:46:45 <oerjan> ok i _was_ making food for a few minutes
04:46:51 <oerjan> wat.
04:47:05 <shachaf> /whoerjanis
05:19:28 <kmc> shachaf: it's not snowing in CA is it
05:19:39 <shachaf> Nope.
05:19:58 <shachaf> It was ~12° and sunny today.
05:22:49 <kmc> C or F?
05:22:59 <kmc> or... R
05:23:03 <shachaf> C
05:23:34 <shachaf> Also that's a TILDE, not a HYPHEN-MINUS.
05:25:36 <shachaf> monqy: do you understand adjunctions
05:25:44 <shachaf> "i dont have much intuition for them..........."
05:27:24 -!- WeThePeople has quit (Quit: Leaving).
05:29:00 <kmc> hyphen-tilde
05:29:54 <shachaf> kmc: is dnscurve "the future"
05:31:28 <kmc> i... don't know
05:31:42 -!- DH____ has quit (Read error: Connection reset by peer).
05:31:54 <kmc> does 'future' here mean 'actual future' or 'epcot'
05:32:03 -!- DHeadshot has joined.
05:32:07 <shachaf> a@wn epcot
05:32:08 <shachaf> @wn epcot
05:32:09 <lambdabot> No match for "epcot".
05:33:49 <kmc> it's the "70s vision of the year 2000" theme park at disney world
05:56:10 <Sgeo> `slist
05:56:12 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
05:57:14 <shachaf> Sgeo: By the way am I on the pbfcomics.com update list?
05:57:18 <shachaf> You didn't notify me.
05:57:55 <oerjan> `run echo more test | fueue ')[)~~[)$--1[)~]<~~<)<[)$%0]][):]~[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~[[49 33H])[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]]~[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~[[0]:[[0]<:[[0]<:]][50 33H])~!]]]]][))$11~<<~:(~:<][)[[48 33H])~[)[H]]~~!]!]'
05:57:57 <HackEgo> more test
05:58:01 <oerjan> yay!
05:59:22 <oerjan> (that was +[,.] in yet a more primitive form)
06:01:12 <oerjan> (obviously "primitive" is something very different from "shorter")
06:01:52 <Sgeo> shachaf, I don't check PBF. So no.
06:01:56 <Sgeo> Thanks for telling me though
06:02:04 <quintopia> oerjan: are you eliminating instructions?
06:02:11 <oerjan> no.
06:02:30 <oerjan> by "primitive" i mean earlier in the parsing stage
06:02:41 <shachaf> Sgeo: Please put me on the PBF list.
06:02:58 <Sgeo> There is no PBF list. There will never be a PBF list.
06:02:59 <quintopia> shachaf: thx
06:04:09 <oerjan> basically i am simulating the point just after parsing the ], while faking the final EOF read.
06:04:56 <pikhq> I use RSS.
06:05:03 <shachaf> `run echo 'tail -n+2 "$0" | xargs; exit' > bin/pbflist; chmod +x bin/pbflist
06:05:03 <oerjan> or ! read if you use the +[,.]!more test convention
06:05:06 <HackEgo> No output.
06:05:09 <shachaf> `run echo shachaf >> bin/pbflist
06:05:12 <HackEgo> No output.
06:05:20 <shachaf> `run echo Sgeo >> bin/pbflist
06:05:23 <HackEgo> No output.
06:05:24 <shachaf> `run echo quintopia >> bin/pbflist
06:05:28 <HackEgo> No output.
06:05:29 <shachaf> `pbflist
06:05:30 <HackEgo> shachaf Sgeo quintopia
06:05:50 * Sgeo does not mind being on the PBF list. But I will not be the one to trigger it.
06:06:05 <monqy> `supermegalist
06:06:06 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: supermegalist: not found
06:06:07 <monqy> help???
06:06:38 <shachaf> `run echo 'tail -n+2 "$0" | xargs; exit' > bin/emptylist; chmod +x bin/emptylist
06:06:41 <HackEgo> No output.
06:06:49 <shachaf> `run cp bin/{empty,supermega}list
06:06:53 <HackEgo> No output.
06:06:57 <shachaf> `run echo shachaf >> bin/supermegalist
06:07:01 <HackEgo> No output.
06:07:52 <shachaf> `run mv bin/{supermega,sm}list
06:07:56 <HackEgo> No output.
06:08:05 <shachaf> `run echo $'monqy\nelliott' >> bin/smlist
06:08:08 <HackEgo> No output.
06:08:09 <shachaf> `smlist
06:08:11 <HackEgo> shachaf monqy elliott
06:08:22 <monqy> unfortunately super mega has not updated
06:08:22 <shachaf> `emptylist
06:08:24 <HackEgo> No output.
06:08:35 <shachaf> monqy: sry
06:09:24 <shachaf> monqy: should i get a odmaininame in afghanistan
06:10:00 <monqy> shacha.af
06:10:38 <shachaf> shacha.fi
06:14:07 <quintopia> monqy: you talk like super mega
06:14:16 <monqy> do I
06:14:37 <quintopia> yes!!!!!!!
06:15:19 <monqy> super mega resonates with me deeply at a personal level
06:15:24 -!- augur has joined.
06:35:18 -!- DHeadshot has quit (Read error: Connection reset by peer).
06:35:23 -!- DH____ has joined.
06:43:17 -!- sirdancealot7 has joined.
06:45:38 <oerjan> `run echo also test | fueue '):[)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$--%0]][))(($3~)<(]~]][)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$--%0]][~~)<~~~(]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$$6-%0]][~~~)*[)~(:+~~-)+1]---256%):]~]][)~~[)[[50 33H])~[)[H]]~~!]!][]!]!]!]!]!]!]!][[0]:[[0]<:
06:45:42 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
06:45:50 <oerjan> argh
06:46:53 <oerjan> just a little too long
06:48:12 <oerjan> `run echo also test | fueue '):[)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$--%0]][))(($3~)<(]~]][)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[)[[50 33H])~[)[H]]~~!]!][]!]!]!]!]!][[0]:[[0]<:[[0]<:]][49 33H])~!][48 33H] '
06:48:14 <HackEgo> also test \
06:48:21 <oerjan> darn
07:00:37 <oerjan> `run echo also test | fueue '):[)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)[[50 33H])~[)[H]]~~!]!]!]!]!][[0]:[[0]<:[[0]<:]][49 33H])~!][48 33H] '
07:00:38 <HackEgo> b
07:00:45 <oerjan> yay!
07:04:18 <oerjan> `run echo also test | fueue '):[)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$--%0]][))(($3~)<(]~]][)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$$6-%0]][~~~)*[)~(:+~~-)+1]---256%):]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)[[50 33H])~[)[H]]~~!]!]!]!]!]!][[0]:[[0]<:[[0]<:]][49 33H])~!][48 33H] '
07:04:20 <HackEgo> ​`
07:04:26 <oerjan> good, good
07:07:20 <shachaf> monqy: why do subtyping people say covariant instead of monotonic
07:07:33 <shachaf> "wouldnt that be a more obvious" name
07:07:33 <oerjan> `run echo also test | fueue '):[)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$--%0]][~~)<~~~(]~]][)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)[[50 33H])~[)[H]]~~!]!]!]!]!]!][[0]:[[0]<:[[0]<:]][49 33H])~!][48 33H] '
07:07:35 <HackEgo> l
07:09:10 -!- oerjan has quit (Quit: Good night).
07:09:58 <monqy> shachaf: probably they sometimes say monotonic/antimonotonic? but i don't know "why" they say covariant/contravariant
07:10:04 <monqy> "just a words"
07:10:37 <shachaf> imo the category theory words should be monotonic too............
07:10:42 <shachaf> everyone knows what that means
07:10:51 <shachaf> and covariant/contravariant are confusing
07:10:57 <shachaf> they both start with co!!!!
07:14:47 <shachaf> monqy: does "monotone functor"/ "monotonic functor" mean anything in category theory
07:16:44 <monqy> idk
07:17:29 <shachaf> "oopse maybe there is??"
07:18:16 <quintopia> "You have a problem and decide to use threads. have two Now problems. you"
07:30:26 * pikhq reaches new levels of laziness...
07:30:54 <pikhq> IRC from bed is a very different experience.
07:30:59 <pikhq> Profoundly, profoundly lazy.
07:31:04 <monqy> it sounds uncomfortable
07:31:34 <pikhq> Nah.
07:31:52 <pikhq> Wireless keyboard to my computer that's a mere few feet away.
07:31:59 <pikhq> It's just damned lazy.
07:32:59 <pikhq> Tiny bit hard to read though.
07:33:43 <pikhq> I'm pretty sure I need to get an eye appointment done sometime, though, so...
07:34:00 <pikhq> My refractive error has changed somewhat.
07:35:18 <oklopol> my previous apartment was slightly tiny
07:35:41 <oklopol> so my bed was my kitchen table and my computer chair and also everything else
07:36:27 <oklopol> now i don't even have a computer in the bed*room* :(
07:36:54 <pikhq> Why, the bedroom's the only space that is my own.
07:37:13 <oklopol> do you live with someone?
07:37:23 <pikhq> Mother's basement.
07:37:26 <oklopol> my bedroom isn't really mine either :(
07:37:57 <monqy> i have a bedroom but i sleep in a little side-room on the floor
07:38:31 <oklopol> why
07:38:43 <pikhq> One of these days, I will move out, and it will be delightful.
07:38:43 <monqy> better ventillation
07:39:34 <quintopia> i always irc from
07:39:35 <quintopia> bed
07:39:38 <oklopol> so last night i realized how to solve a problem with an article. then i slept for 9 hours. i have no idea what the solution was.
07:39:39 <quintopia> i am doing it now
07:39:44 <pikhq> Though probably not alone per se; it would seem most likely, given life, that it'd just be me moving in with my girlfriend.
07:40:12 <oklopol> do realize you will not have a bedroom then.
07:40:39 <pikhq> Not to myself, no.
07:40:44 <shachaf> oklopol: The solution was: sleep for 9 hours.
07:40:49 <oklopol> it's like living with your mother but she sleeps in your bed and occasionally asks that you help with the cooking.
07:41:11 <pikhq> Not quite
07:41:42 <oklopol> shachaf: oh that's actually a good point. maybe i should consider thinking about the problem instead of trying to remember last night.
07:42:08 <shachaf> i made a good point?
07:42:08 <shachaf> oops
07:42:15 <oklopol> whoopsies
07:43:08 <pikhq> For starters, my mom is not quite nerdy enough to be video chatting with me while playing a video game. :P
07:43:59 <oklopol> yes and the sex is usually much less awkward
07:44:08 <pikhq> Profoundly.
07:44:09 <Sgeo> http://web.mit.edu/jgross/Public/brahm-lullaby-quirrel.mp3
07:44:52 <Sgeo> Too bearable
07:44:54 <pikhq> Mechanics are also rather different, I imagine, but that's just my particular life circumstances being strange.
07:45:20 <oklopol> what do you mean
07:45:40 <oklopol> Sgeo: i'm starting to feel drowsy
07:45:46 <pikhq> She's trans. *Pretty* sure my mom isn't. :P
07:46:24 <oklopol> she, so guy -> girl?
07:46:33 <pikhq> Yuh.
07:46:34 <quintopia> pikhq: you should check that. your mom i mean.
07:46:53 <pikhq> quintopia: :P
07:47:03 <oklopol> my ex had a trans girlfriend for a while
07:47:25 -!- carado has quit (Ping timeout: 246 seconds).
07:47:47 <oklopol> or maybe not girlfriend and more like friend.
07:47:49 <pikhq> Other way 'round would be a boyfriend. *shrug*
07:48:47 <oklopol> and maybe not friend and more like acquaintance.
07:49:46 <monqy> girlacquaintance
07:49:55 <oklopol> ^
07:50:22 <zzo38> I don't like wireless computer so I have the keyboard, mouse, internet, display, printer, etc, is wired.
07:50:45 <zzo38> The router supports wireless but that is used to connect my brother's computer; my own is wired to the router.
07:53:12 -!- epicmonkey has joined.
07:55:14 <zzo38> Do you know when the next Kaiji anime season is being released with subtitles?
07:55:34 <shachaf> zzo38: which comic lists do you want to be on
07:57:21 <zzo38> shachaf: Akagi, and Kaiji.
07:57:21 -!- DH____ has quit (Read error: Connection reset by peer).
08:02:23 -!- monqy has quit (Quit: hello).
08:16:41 <zzo38> What is your opinions on neutral monism?
08:17:47 <quintopia> i agree with it
08:18:58 <Sgeo> I'm a materialist
08:19:18 <Sgeo> (or, arguable, some other term that encompasses the fact that energy does exist)
08:20:48 <zzo38> Of course energy exists but it is not necessarily fundamental. (Or is that not what you mean by "energy"?)
08:22:32 <Sgeo> "sociologists have studied [MissingNo.'s] impact on players."
08:22:45 <Sgeo> zzo38, by energy I mean the sort of energy that the Sun emits
08:23:11 <zzo38> Sgeo: So same as I mean, the energy described by physics.
08:23:20 <Sgeo> Not the word used as a metaphor for spirit by people who misunderstand science and wonder "where does the energy go when someone dies"
08:25:32 <Sgeo> "It really says something about Pokmon fans that they took what is a potentially game-ruining glitch and used it as a shortcut to level up their Pokmon,"
08:27:32 -!- epicmonkey has quit (Ping timeout: 248 seconds).
08:38:17 <Sgeo> `slist
08:38:21 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
08:40:14 <pikhq> Sgeo: That's still philosophical materialism.
08:40:32 <pikhq> "Materialism" is more-or-less the standpoint that physics governs all.
08:40:46 <pikhq> That's not how it'd be phrased usually, but that gets the sense of it better.
08:40:51 <Sgeo> Ok
08:41:41 <zzo38> Physics is made of mathematics.
08:42:03 <pikhq> Very much so.
08:42:18 <Sgeo> What, Tegmark-style?
08:42:36 <zzo38> What is Tegmark-style?
08:42:44 <Sgeo> Hmm, does a Tegmark multiverse go against materialism?
08:43:04 <pikhq> I do not know enough about the implications of that to answer.
08:43:30 <pikhq> (I know what you refer to, I just don't know the full implications to a degree I could answer)
08:45:03 <zzo38> OK, I see what Tegmark classification is.
08:45:11 <Sgeo> http://space.mit.edu/home/tegmark/multiverse.jpg
08:45:16 <Sgeo> In particular level 4
08:46:01 <zzo38> I looked it up in Wikipedia and it is something same as what I have read in a magazine article once.
09:00:48 -!- hover has joined.
09:01:31 -!- hover has left.
09:40:24 -!- SirCmpwn has quit (Ping timeout: 264 seconds).
09:42:24 -!- SirCmpwn has joined.
10:31:54 -!- sirdancealot7 has quit (Ping timeout: 240 seconds).
10:33:49 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
10:34:52 -!- Arc_Koen has joined.
10:35:30 -!- Arc_Koen has quit (Client Quit).
10:35:53 -!- Arc_Koen has joined.
10:38:20 -!- ogrom has joined.
10:50:33 -!- hagb4rd has joined.
10:54:43 -!- Arc_Koen has left.
11:16:09 -!- epicmonkey has joined.
11:34:11 -!- Nisstyre-laptop has quit (Quit: Leaving).
11:41:26 -!- Arc_Koen has joined.
11:47:29 -!- zzo38 has quit (Remote host closed the connection).
12:24:34 <Sgeo> Language idea: A language where you write CPS-style code manually, but the syntax of the language is such that it feels natural
12:26:50 <oklopol> how much heat can a human handle?
12:27:40 <oklopol> 100 celsius is just fine even with high humidity, but if you put something in 200 celsius it's black after 20 minutes
12:28:24 <oklopol> well perhaps 20 minutes in high humidity 100 celsius is also dangerous, we don't have a very good sauna here so my intuition is not very calibrated.
12:40:06 -!- pikhq has quit (Read error: Operation timed out).
12:41:53 -!- Phantom_Hoover has joined.
12:48:10 -!- pikhq has joined.
12:58:46 <fizzie> I think there is some research on that.
13:00:20 <fizzie> It's like 67 °C in the sauna in our building, though.
13:01:38 <Sgeo> Aww where's jconn?
13:01:41 <Sgeo> ) 'hi'
13:02:01 <Sgeo> jconn is also not in #jsoftware
13:05:00 <fizzie> fungot: You know about bots, any clues?
13:05:00 <fungot> fizzie: they say that eggs, pancakes and juice are just a touch.
13:05:21 <fizzie> Yeah, I don't think that really helps.
13:20:49 <ion> http://dl.dropbox.com/u/21559589/databases.png
13:36:05 <Sgeo> "Getting the character (byte) at position N:"
13:36:09 * Sgeo facepalms
13:40:40 -!- Taneb has joined.
13:42:33 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:47:33 * Sgeo is now reading about a different Io language
13:49:30 <elliott> 12:24:33 <Sgeo> Language idea: A language where you write CPS-style code manually, but the syntax of the language is such that it feels natural
13:49:31 <lambdabot> elliott: You have 3 new messages. '/msg lambdabot @messages' to read them.
13:49:33 <elliott> so, haskell
13:55:07 <elliott> @tell oerjan re: * oerjan is still annoyed by whoever replaced his carefully crafted ASCII graph without crossing edges with a picture with crossing edges, even if it's prettier graphics
13:55:07 <lambdabot> Consider it noted.
13:55:12 <elliott> @tell oerjan http://esolangs.org/w/index.php?title=Eodermdrome&diff=22229&oldid=14568
13:55:12 <lambdabot> Consider it noted.
14:13:16 <Sgeo> By changing Io's stdlib, could I make it such that non-name-colliding monkeypatching is possible?
14:13:21 * Sgeo thinks so
14:13:56 -!- sirdancealot7 has joined.
14:17:48 -!- carado has joined.
14:19:42 <Sgeo> http://web.media.mit.edu/~lieber/Lieberary/OOP/Act-1/Concurrent-OOP-in-Act-1.html makes references to old languages. I think it's old
14:20:44 -!- Zuu has joined.
14:40:02 -!- impomatic has quit (Ping timeout: 256 seconds).
14:40:04 <Sgeo> .... at least one other person in #yfl has toyed with Atomo
14:40:08 <Sgeo> I think I feel at home
14:53:40 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
14:56:52 -!- Zuu has left ("Leaving").
15:50:44 -!- impomatic has joined.
16:27:20 -!- Phantom_Hoover has joined.
16:33:34 -!- Mathnerd314 has quit (Read error: Connection reset by peer).
16:47:48 -!- epicmonkey has quit (Ping timeout: 248 seconds).
17:00:20 -!- Frooxius has joined.
17:14:36 -!- sirdancealot7 has quit (Ping timeout: 245 seconds).
17:14:49 <nortti> traceroute 216.81.59.173
17:15:20 <elliott> hi
17:16:07 <Taneb> What an interesting route
17:28:41 -!- sirdancealot7 has joined.
17:33:34 * Sgeo vaguely wonders what kmc thinks about Io. It reminds me vaguely of Kernel
17:38:52 -!- jconn has joined.
17:53:22 <Sgeo> ) 'yay'
17:53:22 <jconn> Sgeo: yay
17:53:49 <Taneb> ...
17:53:57 <Taneb> PietBot uses )
17:54:06 <Taneb> Saying that, PietBot is dead
17:55:29 <Taneb> ) help
17:55:29 <jconn> Taneb: |value error: help
17:55:33 <Taneb> ) 7
17:55:33 <jconn> Taneb: 7
17:55:36 <Taneb> ) pi
17:55:37 <jconn> Taneb: |value error: pi
17:55:41 <Sgeo> ) o.1
17:55:41 <Taneb> ) 'what'
17:55:41 <jconn> Sgeo: 3.14159
17:55:42 <jconn> Taneb: what
17:55:56 <Taneb> ) o.2
17:55:57 <jconn> Taneb: 6.28319
17:56:02 <Taneb> ) o.0
17:56:02 <jconn> Taneb: 0
17:56:05 <Taneb> ) p.1
17:56:06 <jconn> Taneb: |domain error
17:56:06 <jconn> Taneb: | p.1
17:56:10 <Taneb> ) e.1
17:56:10 <jconn> Taneb: 1
17:56:13 <Taneb> ) e.2
17:56:13 <jconn> Taneb: 1
17:56:43 <Sgeo> ) ^1
17:56:44 <jconn> Sgeo: 2.71828
17:57:10 <Sgeo> ) ^0
17:57:10 <jconn> Sgeo: 1
17:57:35 <Sgeo> ) 0^0
17:57:36 <jconn> Sgeo: 1
17:57:43 <Taneb> ) 3+5
17:57:43 <jconn> Taneb: 8
17:57:52 <Taneb> ) 1*28*5
17:57:53 <jconn> Taneb: 140
17:57:54 <Sgeo> ) 1*2+3
17:57:55 <jconn> Sgeo: 5
17:58:06 <Sgeo> ) 2*3+4
17:58:06 <jconn> Sgeo: 14
18:00:23 -!- boily has joined.
18:00:27 -!- DHeadshot has joined.
18:02:15 <Sgeo> ) /:~ 'Hi boily'
18:02:16 <jconn> Sgeo: Hbiiloy
18:02:40 -!- Mathnerd314 has joined.
18:04:41 <elliott> hillbilly
18:06:57 <boily> hi!
18:07:01 <boily> just a moment...
18:07:03 -!- boily has quit (Quit: Poulet!).
18:07:13 -!- boily has joined.
18:07:45 <boily> show that I'm an IRC addict now, I guess. came in to work on a saturday, absentmindedly start weechat in screen.
18:08:32 <boily> Sgeo: hi! weren't you Adaing instead of Jing?
18:08:45 <boily> elliott: I ain't no hillbilly. much too cold to be one.
18:10:06 <Sgeo> I'm Ioing now
18:10:07 <Sgeo> kind of
18:10:18 <elliott> `? sgeolang
18:10:20 <HackEgo> sgeolang? ¯\(°_o)/¯
18:11:01 <Taneb> `learn sgeolang currently is either J or Io.
18:11:05 <HackEgo> I knew that.
18:12:09 <Sgeo> Unless it's Cecil
18:12:11 <Sgeo> Or the other Io
18:12:20 <Sgeo> Or maybe Diesel. Does Diesel still exist?
18:12:31 <Sgeo> It's been a while since I broke my brain failing to understand gBeta
18:13:42 <boily> there are multiple ioes?
18:14:53 <Sgeo> yes
18:16:45 -!- Mathnerd314 has quit (Ping timeout: 252 seconds).
18:18:01 <Sgeo> Ok, I like Io's exception stuff
18:18:19 <Sgeo> pretty cool to just wrap something in try and it returns an exception if there was.... wait
18:18:58 <elliott> which io are you looking at
18:19:00 <elliott> is it the continuation one
18:19:20 <Sgeo> No
18:19:32 <Sgeo> That's what I meant by the "other" Io though
18:27:03 -!- DHeadshot has quit (Read error: Connection reset by peer).
18:27:08 -!- DH____ has joined.
18:29:20 <Taneb> There exists at least one relatively simple number system with single radix such that 1111 + 1100 = 1011
18:29:34 <Taneb> No there isn't
18:29:46 <Taneb> (well, there may be)
18:29:56 <Taneb> (just I've made a mistake that means that I'm wrong)
18:30:28 <Taneb> 11011 + 11000 = 10011
18:37:59 -!- Mathnerd314 has joined.
18:39:53 <kmc> i 'love' reading copy-pasted code
18:40:01 <kmc> it's like one of those 'spot the differences' picture puzzles
18:44:11 <Sgeo> I have been guilty of copy/pasted code
18:44:17 <Sgeo> Including in that Tcl code I wrote
18:44:28 <Sgeo> Probably why Transcriptic never talked to me again :'(
19:10:11 -!- DH____ has quit (Read error: Connection reset by peer).
19:10:17 -!- DHeadshot has joined.
19:18:05 -!- Nisstyre-laptop has joined.
19:27:39 -!- monqy has joined.
19:45:34 -!- DHeadshot has quit (Read error: Connection reset by peer).
19:45:39 -!- DH____ has joined.
20:18:39 -!- oerjan has joined.
20:19:37 <oerjan> @messages
20:19:38 <lambdabot> elliott said 6h 24m 32s ago: re: * oerjan is still annoyed by whoever replaced his carefully crafted ASCII graph without crossing edges with a picture with crossing edges, even if it's prettier
20:19:38 <lambdabot> graphics
20:19:38 <lambdabot> elliott said 6h 24m 26s ago: http://esolangs.org/w/index.php?title=Eodermdrome&diff=22229&oldid=14568
20:19:51 <oerjan> elliott: yeah i already checked
20:21:16 <fizzie> oerjan: I've complained about the edge-crossings-for-a-planar-graph problem before. I wonder if it's automagically generated.
20:22:14 <oerjan> i assume timwi just put it into some graph visualizer
20:23:30 <oerjan> from the ascii graph i made, it was almost trivial to read out all the properties listed.
20:24:52 <elliott> just revert it
20:25:09 <oerjan> but it _is_ prettier graphics too :(
20:25:36 <fizzie> Clearly you must both do it in your layout but with prettier graphics.
20:31:44 -!- zzo38 has joined.
20:31:53 <oerjan> but timwi obviously didn't upload it in an easily editable format
20:32:19 -!- ais523 has joined.
20:33:08 <oerjan> my brain protests against learning a drawing program for this.
20:33:30 <oerjan> (MS Paint's quality was obviously inadequate, i tried.)
20:34:10 <ais523> @messages?
20:34:11 <lambdabot> Sorry, no messages today.
20:34:32 <elliott> oerjan: use html tables
20:34:33 <oerjan> and my memories of getting letters placed just right in xfig are not positive.
20:34:37 <elliott> and css hacks
20:34:42 <elliott> or something
20:35:07 <oerjan> elliott: i don't actually know those either. you can do line drawing?
20:35:45 <elliott> with enough hacks you can do anything!
20:35:50 <elliott> unfortunately without enough hacks, you can't do anything.
20:36:09 <oerjan> well what my brain protests against is really anything that isn't just point and click.
20:38:00 <elliott> open an on-screen keyboard
20:39:00 <oerjan> i mean point and click to get lines to start and end in the right place. and also to adjust automatically when i move the boxes. actually xfig _could_ do that... too bad i'm on windows now.
20:39:03 <kmc> imo learning the basics of using inkscape was a good time investment
20:39:25 <fizzie> oerjan: There are point-and-click things online. Like draw.io or something.
20:39:40 <kmc> xfig sucks
20:39:58 <kmc> inkscape may suck on windows / mac though
20:40:04 <kmc> it is pretty usable on linux
20:40:26 <oerjan> kmc: please don't discuss this subject in ways that discourage me further. thank you.
20:41:29 * oerjan finds winfig
20:42:26 <kmc> k
20:42:50 <kmc> or just pirate illustrator
20:43:22 <fizzie> I didn't see a reasonable argument against any of the things like draw.io that you can just point a browser at and draw.
20:43:39 <ais523> oerjan: many of the microsoft office programs can do that; powerpoint is probably the best at it that's relatively cheap
20:43:45 <ais523> (visio is better but it's mindboggingly expensive)
20:43:45 <kmc> actually you can pirate Adobe Creative Suite CS2 from Adobe's own website
20:43:55 <ais523> kmc: yeah but you're not supposed to
20:44:05 <kmc> that's why i said "pirate" and not "legally download"
20:44:09 <oerjan> i don't have any office programs
20:44:59 <ais523> what you really need is a vector drawing program
20:45:15 <ais523> inkscape's the best known, I think, but I don't know much about it
20:45:17 <fizzie> No, you need a graph drawing program, of which there are quite a few.
20:46:16 <ais523> oh, right
20:46:25 <fizzie> The one in draw.io lets you make one node, then draw a connection from it to empty space, and when you release it, it creates a duplicate of the node you started from, meaning you get to specify the shape and size you want just once.
20:46:27 <ais523> I don't actually know what oerjan's problem is, because I haven't checked scrollback
20:46:37 <fizzie> (Then you double-click and edit the label, and that's about it.)
20:46:44 <ais523> before when I joined, I mean
20:46:53 <oerjan> ais523: i want to fix the eodermdrome initial graph drawing
20:47:02 <ais523> ah right
20:47:29 <elliott> hm, so if you care about efficiency, ST actually mixes two *different* concerns that require rank-2 to be safe...
20:47:31 <oerjan> draw.io doesn't load.
20:48:30 <fizzie> It works fine for me, which admittedly isn't helpful. (I'm twiddling together a graph there at the moment, just for the funs.)
20:48:58 <zzo38> Isn't there the "DOT" graph visualization?
20:49:38 <oerjan> fizzie: oh it worked when i changed https to http in the google link
20:50:03 <kmc> zzo38: yes, it's okay if you want to put no effort into the layout, but it often does things stupidly and there aren't good tools for adjusting it
20:50:07 <kmc> not that i've found anyway
20:51:21 <Sgeo> I'm an idiot. I just forced myself into a position where I have to explain monads to C# people
20:51:22 <fizzie> kmc: It comes with a tool. Oh, you said "good tools". Never mind, then.
20:52:47 <monqy> sgeo can you explain monads to me
20:56:49 <kmc> which tool does it come with?
20:56:56 <fizzie> kmc: dotty.
20:57:23 <c00kiemon5ter> monqy, this is about that http://www.youtube.com/watch?v=b0EF0VTs9Dc
20:57:36 <fizzie> oerjan: Something like https://dl.dropbox.com/u/113389132/Misc/20130209-eoderm.png for example would follow your layout but with boxes.
20:57:43 <monqy> c00kiemon5ter: so i hear
21:00:05 <oerjan> fizzie: almost perfect, but would it be hard to get the letters slightly lower down in the boxes?
21:00:06 <Sgeo> "Sgeo please say another word for monad (if not atom,particle mean)"
21:00:29 <oerjan> also ideally -t-h- should be a straight line, i think
21:00:33 <fizzie> oerjan: Curiously enough, they are in the interface; PNG export made them be in the current stupid place. I'll try some other export.
21:00:41 <fizzie> oerjan: Though now that I look at your ASCII graph, I can't help noticing there's no edge between r and o.
21:00:54 <fizzie> Oh, I missed it.
21:01:00 <fizzie> It was that goes-around-the-whole-thing one.
21:01:23 <oerjan> right, it seemed impossible not to have one of those
21:04:02 <ais523> Sgeo: there are any number of monad tutorials you could link them to…
21:04:22 <Sgeo> I should do that
21:05:24 <oerjan> fizzie: it seems like the "y" is perfectly placed, but the rest gets skewed because of missing under or extra over parts
21:07:23 <fizzie> oerjan: I think it has just put the letter baselines in the middle of the box. I'll see if something can be done. Is https://dl.dropbox.com/u/113389132/Misc/20130209-eoderm2.png layoutwise okay, though?
21:08:48 <ais523> has there been any feedback on my omnipotent BF Joust program? or the one before?
21:08:58 <ais523> I even went and wrote them up, now I want someone to comment on them >:(
21:09:05 <Sgeo> Linky?
21:09:11 <Sgeo> (For the lazy)
21:09:13 <Sgeo> aka me
21:09:57 <fizzie> oerjan: Last I looked at Timwi's version, it seemed to me that with very few edits it would've made an edge-crossing-free graph with somewhat more equal edge lengths. (If only it were sensibly editable.)
21:09:57 <ais523> http://esolangs.org/wiki/BF_Joust_strategies#2013
21:10:57 <oerjan> fizzie: yes i noticed you didn't need too many changes, although i think you'd force a long curve then too
21:11:13 <oerjan> between the o and r
21:11:22 -!- boily has quit (Ping timeout: 246 seconds).
21:12:13 <oerjan> fizzie: as for your layout it's okay but i'd ideally like the placement to be more symmetric along each major line.
21:12:34 <Sgeo> ais523, I don't understand the terminology well enough :(
21:13:05 <fizzie> oerjan: https://dl.dropbox.com/u/113389132/Misc/20130209-eoderm3.png has letters in a slightly more reasonable positions (it's from the SVG export), though arguably now they're a little too low.
21:13:20 <ais523> Sgeo: well that entire page is about explaining it, but I can talk you through it myself if you ask questions
21:13:48 <Sgeo> meh, I'll read it later
21:13:56 <Sgeo> My eye hurts a little from lack of sleep
21:14:55 <Sgeo> < move the tape pointer away from the opponent
21:14:55 <Sgeo> > move the tape pointer toward the opponent
21:14:57 <lambdabot> Not in scope: `move'
21:14:57 <lambdabot> Perhaps you meant `mode' (imported from Text.PrettyPr...
21:15:24 <Sgeo> Imagine if < and > moved away and from the opponent's current memory pointer, rather than goal
21:15:56 <Taneb> How would they behave when the two players are in the same place
21:16:27 <Sgeo> I don't know!
21:16:32 <FreeFull> Both players die
21:16:41 <ais523> that sounds like a good way to make it impossible for anyone to win
21:16:42 <Taneb> Don't move?
21:17:07 <impomatic> traceroute 216.81.59.173 :-)
21:17:09 <ais523> I think you have to understand BF Joust to propose random changes to it and have them make sense
21:17:15 <ais523> impomatic: what's special about that IP?
21:17:16 <Sgeo> Could be toward/away from enemy goal in that case. Not a good solution, but there will be some implications
21:17:39 <impomatic> ais523: trace it and you'll see :-P
21:17:47 <Slereah_> Hello folks
21:18:04 <ais523> I guess I can advertise my new BF Joust program at impomatic too, now he's here
21:18:31 <oerjan> fizzie: i guess it's a _bit_ better. can you move the t-h more vertically like the j-x and the v more horizontally like the q? ideally i'd like the l-a-z-y-d to be symmetrically placed between the e and o, but it might be hard to fit with the rest on the right
21:18:46 <ais523> impomatic: http://esolangs.org/wiki/BF_Joust_strategies#2013
21:19:04 <fizzie> oerjan: I had made an alternative, more "griddy" look of https://dl.dropbox.com/u/113389132/Misc/20130209-eoderm4.png before you said that.
21:19:04 <impomatic> ais523: Definitely, looking now :-)
21:19:40 <Sgeo> impomatic, wtf
21:19:45 <Sgeo> how
21:19:47 <Sgeo> oh
21:19:59 <fizzie> I could make that one a bit more symmetric.
21:20:25 <oerjan> fizzie: hm yes if you move l-a-z-y-d in that a bit, it would look nice in a different way.
21:20:42 <oerjan> i think.
21:23:20 <fizzie> oerjan: https://dl.dropbox.com/u/113389132/Misc/20130209-eoderm5.png has l-a-z-y-d symmetric w.r.t. e/o, though I did fiddle with the o-w-n-f-o loop a bit too.
21:23:42 <oerjan> <ais523> Sgeo: there are any number of monad tutorials you could link them to… <-- i suddenly wonder if there's a monad tutorial for stoners
21:27:25 * ais523 defines the "any number" as the number of currently existing monad tutorials; it changes over time
21:27:47 <oerjan> fizzie: i say you upload that one :)
21:28:26 * impomatic wonders if it's possible to mimic space_hotel's decoy to confuse omnipotence :-P
21:28:46 <fizzie> I suppose I will need to pngcrunch it, because that has been done to the existing file too.
21:29:28 <fizzie> Also it currently has a transparent background, but maybe that is not a problem.
21:29:58 <oerjan> we'll have to check that
21:30:46 <oerjan> the current graph is on a white background anyway
21:31:10 <oerjan> i dunno if there are skins that make it different
21:34:27 <oerjan> <shachaf> and covariant/contravariant are confusing <-- just use "variant" and "ntravariant" hth
21:35:06 <shachaf> good moerjaning
21:35:24 <oerjan> the hi
21:35:24 <fizzie> It is (hopefully) done. Also made the version on the page to be the native size now that it's somewhat smaller overall; though it's still a bit bigger than what it was before.
21:36:22 <oerjan> um i thought it looked smaller.
21:36:35 <oerjan> than timwi's that is.
21:36:49 <fizzie> oerjan: Yes, but the old one was with |300px on the page.
21:37:24 <oerjan> oh right
21:37:39 <oerjan> i was looking at an old diff, which confused me
21:37:50 <oerjan> (the picture changed but not the page)
21:38:17 <fizzie> I don't know if the official way would've been to upload a different picture, and use that.
21:38:28 <fizzie> Since it's not really a new "version" of the previous picture.
21:38:28 <oerjan> fizzie: it's been a pleasure working with you sir (cackles madly)
21:38:59 <oerjan> (the work others do for you is the best)
21:39:17 <fizzie> (Also maybe the recommended way working with Mediawiki would've been to insert the SVG version and let it create the rasterizations? I don't know. It's all so multimedia these days.)
21:39:43 <oerjan> fizzie: oh right it probably is.
21:39:50 <oerjan> ais523 probably knows better.
21:40:13 <ais523> MediaWiki comes with optional SVG rasterization, I don't know if Esolang has it instaled
21:40:15 <ais523> *installed
21:40:24 <ais523> if it does, you just upload the SVG file and everything just works
21:42:08 <fizzie> ais523: If it's installed, and you include an uploaded SVG image on a page, does it actually put a raster version on the page, or does it expect browsers these days to manage SVG?
21:43:02 <ais523> it puts a raster version on the page
21:43:44 <oerjan> hm isn't it a bit bad that mediawiki historical article versions are shown with new versions of pictures?
21:45:03 <oerjan> probably that applies to templates too.
21:45:32 <ais523> oerjan: indeed, it does
21:46:05 <oerjan> perhaps it would be even more confusing the other way.
21:46:17 <fizzie> [[".svg" is not a permitted file type. Permitted file types are png, gif, jpg, jpeg.]] I guess that's a no-go. (Well, less work for me.)
21:46:43 -!- ogrom has quit (Quit: Left).
21:47:29 <oerjan> is there a way to link to the original editable version of a picture?
21:48:00 <elliott> how do i enable svg
21:50:11 <ais523> elliott: you need to install an extension, I think
21:50:20 <ais523> also an SVG renderer
21:50:36 <elliott> sounds like work
21:51:11 <shachaf> What's a good way to have email at my domain name?
21:51:39 <oerjan> you actually bought shach.af?
21:51:50 <kmc> shachaf: a lot of registrars will run free email forwarding for you
21:51:52 <kmc> that is the lazy way
21:52:06 <Sgeo> The sooner I'm not dependent on my dad's money the better
21:53:59 <shachaf> Maybe I should get hachaf.net so I can have the emails s@hachaf.net and t@hachaf.net (for when people want to thank me).
21:54:08 <ais523> the harder way is to hire or buy a mailserver, and point the domain name at the mailserver
21:54:22 <ais523> that's what I did with nethack4.org
21:54:26 <ais523> (which is a lots-of-things server)
21:54:35 <ais523> (although mostly nethack 4)
21:56:54 <fizzie> The middling way is presumably then to buy a mail redirection service you can point your own domain to. (I'm sure there are some.)
21:57:40 <fizzie> ais523: Incidentally, does MediaWiki have a "git blame" style view? I remember seeing a thing like that in something, but it might've been Confluence or some-such.
21:57:54 <ais523> fizzie: not by default
21:57:58 <ais523> there's probably an extension that does it by now
21:58:00 <kmc> when i was in high school i thought it great fun to run my own DNS and MX and such
21:58:09 <kmc> now it all seems like a total pain
21:58:11 <ais523> I don't run my own DNS
21:58:16 <ais523> do run my own mailserver, though
21:58:36 <kmc> i used djb approved software
21:58:37 <kmc> for everything
21:58:50 <kmc> djbdns, qmail, publicfile
21:58:59 <kmc> on openbsd
21:59:10 <kmc> i was one of the cool kids in high school for sure
21:59:26 <elliott> kmc: did you use /package
22:00:02 <kmc> yes
22:00:07 <oerjan> fizzie: what's git blame? i found on wikipedia an option for a button that gives you much more readable diffs for confusing edits
22:00:12 <kmc> is that djb's wacky init system that nobody else uses?
22:01:05 <fizzie> oerjan: The same as "svn annotate", it gives you a copy of the file with every line annotated with the revision (and committer) when it was last changed.
22:01:05 <elliott> no
22:01:08 <elliott> djb doesnt have an init system
22:01:14 <elliott> there's daemontools that you can run as pid 1 if you do hackery
22:01:22 <oerjan> so not the same
22:02:09 <kmc> by init system i meant not a replacement for /sbin/init but, like, a daemonizer
22:02:14 <kmc> poor choice of words
22:02:17 <kmc> anyway yes i used that thing
22:02:26 <oerjan> (wikEdDiff in the Gadget section, btw)
22:02:51 <elliott> kmc: /package is his weirdo packaging system
22:03:16 <fizzie> oerjan: Not quite, no. It's (sometimes) useful when the question you have is "who's responsible for this piece of text". (Of course sometimes all it tells you is who fixed the commas in it.)
22:03:46 <ais523> oerjan: the gadget things are written entirely in JS and CSS
22:04:10 <shachaf> Maybe I should get an SSL certificate.
22:04:13 <ais523> in fact, there's a large amount of stuff done like that that would be better done server-side, because of the ratio of the number of people who can work on client-side extensions, and on server-side extensions
22:04:53 <kmc> shachaf: http://www.startssl.com/ will give you one for free
22:05:21 <kmc> anyway yes
22:05:31 <kmc> you should run a HTTPS-only website with HSTS
22:05:37 <shachaf> If you can get one for free why do some people charge lots of money for them?
22:05:44 <kmc> and only allow RC4 and GCM-mode AES
22:05:48 <fizzie> You don't get all that much for free from StartSSL.
22:05:49 <kmc> i don't know
22:05:53 <oerjan> ais523: i think i saw someone desiring to merge that diff gadget into mediawiki proper, but it would require rewriting it in PHP. or maybe it was something else.
22:05:55 <kmc> wildcard certs is one
22:06:08 <kmc> StartSSL will give you a cert that is good for www.shachaf.net and shachaf.net but not *.shachaf.net
22:06:15 <kmc> you can however request another one with s/www/whatever/
22:06:20 <oerjan> s/desiring to/desiring that someone/
22:06:26 <ais523> wildcard certs are a scam
22:06:33 <fizzie> It also won't give you a cert that's good for www.shachaf.net, shachaf.net and servername.shachaf.net at the same time.
22:06:38 <ais523> there's no technical reason why they cost a lot more than specific certs
22:06:58 <elliott> ais523: s/^wildcard //
22:07:00 <ais523> but the certificate companies can get away with charging more for them, so they do
22:07:02 <ais523> elliott: well yes
22:07:07 <kmc> it's all, just, bits, man
22:07:11 <ais523> a small fee to allow for verification cost would be reasonable
22:07:16 <kmc> do you consider anything where pricing is set demand-side to be a 'scam'
22:07:16 <ais523> but they charge more than that /and/ they don't verify :)
22:08:40 <fizzie> As for getting multiple certificates for your different names, you need to use a not-supported-everywhere SSL/TLS extension (SNI) in order to use those with a single IP address.
22:09:03 <shachaf> How unsupported?
22:09:08 <kmc> why's that?
22:09:12 <fizzie> "As of November 2012, the only major user bases whose browsers do not support SNI appear to be users of Internet Explorer 8 or below on Windows XP and versions of Java before 1.7 on any operating system."
22:09:24 <shachaf> As of November 2012, the only major user bases whose browsers do not support SNI appear to be users of Internet Explorer 8 or below on Windows XP and versions of Java before 1.7 on any operating system.
22:09:28 <shachaf> Ah.
22:09:36 <kmc> oh server name whatever
22:09:43 <kmc> because SSL setup happens before a HTTP Host: header is sent, right
22:09:49 <shachaf> Right.
22:10:17 <fizzie> Admittedly it *is* quite widely supported by now.
22:10:46 <fizzie> Also you don't get anything else than an email address inserted into the free StartSSL certificate.
22:10:56 <fizzie> On the other hand, nobody will look at the certificate contents ever either, so...
22:10:56 <oerjan> <Sgeo> Language idea: A language where you write CPS-style code manually, but the syntax of the language is such that it feels natural <-- that's essentially levin's IO (not the modern language called IO)
22:12:41 <oerjan> fizzie: the "or below" is redundant, since IE >= 9 doesn't work on XP.
22:12:44 <elliott> oerjan: aka do notation
22:12:51 <ais523> elliott: good idea or bad idea? I wanted to restart Chromium without losing my currently opened tabs
22:12:57 <ais523> so I did killall -SEGV chromium-browser
22:13:03 <ais523> so it would think it had crashed, and try to recover
22:13:03 <elliott> ais523: I do killall -9 chromium
22:13:06 <oerjan> elliott: hm is that writing it manually though?
22:13:08 <fizzie> oerjan: I suppose then the "8" is redundant too.
22:13:18 <elliott> oerjan: seems like a fairly ill-defined notion
22:13:19 <oerjan> indeed.
22:13:26 <elliott> oerjan: do is at least the "most general" CPS notation
22:13:30 <elliott> mother of all monads etc.
22:14:11 <oerjan> elliott: well ok >>= is CPS, so i guess.
22:14:43 <elliott> oerjan: right, and do notation never uses "return"
22:14:46 <elliott> it is just (>>=)
22:14:50 <elliott> (+ fail, but for irrelevant reasons)
22:14:56 <elliott> (+ (>>), but that's obviously irrelevant also)
22:15:00 <shachaf> do notation is writing CPS manually.
22:15:06 <fizzie> It's not terribly expensive to go through StartSSL's identity validation, after which you can generate as many certificates as you like -- with expiration dates up to two years in the future -- during the 350 days that it's valid, and get your own name on them. (Apparently it's $60 now; I think it used to be cheaper.)
22:15:12 <oerjan> i suspect Java 1.7 isn't supported on XP either, i keep getting patches for 1.6 and no suggestion to upgrade.
22:15:20 <elliott> shachaf: That's the point.
22:15:54 <shachaf> elliott: Right. I'm agreeing with you(/whoever said it).
22:16:32 <elliott> oerjan: my understanding is that the continuation IO language defines ; to basically be a pass-a-continuation lambda, right?
22:16:39 <elliott> that's how I see do notation
22:16:46 <elliott> (except you write the lambda's parameter a statement early)
22:16:57 <oerjan> <ais523> so I did killall -SEGV chromium-browser <-- well did it work?
22:17:02 <ais523> oerjan: yes
22:17:08 <elliott> do { foo -> x; bar -> y; return z } -- I can imagine this as a possible alternate do notation syntax
22:17:14 <ais523> it'd be nice if there was a less obscure way to do that
22:17:17 <elliott> where you have lambda syntax (-> var; body)
22:17:24 <elliott> that's right-associative
22:17:28 <shachaf> What about idiom brackets?
22:17:31 <shachaf> That's a kind of CPS.
22:17:33 <elliott> so you can see that's literally writing CPS, the "do" part now does nothing
22:17:38 <shachaf> Except not really.
22:17:55 <shachaf> There's always the monad-embed sort of CPSing.
22:17:59 <elliott> shachaf: Applicatives are do notation where you never reference any of the variables you bind until the last statement.
22:18:16 <oerjan> elliott: IO syntax is iirc f x y -> var ; g z ...
22:18:16 <shachaf> elliott: Right.
22:18:16 <elliott> More or less.
22:18:20 <shachaf> Well...
22:18:25 <shachaf> And also the last statement is return.
22:18:45 <oerjan> where -> vars ; ... is a continuation.
22:19:02 <shachaf> do notation isn't strictly CPS.
22:19:05 <shachaf> But it's pretty close.
22:20:02 <oerjan> (and the -> vars is optional if the continuation takes no arguments)
22:21:24 <elliott> oerjan: so it's what I said
22:21:31 <elliott> you can just change the tokens and get
22:21:34 <elliott> f x y \ var -> g z ...
22:21:35 <elliott> etc.
22:21:47 <oerjan> i guess the difference with IO is you only have m () values, not m a)
22:21:50 <oerjan> *-)
22:21:55 <oerjan> *Io
22:22:01 <elliott> so if you accept that Io is writing continuations "manually" and "directly" as can be
22:22:08 <elliott> the only leap to do notation is that you move where the variable is bound
22:22:19 <elliott> which IMO is completely syntactic enough to still be direct
22:24:13 <oerjan> you need f x y $ \ var -> g z ... to get syntactically correct haskell though
22:25:15 <elliott> oerjan: yes. but that's just an issue of operator precedence, really
22:25:29 <elliott> consider $ \ as one token if you like
22:26:44 <oerjan> well it's an issue of those right-gobbling expression forms not being acceptable directly as arguments to functions, only operators. but minor difference.
22:26:53 <elliott> right
22:29:11 <oerjan> <oklopol> how much heat can a human handle? <-- i think they pretty much settled that at that fateful "sports" event, no?
22:29:54 <oerjan> http://en.wikipedia.org/wiki/World_Sauna_Championships
22:30:04 <oerjan> i guess the _dry_ case may still be open, hth
22:31:24 <oerjan> two nicks and both idle
22:32:07 <oerjan> or wait is high humidity supposedly worse
22:32:19 <oerjan> i guess i'll leave the science to the finns.
22:32:57 <FreeFull> Humidity makes sweating less effective
22:33:45 <oerjan> * Sgeo is now reading about a different Io language <-- hey no fair finding the solution before i tell you
22:34:08 <elliott> oerjan: I knew he said that all along and was hiding it from you
22:34:32 <oerjan> IT'S NOT FAIR
22:35:53 -!- Mathnerd314 has quit (Remote host closed the connection).
22:35:55 <oerjan> <Sgeo> By changing Io's stdlib, could I make it such that non-name-colliding monkeypatching is possible? <-- is hygienic monkeypatching a known term, please say yes
22:36:15 -!- Mathnerd314 has joined.
22:36:49 <oerjan> sadly google search is not optimistic
22:37:14 -!- Mathnerd314 has quit (Read error: Connection reset by peer).
22:39:07 <Sgeo> Do Scala implicit conversions count?
22:40:10 <oerjan> <nortti> traceroute 216.81.59.173
22:40:36 <oerjan> had to add -m 100 (actually 64)
22:40:50 <Sgeo> I originally thought that nortti intended to type that into console to do stuff
22:40:56 <Sgeo> When impomatic said it is when I tried it
22:40:57 <Taneb> Same
22:41:22 <Taneb> My interesting traceroute comment referred to elliott's hi
22:41:39 <oerjan> when impomatic said it is when i pasted it into a terminal window, then forgot about it until i found nortti in the logs.
22:41:49 <elliott> bash: traceroute: command not found
22:41:50 <elliott> good route
22:42:27 <oerjan> might be under something administrative?
22:42:49 * oerjan doesn't remember what that prefix is
22:43:20 <nortti> sbin?
22:43:27 <oerjan> that may be it
22:43:58 <Sgeo> oerjan, oh, didn't realize there was more to it than the little I saw
22:44:01 <elliott> sudo: traceroute: command not found
22:44:22 <oerjan> yeah without -m it got cut off early
22:45:46 <oerjan> elliott: it's not restricted here at nvg...
22:46:59 <elliott> i just dont have it installed
22:47:10 <oerjan> TRAGEDY
22:48:04 <oerjan> never actually reached the 216.81.59.173 IP btw
22:48:43 <elliott> ok so what is the thing
22:49:08 -!- Mathnerd314 has joined.
22:52:23 <oerjan> elliott: http://sprunge.us/dNgW
22:52:38 -!- augur has quit (Remote host closed the connection).
22:53:11 <oerjan> WARNING: it feels better to do it yourself with traceroute.
22:57:25 <elliott> too late
22:57:36 <oerjan> sad trombone
23:01:56 <fizzie> "tracepath" is what I did it with.
23:02:05 <fizzie> It seems to have ended up being installed by default, unlike traceroute.
23:03:13 <fizzie> (ubuntu-standard depends on iputils-tracepath, but not on traceroute/inetutils-traceroute.)
23:45:59 <fizzie> oerjan: I had that graph editor open, so I clicked together also a straight-lines-only crossing-free version starting from the Timwi layout; I don't think it's æsthetically an improvement, but I'm sure it'd win in some metrics: https://dl.dropbox.com/u/113389132/Misc/20130209-eoderm8.png
23:48:45 <oerjan> ah
23:50:41 <fizzie> (It's also even more compact.)
23:52:32 <FreeFull> Can you supply a non-planar graph to eodermdrone?
23:54:38 -!- Frooxius has quit (Read error: Connection reset by peer).
23:55:11 <fizzie> Sure, why not?
23:56:27 <oerjan> certainly
23:56:31 <Taneb> I don't think abcdeacebda is planar, for example
23:56:48 -!- Frooxius has joined.
23:57:10 <fizzie> I was this || close to giving a much longer K_5.
23:57:15 <fizzie> (I suppose that's what it is?)
23:57:17 <oerjan> aka "eodermdrome" hth
23:57:35 <fizzie> Ooooh, I never knew *that*.
23:57:55 <fizzie> It's like onions upon onions.
23:57:57 <fizzie> I mean, layers.
23:58:50 <Sgeo> ) '+';'-' @. 0
23:58:51 <jconn> Sgeo: |domain error
23:58:51 <jconn> Sgeo: | '+'; '-'@.0
23:59:56 <Sgeo> ) '+`- @. 0
23:59:56 <jconn> Sgeo: |open quote
23:59:56 <jconn> Sgeo: | '+`- @. 0
23:59:56 <jconn> Sgeo: | ^
2013-02-10
00:00:00 <Sgeo> ) +`- @. 0
00:00:00 <jconn> Sgeo: +
00:00:02 <Sgeo> hm
00:07:45 <oerjan> !bf [
00:08:08 <oerjan> !sh echo hi
00:08:09 <EgoBot> hi
00:08:14 <oerjan> !bf [+
00:08:19 <oerjan> fancy
00:08:28 <fizzie> ^bf [+
00:08:28 <fungot> Mismatched [].
00:08:39 <fizzie> fungot: You picky.
00:08:40 <fungot> fizzie: they say a gelatinous cube can paralyze you..." " er" " need we wait until morning then?" asked conan, eyeing his companion uneasily. " the eyes.
00:08:49 <fizzie> The eyes.
00:08:52 <oerjan> fizzie: i knew that.
00:09:06 <oerjan> ^ord Unmatched [.
00:09:06 <fungot> 85 110 109 97 116 99 104 101 100 32 91 46
00:09:10 <fizzie> oerjan: Someone just added a new entry in your learndb?
00:09:25 <oerjan> no it's pretty old
00:10:28 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
00:16:19 -!- Taneb has quit (Quit: Leaving).
00:20:49 <FreeFull> !sh ls
00:20:50 <EgoBot> interps \ lib \ slox
00:21:16 <FreeFull> !sh echo $SHELL
00:21:17 <EgoBot> ​/bin/sh
00:21:36 <FreeFull> !sh sh --version
00:21:37 <EgoBot> GNU bash, version 4.0.28(1)-release (x86_64-pc-linux-gnu) \ Copyright (C) 2009 Free Software Foundation, Inc. \ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> \ \ This is free software; you are free to change and redistribute it. \ There is NO WARRANTY, to the extent permitted by law.
00:22:28 -!- carado has quit (Ping timeout: 246 seconds).
00:27:42 <oerjan> `fueue ):[)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$$6-%0]][~~~)*[)~(:+~~-)+1]---256%):]~]][)~~[[)~[)[H]]][85 110 109 97 116 99 104 101 100 32 91 46H]~)~~~][]!]!][[~)])[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]]~[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~[[0]:[[0]<:[[0]<:]][48 33H])~!]]][~)~~!]
00:27:47 <HackEgo> Unmatched [.
00:27:50 -!- WeThePeople has joined.
00:27:52 <oerjan> excellent.
00:32:32 <oerjan> `run echo testing | fueue '):[)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[[)~[)[H]]][85 110 109 97 116 99 104 101 100 32 91 46H]~)~~~][]!]!]!]!][[0]:[[0]<:[[0]<:]][48 33H])~!][~)]'
00:32:34 <HackEgo> Unmatched [.
00:32:41 <oerjan> darn
00:34:27 <oerjan> oh wait the iffalse case is supposed to delete the iftrue one
00:36:41 <oerjan> `run echo testing | fueue '):[)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[[)~[)[H]]~!][85 110 109 97 116 99 104 101 100 32 91 46H]~)~~~][]!]!]!]!][[0]:[[0]<:[[0]<:]][48 33H])~!][~)] '
00:36:43 <HackEgo> u
00:37:11 <fizzie> HackEgo: NO U
00:37:59 <oerjan> ^ord Unmatched ].
00:37:59 <fungot> 85 110 109 97 116 99 104 101 100 32 93 46
00:40:02 <shachaf> ^ord Üñµätçhëd ⁆·
00:40:02 <fungot> 195 156 195 177 194 181 195 164 116 195 167 104 195 171 100 32 226 129 134 194 183
00:40:04 <shachaf> `ord Üñµätçhëd ⁆·
00:40:06 <HackEgo> 220 241 181 228 116 231 104 235 100 32 8262 183
00:40:14 <shachaf> Maybe µ is stretching it.
00:43:10 <olsner> > "Üñµätçhëd ⁆"
00:43:11 <lambdabot> mueval: recoverEncode: invalid argument (invalid character)
00:46:39 <oerjan> `fueue ):[)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~]][)~~[[85 110 109 97 116 99 104 101 100 32 93 46H][)~[))$11~<<~:(~:<]~!]~)~~~][)~~[[)~[)[H]]~!][85 110 109 97 116 99 104 101 100 32 91 46H]~)~~~][]!]!]!][[0]:[[0]<:[[0]<:]][48 33H])~!][~)]
00:46:41 <HackEgo> Unmatched ].
00:46:41 -!- Phantom_Hoover has joined.
00:56:37 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:58:24 <oerjan> `run echo so.. | fueue '):[)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[[50 33H][)~[))$11~<<~:(~:<]~!]~)~~~][)~~[[)~[)[H]]~!][49 33H]~)~~~][]!]!]!][[~)])[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]]~[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~[[0]:[[0]<:[[0]<:]][48 33H])~!]]][~)~~!] '
00:58:26 <HackEgo> 1!
00:58:31 <oerjan> eek
01:00:11 <shachaf> `quoerjan
01:00:13 <HackEgo> 109) <oerjan> alise: mainly it's the fact it blows so hard i cannot avoid hitting the walls of the thing, which completely goes against my basic public toilet hygiene principles \ 95) <oerjan> insufficient time dilation. try running faster. \ 16) <fungot> oerjan: are you a man, if there weren't evil in this kingdom to you! you shall find bekkler!
01:00:40 <shachaf> fungot: did you really say that
01:00:40 <fungot> shachaf: anu: anu was the most recent indian edifices.... the leucrocotta, a large and heavy and quiet boy, and there were many stones lying in what appeared to be a previously used crested helmet.
01:00:48 <shachaf> ^style
01:00:49 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack* pa qwantz sms speeches ss wp youtube
01:01:01 <shachaf> ^style irc
01:01:01 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
01:01:04 <shachaf> fungot
01:01:05 <fungot> shachaf: realise elinks w3m.) in our system
01:01:17 <shachaf> fungot: riddle me a riddle
01:01:18 <fungot> shachaf: if you're going to have a junk cons at the base for the eso os, i agreed to that contract, i leave.
01:04:10 <oerjan> `run echo now | fueue '):[)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[[50 33H][)~[))$11~<<~:(~:<]~!]~)~~~][)~~[[)~[)[H]]~!][49 33H]~)~~~][51H]!]!]!][[~)])[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]]~[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~[[0]:[[0]<:[[0]<:]][50 33H])~!]]][~)~~!] '
01:04:12 <HackEgo> 1!
01:04:18 <oerjan> same error, hm
01:05:37 -!- Phantom_Hoover has joined.
01:09:19 -!- Phantom__Hoover has joined.
01:10:44 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
01:15:26 -!- augur has joined.
01:25:19 -!- augur has quit (Remote host closed the connection).
01:43:39 -!- Phantom_Hoover has joined.
01:44:20 <ais523> <FreeFull> Can you supply a non-planar graph to eodermdrone? ← at one point I considered making that a way to exit
01:44:34 <ais523> btw, "eodermdrome" is the shortest "word" that produces one
01:44:47 <FreeFull> I see
01:44:48 <ais523> (it's not actually a word)
01:44:59 <ais523> it's not mine, it was taken from the book Making The Alphabet Dance
01:45:56 -!- Phantom__Hoover has quit (Ping timeout: 248 seconds).
01:51:57 -!- Phantom__Hoover has joined.
01:54:28 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
01:54:44 -!- Phantom_Hoover has joined.
01:57:08 -!- Phantom__Hoover has quit (Ping timeout: 248 seconds).
02:27:30 <oerjan> `run echo stupid bug | fueue '):[)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[[50 33H][)~[))$11~<<~:(~:<]]~)~~~][)~~[[)~[)[H]]~!][49 33H]~)~~~][51H]!]!]!][[~)])[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]]~[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~[[0]:[[0]<:[[0]<:]][50 33H])~!]]][~)~~!] '
02:27:32 <HackEgo> ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
02:27:52 <shachaf> what is fueue
02:28:18 <kmc> shachaf: do you know about /proc/self/pagemap ?
02:28:51 <oerjan> first i fixed a bug above because the iffalse case needed to delete the iftrue one, then now i had to fix that the iftrue tried to delete the iffalse case.
02:28:59 <shachaf> kmc: Hmm, no.
02:29:22 <kmc> it gives you various fun info: http://www.kernel.org/doc/Documentation/vm/pagemap.txt
02:29:26 <ais523> shachaf: http://esolangs.org/wiki/Fueue
02:29:40 <ais523> why don't you just try searching esolangs.org when someone mentions something that might be an esolang
02:29:50 <kmc> in particular you can get the physical page frame number for every page you've mapped
02:30:04 <shachaf> ais523: Because searching Google works just as well and is more general.
02:30:18 <ais523> being more general is /bad/ in this case
02:30:25 <shachaf> @google fueue
02:30:27 <lambdabot> http://esolangs.org/wiki/Fueue
02:30:27 <lambdabot> Title: Fueue - Esolang
02:30:28 <ais523> you're trying to look for something in particular, not other things with the same name
02:30:29 <shachaf> Seems fine to me.
02:30:31 <ais523> @google underload
02:30:33 <lambdabot> http://www.thefreedictionary.com/Underload
02:30:33 <lambdabot> Title: Underload - definition of Underload by the Free Online Dictionary, Thesaurus and ...
02:30:36 <shachaf> @google underload esolang
02:30:38 <lambdabot> http://esolangs.org/wiki/Underload
02:30:38 <lambdabot> Title: Underload - Esolang
02:30:42 <shachaf> wfm
02:30:53 <ais523> now you're doing more typing than you need to
02:31:12 <ais523> quite a lot more, actually, because it'd take me a while to switch to a Google or DuckDuckGo search box rather than an Esolang search box
02:31:16 <shachaf> That's less typing than typing esolangs.org/wiki/Special:Search?search=fueue
02:31:18 <ais523> (seems my browser's currently set to wikipedia)
02:31:56 <monqy> @google Most ever Brainfuckiest Fuck you Brain fucker Fuck
02:31:58 <lambdabot> http://esolangs.org/wiki/Most_ever_Brainfuckiest_Fuck_you_Brain_fucker_Fuck
02:31:58 <lambdabot> Title: Most ever Brainfuckiest Fuck you Brain fucker Fuck - Esolang
02:32:01 <monqy> thank you google!
02:32:12 <ais523> it can't be a very common phrase
02:32:26 <ais523> hmm, I wonder how many esolangs don't score first in a google search
02:32:28 <ais523> @google unlambda
02:32:30 <lambdabot> http://en.wikipedia.org/wiki/Unlambda
02:32:30 <lambdabot> Title: Unlambda - Wikipedia, the free encyclopedia
02:33:00 <Jafet> @google wierd
02:33:02 <lambdabot> http://www.urbandictionary.com/define.php?term=wierd
02:33:02 <lambdabot> Title: Urban Dictionary: wierd
02:33:06 <oerjan> hey _i_ managed to get an esolang search box, and i'm using IE!
02:33:23 <Jafet> Internet Esolangs
02:33:38 <monqy> @google twoducks
02:33:41 <lambdabot> http://www.twoduckshostel.com/
02:33:41 <lambdabot> Title: Two Ducks Hostel in Rome
02:34:30 <oerjan> @google moo
02:34:31 <lambdabot> No Result Found.
02:34:34 <ais523> @google malbolge
02:34:36 <lambdabot> http://en.wikipedia.org/wiki/Malbolge
02:34:36 <lambdabot> Title: Malbolge - Wikipedia, the free encyclopedia
02:34:45 <ais523> you'd expect that to go to the esolang because it uses an unusual spelling
02:34:49 <oerjan> now _that_ was unexpected
02:34:52 <oerjan> not finding moo
02:35:00 <Jafet> @google cow
02:35:01 <lambdabot> http://en.wikipedia.org/wiki/Cattle
02:35:01 <lambdabot> Title: Cattle - Wikipedia, the free encyclopedia
02:35:08 <shachaf> @google cow on write
02:35:10 <lambdabot> http://en.wikipedia.org/wiki/Copy-on-write
02:35:10 <lambdabot> Title: Copy-on-write - Wikipedia, the free encyclopedia
02:35:25 <shachaf> There should be a feature where you get a cow when you write.
02:35:41 <kmc> yes
02:35:53 <FreeFull> You'd either have a lot of cows or not write a lot
02:35:54 <kmc> kernel patch where instead of mmap() pages containing all zeroes, they contain cowsay
02:36:19 <FreeFull> Maybe you just get the same cow over and over
02:36:38 <shachaf> `cowsay hi
02:36:39 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: cowsay: not found
02:36:41 <kmc> you get the same cow until you write to it
02:37:00 <shachaf> Hmm, that would be cow *before* write.
02:37:29 * shachaf should write that strace-for-mmapped-pages program sometime.
02:39:57 <FreeFull> 0x006f6f4d
02:41:28 <kmc> now i want to write some kind of excessively pretty interactive javascript visualizer of all the pages mapped by processes on your system and the sharing beteen them
02:42:39 <ais523> kmc: it'd probably look boring
02:42:56 <ais523> also, don't programs normally rely on mmaped pages being zeroed out?
02:44:07 <shachaf> If they just mmap a new private page for themselves, sure.
02:44:14 <shachaf> Typically sharing pages is on purpose.
02:47:39 <kmc> yeah they do rely on that, so the cow thing would break a lot of stuff
02:48:00 <shachaf> Oh, you meant the cow thing.
02:48:07 <kmc> the visualization would basically cluster programs by what libraries they use
02:48:21 <kmc> and would group instances of the same binary of course
02:48:38 <kmc> so maybe it's not totally boring, but maybe it's not that interesting to do it at page granularity instead of just looking at ldd and such
02:52:14 <oerjan> `run echo comment | run fueue '):[)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[~:)~][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[[)~[)[H]]~!][49 33H]~)~~~][51H]!]!]!]!][[0]:[[0]<:[[0]<:]][50 33H])~!][~)] '
02:52:16 <HackEgo> bash: run: command not found
02:52:22 <oerjan> oops
02:52:27 <oerjan> `run echo comment | fueue '):[)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[~:)~][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[[)~[)[H]]~!][49 33H]~)~~~][51H]!]!]!]!][[0]:[[0]<:[[0]<:]][50 33H])~!][~)] '
02:52:29 <HackEgo> c
02:53:02 <oerjan> only [ left in this phase...
02:55:48 -!- DH____ has quit (Ping timeout: 248 seconds).
02:58:45 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
03:25:42 -!- WeThePeople has quit (Quit: Leaving).
03:44:30 -!- noam_ has joined.
03:46:54 -!- noam has quit (Ping timeout: 264 seconds).
04:04:26 <shachaf> oerjan: more info plz
04:04:33 <shachaf> f :: forall a b c. ((a -> b) & (b -> c)) -> a -> c
04:04:57 <shachaf> <elliott> I don't know the exact name for it... what's important to realise it that it types every untyped lambda calculus term, IIRC.
04:05:34 <oerjan> i'm not sure i recall the exact name either
04:05:58 <shachaf> well can you tell me things about it
04:06:52 <oerjan> well it has disjunction types, as above, and also a type omega which types everything.
04:07:54 <oerjan> so being typeable in itself isn't very interesting, but if you restrict _where_ omega can appear in the types, you can type precisely those lambda terms which have weakly normal forms. also typing is preserved by beta reduction - _both_ ways.
04:08:21 <shachaf> Right, that was my original question.
04:08:23 <oerjan> and terms which have _strongly_ normal forms have types that don't contain omega, iirc.
04:08:39 <oerjan> and in fact principal such.
04:09:34 <oerjan> the above type is, i believe, the principal type for church numeral 2.
04:10:12 <shachaf> That's where it came up.
04:11:32 <oerjan> and also iirc the only terms which can share that principal type are beta-eta-equivalent to the normal form
04:12:18 <oerjan> that part is a bit vaguer
04:12:55 <oerjan> lessee, \x -> x has type a -> a, naturally
04:13:35 <oerjan> \x y -> x y has type (a -> b) -> a -> b, which is a substitution of the former
04:14:10 <oerjan> so \x -> x also has that type, but not principally, which means \x y -> x y must beta-eta-reduce to \x -> x. i think.
04:14:13 <shachaf> What about \x -> x x?
04:14:46 <oerjan> ((a -> b) & a) -> b, i assume
04:15:11 <oerjan> there was an algorithm for finding the type, but i've forgotten that
04:15:44 <oerjan> it may have been in the "famous" book by barendregt: "lambda calculus, it's syntax and semantics"
04:16:58 * oerjan finds a chapter list
04:16:59 <shachaf> Lambda Calculus: What is it? It's Syntax and Semantics!
04:18:37 <oerjan> hm looking at an online version, i have doubts.
04:19:37 <oerjan> it doesn't cover types until the appendix. must be another book.
04:29:42 <oerjan> it may be called intersection types, not disjunction types
04:30:37 -!- copumpkin has joined.
04:32:36 <oerjan> shachaf: his book "Lambda calculus with types" mentions intersection types on page 449 and onwards, although i don't think it's the book i remember
04:34:40 <oerjan> oh wtf it's not my job to do a literature search for this.
04:34:53 <oerjan> (stopping now) :P
04:34:58 <shachaf> OK.
04:35:00 * shachaf was just curious.
04:35:08 <shachaf> The name "interesection types" is helpful, thanks!
04:36:19 <kmc> i read it as "intercession types"
04:36:41 <oerjan> as expected, the [ case seems to have the most awkward queue shuffling
04:37:22 <oerjan> i need to convert [pcont][reader][loopflag] into ):[reader][[loopflag])[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]]~[pcont]][loopflag true]
04:40:28 <oerjan> oh hm
04:42:45 -!- augur has joined.
05:15:06 -!- TeruFSX has joined.
05:22:52 -!- Nisstyre-laptop has quit (Ping timeout: 240 seconds).
05:25:06 -!- Nisstyre-laptop has joined.
05:38:13 <oerjan> `run yes|fueue '):[)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[)~~[)~<[<<<~(~~~<)~][)[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]])(~~)~]~~]<~[[~)~~!]):]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[[85 110 109 97 116 99 104 101 100 32 93 46H][)~[))$11~<<~:(~:<]]~)~~~][)~~[[)~[)[H]]~!][49 33H]~)~~~][51H]!]!]!]!][[0]:[[
05:38:14 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
05:39:05 <oerjan> lines: too damn big
05:40:00 <oerjan> oh hm duh there's a long message
05:40:32 <oerjan> `run yes|fueue '):[)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[)~~[)~<[<<<~(~~~<)~][)[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]])(~~)~]~~]<~[[~)~~!]):]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[[48 33H][)~[))$11~<<~:(~:<]]~)~~~][)~~[[)~[)[H]]~!][49 33H]~)~~~][51H]!]!]!]!][[0]:[[0]<:[[0]<:]][50 33H])~!][~)]'
05:40:59 <oerjan> eep
05:41:02 <HackEgo> bash: line 1: 279 Broken pipe yes \ 280 Killed | fueue '):[)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[)~~[)~<[<<<~(~~~<)~][)[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]])(~~)~]~~]<~[
05:41:23 <oerjan> `run echo ya|fueue '):[)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[)~~[)~<[<<<~(~~~<)~][)[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]])(~~)~]~~]<~[[~)~~!]):]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[[48 33H][)~[))$11~<<~:(~:<]]~)~~~][)~~[[)~[)[H]]~!][49 33H]~)~~~][51H]!]!]!]!][[0]:[[0]<:[[0]<:]][50 33H])~!][~)]'
05:41:52 <HackEgo> bash: line 1: 279 Done echo ya \ 280 Killed | fueue '):[)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[)~~[)~<[<<<~(~~~<)~][)[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]])(~~)~]~~
05:42:00 <oerjan> something tells me that's not good
05:45:35 <oerjan> oh duh it's a missing bracket
05:45:59 <oerjan> and the interpreter hangs up instead of giving an error
05:46:58 <oerjan> `run echo ya|fueue '):[)~~[~:~~~)<[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~]][)~~[)~~[)~<[<<<~(~~~<)~][)[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]])(~~)~]~~]<~[[~)~~!]):]][)~~[~:~~~)<[)~~[)$--1[)~]<~~<)<[)$%0]][):]~]][)~~[[48 33H][)~[))$11~<<~:(~:<]]~)~~~][)~~[[)~[)[H]]~!][49 33H]~)~~~][51H]!]!]!]!]!][[0]:[[0]<:[[0]<:]][50 33H])~!][~)] '
05:47:00 <HackEgo> yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
05:47:06 <oerjan> ya!
05:49:33 <monqy> not quite `yes` yet
05:49:52 <oerjan> that was actually just ,[.] in brainfuck
05:49:59 <shachaf> `yes monqy
05:50:00 <HackEgo> monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy \ monqy
05:50:04 <monqy> hi shachaf
05:50:09 <shachaf> hi
06:09:08 -!- ogrom has joined.
06:11:27 <kmc> `yes /
06:11:29 <HackEgo> ​/ \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \
06:30:22 <shachaf> `? monqy
06:30:24 <HackEgo> The friendship monqy is an ancient Chinese mystery; ask itidus21 for details.
06:30:31 <monqy> hi???
06:30:33 <shachaf> `seen itidus21
06:30:37 <HackEgo> not lately; try `seen itidus21 ever
06:30:43 <shachaf> `seen itidus21 EVER
06:30:47 <HackEgo> not lately; try `seen itidus21 ever
06:30:48 <shachaf> `seen itidus21 ever
06:30:54 <HackEgo> 2012-10-13 12:14:44: <itidus21> the odd thing was me re-posting the topic with the linebreaks based on the width of my xchat window
06:35:47 -!- asiekierka has quit (Ping timeout: 248 seconds).
06:41:35 -!- asiekierka has joined.
06:44:11 <oerjan> `run echo why is this working | fueue ')[)~~[)$--1[)~]<~~<)<[)$%0]][):]~[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~[[49 33H])[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]]~[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~[[0]:[[0]<:[[0]<:]][50 33H])~!]]]]][))$11~<<~:(~:<][)[[48 33H])~[)[H]]~~!]!]'
06:44:13 <HackEgo> why is this working
06:45:14 <oerjan> `run echo and this | fueue ')$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[))(($3~)<(]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]])[))(($3~)<(][0]:[[0]<:[[0]<:]][3
06:45:15 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
06:45:20 <oerjan> oops
06:45:53 <oerjan> `run echo now | fueue ')$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][][))$11~<<~:(~:<]])[))(($3~)<(]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]])[))(($3~)<(][0]:[[0]<:[[0]<:]][33H]'
06:45:54 <HackEgo> ​ \ won
06:46:16 <oerjan> i just convinced myself , should break on NUL's...
06:51:55 <oerjan> `fueue )))~$([[)[~~~~()+1])][0]$%~~1)][][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)[H]]~:]][33]
06:52:10 <oerjan> fancy
06:52:26 <HackEgo> No output.
06:52:41 <oerjan> `echo hm | fueue )))~$([[)[~~~~()+1])][0]$%~~1)][][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)[H]]~:]][33]
06:52:42 <HackEgo> hm | fueue )))~$([[)[~~~~()+1])][0]$%~~1)][][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)[H]]~:]][33]
06:52:47 <oerjan> `run echo hm | fueue )))~$([[)[~~~~()+1])][0]$%~~1)][][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)[H]]~:]][33]
06:52:48 <HackEgo> bash: -c: line 0: syntax error near unexpected token `)' \ bash: -c: line 0: `echo hm | fueue )))~$([[)[~~~~()+1])][0]$%~~1)][][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)[H]]~:]][33] '
06:52:58 <oerjan> `run echo hm | fueue ')))~$([[)[~~~~()+1])][0]$%~~1)][][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)[H]]~:]][33] '
06:53:00 <HackEgo> 104
06:56:27 -!- azaq23 has joined.
06:56:36 -!- azaq23 has quit (Max SendQ exceeded).
06:57:15 <oerjan> `fueue )[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)[H]]~:][0]
06:57:16 <HackEgo> 0
06:57:21 <oerjan> `fueue )[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)[H]]~:][33]
06:57:23 <HackEgo> 33
07:05:26 <oerjan> `run cat /dev/null | fueue ')))~$([[)[~~~~()+1])][0]$%~~1)][][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)[H]]~:]][33] '
07:05:28 <HackEgo> 33
07:05:56 <oerjan> `fueue )))~$([[)[~~~~()+1])][0]$%~~1)][][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)[H]]~:]][33]
07:06:27 <HackEgo> No output.
07:06:52 <oerjan> `cat -
07:07:00 <oerjan> ic
07:07:18 <oerjan> it's an accident of stdin blocking there
07:07:23 <HackEgo> No output.
07:08:46 <oerjan> oh the rev simply works because it always reads into a zero cell
07:09:42 <oerjan> hm...
07:10:09 <oerjan> `printf \n\n\n\n\n\n
07:10:11 <HackEgo> No output.
07:10:15 <oerjan> `printf \n\n\n\n\n\na
07:10:17 <HackEgo> ​ \ \ \ \ \ \ a
07:10:57 <oerjan> hah and the cat seemed to work because hackego removes trailing newlines which were what were printed by the "no change" NULs :P
07:11:31 <oerjan> `printf a\n\n\n\n\n\n
07:11:33 <HackEgo> a
07:16:09 <oerjan> i guess a bf implementation which treats EOF as NUL and no change simultaneously is a bit unusual, *cough*
07:18:05 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
07:19:36 -!- Nisstyre-laptop has joined.
07:23:40 <oerjan> `run echo -n why is this working | fueue ')[)~~[)$--1[)~]<~~<)<[)$%0]][):]~[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~[[49 33H])[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]]~[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~[[0]:[[0]<:[[0]<:]][50 33H])~!]]]]][))$11~<<~:(~:<][)[[48 33H])~[)[H]]~~!]!]'
07:23:42 <HackEgo> why is this workingggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
07:23:48 <oerjan> XD
07:36:27 <Sgeo> `slist
07:36:28 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
07:37:25 -!- oerjan has quit (Quit: Good night).
07:48:21 -!- stuntaneous has joined.
08:11:35 -!- sirdancealot7 has quit (Ping timeout: 244 seconds).
08:12:41 -!- ais523 has quit.
08:17:45 -!- yours_truly has joined.
08:21:08 -!- stuntane has joined.
08:24:26 -!- stuntaneous has quit (Ping timeout: 276 seconds).
08:34:34 <zzo38> <[th]s0[st]s1[nd]s2[rd]s3dBr100%d10%r10/1-1 0 1i*d3-1d0i*`0+L+>
09:01:32 -!- yours_truly has quit (Quit: Leaving).
09:06:02 -!- Taneb has joined.
09:07:44 -!- Taneb has quit (Client Quit).
09:07:58 -!- Taneb has joined.
09:12:02 <Taneb> What's Opera like as a browser
09:12:22 <shachaf> zzo38: I disagree.
09:12:48 <zzo38> shachaf: Why do you disagree?
09:17:48 <oklopol> the % should be an ¤
09:18:26 <Gregor> My sleep schedule feels pretty broken when I wake up naturally at 4AM.
09:18:35 -!- DHeadshot has joined.
09:18:39 <elliott> Gregor: it can get much worse
09:18:43 <monqy> much worse
09:18:57 <zzo38> oklopol: Then you make it like that if you want.
09:18:58 <oklopol> at some point last year i woke up at midnight and went straight to work
09:19:12 <oklopol> left at 16, went to sleep
09:19:21 <oklopol> good times
09:19:25 <Sgeo> Going to sleep at 6pm until 3am is not a good thing
09:19:36 <Sgeo> Although I've done worse than that
09:19:39 <elliott> its not that awful a thing
09:19:43 <elliott> just think of it as a real early morning
09:19:53 <elliott> it's bad if you're bad at waking up in the dark depending on location tho
09:20:02 <shachaf> zzo38: A hunch.
09:20:15 <oklopol> it's a bad thing if there are bad social/work consequences. caused me no problems.
09:20:34 <elliott> by bad I mean it makes you feel awful
09:20:37 <oklopol> nowadays i got to sleep between 22 and 23 and wake up at 8. girlfriends SUCK :(
09:21:17 <monqy> maybe a boy friend would be better
09:21:34 <oklopol> yeah we could gay up all night.
09:23:27 -!- TeruFSX has quit (Ping timeout: 276 seconds).
09:24:47 <zzo38> shachaf: What hunch?
09:25:59 <shachaf> zzo38: http://www.youtube.com/watch?v=GPdzCZdvBp0
10:23:24 -!- monqy has quit (Quit: hello).
10:24:10 -!- sirdancealot7 has joined.
10:30:45 <Taneb> shachaf, what do you make of last night's Homestuck update
10:31:04 <shachaf> Taneb: I don't read Holmes Tuck.
10:31:30 <Taneb> That's irrelevant
10:31:43 <shachaf> It's probably pretty BAD.
10:32:09 <Taneb> Yes
10:32:14 <Taneb> One character isn't wearing pants
10:32:21 <Taneb> And has been called out on it by his grandmother
10:45:16 -!- sirdancealot7 has quit (Read error: Connection reset by peer).
10:53:27 <Sgeo> And also by his granddaughter
10:53:54 <shachaf> And also by Taneb.
10:54:14 <Taneb> Sgeo, by that logic 1 is prime
10:54:41 <shachaf> i love logic
10:57:00 <Sgeo> grandmadaughter is overpowered
10:57:31 <shachaf> monoids are easy
11:01:06 <Taneb> It's such a deus ex machina for Jake and Jane
11:02:17 <Sgeo> How did Jade know what was going on, exactly?
11:02:23 <Sgeo> Is she omniscient now too?
11:02:36 <Taneb> First guardian powers
11:02:47 <Taneb> Wait, that doesn't grant omniscient
11:03:28 <shachaf> imo this is offtopic
11:03:39 <shachaf> y'all'ren't talking about esolangs
11:04:06 <Sgeo> Surely ~ATH counts
11:04:24 <Taneb> And Brazil isn't a vegetable
11:04:26 <Sgeo> Although I guess it was used for a practical purpose
11:04:57 <Taneb> What, dooming everybody Karkat ever met?
11:05:12 <Sgeo> And summoning an evil invincible demon
11:10:11 <Sgeo> shachaf, is summoning an evil invincible demon too practical for an esolang?
11:10:58 <zzo38> Sgeo: Maybe. Make it a evil invisible demon instead of invincible.
11:12:06 -!- Phantom_Hoover has joined.
11:12:17 <zzo38> "You have bitshifted the result of a boolean expression and used it as an array index to avoid using ?: or an if statement." Have you done things like that?
11:12:23 <Sgeo> Phantom_Hoover, you should try to catch up
11:12:32 <Phantom_Hoover> ugh
11:12:42 <Phantom_Hoover> i haven't followed my webcomic list for like
11:12:43 <Phantom_Hoover> ever
11:12:50 <Phantom_Hoover> well over a month
11:13:04 <Sgeo> don
11:13:09 <Sgeo> don't logread, there are spoilers
11:13:15 <Phantom_Hoover> the backlog is now a sort of mental augean stable
11:13:54 <Phantom_Hoover> wating faithfully for some sort of... hercules to wash it away in a... torrent of... reading
11:19:16 -!- Phantom_Hoover has quit (Remote host closed the connection).
11:43:44 <Sgeo> I cannot sing along with Wormsong 2011
11:43:47 <Sgeo> The lyrics are just wrong
11:45:05 <zzo38> Can you correct them?
11:47:38 <Sgeo> I can listen to Wormsong 2003 instead
11:47:52 -!- sebbu2 has joined.
11:48:07 -!- sebbu2 has quit (Changing host).
11:48:07 -!- sebbu2 has joined.
11:49:08 -!- sebbu has quit (Ping timeout: 248 seconds).
11:59:21 <Vorpal> hm what was the name of that software that HackEgo and EgoBot use for the sandbox?
11:59:47 <elliott> UMLBox
12:03:12 <Vorpal> ah
12:03:13 <Vorpal> thanks
12:03:21 <Vorpal> elliott, he wrote that himself right?
12:03:35 <Vorpal> yeah
12:04:07 <elliott> yeah
12:04:17 <FreeFull> Hey, why is
12:04:23 <Vorpal> no package in debian for it :/
12:04:31 <FreeFull> Hey, why is (=>>) not part of the Comonad instance in Control.Comonad ?
12:04:38 <Vorpal> elliott, what was the old one? That was based on some crazy debian-only thingy
12:04:56 <elliott> plash
12:05:03 <elliott> FreeFull: It's defined separately.
12:05:08 <Vorpal> I forgot what was wrong with plash
12:05:08 <FreeFull> Doesn't this mean you can't define your own, and have to rely on the built-in definition?
12:05:10 <elliott> "extend" is equivalent.
12:05:15 <elliott> (It's just flipped.)
12:05:16 <FreeFull> Ah
12:05:27 <FreeFull> (=>>) = flip extend ?
12:05:44 <FreeFull> Fair enough
12:07:37 <FreeFull> Oh, right
12:08:37 <FreeFull> I know why fail "something" :: Either String a doesn't return Left "something" but it's inconvienient
12:09:02 <FreeFull> I guess you'd want a separate monad that constricts the failure value to a string?
12:09:57 <elliott> If you can avoid fail you probably should.
12:10:34 <FreeFull> True
12:11:09 <FreeFull> For Boolean I can think of two monoid instances, And and Or. Would Xor work as a monoid instance too?
12:11:25 <Taneb> No, there's no identity
12:11:32 <shachaf> Yes there is?
12:11:32 <FreeFull> Ah, yeah
12:11:37 <Taneb> Is there?
12:11:38 <FreeFull> 0 is the identity
12:11:41 <Taneb> Of course
12:11:42 <Taneb> :(
12:11:44 <FreeFull> Well, False
12:11:54 <elliott> FreeFull: Any/All are the newtype wrappers for those Monoid instances
12:12:38 <FreeFull> I don't think Nor or Nand are monoids
12:12:57 <elliott> shachaf: Is xor actually a monoid?
12:13:03 <elliott> semigroups defines xor for non-empty lists.
12:13:06 <elliott> I presume there's a reason for that.
12:13:25 <shachaf> Because it's semigroups?
12:13:31 <elliott> shachaf: It doesn't define and/or/etc.
12:13:33 <elliott> Just xor.
12:13:46 <shachaf> The Prelude defines and/or/etc. but not xor
12:14:24 <elliott> Are you suggesting it has xor even though you can (in this hypothetical) define xor perfectly normally and well-behavedly on full lists just for the hell of it, despite not having anything else like that?
12:14:29 <elliott> It's edwardk, he'd define the [] version.
12:14:34 <elliott> Why restrict it unless it has to be?
12:15:07 <FreeFull> Let me look up the monoid laws
12:15:18 <shachaf> Maybe xor is a useful operation on nonempty lists in particular?
12:15:49 <elliott> @check True
12:15:50 <FreeFull> xor does seem to follow the laws
12:15:52 <lambdabot> Not in scope: `myquickcheck'
12:15:54 <elliott> Ugh.
12:16:14 <shachaf> elliott: xor is the most well-behaved operation in the world.
12:16:34 <shachaf> (Bool,False,(/=)) is definitely a monoid.
12:17:00 <elliott> Hmm.
12:17:03 <elliott> So what's up with that?
12:17:36 <FreeFull> Well, monoids are semigroups
12:17:52 <FreeFull> And someone probably didn't like xor being a monoid
12:20:39 <shachaf> xor is so great
12:20:41 <shachaf> a^b=c
12:20:43 <shachaf> b^a=c
12:20:47 <shachaf> c^a=b
12:20:49 <shachaf> a^c=b
12:20:51 <shachaf> b^c=a
12:20:58 <shachaf> c^b=a
12:21:02 <FreeFull> Yes
12:21:03 <shachaf> All of those mean the same thing!
12:21:36 <FreeFull> Assuming a, b and c don't get modified or are distinct
12:24:22 <shachaf> xor isn't short-circuiting, sadly.
12:24:27 <shachaf> Well, I guess that's not so sad.
12:25:13 <elliott> shachaf: What should the newtype for Xor be called?
12:25:15 <elliott> All, Any, ...?
12:25:57 <shachaf> Odd?
12:26:06 <elliott> That feels about numbers.
12:26:42 <shachaf> It doesn't need a newtype.
12:27:28 <elliott> Sure it does.
12:32:10 <shachaf> Unbalanced.
12:32:19 <shachaf> Hmm, no, that's just wrong.
12:37:27 <FreeFull> Flip?
12:40:54 <Sgeo> Toggle
12:40:56 <Sgeo> Hmm, no
12:41:08 <Sgeo> Toggle may be better than Flip but only 1 toggles
12:41:10 -!- zzo38 has quit (Remote host closed the connection).
12:41:33 <FreeFull> Exclusive?
12:44:31 -!- sebbu2 has changed nick to sebbu.
13:00:01 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
13:11:06 -!- hagb4rd has joined.
13:23:38 <hagb4rd> @tell kmc darn! you forgot to turn off the light in the refrigerator once again.
13:23:38 <lambdabot> Consider it noted.
13:27:47 <FreeFull> If monads are monoids, are comonads comonoids?
13:28:31 <shachaf> Aren't comonads also monoids, or something?
13:33:33 -!- carado has joined.
13:34:31 <elliott> It's unlikely anything is a comonoid.
13:35:23 <Taneb> A comonoid, you'd have to split it, right?
13:35:38 <Taneb> And everything splits into comempty and itself
13:36:07 <elliott> I hear comonoids are completely boring in Hask.
13:36:17 <elliott> You end up with x -> (x, x) where the laws require \x -> (x, x) or something.
13:36:51 <shachaf> elliott: Are you sure about that second part?
13:37:09 <elliott> I think that's what edwardk told me.
13:37:13 <elliott> Certainly x -> (x, x) is an interesting type.
13:37:24 <elliott> e.g. splitting name supplies
13:45:28 -!- carado has quit (Remote host closed the connection).
13:49:42 -!- carado has joined.
13:52:44 -!- ogrom has quit (Quit: Left).
14:02:31 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
14:03:33 <FreeFull> elliott: Wouldn't that not apply with the restraint Comonoid x
14:04:00 <elliott> ?
14:04:13 <FreeFull> And the behaviour would depend on the comonoid instance of x, rather than always leading to \x -> (x,x)
14:04:31 * elliott doesn't know what's unclear about "where the laws require \x -> (x, x)"
14:04:54 <FreeFull> What are the comonoid laws?
14:05:40 <FreeFull> Lessee
14:06:50 <shachaf> Shouldn't the dual of (a,a) -> a be a -> Either a a?
14:07:13 <Taneb> Ssh
14:08:20 -!- DHeadshot has quit (Ping timeout: 248 seconds).
14:08:54 <FreeFull> For the Sum monoid, mappend a b = c has an infinite number of values for a and b that will produce c
14:09:20 -!- hagb4rd has joined.
14:09:56 <FreeFull> So I'm thinking the Comonoid instance would have something like comappend c = ([0,1..],[c,c-1..])
14:10:01 <FreeFull> Although that might not make sense
14:10:29 <FreeFull> Well, technically ([comempty,comempty+1..],[c,c-1..])
14:14:35 <elliott> comempty would be x -> ().
14:17:05 -!- DHeadshot has joined.
14:49:10 -!- Phantom_Hoover has joined.
14:54:48 <Phantom_Hoover> i...
14:54:57 <Taneb> you...
14:55:02 <Phantom_Hoover> think i just had haute cuisine haggis
14:55:11 <Taneb> My god
14:55:22 <Taneb> In Warwick!?
14:55:38 <Phantom_Hoover> no, i was back home for the weekend
14:55:54 <Phantom_Hoover> also don't let the name fool you, the university of warwick is in coventry
14:56:18 <Taneb> :O
15:03:23 <Phantom_Hoover> OK
15:03:43 <Phantom_Hoover> is it just me, or is it incredibly, pointlessly hard to get a USB headset working on Arch?
15:08:21 <Phantom_Hoover> i am now restarting
15:08:25 <Phantom_Hoover> to get some fucking headphones working
15:08:31 -!- Phantom_Hoover has quit (Remote host closed the connection).
15:11:09 -!- TeruFSX has joined.
15:11:34 -!- Phantom_Hoover has joined.
15:36:43 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
15:36:50 <Phantom_Hoover> i feel like as i move south the scenery should get less snowy, not more
15:38:17 -!- WeThePeople has joined.
15:38:37 <Gregor> My Little Haskell: Lenses are Magic
15:38:40 <Gregor> *wheeeeeeeeew*
15:38:46 <Gregor> I had to say that somewhere, better here than there.
15:41:00 -!- Nisstyre-laptop has joined.
15:42:03 <hagb4rd> look like you run a little late. lens have been completely demystified in that channel.
15:42:39 <hagb4rd> gregor: have you done sth usefull using lens?
15:42:54 <Gregor> I don't Haskell much.
15:43:19 -!- DHeadshot has quit (Read error: Connection reset by peer).
15:43:28 -!- DH____ has joined.
15:49:42 <hagb4rd> gregor: have you got your new accordion?
15:50:23 <Gregor> I got one in Indiana, if that's what you mean, but it's kind of meh.
15:50:34 <Gregor> I'm still looking for (and not finding) a better one.
15:51:50 -!- WeThePeople has quit (Quit: Leaving).
15:52:59 <hagb4rd> yes, it's hard at least in that low-price-class
15:53:16 <Gregor> Indeed *sigh*
15:54:28 -!- Gracenotes has quit (Ping timeout: 248 seconds).
15:54:35 <hagb4rd> and some 2nd hand instruments seems to be more expensive than the fresh-manufactured
15:57:29 <Gregor> If they're being sold by someone who knows what they're selling, yeah.
15:57:42 <Gregor> But I'm in the "what the heck is this, I'll just invent a price" market ;)
16:15:14 -!- WeThePeople has joined.
16:24:36 -!- DH____ has quit (Read error: Connection reset by peer).
16:24:44 -!- DHeadshot has joined.
16:29:19 -!- DHeadshot has quit (Ping timeout: 256 seconds).
16:30:13 <augur> http://network-tools.com/default.asp?prog=express&host=216.81.59.173
16:30:18 <augur> this is something one of you people would do
16:30:57 <FreeFull> Is [] a free monad?
16:31:08 <augur> no
16:31:17 <augur> the free monad is the term monad
16:32:24 <augur> [] is the free monoid functor tho
16:33:36 <FreeFull> I wonder when Haskell people realised "Hey, we can create a monad instance"
16:33:40 <FreeFull> Wait, no
16:33:42 <FreeFull> monad class
16:34:11 <augur> after moggi
16:34:38 <augur> moggi wrote some stuff, wadler read it and was impressed
16:51:12 -!- augur has quit (Remote host closed the connection).
16:55:10 <FreeFull> Hmm, the first moggi paper on monads seems to be from 1988
17:09:29 -!- carado has quit (Remote host closed the connection).
17:10:01 -!- carado has joined.
17:16:09 -!- Gracenotes has joined.
17:23:46 -!- DHeadshot has joined.
17:28:09 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
17:35:37 -!- DHeadshot has quit (Ping timeout: 256 seconds).
17:36:50 -!- Taneb has quit (Read error: Connection reset by peer).
17:37:27 -!- DHeadshot has joined.
17:39:08 -!- hagb4rd has joined.
17:39:52 -!- Taneb has joined.
17:42:01 -!- DHeadshot has quit (Read error: Connection reset by peer).
17:42:21 -!- DHeadshot has joined.
17:49:16 -!- WeThePeople has quit (Quit: Leaving).
17:55:34 -!- augur has joined.
17:56:20 * Sgeo is starting to get a hatred of channels that don't put freenode staff on the access list
18:00:51 -!- Taneb has quit (Quit: Leaving).
18:04:15 -!- sirdancealot has joined.
18:09:13 <Phantom_Hoover> Sgeo, wat
18:10:13 <fizzie> I suppose that's a roundabout way of saying #esoteric.
18:10:16 <Sgeo> There's someone in #scala with a horribly broken connection, and no ops online, and #freenode can't do anything because they're not on the access list
18:10:24 -!- hagb4rd has quit (Ping timeout: 264 seconds).
18:10:28 <Sgeo> I think #esoteric has freenode staff on the access list
18:10:43 <Sgeo> -ChanServ- 6 freenode-staff +AFRfiorstv [modified 34 weeks, 1 day, 03:31:10 ago]
18:10:58 <Sgeo> I don't know if that line, without the ... hostmask thing, is effective or not
18:11:17 <fizzie> That seems a relatively recent thing.
18:11:41 <fizzie> I didn't even know it was a recommended practice. It certainly hasn't been.
18:11:58 <Phantom_Hoover> is that the result of the Plazma Incursion
18:12:48 -!- hagb4rd has joined.
18:15:23 <Sgeo> I don't know which one is a recommended practice
18:16:45 <fizzie> "Staff can be given access by providing [nick] as "*!*@freenode/staff/*".", on the Using the Network page.
18:16:52 -!- oklofok has quit (Ping timeout: 248 seconds).
18:16:53 <fizzie> I suppose it's a reasonably neutral statement, though.
18:17:28 <fizzie> #freenode has both "*!*@freenode/staff/*" and "freenode-staff" on the list.
18:17:29 -!- oklofok has joined.
18:18:24 <Sgeo> After seeing #scala , and a similar situation in the past, I have a strong preference
18:19:56 <fizzie> I see "freenode-staff" is nowadays our founder, too; might explain why it's on the list.
18:20:32 -!- DHeadshot has quit (Read error: Connection reset by peer).
18:20:45 -!- DHeadshot has joined.
18:25:54 -!- DHeadshot has quit (Read error: Connection reset by peer).
18:36:02 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
18:43:41 <Vorpal> !help
18:43:42 <EgoBot> ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
18:43:46 <Vorpal> !info
18:43:47 <EgoBot> ​EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null
18:43:57 <Vorpal> `help
18:43:58 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
18:44:02 <Vorpal> hm
18:44:17 <Vorpal> where is the hack ego bot code repo, as opposed to the file system repo
18:46:00 <Vorpal> specifically I'm looking for how he set up umlbox
18:50:08 <Gregor> Vorpal: http://bitbucket.org/GregorR/hackbot
18:50:23 <Vorpal> thanks
18:50:45 <Vorpal> Gregor, that does not contain the call to umlbox?
18:50:56 <Vorpal> Gregor, which is what I was looking for
18:51:08 <Vorpal> Gregor, specifically how you set up the socket stuff
18:51:21 <Vorpal> Gregor, because that umlbox-mudem has me confused
18:51:25 <Gregor> That DOES contain the call to umlbox.
18:51:38 <Gregor> If you want to know how umlbox itself works, then look at the umlbox code.
18:51:39 <Vorpal> oh not in runner.sh?
18:51:56 <Vorpal> I thought you ran umlbox outermost
18:52:16 <Gregor> No, it runs a umlbox per call.
18:52:25 <Vorpal> aaah
18:52:25 <Gregor> `uptime
18:52:29 <HackEgo> ​ 18:52:27 up 0 min, 0 users, load average: 0.00, 0.00, 0.00
18:52:32 <Gregor> `uptime
18:52:33 <HackEgo> ​ 18:52:33 up 0 min, 0 users, load average: 0.00, 0.00, 0.00
18:53:16 <Vorpal> `run echo $HOME
18:53:17 <HackEgo> ​/tmp
18:53:41 <Vorpal> Gregor, so where do you use the mudem thing?
18:53:58 <Gregor> mudem is all handled by umlbox, it's just the -R in the args that make it run.
18:54:12 <Vorpal> ah
18:54:22 <Gregor> The problem is that uml doesn't provide an especially reliable pipe to/from the host.
18:54:29 <Vorpal> Gregor, but what about direct connections to the internet? Is that possible at all?
18:54:33 <Vorpal> from inside the box
18:54:35 <Gregor> No.
18:54:38 <Gregor> That's kinda the idea.
18:54:52 <Vorpal> Gregor, well I was wondering if it was possible to set that up
18:54:54 <Vorpal> oh well
18:54:59 <Gregor> It'd be possible to set it up with, say, a SOCKS proxy.
18:55:15 <Gregor> If you want direct connections, you could adjust it to make umlbox use slip.
18:55:19 <Vorpal> hm I guess I could use -R and then an socat in my case
18:55:33 <Vorpal> Gregor, slip? lol what?
18:55:53 <Vorpal> is that a pre-PPP thingy?
18:56:31 <Gregor> Yes, but there's a program, the name of which I forget, that simulates a whole network stack for one end of a slip connection. UML and Qemu both use/include a derivative of it.
18:56:42 <Vorpal> oh, nice
18:56:43 <fizzie> Slirp, I guess?
18:56:49 <Gregor> That's what I was looking for.
18:56:56 <Vorpal> Gregor, I thought qemu used a virtual ethernet adapter?
18:57:04 <Gregor> Yes, but that connects to slirp.
18:57:10 <Vorpal> and then a tun interface on the host
18:57:13 <Vorpal> really? okay
18:57:17 <Gregor> You can use tun if you want.
18:57:21 <Gregor> Or you can hook it to slirp.
18:57:24 <Gregor> slirp is all usermode.
18:57:24 <Vorpal> I see
18:57:29 <Vorpal> fair enough
18:57:44 <Vorpal> well I think -R and an socat would work for my case
18:57:47 <fizzie> Oh, I didn't know qemu's user-mode networking was a SLIRP derivative.
18:57:49 <fizzie> Fancy.
18:58:46 <Vorpal> wait.. -R takes a host?
18:58:53 <Vorpal> does that mean I don't need a socat in between
18:58:59 <Vorpal> if I want to connect to just one fixed host
19:00:04 <Gregor> Yeah, -R8080:google.com:80 would give you a pipe to google.
19:00:05 <Vorpal> Gregor, so I would say connect to, say, 127.0.0.1:1234 in the box, then put in -R1234:example.org:80?
19:00:07 <Vorpal> yeah
19:00:13 <Vorpal> perfect
19:00:16 <Vorpal> any plans for ipv6?
19:00:36 <Gregor> I don't think there's anything particularly missing for it, would just need to be integrated into mudem.
19:00:46 <Vorpal> fair enough, not a pressing need for me
19:00:49 <Gregor> The big issue is that the mudem is unreliable because there's no initial handshake...
19:00:50 <Vorpal> was just curious
19:00:59 <Vorpal> Gregor, oh?
19:01:15 <Gregor> UML doesn't provide a reliable pipe into/out of the virtual system, like I mentioned.
19:01:23 <Vorpal> ah
19:01:24 <Gregor> So to make it not suck, you need some kind of handshake between them.
19:01:33 <Gregor> I never bothered to make that work properly, so mudem is spotty.
19:01:36 <Vorpal> so what do you use for your bots then?
19:01:45 <Gregor> I use that, it just sucks.
19:01:49 <Vorpal> ah
19:11:18 <Vorpal> Gregor, so in what ways is it unreliable
19:11:22 <Vorpal> what can I expect failing
19:12:57 <Vorpal> Gregor, hm it just says "Terminated"?
19:13:44 <Vorpal> Gregor, when I try to use -R
19:14:29 <Vorpal> Gregor, and without said forwarding it is of no use to me
19:14:30 <Vorpal> sigh
19:15:45 <Vorpal> Gregor, I don't know how to debug python :/
19:16:08 * Gregor reappears.
19:16:14 <Vorpal> thank god
19:16:25 <Gregor> Generally speaking, mudem will work "fine" if you put some time between starting the session and actually trying to use a connection.
19:16:29 <Vorpal> #whenever I try to use -R it just says terminated, I'm trying to use it to a remote
19:16:33 <Vorpal> oh okay
19:16:37 <Vorpal> I will try add a sleep then
19:16:42 <Gregor> No guarantees X-D
19:16:51 <Gregor> (Like I said, unreliable)
19:16:51 <Vorpal> Gregor, err nope
19:16:59 <Vorpal> Gregor, I tried to forward a port and run ls
19:17:02 <Vorpal> it just said terminated
19:17:12 <Vorpal> so this is not THAT issue it seems
19:17:18 <Gregor> And if you do it without port forwarding, it works?
19:17:23 <Vorpal> yep
19:17:34 <Gregor> Run it with -v then
19:17:36 <Vorpal> -R6697:myircserver:6697 is what I tried
19:17:55 <Vorpal> Gregor, kernel panic in uml
19:18:01 <Vorpal> let me pastebin
19:19:08 <Vorpal> Gregor, I'm using the debian uml package kernel as the README suggested
19:19:11 <Vorpal> does that matter?
19:19:17 <Gregor> Should work.
19:19:22 <Vorpal> Gregor, anyway, here it is but replaced with google http://sprunge.us/ghVK
19:19:27 <Vorpal> Gregor, also I use debian testing
19:20:10 <Gregor> Well that's strange >_O
19:20:15 <Vorpal> arvid@tux /tmp $ $HOME/local/umlbox/bin/umlbox -v -B -R6697:google.com:6697 --copy-cwd ls
19:20:17 <Gregor> What happens if you use -n < /dev/null ?
19:20:18 <Vorpal> that was the command
19:20:25 <Vorpal> Gregor, on which part?
19:20:33 <Vorpal> after ls?
19:20:38 <Gregor> Use -n as an option, and append < /dev/null
19:20:41 <Gregor> Don't put the -n after ls :)
19:20:54 <Vorpal> same crash
19:21:10 <Vorpal> Gregor, 64-bit debian testing
19:21:42 <Vorpal> Gregor, if I remove the forward it works just fine
19:22:14 <Gregor> Oh look, it fails for me too X-D
19:22:20 <Vorpal> okay
19:22:27 <Vorpal> Gregor, so you don't use this feature then?
19:22:36 <Vorpal> now what do I do :/
19:22:38 <Vorpal> plash?
19:23:38 <Gregor> I guess X-D
19:23:43 <Gregor> G'luck installing it.
19:23:51 <Gregor> This is really weird. Why is it working on codu X-D
19:23:52 <Vorpal> Gregor, you aren't going to fix this right now?
19:23:58 <Vorpal> oh well
19:24:07 -!- impomatic has quit (Read error: Connection reset by peer).
19:24:08 <Vorpal> Gregor, I have no idea where to even start to look
19:24:19 <Vorpal> Gregor, but if you find out what differs on codu, please tell me
19:26:37 <Vorpal> !c char*a,b[9999];main(){gets(a=b);while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);}
19:26:42 <EgoBot> No output.
19:27:15 <Vorpal> !c char*a,b[9999]="test string";main(){a=b;while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);}
19:27:17 <EgoBot> est string
19:27:26 <Vorpal> well, that was fairly boring
19:27:41 <Gregor> It does more, but you need an interesting input X-D
19:28:05 <Vorpal> !c char*a,b[9999]="THIS... IS... INTERESTING!";main(){a=b;while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);}
19:28:08 <EgoBot> HIS... IS... INTERESTING!
19:28:13 <Vorpal> Gregor, nope!
19:29:34 <Vorpal> Gregor, any suggestions for more interesting inputs?
19:29:42 <Vorpal> !c char*a,b[9999]="654321";main(){a=b;while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);}
19:29:45 <EgoBot> 54321
19:29:53 <Vorpal> !c char*a,b[9999]="123456";main(){a=b;while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);}
19:29:55 <EgoBot> 23456
19:30:08 <Vorpal> !c char*a,b[9999]="121212";main(){a=b;while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);}
19:30:10 <EgoBot> 21212
19:30:13 <Vorpal> !c char*a,b[9999]="111121212";main(){a=b;while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);}
19:30:16 <EgoBot> 11121212
19:30:28 <Vorpal> Gregor, I give up
19:30:41 -!- augur has quit (Remote host closed the connection).
19:31:21 <Gregor> Vorpal: It's subleq you nut
19:31:30 <Vorpal> oh okay
19:31:37 <FreeFull> What are you trying to do?
19:31:41 <Vorpal> I'm too tried to read that sort of C code today
19:31:48 <Vorpal> FreeFull, live a successful life?
19:32:03 <Gregor> Being in #esoteric is your first mistake ;)
19:32:21 <Vorpal> hah
19:32:27 <Vorpal> anyway
19:32:42 <Vorpal> Gregor, what version of debian is on codu?
19:32:57 <Gregor> `cat /etc/debian_version
19:32:58 <HackEgo> cat: /etc/debian_version: No such file or directory
19:33:04 <Gregor> Hm, really thought that might work X-D
19:33:18 <Vorpal> $ cat /etc/debian_version
19:33:18 <Vorpal> 7.0
19:33:26 <Gregor> Yeah, it's running testing.
19:33:31 <Deewiant> `lsb_release -a
19:33:32 <Vorpal> okay
19:33:34 <HackEgo> No LSB modules are available. \ Distributor ID:Debian \ Description:Debian GNU/Linux \ Release:n/a \ Codename:n/a
19:33:42 <Vorpal> n/a
19:33:43 <Vorpal> yeah
19:33:44 <Vorpal> right
19:34:01 <hagb4rd> `run lsb_release -a
19:34:03 <HackEgo> No LSB modules are available. \ Distributor ID:Debian \ Description:Debian GNU/Linux \ Release:n/a \ Codename:n/a
19:34:13 <Vorpal> `uname -a
19:34:14 <HackEgo> Linux umlbox 3.0.8-umlbox #2 Sun Nov 13 21:30:28 UTC 2011 x86_64 GNU/Linux
19:34:24 <Vorpal> hm 64-bit too
19:34:26 <Vorpal> so uh
19:35:14 <Vorpal> $ ~/local/umlbox/bin/umlbox -B uname -a
19:35:14 <Vorpal> Linux (none) 3.2.35 #2 Fri Jan 4 23:20:55 UTC 2013 x86_64 GNU/Linux
19:35:15 <Vorpal> wait what
19:35:20 <Vorpal> hm
19:35:24 <Vorpal> Gregor, different kernel
19:35:39 <Vorpal> $ uname -a
19:35:40 <Vorpal> Linux tux 3.2.0-4-amd64 #1 SMP Debian 3.2.35-2 x86_64 GNU/Linux
19:35:41 <Vorpal> so yeah
19:36:05 <Vorpal> huh, no build date?
19:36:35 <Vorpal> Gregor, where did you get the kernel from on codu? And can you put up a copy of that so I can test with that
19:39:36 <Gregor> On codu I'm using the kernel that umlbox builds if you ask it to.
19:39:44 <Gregor> But I'm using that here too.
19:40:41 <Vorpal> hm okay
19:40:44 <Vorpal> so it isn't that then
19:40:50 <Vorpal> Gregor, any sysctl differences?
19:40:52 <Vorpal> or such
19:40:56 <Vorpal> iptables setup?
19:41:29 <Gregor> It seems to have something to do with using the ttys in uml, not networking.
19:42:03 <Vorpal> Gregor, okay, how do I deal with that?
19:42:14 <Vorpal> Gregor, not run it interactively?
19:42:30 <Gregor> That's why I was suggesting -n < /dev/null
19:42:44 <Vorpal> well that didn
19:42:49 <Gregor> Yeah, I know.
19:42:50 <Vorpal> didn't* do a difference
19:43:07 <Vorpal> Gregor, anyway it is using that -R line that triggers it
19:43:24 <Gregor> Yes, I'm aware.
19:43:27 <Gregor> Like I said, I can repro.
19:43:31 <Vorpal> so how is it tty related
19:43:33 <Vorpal> :/
19:43:39 <Gregor> The mudem attaches via tty.
19:43:43 <Vorpal> aha
19:47:05 <Vorpal> Gregor, the README: "Alternatively, you may extract Linux 3.4.4 to umlbox/linux-3.4.4 (substitute
19:47:06 <Vorpal> "
19:47:14 <Vorpal> Gregor, yet you have 3.0.8 on the server
19:47:26 <Vorpal> Gregor, are you sure you have 3.0.8 locally?
19:47:31 <Vorpal> if not that could be the difference
19:47:34 <Gregor> Locally I certainly don't.
19:47:43 <Gregor> I doubt that that's the difference, but anything's possible.
19:47:49 <Vorpal> Gregor, well maybe that it is, why not try the kernel from there?
19:47:53 <Vorpal> for umlbox
19:48:02 <Gregor> Because I'm doing other stuff and intend to debug later X-D\
19:49:29 <Vorpal> Gregor, upload that kernel for me and I'll test it
19:50:02 <Gregor> http://codu.org/tmp/umlbox-linux
19:50:18 <Vorpal> Length: 2597176 (2,5M) [text/plain]
19:50:19 <Vorpal> hrrm
19:50:34 <Vorpal> bc4ca95329341d20e92b702d5f6f8695 umlbox-linux
19:50:37 <Vorpal> correct md5sum?
19:50:46 <Gregor> Yup
19:52:26 <Vorpal> Gregor, that did it
19:52:32 <Vorpal> well
19:52:41 <Vorpal> it now complains about the initramfs
19:52:49 <Vorpal> or wait
19:52:50 <Vorpal> no
19:52:52 <Vorpal> nvm
19:52:53 <Gregor> Soooooo, that made it fail in a different way? X-D
19:53:00 <Vorpal> Gregor, permission issues on the file
19:53:09 <Vorpal> I guess umlbox-linux needs to be executable
19:53:11 <kmc> md5 :(
19:53:11 <lambdabot> kmc: You have 1 new message. '/msg lambdabot @messages' to read it.
19:53:29 <Vorpal> Gregor, yeah still crash
19:53:44 <Vorpal> Gregor, so no such luck
19:54:51 -!- ais523 has joined.
19:54:59 <ais523> @messages?
19:54:59 <lambdabot> Sorry, no messages today.
19:55:48 <Vorpal> ais523, hi
19:56:11 <Vorpal> bbl
19:57:09 <ais523> hi
19:57:11 <ais523> and bye
19:59:38 -!- monqy has joined.
20:13:30 -!- augur has joined.
20:14:52 -!- oerjan has joined.
20:15:59 <Vorpal> ais523, back'
20:16:01 <Vorpal> back*
20:16:08 <ais523> wb
20:18:01 -!- pikhq has quit (Ping timeout: 244 seconds).
20:18:10 -!- pikhq has joined.
20:25:03 <Sgeo> `slist no actual update, but the RSS feed changed
20:25:04 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
20:25:13 <Sgeo> Currently trying to see what
20:25:22 <Vorpal> what does slist do
20:25:33 <Vorpal> `type slist
20:25:34 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: type: not found
20:25:39 <Vorpal> `run type slist
20:25:40 <HackEgo> slist is /hackenv/bin/slist
20:25:53 <Vorpal> `run url /hackenv/bin/slist
20:25:56 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip//hackenv/bin/slist
20:26:00 <Vorpal> `run url bin/slist
20:26:02 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/slist
20:26:16 <Vorpal> oh I see
20:26:36 <Vorpal> Sgeo, what is the point of that
20:31:27 <Sgeo> Ping people when Homestuck updates
20:33:56 <Vorpal> ah
20:34:27 -!- Phantom_Hoover has joined.
20:34:31 <Vorpal> night
20:35:16 <Sgeo> night
20:41:25 -!- zzo38 has joined.
20:52:08 -!- sebbu2 has joined.
20:52:09 -!- sebbu2 has quit (Changing host).
20:52:09 -!- sebbu2 has joined.
20:52:15 -!- sebbu has quit (Ping timeout: 256 seconds).
20:53:27 <oerjan> 12:10:34: <FreeFull> True
20:53:27 <oerjan> 12:11:09: <FreeFull> For Boolean I can think of two monoid instances, And and Or. Would Xor work as a monoid instance too?
20:53:43 <zzo38> XOR is a monoid too.
20:53:46 <oerjan> and, or, xor, and the dual of xor (eqv or something?)
20:53:55 <FreeFull> Yes, we did talk about xor
20:53:57 <oerjan> zzo38: yes that was mentioned, i just wanted to add one
20:54:04 <zzo38> You can do boolean XOR in Haskell using (/=)
20:54:46 <FreeFull> And != in C
20:55:30 <zzo38> Yes, if you are using actual booleans
20:55:31 <kmc> xor is addition mod 2
20:55:43 <kmc> so yes it's a monoid and a group
20:56:07 <kmc> 'and' is multiplication on the same elements
20:56:27 <oerjan> False * x = x and x * False = x leaves only True * True to vary, so Or and Xor are the only ones with identity False, by duality And and Eqv are the only ones with identity True
20:56:36 <kmc> together you have the finite field of size 2
20:58:07 <Sgeo> In J, b. can be used for all possible binary boolean functions
20:59:01 <Sgeo> 1 (2b.) 0
20:59:06 <Sgeo> ) 1 (2b.) 0
20:59:06 <jconn> Sgeo: |ill-formed number
20:59:11 <Sgeo> ) 1 (2 b.) 0
20:59:11 <jconn> Sgeo: 1
20:59:42 <Sgeo> http://www.jsoftware.com/docs/help701/dictionary/dbdotn.htm
21:00:09 <oerjan> i suppose the dual of xor doesn't have a settled name since C doesn't include an operator for it.
21:00:35 <Sgeo> ==?
21:00:43 <oerjan> bitwise, Sgeo
21:00:53 -!- Phantom_Hoover has quit (Remote host closed the connection).
21:01:40 <oerjan> googling "names of boolean operators" gives wikipedia's C operators on top :(
21:01:55 <Sgeo> a xor b xor all1
21:01:57 <Sgeo> ?
21:02:14 <oerjan> a _name_ Sgeo, not an expression.
21:02:32 <oerjan> a name when spoken, to be precise.
21:02:38 -!- Phantom_Hoover has joined.
21:03:15 <FreeFull> http://en.wikipedia.org/wiki/Logical_connective#Common_logical_connectives
21:04:07 <oerjan> ah i found "XNOR"
21:05:02 <oerjan> or that.
21:05:17 * oerjan is grumpy today, if you cannot tell.
21:08:45 <oerjan> <shachaf> Maybe xor is a useful operation on nonempty lists in particular? <-- given that x xor x is empty, it wouldn't be closed...
21:10:55 <oerjan> or is that an analogue to or and and, so gives a boolean? still makes no sense to require nonemptiness indeed
21:20:22 -!- ais523 has quit (Read error: Operation timed out).
21:20:56 -!- sebbu has joined.
21:20:57 -!- sebbu has quit (Changing host).
21:20:57 -!- sebbu has joined.
21:21:09 <oerjan> <Sgeo> -ChanServ- 6 freenode-staff +AFRfiorstv [modified 34 weeks, 1 day, 03:31:10 ago] <-- i vaguely suspect that happened when andreou got deregistered, and freenode-staff automatically became the new founder
21:21:43 -!- sebbu2 has quit (Ping timeout: 256 seconds).
21:21:49 <Sgeo> It was 6th on the list though
21:22:00 <oerjan> yes but it has the F founder flag
21:24:09 <oerjan> fizzie: ^
21:25:26 <kmc> all hail lord xnor
21:25:46 <oerjan> xnor the notorious
21:27:56 -!- DHeadshot has joined.
21:28:06 -!- augur has quit (Remote host closed the connection).
21:29:20 <fizzie> oerjan: <fizzie> I see "freenode-staff" is nowadays our founder, too; might explain why it's on the list.
21:29:46 -!- ais523 has joined.
21:30:48 <oerjan> that was the next line i read in the logs, yes :P
21:35:08 <Sgeo> Who is John freenode-staff?
21:36:47 <Sgeo> Is there any chance of granting access to *!*@freenode/staff/*
21:36:47 <Sgeo> ?
21:36:55 <oerjan> <Gregor> UML doesn't provide a reliable pipe into/out of the virtual system, like I mentioned. <-- is that why the web proxy keeps failing?
21:37:03 <Gregor> Yes.
21:38:30 <zzo38> Sgeo: Grant access of what? Can't they do it by themself if they need to, if it is already freenote-staff on the founter list?
21:38:50 <Sgeo> zzo38, they said it's a placeholder accoun
21:38:51 <Sgeo> account
21:40:05 <oerjan> i didn't even know access add could take a wildcard nickname. i thought it stored accounts, not nicks...
21:40:28 <zzo38> Still I don't think you should right now. If it is capable to do so then you can make it once they tell you to do so, if they do.
21:40:31 <Gregor> What sort of a network is it where you can DENY access to staff >_O
21:40:54 <oerjan> Gregor: seems silly
21:41:10 <Sgeo> I just learned the name of one of the auto-kline chanels
21:41:12 <Sgeo> channels
21:41:22 <zzo38> On my IRC server I have configured it not to deny anyone.
21:41:34 <zzo38> Sgeo: What happens if you use a MODE or TOPIC request on one of those?
21:41:50 <Sgeo> I don't know
21:41:58 <Sgeo> But I know if you join it you get banned from Freenode
21:42:36 <zzo38> Or a CS INFO request?
21:42:37 <oerjan> zzo38: the idea is not that they demand it, it's that freenode staff for some reason cannot help out the channel without it, if no ops are present.
21:42:53 <oerjan> which is silly.
21:43:41 <zzo38> Then wait until they do need to help out the channel.
21:43:44 <oerjan> <Gregor> Yes. <-- well that makes it one of the top outstanding bugs, i'd say.
21:43:46 <Sgeo> -ChanServ- Registered : Nov 20 11:12:45 2009 (3 years, 11 weeks, 6 days, 10:30:28 ago)
21:43:46 <Sgeo> -ChanServ- Mode lock : +mnstcP
21:43:46 <Sgeo> -ChanServ- Flags : GUARD PRIVATE
21:44:04 <Sgeo> oerjan, political stuff I guess
21:44:18 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
21:44:32 <Gregor> oerjan: It is the top outstanding bug in UMLBox, yes.
21:45:47 <Sgeo> zzo38, I don't know how to get the topic of a channel I'm not in
21:45:59 <oerjan> Gregor: btw my fueue experiments in the channel hid a bug for the longest time because HackEgo's stripping of final newlines made me not realize input of EOF was instead interpreted as doing no change. (so when i piped echo without -n into a cat it gave the right result :P)
21:45:59 <zzo38> Sgeo: Use the command TOPIC and the channel name.
21:46:04 -!- Nisstyre-laptop has joined.
21:46:06 <zzo38> (Same as a channel you are in)
21:46:22 <Sgeo> zzo38, I think client fills that in for me
21:46:27 <Sgeo> I guess I can use raw
21:46:37 <oerjan> *into a cat simulation
21:46:59 <zzo38> (Although in some channel the TOPIC command fails if you are not in.)
21:47:03 <Sgeo> "You're not on that channel"
21:47:26 <Gregor> Y'know, both HackEgo and UMLBox have bug trackers X_X
21:47:29 <zzo38> (I think the mode +s might control that)
21:48:49 <oerjan> Gregor: i'm not sure that one counts as a bug, it was just wicked that somehow all my example runs conspired to hide the bug
21:48:58 <oerjan> *as a bug in HackEgo
21:49:28 <oerjan> also i have an irrational fear of bug trackers
21:51:06 <zzo38> I added a note in Internet Quiz Engine documentation that says you can make comments with #<xxxxxxxx>xxxxxxx to make a tagged comment which might be used with other programs for formatting, metadata, and other purposes. Internet Quiz Engine itself ignores them but other front-ends might use them.
21:52:00 <oerjan> `run echo example | fueue ')[)~~[)$--1[)~]<~~<)<[)$%0]][):]~[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~[[49 33H])[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]]~[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~[[0]:[[0]<:[[0]<:]][50 33H])~!]]]]][))$11~<<~:(~:<][)[[48 33H])~[)[H]]~~!]!]'
21:52:03 <HackEgo> example
21:52:07 <oerjan> `run echo -n example | fueue ')[)~~[)$--1[)~]<~~<)<[)$%0]][):]~[~~~~<)[)))~$([[)[~~~~()+1])][0]$%~~1)][]]~[[49 33H])[))$12~[:]<<$4~~~<[)$--1[$8~)$4<[)$$6-%0[)]]<]~)~:~]~[!~)~~[)[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]]<<[1)]]~[)~~[)$--1[)~]<~~<)<[)$$7--1]][~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]~[[0]:[[0]<:[[0]<:]][50 33H])~!]]]]][))$11~<<~:(~:<][)[[48 33H])~[)[H]]~~!]!]'
21:52:09 <HackEgo> exampleeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
21:52:30 <Sgeo> I guess I shouldn't even _mention_ the channel name here, lest someone gets tempted
21:52:36 <Sgeo> Just one little click
21:52:41 <Sgeo> So tempting
21:52:42 <zzo38> Sgeo: OK then don't mentioned
21:53:32 <zzo38> (Although depending on the client clicking it won't necessarily have any effect.)
21:54:55 <zzo38> So if you want to make other front-end for Internet Quiz Engine, for use with HTML, Android, DOS, Commodore 64, or whatever, then you can do if you want to, whether or not you want to use these tagged comments.
21:55:09 <Sgeo> As other people have said, it's like a BIG RED BUTTON that says DO NOT PUSH
21:55:40 <zzo38> Sgeo: And you will want to take it apart to see how it is wired.
21:55:46 <zzo38> (Rather than pushing it)
21:58:09 <Phantom_Hoover> Sgeo, what is it
21:58:19 <Phantom_Hoover> i don't need your damn protection
21:59:29 <Sgeo> If you start spreading it around to people maliciously, Freenode staff might look at me as suspicious
21:59:39 -!- oerjan has set topic: DO NOT PUSH | char*a,b[9999];main(){gets(a=b);while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);} | a mutiny of clowns http://codu.org/logs/_esoteric/.
21:59:48 <Phantom_Hoover> is the deal that joining it gets you k-lined?
21:59:57 <Sgeo> yes
22:00:23 <Sgeo> Although there are a lot of other people in the place where the name got exposed, so
22:00:25 <zzo38> I don't really like that, but that is what they do.
22:00:34 <Sgeo> Also, we're discussing it here on public record, so
22:01:09 <Sgeo> Told PH
22:01:09 -!- augur has joined.
22:01:32 <Phantom_Hoover> wtf is the point of that
22:02:03 <zzo38> I think having such channel would cause many problems.
22:03:31 <Phantom_Hoover> is it a dumb joke or something?
22:03:34 <Sgeo> It has a simple name. I always thought those channels would have gibberish names
22:03:56 <Sgeo> Phantom_Hoover, presumably if malware tries to use it for a botnet thing
22:05:20 <zzo38> There may be better ways to avoid such malware though?
22:05:45 <Sgeo> I think that just preventing the channel from existing would work bette
22:05:47 <Sgeo> better
22:05:51 <Sgeo> autoban from channel on join
22:25:42 -!- TeruFSX has quit (Ping timeout: 276 seconds).
22:29:08 <Phantom_Hoover> awww
22:29:17 <Phantom_Hoover> google maps doesn't have streetview for norilsk
22:34:51 <kmc> middle of nowhere
22:34:59 <Sgeo> If I didn't have IRC or any other online chat, would I go insane from lack of talking to people?
22:35:10 <fizzie> There is no streetview from Luxembourg, and very many places from Germany; cf. https://dl.dropbox.com/u/113389132/Misc/20130210-streetview.png
22:35:12 <oerjan> `run echo 'fixed?' | fueue ')))~$([[)[~~~~()+1])][0]$%~~1)][)[)[~[0]~])][~!]][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)[H]]~:]][33] '
22:35:13 <kmc> maybe you would talk to some people in person
22:35:14 <HackEgo> 102
22:35:19 <Sgeo> Is IRC in fact sufficient to prevent that sort of insanity?
22:35:27 <oerjan> `run cat /dev/null | fueue ')))~$([[)[~~~~()+1])][0]$%~~1)][)[)[~[0]~])][~!]][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)[H]]~:]][33] '
22:35:29 <HackEgo> 0
22:35:38 <Phantom_Hoover> kmc, there's not much nowhere north of Norilsk, so IDK if it counts as the middle.
22:36:22 <kmc> heh
22:36:24 <kmc> fair enough
22:36:34 <kmc> arctic ocean counts as nowhere
22:36:59 <oerjan> not any more, it has oil and gas!
22:36:59 <kmc> google does have street view on the Dalton Highway
22:37:51 <Phantom_Hoover> Sgeo, I'm sure one of the channel's many psychologists could help you, and would be only too happy to do so.
22:38:08 <fizzie> Google has "street"view from some coral reefs. http://maps.google.com/help/maps/streetview/gallery/ocean/ has links.
22:38:54 <Sgeo> The process for contributing to Clojure and its contrib libraries is clinically fucking insane
22:39:07 -!- carado has quit (Ping timeout: 246 seconds).
22:39:13 <Phantom_Hoover> I'm sure they'd also be glad to verify that for you.
22:39:14 <Sgeo> http://clojure.org/contributing
22:39:29 <Sgeo> "Download and print out the Contributor Agreement
22:39:29 <Sgeo> If you hope to contribute via Clojure's projects (clojure and clojure-contrib), specify your GitHub username on the agreement. Please specify the name/email you use on the Google Group as well.
22:39:29 <Sgeo> Sign the agreement
22:39:29 <Sgeo> Send your signed agreement via postal mail to:"
22:40:17 <Phantom_Hoover> why, exactly
22:41:06 <oerjan> `echo -n hm|fueue ')$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][)[)[~[0]~])][~!]][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][)[)[~[0]~])][~!]][))$11~<<~:(~:<]])[))(($3~)<(]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]])[))(($3~)
22:41:08 <HackEgo> ​-n hm|fueue ')$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][)[)[~[0]~])][~!]][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][)[)[~[0]~])][~!]][))$11~<<~:(~:<]])[))(($3~)<(]
22:41:12 <oerjan> `run echo -n hm|fueue ')$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][)[)[~[0]~])][~!]][)$$6-%0[)][)$--%0[)$$6-%0[)][)[H]!][1)[)$%0[)$--%0[))$11~<<~:(~:<])[~~)<~~~(]])[):]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]])[~~)<~~~(]!][1)[)$--%0[)))~$([[)[~~~~()+1])][0]$%~~1)][)[)[~[0]~])][~!]][))$11~<<~:(~:<]])[))(($3~)<(]]])[)$--1[)~~~[)$4~[~):~~[~:~)~[)$$6-%0~~[$~])~]<~]<~<]$3~[)$~~~%~~)]<~(~~<]~~<<~[0]]<<<:]]])[))((
22:41:14 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
22:41:24 <oerjan> the fix made it too long :(
22:41:25 <Phantom_Hoover> oerjan
22:41:26 <Phantom_Hoover> query
22:41:29 <Phantom_Hoover> is there
22:41:30 <Phantom_Hoover> for a reason
22:41:36 <fizzie> I think they also added Svalbard recently; it's full of very enlightening imagery, such as http://goo.gl/maps/bt4ZN
22:41:49 <oerjan> ...i just want to demonstrate, oh well.
22:42:51 -!- DH____ has joined.
22:42:57 -!- DHeadshot has quit (Read error: Connection reset by peer).
22:45:47 <Sgeo> "Your topic has been created and will appear after it has been approved."
22:46:06 <Sgeo> I am starting to dislike the Clojure community
22:46:54 <shachaf> how about the dylan community
22:47:17 <Sgeo> If they don't make me snail-mail a legal form to some guy, I'm happy
22:48:02 <Phantom_Hoover> how about the ag^Hda community
22:49:15 <Sgeo> Is the Ada community even particularly open-source oriented?
22:49:29 <Sgeo> There's one notable OSS implementation, and the people behind it sell a proprietary version
22:50:41 <Sgeo> http://clojure.org/file/view/ca.pdf
22:50:54 <Sgeo> Is this thing asking to grant ALL my patents to Rich Hickey, or just relevant ones?
22:51:07 <Sgeo> (Erm, not grant, but let him ... use...)
22:51:09 <Sgeo> The wording is weird
22:51:18 <Phantom_Hoover> they don't call him rich for nothin'
22:51:27 <Phantom_Hoover> kmc can probably tell you why it's somethingist
22:51:52 <Sgeo> If Rich is short for Richard, I can imagine he doesn't want to be called Dick Hickey
22:53:25 <Phantom_Hoover> brilliant
22:54:42 * kmc spits out drink
22:59:23 -!- WeThePeople has joined.
23:02:23 -!- Zerker has joined.
23:19:26 -!- Zerker has quit (Remote host closed the connection).
23:28:05 -!- DH____ has quit (Read error: Connection reset by peer).
23:28:20 -!- DHeadshot has joined.
23:43:57 -!- DHeadshot has quit (Ping timeout: 256 seconds).
23:56:41 -!- Zerker has joined.
23:56:51 -!- Zerker has quit (Client Quit).
2013-02-11
00:51:10 -!- DHeadshot has joined.
00:55:05 <tswett> I wonder how we managed to make "primary school" and "secondary school" have more or less consistent meanings worldwide.
00:57:17 <oerjan> > 0o815
00:57:19 <lambdabot> Not in scope: `o815'
00:57:36 <oerjan> > 0815
00:57:38 <lambdabot> 815
00:57:53 <tswett> Like, it always refers to the stage of school where people are about 14 to 18 years old.
00:57:54 <oerjan> wtf is the octal syntax for haskell again
00:58:05 <tswett> > 0o715
00:58:07 <lambdabot> 461
00:58:16 <tswett> Moral of the story: don't use 8 in octal.
00:58:21 <oerjan> ....duh
00:58:28 <pikhq> > 0715
00:58:30 <lambdabot> 715
01:04:08 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:04:13 -!- DH____ has joined.
01:18:13 -!- DH____ has quit (Read error: Connection reset by peer).
01:18:30 -!- DHeadshot has joined.
01:42:25 -!- TeruFSX has joined.
01:44:39 -!- DHeadshot has quit (Ping timeout: 256 seconds).
01:53:54 -!- ais523 has quit.
02:13:16 <Sgeo> Hmm, Atheme (which Freenode uses) has a BotServ thing, but Freenode doesn't use it I guess?
02:13:20 * Sgeo wonders what it does
02:13:35 <Sgeo> Also, what is the point of having ChanServ stay in channel?
02:13:48 <Sgeo> Preserve topic in case channel empties out?
02:18:21 -!- Phantom_Hoover has quit (Quit: Leaving).
02:18:40 -!- Frooxius has quit (Remote host closed the connection).
02:18:59 -!- Frooxius has joined.
02:21:45 -!- DHeadshot has joined.
02:22:23 <coppro> Sgeo: yes
02:23:25 -!- yhojeyisaac has joined.
02:23:34 -!- yhojeyisaac has left.
02:23:52 -!- yhojeyisaac has joined.
02:24:19 <yhojeyisaac> quien es hombre
02:24:57 <Sgeo> quien is an anagram of quine. But quine is also an anagram of quine
02:27:38 <kmc> donde esta la biblioteca
02:32:45 -!- yhojeyisaac has quit (Ping timeout: 252 seconds).
02:35:09 <oerjan> folk er så høflige mot spanjoler her i kanalen.
02:36:13 <Sgeo> `wehlcohme yh
02:36:14 <Sgeo> dangit
02:36:15 <HackEgo> yhh: Wehlcohme to the ihntehrnahtiohnahl huhb fohr ehsohtehrihc prohgrahmmihng lahnguahge dehsihgn ahnd dehployhmehnt! Fohr mohre ihnfohrmahtiohn, chehck ouht ouhr wihki: http://ehsohlahngs.ohrg/wihki/Maihn_Pahge. (Fohr the ohthehr kihnd ohf ehsohtehrihca, try #ehsohtehrihc ohn ihrc.dahl.neht.)
02:36:39 <oerjan> ehxcehllehnt
02:46:30 <shachaf> `?hh oerjan
02:46:32 <HackEgo> Youhr ehvihl ohvehrlohrd oehrjahn ihs a lahzy ehxpehrt ihn fuhtuhre cohmpuhtahtiohn. Ahlso a lyihng Nohrwehgiahn.
02:47:04 <shachaf> `? norwegia
02:47:06 <HackEgo> norwegia? ¯\(°_o)/¯
02:47:18 <shachaf> That country doesn't even exist, oerjan...
02:48:41 <oerjan> it's only visible to poles
02:49:15 <oerjan> the real norwegians got lost and found themselves in nearby norway
02:49:48 <shachaf> norby nearway
02:50:59 <shachaf> oerjan: The Hebrew name is "norvegya" or so.
02:51:37 <oerjan> if ya say so
02:51:52 <shachaf> Anyway it doesn't actually exist.
02:51:55 <shachaf> Denmark exists.
02:52:09 <shachaf> `?hh denmark
02:52:11 <HackEgo> dehnmahrk? ¯\(°_o)/¯
02:52:18 <shachaf> !!!!!!!
02:54:12 -!- yhojeyisaac has joined.
02:56:36 <oerjan> he's back!
02:56:41 <oerjan> `welcome yhojeyisaac
02:56:43 <monqy> yes
02:56:44 <HackEgo> yhojeyisaac: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
02:57:20 <monqy> *¿¿¿si???
02:58:42 -!- yhojeyisaac has quit (Quit: Leaving.).
02:59:17 <oerjan> i guess we all sounded like english to him
03:01:10 <shachaf> monqy: are you "in the pigworker fan club"
03:01:33 <monqy> depends on what you mean by fan club but sure?
03:08:33 -!- yhojeyisaac has joined.
03:09:21 <yhojeyisaac> alguien que quiera tener una combersacion privada conmigo
03:13:24 -!- yhojeyisaac has left.
03:31:26 -!- yhojeyisaac has joined.
03:34:10 -!- yhojeyisaac has quit (Quit: Leaving.).
03:34:31 -!- yhojeyisaac has joined.
03:36:48 <shachaf> kmc: Do you know things about making a .s that can be linked with GHC-compiled code?
03:37:50 <kmc> linked FFIishly?
03:38:13 <shachaf> No, I'm trying to make something compatible with GHC's "ABI".
03:38:26 -!- yhojeyisaac1 has joined.
03:38:32 <shachaf> (Which involves a .hi too, of course.)
03:38:40 -!- yhojeyisaac has quit (Client Quit).
03:39:15 -!- Arc_Koen has quit (Quit: Arc_Koen).
03:41:06 <kmc> oh :(
03:41:06 <kmc> then i don't know much about that
03:41:07 <kmc> perhaps you should write it in Cmm instead of assembly
03:41:20 -!- yhojeyisaac1 has quit (Read error: Connection reset by peer).
03:41:25 -!- yhojeyisaac has joined.
03:44:34 -!- yhojeyisaac has left.
03:44:53 <kmc> i mean, i knew a few things. i know about zenc name-mangling and i know where to find the STG -> machine ABI register mapping
03:45:16 <kmc> i don't know anything about the structure of .hi files besides vaguely what kind of stuff is in them
03:45:24 -!- yhojeyisaac has joined.
03:45:49 -!- yhojeyisaac has left.
03:45:52 <shachaf> Hmm, I should probably find that mapping. All I have is a few notes I've written about that from looking at compiled Cmm files.
03:46:20 <shachaf> I compiled a .hs and am trying to make a .s to match it, but I think there are linking issues.
03:50:41 <oerjan> hm seems he gave up just as i was translating a suggestion he go somewhere else
03:54:46 <zzo38> Have you ever written a code which uses undefined/unspecified behaviours but in such ways which any result it will make is going to be working with your program?
03:55:49 <oerjan> i know that by definition undefined behavior in C doesn't work like that in principle
03:56:07 <oerjan> (it can do _anything_, not just different reasonable options)
03:57:31 <zzo38> It isn't meaning, in cases of undefined order of operation, it won't suddenly make the computer teleport to the moon instead?
03:59:11 <oerjan> that might depend on whether C considers undefined order of operations to be undefined behavior. (if you assign to the same variable in both parts it probably is?)
03:59:25 <oerjan> "undefined behavior" is a technical term.
04:00:05 <oerjan> e.g. x=x++ _is_ permitted to make the computer teleport to the moon, according the C standard.
04:00:47 <shachaf> Does the C standard specify that the computer doesn't normally teleport to the moon?
04:03:11 <zzo38> I doubt it, but I don't think that has to do with the programming language; that has to do with the computer.
04:06:54 -!- evincar has joined.
04:11:44 <pikhq> shachaf: The C standard does not otherwise specify things that have nothing to do with the state of the abstract machine.
04:12:00 <shachaf> pikhq: Right.
04:12:22 <pikhq> So a compliant computer could only *cease* teleporting to and from the moon on UB.
04:13:18 <oerjan> ^ord +-><[].,!
04:13:18 <fungot> 43 45 62 60 91 93 46 44 33
04:13:25 <kmc> "Whereof one cannot speak, thereof one must be silent."
04:16:20 <shachaf> ^ord ()[]:Zz&|^$=>#.<-!+'\\/*_%
04:16:20 <fungot> 40 41 91 93 58 90 122 38 124 94 36 61 62 35 46 60 45 33 43 39 92 92 47 42 95 37
04:20:31 -!- monqy has quit (Quit: hello).
04:23:06 <shachaf> @ask monqy ????????
04:23:06 <lambdabot> Consider it noted.
04:48:26 <quintopia> hi shachaf. how's the categories understanding coming
04:48:57 <shachaf> what's a categories
04:49:48 <quintopia> it's all the confusing info patrick throws at you
04:50:16 <shachaf> ?
04:50:28 <quintopia> ????
04:52:15 <zzo38> Currently I have implemented these functions for music in SQLRPGMAKER: MUSIC_PAUSE(), MUSIC_POKE(`ADDRESS` INTEGER, `DATA` INTEGER), MUSIC_RESTART(`TRACK` INTEGER), MUSIC_RESUME(), MUSIC_SELECT(`ID` INTEGER). Should I need anything else? Fading? Sound effect? Etc?
05:06:38 <oerjan> `fetch http://oerjan.nvg.org/esoteric/fueue/brainfuck.fu
05:06:44 <HackEgo> 2013-02-11 05:06:43 URL:http://oerjan.nvg.org/esoteric/fueue/brainfuck.fu [2382/2382] -> "brainfuck.fu" [1]
05:07:36 <oerjan> `run echo '>,[>,]<[.<]!!!!!AHAHAHAWM' | fueue "$(cat brainfuck.fu)"
05:07:38 <HackEgo> ​ \ MWAHAHAHA!!!!
05:07:46 <oerjan> `run echo -n '>,[>,]<[.<]!!!!!AHAHAHAWM' | fueue "$(cat brainfuck.fu)"
05:07:48 <HackEgo> MWAHAHAHA!!!!
05:07:56 <oerjan> pesky little newlines
05:10:07 * oerjan bows
05:14:39 * oerjan should time these things for better audience
05:16:18 <shachaf> helloerjan
05:16:32 <shachaf> Doesn't everyone logread anyway?
05:17:04 <oerjan> LET US HOPE SO
05:17:37 <oerjan> !bf_txtgen MWAHAHAHA!!!!
05:17:40 <EgoBot> ​90 +++++++++++[>+++++++>++++++>+++>+<<<<-]>.++++++++++.>-.<---------------.>.<.>.<.>.>....>-. [728]
05:17:59 <oerjan> `run echo -n '+++++++++++[>+++++++>++++++>+++>+<<<<-]>.++++++++++.>-.<---------------.>.<.>.<.>.>....>-.' | fueue "$(cat brainfuck.fu)"
05:18:01 <HackEgo> MWAHAHAHA!!!!
05:21:30 <quintopia> what is SQLRPGMAKER
05:21:50 <quintopia> oerjan: did you write bf in fu?
05:22:56 <oerjan> YES
05:23:10 <oerjan> well, in fueue
05:25:01 -!- TeruFSX has quit (Ping timeout: 245 seconds).
05:26:31 <quintopia> fueue is fu just as brainfuck is bf
05:27:30 <oerjan> OKAY
05:27:43 <oerjan> (i _did_ choose that for file extension after all.)
05:28:01 <quintopia> EXACTLY
05:28:39 <shachaf> helloerjan
05:28:44 <oerjan> hm...
05:29:11 <oerjan> `run echo '[testing error messages' | fueue "$(cat brainfuck.fu)"
05:29:13 <HackEgo> Unmatched [.
05:29:21 <oerjan> `run echo 'testing error messages]' | fueue "$(cat brainfuck.fu)"
05:29:23 <HackEgo> Unmatched ].
05:29:31 <oerjan> `run echo '[testing error messages!again' | fueue "$(cat brainfuck.fu)"
05:29:33 <HackEgo> Unmatched [.
05:29:38 <oerjan> good, good.
05:29:52 <oerjan> there's another one which is _supposed_ to be impossible to trigger.
05:30:12 <oerjan> hichaf
05:30:19 <shachaf> hi
05:31:38 <evincar> zzo38: < quintopia> what is SQLRPGMAKER
05:32:45 <zzo38> Some game engine I am making in SQL
05:35:24 <quintopia> that seems like a strange place to write a game engine
05:35:25 <quintopia> i approve
05:37:18 <zzo38> If they are RPG computer games, then you will want a lot of database, that is why it is in SQL (someone else approved for the same reason). (Specifically, it is SQLite)
05:39:00 <zzo38> (But it can be used for other computer games too)
05:58:28 <oklopol> my university spam filter thinks it's okay for someone i have never met to discuss "usd 2,142,728.00 dollars" with me and "NEED MY HELP" etc. however, inviting me to a conference? such a nigerian thing to do.
05:58:51 <shachaf> Wow, square dollars?
05:58:59 <oklopol> i just checked my spam folder, 4 calls for papers, 1 spam.
05:59:35 <oklopol> and the reason i checked was that i just got this spam in my inbox and started wondering what's spam enough to *not* get in
06:00:08 <oklopol> admittedly these are crappy conferences about software development and such
06:08:41 <pikhq> I wonder how one uses square dollars.
06:09:42 <oerjan> `addquote <oklopol> my university spam filter thinks it's okay for someone i have never met to discuss "usd 2,142,728.00 dollars" with me and
06:09:45 <oerjan> "NEED MY HELP" etc. however, inviting me to a conference? such
06:09:46 <HackEgo> 962) <oklopol> my university spam filter thinks it's okay for someone i have never met to discuss "usd 2,142,728.00 dollars" with me and
06:09:48 <oerjan> a nigerian thing to do.
06:09:48 <oerjan> thank you irssi
06:09:54 <oerjan> `revert
06:09:57 <HackEgo> Done.
06:10:11 <oerjan> `addquote <oklopol> my university spam filter thinks it's okay for someone i have never met to discuss "usd 2,142,728.00 dollars" with me and "NEED MY HELP" etc. however, inviting me to a conference? such a nigerian thing to do.
06:10:15 <HackEgo> 962) <oklopol> my university spam filter thinks it's okay for someone i have never met to discuss "usd 2,142,728.00 dollars" with me and "NEED MY HELP" etc. however, inviting me to a conference? such a nigerian thing to do.
06:12:50 <Vorpal> Speaking of spam, I once got a spam that tried to look like one of those mails from automated svn "commit has happened" hooks.
06:13:05 <Vorpal> bbl work
06:21:08 <kmc> Vorpal: haha
06:21:12 <oerjan> `run echo -n ',[.,]!Hi oklopol' | fueue "$(cat brainfuck.fu)"
06:21:14 <HackEgo> Hi oklopol
06:22:18 <oklopol> :O
06:22:48 <kmc> 2142728 looks like a familiar number
06:23:08 <oklopol> maybe just because of 142857?
06:23:18 <oklopol> hmm
06:23:19 <kmc> i think i had it mixed up with 214748
06:23:34 <oklopol> errr what's that
06:24:11 <kmc> > 2^31 `div` 10000
06:24:13 <lambdabot> 214748
06:26:22 <oklopol> oo
06:26:35 <oklopol> i don't go that far
06:31:22 <oerjan> 1048756 should be enough for anyone
06:31:30 <oerjan> > 2^20
06:31:32 <lambdabot> 1048576
06:31:35 <oerjan> oops
06:31:51 <oerjan> i thought something was off
06:32:02 <oklopol> how nice
06:33:18 <oklopol> so 4.5.6, then you turn back and put .8.7.
06:49:41 -!- WeThePeople has quit (Quit: Leaving).
07:06:22 <zzo38> The WWYD (for "what will you discard") polls for the Reachmahjong games is sometimes labeled "Tungsten Tungsten Yttrium Deuterium".
07:13:05 <kmc> yttrium is one of four elements named after the same small village in sweden
07:13:41 <oerjan> ytterbium, yttrium, terbium, and erbium
07:22:36 -!- azaq23 has joined.
07:22:45 -!- azaq23 has quit (Max SendQ exceeded).
07:32:28 -!- oerjan has quit (Quit: leaving).
07:36:34 -!- sebbu has quit (Ping timeout: 256 seconds).
07:37:34 -!- sebbu has joined.
07:37:34 -!- sebbu has quit (Changing host).
07:37:35 -!- sebbu has joined.
07:50:35 -!- zzo38 has quit (Remote host closed the connection).
07:57:23 -!- copumpkin has quit (Ping timeout: 252 seconds).
07:57:54 -!- copumpkin has joined.
08:10:02 -!- copumpkin has quit (Ping timeout: 252 seconds).
08:10:32 -!- copumpkin has joined.
08:24:55 <olsner> oh, if your current working directory is on NFS and the directory is removed elsewhere you can get "cd: ..: No such file or directory"
08:26:30 <fizzie> You don't need NFS for that.
08:27:06 <fizzie> http://sprunge.us/YSdO
08:27:25 <olsner> boring
08:28:10 <fizzie> Admittedly, though, that *was* actually on NFS.
08:28:15 <Deewiant> You could also 'rm -r ../../a' there
08:28:34 <fizzie> htkallas@spa-ws160:~/tmp/a/b$ ls
08:28:34 <fizzie> ls: cannot open directory .: Stale NFS file handle
08:29:08 <Deewiant> In zsh that makes me end up at the path "." (according to pwd)
08:29:19 <fizzie> It worked a bit differently on a non-NFS path:
08:29:34 <fizzie> http://sprunge.us/aPfb
08:30:25 <elliott> qqqqqq
08:30:28 <elliott> ok good
09:16:52 -!- Nisstyre-laptop has quit (Ping timeout: 256 seconds).
09:32:06 -!- epicmonkey has joined.
10:18:55 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
10:24:01 -!- ais523 has joined.
10:38:06 -!- ais523 has quit (Read error: Connection reset by peer).
10:38:20 -!- ais523 has joined.
10:40:20 -!- Phantom_Hoover has joined.
10:44:42 -!- DHeadshot has quit (Ping timeout: 256 seconds).
10:48:41 <Sgeo> Someone on the Internet told me to choke on dick
10:48:43 <Sgeo> dicks
10:48:55 <Sgeo> I feel like I am finally an Internet citizen
10:53:27 <elliott> thanks
11:08:30 <Sgeo> I should really go back to sleep
11:24:45 -!- hagb4rd has joined.
11:34:17 -!- zzo38 has joined.
11:40:59 <FreeFull> Sgeo: Go choke that person with a dick
11:59:24 <Sgeo> The Pope's resigning
11:59:38 <Sgeo> (How often do you get to say THAT?)
12:00:56 <Sgeo> Apparently quite frequently around 1045 and the years after
12:03:38 <elliott> weird
12:04:06 <zzo38> Do you mean the current pope, or the one before?
12:04:45 <Sgeo> The current one
12:04:53 <Sgeo> It takes effect later in the month
12:14:43 -!- noam_ has quit (Read error: Connection reset by peer).
12:15:19 -!- noam has joined.
12:22:39 <Phantom_Hoover> maybe they'll go for someone less creepy this time
12:26:39 -!- Phantom_Hoover has quit (Remote host closed the connection).
12:28:52 -!- Phantom_Hoover has joined.
12:45:52 <c00kiemon5ter> fungot, good morning
12:45:53 <fungot> c00kiemon5ter: what is u? or y? :) i've played with ruby a little. i've been trying
12:46:02 -!- TeruFSX has joined.
12:49:37 <Sgeo> ^style
12:49:37 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
12:49:44 -!- carado has joined.
12:51:41 <shachaf> F : Dom F -> Cod F
12:58:21 -!- Arc_Koen has joined.
13:12:06 -!- zzo38 has set topic: DO NOT PULL | char*a,b[9999];main(){gets(a=b);while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);} | a mutiny of clowns | http://codu.org/logs/_esoteric/.
13:13:38 -!- zzo38 has set topic: DO NOT PULL OR PUSH SIDEWAYS | char*a,b[9999];main(){gets(a=b);while(*a){a+=(b[*a]-=b[a[1]])?3:a[2];}puts(b+1);} | a mutiny of clowns | http://codu.org/logs/_esoteric/.
13:17:46 <Sgeo> bad website design time http://www.constellation7.org/
13:18:10 <Phantom_Hoover> is that from #jesus
13:18:20 <Sgeo> no
13:18:30 <Sgeo> Saw it on hacker news
13:18:43 <Phantom_Hoover> why do you read hacker news...
13:19:12 <Sgeo> I was googling something else
13:20:31 <Phantom_Hoover> once again Sgeo you deftly evade judgement
13:31:50 -!- monqy has joined.
13:32:27 -!- Gregor has changed nick to TwilightSpockle.
13:33:46 <fizzie> The topic reminds me of "TO PUSH IS ENOUGH", a sign on a classroom door.
13:35:45 -!- boily has joined.
13:38:45 -!- elliott has set topic: TO PUSH IS ENOUGH | http://codu.org/logs/_esoteric/.
13:38:57 -!- boily has quit (Client Quit).
13:40:35 -!- boily has joined.
13:41:25 -!- TeruFSX has quit (Ping timeout: 246 seconds).
13:41:54 -!- ais523 has quit (Read error: Connection reset by peer).
13:42:08 -!- ais523 has joined.
13:58:17 -!- zzo38 has quit (Remote host closed the connection).
14:21:48 -!- oklofok has quit (Remote host closed the connection).
14:37:46 <Sgeo> "Geez you'd think with all those priests around you could find somebody able to cast cure light wounds."
14:51:24 -!- evincar has quit (Quit: Consciousness is terrible.).
15:00:23 -!- glogbackup has joined.
15:02:47 -!- glogbackup has quit (Remote host closed the connection).
15:04:22 -!- Mathnerd314_ has joined.
15:06:36 -!- fizzie` has joined.
15:07:07 -!- Mathnerd314 has quit (Ping timeout: 276 seconds).
15:07:07 -!- oonbotti has quit (Ping timeout: 276 seconds).
15:07:07 -!- fizzie has quit (Ping timeout: 276 seconds).
15:07:21 -!- olsner has quit (Ping timeout: 252 seconds).
15:13:28 -!- Taneb has joined.
15:19:34 -!- olsner has joined.
15:23:49 -!- glogbackup has quit (Remote host closed the connection).
15:24:13 <Taneb> Phantom_Hoover, you know how I'm completely incompetent at everything, and have a nasty habit of ruining my computer?
15:24:43 <Phantom_Hoover> yes
15:24:51 <Phantom_Hoover> a man after my own heart
15:24:57 <Taneb> I've ruined my computer again
15:25:48 <Phantom_Hoover> oh dear
15:26:12 <Phantom_Hoover> would you like me to direct you to the people i consult when i ruin my computer
15:26:14 <Taneb> I'm gonna order an actual graphics card
15:27:20 <Taneb> Here I go...
15:29:55 -!- glogbackup has quit (Ping timeout: 246 seconds).
15:31:46 <Phantom_Hoover> is this the continuation of the chinese graphics card saga
15:31:51 <Taneb> Yes
15:32:01 <Taneb> It struck back
15:32:47 <Sgeo> I think I have an idea for a language that I would love
15:32:54 <Sgeo> It's probably completely impossible though
15:33:02 <Taneb> Is it Feather
15:33:08 <Sgeo> More impossible
15:33:10 <Phantom_Hoover> hitting a distinct galatea vibe here
15:34:48 <Phantom_Hoover> perhaps the gods will be kind and implement it for you when you finish the spec
15:35:01 <Taneb> Phantom_Hoover: is oerjan a god?
15:35:58 <Sgeo> I want people to come up with new idioms and all the old code that others wrote will magically work with it
15:36:16 <Phantom_Hoover> i think even the gods would have trouble with that
15:36:40 <Sgeo> As in, say language has conventional throw/try/catch, people use that, someone adds a condition system, suddenly all the old code works with it magically
15:36:43 <Sgeo> Phantom_Hoover, yes
15:36:57 <Phantom_Hoover> Taneb, somehow i doubt it
15:37:17 <Taneb> Phantom_Hoover: but... brainfuck in Fueue!
15:37:59 -!- glogbackup has quit (Remote host closed the connection).
15:38:12 <Phantom_Hoover> he's probably one of them trickster-gods if anything
15:40:29 -!- copumpkin has quit (Ping timeout: 252 seconds).
15:41:00 -!- copumpkin has joined.
15:54:53 <Sgeo> " It is totally acceptable for the weaker (and through extension less intelligent) to die, otherwise it would not happen every day"
15:55:04 <Sgeo> Where is Punching over IP?
15:55:06 <Sgeo> I need it
15:55:14 -!- glogbackup has quit (Remote host closed the connection).
15:55:35 <Phantom_Hoover> why waste your effort
15:55:52 <Phantom_Hoover> just ignore them and hope for their sake that they grow out of it
16:06:13 <Arc_Koen> Taneb: was oerjan succesful?
16:06:38 <Taneb> It's on the wiki, so I presume so
16:07:36 <Arc_Koen> you know how the example programs on that page go
16:07:48 <Arc_Koen> starting with "hey look I got an empty program, it's almost a cat"
16:08:02 <Arc_Koen> then "I can print Hello World! and then halt"
16:08:18 <Arc_Koen> then "I've got an infinite loop, but it doesn't do anything"
16:08:31 <Arc_Koen> and then oerjan steps in
16:08:54 <Taneb> :D
16:09:59 -!- glogbackup has quit (Remote host closed the connection).
16:10:23 <FreeFull> Now, brainfuck in eodermdrome
16:10:30 <FreeFull> Go oerjan go
16:10:30 <ais523> Sgeo: actually that sounds a lot like Feather :)
16:10:41 <ais523> with the retroactively adding language features thing
16:10:55 <Sgeo> hm
16:11:16 <Phantom_Hoover> FreeFull, could work.
16:11:33 <Sgeo> Yes, but also retroactively making old code use it?
16:11:57 <Phantom_Hoover> Don't think you have to use duplication for it, which is the trickiest thing in eodermdrome.
16:13:05 <ais523> Sgeo: I don't think it'd rewrite the old code to be more idiomatic
16:13:12 <ais523> that does indeed sound quite difficult
16:13:28 <ais523> in order to get a start on it, I guess the language should have a bytecode compiler and a decompiler that tries to infer the idioms
16:13:33 <Sgeo> Maybe not rewriting, but just making it interoperate with the new idiom fully... which still sounds difficult
16:13:35 -!- glogbackup has joined.
16:14:01 <ais523> something along the lines of "add exceptions, now all existing code is rewritten to be exception-safe" sounds more possible
16:14:01 <Phantom_Hoover> i'm pretty sure Sgeo's ideal language is either superturing or logically inconsistent
16:14:04 <ais523> very difficult, still
16:14:10 <ais523> but it's quite similar to what I do in my day job
16:14:27 <ais523> the nice thing is, for every new language feature you actually get to work, you can write an entire academic paper about how :)
16:14:45 * Sgeo suddenly wants a job like ais523's
16:14:50 <Sgeo> Designing stuff and writing papers
16:15:06 <ais523> Sgeo: it doesn't pay very well
16:15:26 <ais523> also it's coming to an end this year, but I should be able to use the experience to get another better-paying one in the same field
16:15:26 <elliott> ais523: just have to prove something for wolfram every few years
16:15:43 <ais523> (this is the same sort of sentence as "I should go to KFC some day", btw)
16:15:43 <elliott> though I hear he usually doesn't pay people for that
16:15:54 <elliott> ais523: what sort of sentence is that
16:16:03 <ais523> elliott: where "some day" refers to a particular day
16:16:08 <ais523> rather than just being a variable
16:16:25 <ais523> btw, does Emmental remind anyone else of Splinter?
16:17:32 <Sgeo> Link to Splinter?
16:17:36 <elliott> ais523: ah, so there is a specific job?
16:17:45 <ais523> elliott: at least one, that I have in mind
16:17:48 <ais523> Sgeo: http://esolangs.org/wiki/Splinter
16:17:58 <ais523> I heartily recommend adding a macro in your IRC client to easily link people to things
16:18:03 <ais523> also, the Esolang search box to your browser
16:18:30 -!- glogbackup has quit (Remote host closed the connection).
16:18:37 * Sgeo wasn't sure if it was an esolang or a real language
16:19:07 <Sgeo> I should write an esolang at some point
16:19:24 <Sgeo> Besides my boring ones
16:19:45 -!- ais523_ has joined.
16:19:45 -!- ais523 has quit (Remote host closed the connection).
16:19:46 -!- ais523_ has changed nick to ais523.
16:20:41 <monqy> Sgeo: would it be a good esolang
16:20:42 <boily> considering the current span of all esolangs that have been noted down, is there any niche out there left to be discovered, exploited, maimed, tortured and obfuscated?
16:20:56 <monqy> boily: yes
16:21:47 <ais523> boily: almost certainly yes
16:21:52 <ais523> they just get harder to find as time goes on
16:22:08 <ais523> like, it took me around a year of thought to find Underload, probably
16:22:19 <Sgeo> A language that compiles to x86 where the compiler's source makes no deliberate reference to x86 code?
16:22:47 <Sgeo> (The compiler would of course be written in that language)
16:23:12 <ais523> now you're trying to make me work out if a metacircular compiler is an actual concept
16:23:13 -!- Phantom__Hoover has joined.
16:23:28 <ais523> I guess it'd need the ability to compile at runtime, like Perl
16:23:33 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
16:23:43 <Taneb> Sgeo: did you see the latest turn in the Chinese Graphics Card tale?
16:23:49 <Sgeo> Taneb, no
16:24:04 <Taneb> Basically, I stupid'd again, and have ordered an actual graphics card
16:24:11 <Sgeo> yay
16:24:23 <Phantom__Hoover> make sure you don't ask elliott for advice
16:24:25 <ais523> Taneb: I somehow missed this tale
16:24:49 <Taneb> ais523: I tried to upgrade my graphics card driver on day
16:24:54 <Taneb> Things went a little wrong
16:25:02 <Taneb> So I asked for help in #ubuntu-steam
16:25:02 <ais523> which OS?
16:25:06 <Taneb> Ubuntu
16:25:13 <ais523> oh, I can sort-of see where this is going
16:25:13 <Taneb> Because I was trying to get Steam working
16:25:20 <ais523> #ubuntu is kind-of random in the quality of help it gives
16:25:27 <Taneb> They couldn't help me, and redirected me to #nvidia
16:25:31 <ais523> I expect #ubuntu-steam is similar, except full of gamers
16:26:10 <Taneb> After talking to someone in #nvidia for a bit, sending photos of my graphics driver
16:26:11 <ais523> (which is not necessarily a bad thing)
16:26:16 <Taneb> *graphics card
16:26:24 <Taneb> It turns out that my graphics card was bootleg
16:26:35 <Taneb> And an old model disguised poorly as the new one
16:26:45 <elliott> good
16:26:48 <ais523> is the rest of your computer bootleg too?
16:26:55 <Taneb> I believe not
16:27:09 <Taneb> I bought all the parts separatley
16:27:14 <boily> is Taneb itself bootleg?
16:27:46 -!- cuttlefish has joined.
16:27:58 <Taneb> I'm a story about the prohibition of chocolate
16:28:24 <elliott> waht
16:28:36 <boily> ~metar CYUL
16:28:40 <cuttlefish> CYUL 111605Z 35006KT 5/8SM R06L/2000FT/N R06R/2200FT/N -SN BR VV003 M07/ RMK SN8
16:28:45 -!- glogbackup has quit (Ping timeout: 252 seconds).
16:28:57 <Taneb> ~help
16:28:57 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
16:29:01 <Taneb> ~duck Bootleg
16:29:02 <cuttlefish> The term bootlegging originally came from black people being cheep and drinking alcohol in the legs of boots.
16:29:07 <Taneb> ~duck Bootleg story
16:29:09 <cuttlefish> --- No relevant information
16:29:16 <monqy> what's this
16:29:17 <boily> the weather lies! no way it's -SN now.
16:29:24 <boily> ~duck bootleg
16:29:25 <cuttlefish> The term bootlegging originally came from black people being cheep and drinking alcohol in the legs of boots.
16:29:35 <Taneb> http://en.wikipedia.org/wiki/Bootleg_(TV_serial)
16:29:47 <Taneb> "cheep"
16:30:14 <Sgeo> What information does primitive + need to know?
16:30:29 <Sgeo> It needs to know how to add. It needs to know how to compile itself.
16:30:30 <Sgeo> Hmmm
16:32:08 <ais523> `addquote <Taneb> I'm a story about the prohibition of chocolate
16:32:15 <HackEgo> 963) <Taneb> I'm a story about the prohibition of chocolate
16:32:16 <ais523> the best part about that quote is, there /isn't/ any context
16:32:19 <Sgeo> ais523, what sort of information can be hidden in a Trusting Trust style manner?
16:32:45 <Sgeo> THat's really what's making me think about this
16:32:53 <Taneb> There's actually context
16:32:56 -!- epicmonkey has quit (Ping timeout: 245 seconds).
16:33:01 <Taneb> Just it's a stupidly obscure reference
16:33:03 <ais523> Sgeo: well that attack stops working as soon as someone writes a second compiler, but if you trusting-trust a strong AI into your compiler, pretty much anything
16:33:18 <ais523> (until someone recompiles it with a different compiler that it didn't compile in the first place)
16:33:35 <ais523> (the "it didn't compile in the first place" isn't normally necessary, but it is if you suspect there's a strong AI in there)
16:33:57 <Sgeo> I think in this case, trusting trust is not an "attack", but the implementation strategy
16:34:18 <monqy> i prefer to err on the safe side and always suspect there's a strong ai in my compilers
16:34:54 <elliott> Taneb: oh wow i think i actually saw this
16:34:56 <ais523> it might be possible, because it wouldn't need to be a very /good/ strong AI
16:34:58 <elliott> when i was younger
16:35:13 <ais523> you might be able to get away with just a bunch of heuristics
16:35:18 <Phantom__Hoover> wasn't that an episode of the simpsons
16:35:25 <Taneb> Phantom__Hoover: that was sugar
16:35:29 <ais523> strong AIs are easy to write if you don't mind them being really bad at their jobs
16:35:42 <Taneb> And alcohol in a different episode
16:35:50 <Sgeo> There's an anime called Chocolate Underground
16:36:27 <Phantom__Hoover> there's a book called the chocolate war, isn't there
16:36:37 <Phantom__Hoover> i hear it's soulcrushing
16:36:40 <monqy> did you know: there's a food called chocolate
16:36:51 <ais523> `quote
16:36:52 <ais523> `quote3
16:36:53 <HackEgo> 29) <ehird> Or the brutal rape of the English language! <pikhq> That wasn't rape. English is always willing.
16:36:54 <ais523> `quote
16:36:54 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: quote3: not found
16:36:55 <ais523> `quote
16:36:56 <HackEgo> 297) <oklopol> esperanto is just spanish with a diarrhea
16:36:57 <ais523> `quote
16:36:57 <HackEgo> 782) <itidus21> i have a simple view of reality that goes something like this.. once your sufficiently well tied up.. it doesn't make a difference if your enemy has a knife or a gun.. you're equally screwed
16:36:58 <ais523> `quote
16:36:59 <HackEgo> 614) <Vorpal> oh my god <Vorpal> that is one ugly solution <elliott> beautiful
16:37:00 <HackEgo> 339) <EgoBot> hey fhet's zeees OouooH SNEP IT'S A FOooCKING TIGER
16:37:02 <Taneb> http://www.youtube.com/watch?v=uzIs1epLEdc
16:37:21 <ais523> elliott: delete 297 or 339?
16:37:37 <Phantom__Hoover> 339
16:37:48 <monqy> 339
16:38:32 <Taneb> That looks quite a bit different from the book
16:38:54 -!- ais523_ has joined.
16:38:57 -!- ais523 has quit (Disconnected by services).
16:38:58 -!- ais523_ has changed nick to ais523.
16:39:09 <elliott> `delquote 29
16:39:14 <HackEgo> ​*poof* <ehird> Or the brutal rape of the English language! <pikhq> That wasn't rape. English is always willing.
16:39:28 <ais523> elliott: I can live with that
16:39:33 <elliott> DELETED UNDER GROUNDS OF: (a) did I actually say that; (b) it's stupid
16:39:58 <monqy> 29 is also a good choice
16:40:02 <ais523> `pastlog brutal rape of the
16:40:30 <HackEgo> 2010-05-03.txt:01:00:52: <HackEgo> 46|<ehird> Or the brutal rape of the English language! <pikhq> That wasn't rape. English is always willing.
16:40:43 <ais523> btw, is 782 meant to be a BF Joust reference? because that's how I interpreted it
16:41:00 <elliott> are you new to itidus21
16:41:19 -!- glogbackup has quit (Remote host closed the connection).
16:41:37 <Phantom__Hoover> is it funnier if you imagine it's one of iti's aimless blunderings in the world of sex
16:42:40 <ais523> elliott: no but I haven't been paying much attention to him in particular
16:42:43 <ais523> `pastequotes itidus
16:42:50 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.20847
16:44:14 <Phantom__Hoover> seeing them all at once
16:44:17 <Phantom__Hoover> it's too much
16:44:46 <Phantom__Hoover> apparently he's... still online?
16:45:00 <elliott> wow every single one of itidus' quotes is amazing
16:45:01 <Phantom__Hoover> must've gotten bored
16:45:11 <elliott> Phantom__Hoover: did you forget the part where you drove itidus off
16:45:18 <Phantom__Hoover> shit was that me
16:45:37 -!- glogbackup has joined.
16:46:06 <monqy> oh is that what happened to him
16:46:26 <ais523> `quote 539
16:46:28 <HackEgo> 539) <Taneb> I think this has taught us one thing. We can't teach itidus20 lambda calculus by comittee
16:46:32 <ais523> not an itidus quote, but it's awesome
16:47:15 <ais523> 647 is pretty good too, though
16:47:25 <elliott> Expected type: Ehh t t1 -> (Dom t1 (t % x) (t % x) -> r) -> r
16:47:25 <elliott> Actual type: Ehh t t1 -> (Dom t1 (t % x0) (t % x0) -> r) -> r
16:47:29 <elliott> can someone please fix my GHC
16:48:21 <monqy> ehh
16:48:40 <ais523> x and x0 might be different types, though
16:48:52 <elliott> ais523: no they're totally polymorphic
16:49:05 <elliott> this is a stupid type family problem
16:49:15 <elliott> monqy: I called it Ehh because I was a bit upset about having to define it in the first place
16:49:44 <FreeFull> elliott: o.o
16:49:51 <FreeFull> That looks like a weird type error
16:50:16 <Taneb> ScopedTypeVariables?
16:50:28 <ais523> elliott: this reminds me of SCC inference, where sometimes in Verity a program will fail to compile because program transformations changed the definition of "polymorphic"
16:50:41 <elliott> Taneb: no, it's not that simple
16:50:46 <ais523> so far, the error's only happened on intentionally contrived examples, and programs which were incorrect anyway
16:50:49 <Sgeo> Just applied to a fun sounding job
16:51:01 <elliott> newtype Ehh f = Ehh (forall x. Blah (Foo f x))
16:51:04 <Sgeo> Seems like it would involve writing training documentation and teaching people things
16:51:04 <Sgeo> :D
16:51:05 <elliott> out :: Ehh f -> Blah (Foo f x)
16:51:10 <elliott> out (Ehh x) = x
16:51:14 <elliott> the problem is you can't do this
16:51:15 <ais523> Sgeo: are you actively seeking out a job atm? or do you just apply to jobs for fun?
16:51:15 <elliott> where Blah is anything
16:51:17 <elliott> and Foo is a type family
16:51:26 <Sgeo> ais523, actively seeking out a job
16:51:27 <elliott> because GHC's handling of type families is kind of bad
16:51:28 <ais523> actually applying to jobs for fun sounds like a great idea if you have time to spare
16:51:41 <ais523> except it might make it hard to get a job if you get a reputation for applying to jobs then turning them down
16:51:48 -!- glogbackup has quit (Ping timeout: 264 seconds).
16:51:57 <Sgeo> Although I'm still vacillating between getting a job and going to grad school
16:52:06 <Sgeo> I want to not need to deal with my dad as soon as possible :/
16:52:20 <Sgeo> Although he did say he'd give me an allowance if I went to grad school
16:52:22 <Sgeo> >.>
16:56:07 <monqy> do you know what you want to do with grad school
16:56:33 <Sgeo> Not really
16:56:45 <Sgeo> Computer Science
16:57:04 <Sgeo> But ... why, I guess, is the question. Would I have an opportunity to design a language?
16:57:04 -!- glogbackup has quit (Ping timeout: 246 seconds).
16:57:23 <ais523> Sgeo: if you're going to do a graduate degree, the difficulty is finding a good supervisor who knows problems to work on that you could complete and would be useful
16:58:01 <quintopia> Sgeo: grad school sucks with the wrong advisor
16:58:22 <quintopia> be prepared to switch or quit
16:58:25 <ais523> I've ended up designing several languages as a result of what I've been doing; most of them are mathematical abstractions, some would be a pain to write in (e.g. affine ICA), only one of them is a "real programming language", and it's Verity, which very much feels like an academic language
17:00:01 <ais523> btw, 794 works better when you know that there's a brand of cola called ubuntu
17:00:15 <Sgeo> I don
17:00:19 <quintopia> what is 794
17:00:26 <Sgeo> I don't even know who I could talk to at the school to start with anything
17:00:32 <elliott> ais523: thats the context
17:00:34 <ais523> `quote 794
17:00:36 <HackEgo> 794) <itidus21> ubuntu is the solaris of the cola world
17:00:37 <ais523> elliott: I guessed
17:00:43 <monqy> Sgeo: interesting/useful languages that will get you publications are more like things that fall out of a need or niche or something than something you can just decide to design
17:01:03 <ais523> Sgeo: also if you want to get funding for it, you need to have a pretty good track record
17:02:18 -!- glogbackup has quit (Ping timeout: 252 seconds).
17:02:39 <Sgeo> track record?
17:02:52 <monqy> Sgeo: if there's an interesting problem you want to explore maybe you can design a language around that, but if you have an idea already...........
17:04:11 <Sgeo> So, for that metacircular compiler idea, would it be cheating to do something other than x86
17:04:22 <Sgeo> Say, Ngaro VM?
17:04:24 <ais523> I'm still not convinced "metacircular compiler" makes sense
17:04:35 <elliott> whats ngaro vm
17:04:36 <ais523> although I'd be happy for elliott to tell me whether it does or not, he probably knows
17:05:34 <Sgeo> http://rx-core.org/docs/The_Ngaro_Virtual_Machine.html
17:08:44 <elliott> ok now whats cheating
17:09:13 <Sgeo> I don't know
17:09:22 <monqy> ok
17:09:28 <ais523> I'm still not convinced I know what a metacircular compiler is
17:09:38 <ais523> it'd have to compile a language into itself
17:09:39 <Sgeo> Still needing an interpreter to run the compiled thing feels... cheating-ish somehow, but seems saner than trying to learn x86
17:09:44 <ais523> and then compile that with an existing compiler
17:09:52 <ais523> and yet compiling a language into itself is normally kind-of easy
17:10:03 <Sgeo> ais523, presumably, there'd be a bootstrapping compiler at first which then gets discarded
17:10:16 <ais523> no, then it isn't metacircular
17:10:18 <ais523> it's just a compiler
17:10:37 -!- glogbackup has quit (Remote host closed the connection).
17:10:52 <monqy> sgeo is this just about you want to write a compiler but don't want to learn x86 so you're writing it really silly
17:10:58 <Sgeo> So it can't start off non-metacircular then become metacircular? Does the fact that C compilers weren't originally written in C hampers the names it can be given?
17:10:58 <Taneb> @time Taneb
17:10:59 <lambdabot> Local time for Taneb is Mon Feb 11 17:10:58 2013
17:11:15 <Taneb> I don't have a clock
17:11:22 <kmc> "metacircular" doesn't just mean "written in the same language it's implementing"
17:11:54 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
17:12:38 <Sgeo> Ok, this is what I want: The compiler for language ?? is written in ??. The compiler contains no code that directly corresponds to the target platform. That is, the source code for the compiler does not mention the assembly or machine code for +, for example
17:12:58 <Sgeo> Rather, somehow + is a primitive that knows how to compile itself as well as add
17:13:06 <ais523> sounds like Forth
17:13:10 <ais523> except not really
17:13:31 <Sgeo> The information for what constitutes addition should be trusting trusted somehow
17:13:44 <Phantom__Hoover> my first thought would be that the compiler has access to its own compiled form
17:13:51 <Taneb> Ditto
17:13:55 <ais523> huh, if it's /really/ trusting trusted
17:14:01 <ais523> then there's no need for the language to even have I/O
17:14:07 <Phantom__Hoover> and uses this to deduce
17:14:18 <ais523> although, in that case, the semantics of the language and the compiler would basically be entirely disjoint
17:14:19 <Phantom__Hoover> somehow what it's compiling to
17:14:23 <ais523> so how can you call it a compiler for the language?
17:15:27 <ais523> I think I have a tarpit version of the idea
17:15:29 -!- glogbackup has joined.
17:15:45 <ais523> a language X which, given any program, ignores it and outputs a language X compiler
17:15:53 <ais523> actually, that's known as a quine
17:15:55 <elliott> reminds me of brainbrain
17:16:31 <ais523> elliott: good reference
17:16:45 <ais523> actually I'll write this esolang up, because it's hurting my head (in a good way)
17:16:59 <ais523> on the joke languages list, of course
17:17:11 <kmc> a... quinepiler?
17:17:18 <elliott> quiler
17:17:21 <elliott> ais523: call it Quiler
17:17:25 <ais523> OK
17:17:32 <kmc> quiler sounds like a web 2.0 startup
17:17:55 <Sgeo> Does this count as me helping create a language?
17:18:03 -!- glogbackup has quit (Remote host closed the connection).
17:18:09 <Sgeo> Also, I do want a less tarpitty version, but will wait to see the writeup of this
17:20:00 <Sgeo> ...I think some Smalltalk person has worked on ... something similar to what my idea would be if extended into usefulness
17:22:37 -!- augur has quit (Remote host closed the connection).
17:23:42 <Sgeo> Hum.
17:24:03 -!- glogbackup has quit (Remote host closed the connection).
17:24:13 <Sgeo> I don't think it's cheating to do something like binary(+) and get the x86 code out from that, right?
17:24:32 <Sgeo> If the compiler uses binary() calls but doesn't contain the actual binary code explicitly...
17:24:57 <Sgeo> I pretty much have to be able to do that, I think
17:25:32 <Phantom__Hoover> yes, although idk if that's a particularly elegant way of doing so
17:25:39 <Sgeo> What, the syntax?
17:26:03 <Sgeo> Syntax just quick way of joting thoughts down, not concrete yet
17:26:09 <Sgeo> Probably code{+} makes more sense
17:26:23 <Phantom__Hoover> i mean conceptually
17:26:24 <Sgeo> code{1+1} is a binary blob containing the code that gets inserted for 1+1
17:26:41 <Sgeo> I don't think it's avoidable
17:26:41 <elliott> compile(program) = print code{$program}
17:26:56 <Sgeo> The compiler has to be able to emit the code somehow
17:26:57 <elliott> metaitmceaulciualr compierls
17:27:31 -!- ais523 has quit (Ping timeout: 245 seconds).
17:28:33 <Sgeo> Could just be a command saying "Compile this code into the program I'm compiling", and block programs finding out at runtime what the binary code is, but that seems icky
17:29:33 <monqy> btw what are you doing and why. i'm trying to figure out if this is a thought experiment or an xy problem gone horribly wrong
17:29:42 <Sgeo> Both
17:29:45 <monqy> ah
17:29:53 <Sgeo> I think it could make writing compilers easier somehow?
17:30:11 <monqy> good luck
17:34:51 -!- ais523 has joined.
17:35:08 <ais523> btw, I made a mistake, it's not output only
17:35:11 <Phantom__Hoover> Sgeo, challenge, make this work without assuming a von neumann architecture
17:35:12 <ais523> it takes input, just doesn't do anything with it
17:35:45 <ais523> OK, here we go: http://esolangs.org/wiki/Quiler
17:35:51 <ais523> IMO it's more interesting than over half the joke languages
17:35:53 <ais523> not that that's hard
17:36:51 <ion> I read that as “Quitler” for some reason.
17:37:26 -!- monqy has quit (Quit: hello).
17:38:04 <Taneb> "Surrender now, at my moment of triumph!? I'm Hitler, not Quitler!"
17:39:03 -!- epicmonkey has joined.
17:39:11 <elliott> Could not deduce ((forall x1. Dom g (f % x1) (f % x1))
17:39:11 <elliott> ~ Dom g (f % x) (f % x))
17:39:15 <elliott> WHY WHY WHY WHY WHY WHYW HYW
17:40:19 <Sgeo> I have an idea for a usable version
17:40:23 <elliott> ais523: please kill me to death. ty
17:40:28 <Sgeo> Although it makes the compiler too simple to write, I think
17:40:50 <Sgeo> Also, it's a Brainfuck derivative
17:40:57 * Sgeo runs from Phantom__Hoover very, very fast
17:42:03 <Sgeo> > ord '+'
17:42:05 <lambdabot> 43
17:42:12 <Sgeo> !text2bf +
17:42:51 <Sgeo> Well, "too simple" as in the source code is simple
17:43:01 <Sgeo> Creating an actual compiler is trickier than writing the source code
17:43:45 <ais523> especially in BF
17:44:05 <ais523> Sgeo: actually, did you see Gregor's IOCCC entry? the only reason it doesn't fulfil your definition is that it implements the wrong language
17:44:24 <Sgeo> ais523, I think I have seen it but forgotten everything about it
17:44:46 <Taneb> dc JIT
17:44:52 -!- Mathnerd314_ has changed nick to Mathnerd314.
17:44:59 <Taneb> Criss-platform
17:45:02 <Taneb> *cross
17:45:50 <elliott> haaaaaaaaah it works
17:45:52 <elliott> it works!!!
17:45:58 <elliott> joinAM :: forall f g x. (Adjoint f g, Cod g ~ (->)) => AM f g (AM f g x) -> AM f g x
17:46:02 <elliott> joinAM m = AM $ \f g o -> case eps f g of
17:46:04 <elliott> Nat _ _ trans ->
17:46:07 <elliott> let o' :: Dom g (f % x) (f % x)
17:46:09 <elliott> o' = case o of Ehh o' -> unsafeCoerce o' -- work-around stupid type family behaviour
17:46:12 <elliott> in (g % trans o') $ runAM (fmap (\(AM m') -> m' f g o) m) f g o
17:46:45 <Sgeo> I have no idea how Gregor's entry works
17:47:00 <Taneb> elliott: that looks uglier than my average code
17:47:07 <Sgeo> Is it Trusting Trust based? If not, I don't see how it matches...
17:47:27 <Sgeo> Or... I'm confused
17:47:45 <Sgeo> !txt2bf +
17:47:51 <elliott> the list monad from adjoint functors in Haskell: http://sprunge.us/Zcig
17:47:55 <Sgeo> What's the text2bf thing here?
17:47:58 <Sgeo> ^help
17:47:58 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
17:47:59 <elliott> (+ an awful lot of support code)
17:48:05 <Sgeo> !help
17:48:05 <EgoBot> ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
17:48:09 <elliott> oops, I omitted Mon
17:48:10 <Sgeo> !bf_txtgen +
17:48:14 <EgoBot> ​33 +++++++[>++++++>+>><<<<-]>+.>+++. [37]
17:48:28 <Sgeo> Uh, that has two dots in it
17:48:53 <elliott> redux: http://sprunge.us/fGjC
17:48:59 <Sgeo> Also I don't want to output
17:49:14 <Sgeo> Hmm, instead of initial idea, I could
17:49:20 <elliott> all you philistines
17:49:22 <elliott> ais523: appreciate please
17:49:25 <Sgeo> Wait, no, I can't
17:49:31 <Taneb> elliott: that's an... unusual Functor
17:49:34 <elliott> even though I didn't write most of that and also that's not the hard part
17:49:51 <elliott> Taneb:
17:49:56 <elliott> class (Category (Dom f), Category (Cod f)) => Functor f where
17:49:59 <elliott> type Dom f
17:50:01 <elliott> type Cod f
17:50:03 <elliott> type f % x
17:50:06 <elliott> (%) :: f -> Dom f x y -> Cod f (f % x) (f % y)
17:50:07 <ais523> elliott: err, I haven't looked at it yet, I'm busy
17:50:12 <Taneb> Okay
17:50:21 <elliott> Taneb: the problem is that the functors you need aren't endofunctors (Hask -> Hask) like the standard Functor gives you
17:50:32 <elliott> they are (Hask -> Mon) and (Mon -> Hask)
17:50:41 <elliott> the Category is custom too
17:50:51 <elliott> class Category c where
17:51:01 <elliott> dom :: c x y -> c x x
17:51:03 <elliott> cod :: c x y -> c y y
17:51:05 <elliott> (.) :: c y z -> c x y -> c x z
17:51:12 -!- sebbu has quit (Ping timeout: 264 seconds).
17:51:37 <Sgeo> Ok, so, my idea is basically Brainfuck with an added command ;
17:51:43 <FreeFull> What is Mon? Monad?
17:51:47 <Sgeo> The first invocation of ; marks the memory position
17:51:55 <elliott> FreeFull: Mon-oid
17:51:55 <Taneb> (%) :: FreeMon -> (x -> y) -> Mon [x] [y]
17:52:13 <elliott> it is the category of monoids
17:52:25 <Sgeo> The second takes all the data between the first and second memory position, and outputs the target code to compile what's in the thing
17:52:46 <Sgeo> Or maybe ; just means output the source for current memory position character
17:53:05 <Taneb> Also! Completely irrelevant thing I was thinking of today
17:53:20 <elliott> here's how you get the state monad: http://sprunge.us/bIbO
17:53:24 <Sgeo> [,;] is a compiler for this language
17:53:26 <Taneb> A function such that its third derivative is equal to itself
17:53:28 <Phantom__Hoover> Sgeo, mm
17:53:31 <Phantom__Hoover> don't like it
17:53:49 <Phantom__Hoover> essentially because you still have to have the original compiler 'on hand' for it to work
17:54:00 <FreeFull> Taneb: I can think of one where the fourth is
17:54:05 <FreeFull> But not the third
17:54:09 <elliott> Phantom__Hoover: comeo n appreciate
17:54:14 <Taneb> FreeFull: I can do first, second and fourth easily
17:54:21 <Taneb> I think I can figure out third
17:54:35 <Sgeo> Phantom__Hoover, not sure of that
17:54:49 <FreeFull> First is e^x, fourth is sin x or cos x
17:55:05 <Phantom__Hoover> Sgeo, i think if you can, like, retrieve the source of a suitable set of primitives?
17:55:10 <elliott> Phantom__Hoover: come on appreciate
17:55:16 <Phantom__Hoover> elliott, appreciate what
17:55:32 <elliott> Phantom__Hoover: the code!!!
17:55:43 <FreeFull> Second would be e^(-x) I think
17:55:47 <Sgeo> Phantom__Hoover, I don't know how to make a good "retrieval" operation in brainfuck
17:55:50 <Sgeo> Outputting's easier
17:56:06 <Sgeo> But anyway the C code that ; emits would have to be a quine, I think
17:56:17 <Phantom__Hoover> Taneb, e^((-1)^1/3)x
17:56:22 <Phantom__Hoover> uhhh
17:56:26 <Phantom__Hoover> that should be 1
17:56:28 <Phantom__Hoover> not -1
17:56:30 <Sgeo> I'm assuming that we're targetting C
17:56:33 <Sgeo> Because that's easy
17:56:41 <Sgeo> Although targetting x86 would be better obviously
17:57:27 <FreeFull> Phantom__Hoover: The cube root of 1 is 1 though
17:57:53 <Sgeo> But users of ; should explicitly NOT rely on the result except that that's the appropriate code to compile into the program
17:58:01 <Phantom__Hoover> FreeFull, the /real/ cube root of 1 is 1
17:58:08 <elliott> oh well if they shouldn't then of course nobody will
17:58:26 -!- sebbu has joined.
17:58:27 -!- sebbu has quit (Changing host).
17:58:27 -!- sebbu has joined.
17:58:52 <FreeFull> Phantom__Hoover: Oh wait, you're right
17:58:58 <FreeFull> But you didn't specify which cube root
17:59:23 <Taneb> Phantom__Hoover: I'm making it nicer, hang on
17:59:49 <ais523> yeah, you want one of the imaginary cube roots of 1
18:00:07 <Phantom__Hoover> i'm sure you can find a general form with differential equations but my opinions on differential equations can't really be coherently put into words
18:00:39 <Sgeo> Although maybe Brainfuck is not the best host language for this
18:00:45 <Taneb> Do they compare with your opinion on people who write brainfuck derivatives, Phantom__Hoover?
18:00:52 <Sgeo> Phantom__Hoover, do you think I should keep trying to make BF fit as a language for this thing, or try another?
18:01:03 <elliott> "ph should i make a bf derivative"
18:01:58 -!- ais523 has quit.
18:02:40 <Phantom__Hoover> Sgeo, have you considered stuff like sbcl
18:02:50 <Phantom__Hoover> i feel like it's relevant but i can't be bothered to work out how
18:02:58 <FreeFull> e^((-e^((i*pi)/3))*x) ?
18:03:49 <Taneb> e^0.5x * cos (x * sqrt 3 / 2)
18:03:49 <Taneb> I think
18:04:10 <Taneb> I'm wrong but don't know how
18:04:15 <Phantom__Hoover> FreeFull, the reason i wrote it the way i did was because i couldn't be bothered working out where all the (s and ^s went
18:04:16 <Taneb> Which means it's dinner time
18:04:18 <Phantom__Hoover> thank you
18:04:39 -!- augur has joined.
18:05:30 <FreeFull> What's the differencial period of e^-x + sin x ?
18:05:35 <Sgeo> Phantom__Hoover, well, I doubt that actually approaching things the way I'm trying to approach them is at all a good idea for maintainability or portability
18:05:57 <Phantom__Hoover> FreeFull, 4
18:05:58 <Phantom__Hoover> obv.
18:06:08 <FreeFull> Oh yeah, right
18:06:11 <Phantom__Hoover> Sgeo, i mean the overall compilation model
18:08:19 * Sgeo changes the language a bit
18:08:29 <Sgeo> ; on 0 outputs a prelude if needed
18:08:30 <Sgeo> ;+[,;]
18:08:54 <Sgeo> Wait, that's broken
18:10:28 -!- dessos has joined.
18:12:56 <Sgeo> "The main point of divergence at the time was a clean bootstrapping procedure: CMUCL requires an already compiled executable binary of itself in order to compile the CMUCL source code, whereas SBCL supported bootstrapping from - theoretically - any ANSI-compliant Common Lisp implementation."
18:14:39 <Sgeo> An interesting excersize is to write, in this language, a compiler for a different language, with similar semantics except + and - flipped around
18:15:09 <Sgeo> Beyond flipping + and - before sending it to ;, ; itself needs to be guarded such that it sees the flipped - and +
18:16:12 <Sgeo> How many machine code quines are there?
18:17:46 <Phantom__Hoover> 'machine code quine' is a bit of a vague concept
18:18:09 <coppro> Phantom__Hoover: why?
18:18:22 <Sgeo> Phantom__Hoover, yeah, I am getting visions of image based Lisps
18:18:23 <Phantom__Hoover> do you have to output the executable file? or the actual data in memory?
18:18:39 <Sgeo> For these purposes presumably the executable file
18:19:54 -!- SirCmpwn has quit (Excess Flood).
18:20:34 <Sgeo> CMUCL before SBCL split sounds similar to what I want, really
18:20:42 <Sgeo> Does what I want count as a metacircular compiler?
18:22:42 <kmc> you should call it MetaMuCL
18:23:16 -!- NihilistDandy has joined.
18:24:55 -!- SirCmpwn has joined.
18:25:01 <Sgeo> I don't get it, except being similar in name to CMUCL
18:26:06 <NihilistDandy> Anyone using Mozart on OS X? I'm trying to get it to use Cocoa Emacs over Aquamacs and google is failing me, so far.
18:28:30 <Sgeo> Ok, so ; on one should be a postlude
18:28:37 <Sgeo> So, the compiler looks like
18:28:49 <Sgeo> ;,[;,]+;
18:30:49 <nortti> what language is that?
18:31:21 <Taneb> Ae^x + e^(-x/2)(Bcos((x*sqrt 3)/2) + Csin((x*sqrt 3)/2)
18:32:03 <Sgeo> nortti, language with no name yet
18:32:06 <Taneb> Any function of that form is its own third derivative
18:33:02 <Sgeo> nortti, but, tl;dr: compiler for the language written in the language does not contain code in target language
18:33:31 <Taneb> For intsance, e^(-x/2) * cos (sqrt 3 * x / 2)
18:33:51 <Taneb> (where A = C = 0; B = 1)
18:33:57 <Taneb> Is its own third derivative
18:34:07 <Sgeo> The actual code to be emitted must be Trusting Trust'ed into the compiler
18:36:49 <NihilistDandy> Oh, neat, I just had a lie significantly with symlinks. I hope nothing breaks.
18:36:55 <Sgeo> lie?
18:37:37 <NihilistDandy> Had to call Emacs Aquamacs and the Emacs app bundle Aquamacs.app
18:37:52 <NihilistDandy> Oz doesn't seem to care so far.
18:38:58 -!- NihilistDandy has quit (Quit: Textual IRC Client: www.textualapp.com).
18:39:25 <Sgeo> Hmm, I think I need to think whether what I want is actually possible in the language I described
18:42:00 <Sgeo> I should be able to, in a few steps with the language, write a compiler for a language that's identical except - and + flipped
18:42:13 <Sgeo> ;,[;,]+; should also serve as a compiler for that language, written in that language, too
18:44:05 <Sgeo> Wait, no it shouldn
18:44:07 <Sgeo> shouldn't
18:44:10 <Sgeo> It would be ;,[;,]-;
18:45:56 <nortti> I'd like to know what those commands do
18:47:02 <Sgeo> It's Brainfuck with an additional operation ;
18:47:22 <Phantom__Hoover> gj Sgeo
18:47:28 <nortti> what does ; do?
18:47:47 <Sgeo> Say you have the Unicode codepoint for + in memory
18:48:02 <Sgeo> Then ; at that position will output code to do + in some language
18:48:12 <Sgeo> Let's say the target is machine code. ; then sort of compiles the +
18:49:02 <Sgeo> ; on 0 emits a prelude if necessary. ; on 1 emits a postlude if necessary
18:50:01 <Phantom__Hoover> http://blog.wolfram.com/2013/02/11/announcement-our-first-cbm-country/
18:50:03 <Phantom__Hoover> wolfram
18:50:06 <Phantom__Hoover> you motherfucker
18:50:29 <Sgeo> nortti, does this make sense?
18:50:50 <Sgeo> This means that the code that knows how to turn + into machine code is not in the compiler
18:51:00 <nortti> yeah
18:51:26 <Taneb> Phantom__Hoover: that bastard, choosing Estonia
18:54:18 -!- jix has quit (Quit: leaving).
18:54:39 -!- jix has joined.
19:03:03 <Sgeo> Ok, I see how to make the + - flip
19:03:07 <Sgeo> But it's... very...
19:03:12 <Sgeo> Would result in verbose target code
19:03:19 <Sgeo> Permanently from that point on
19:03:29 <Sgeo> But I guess that that's not necessarily a terrible thing?
19:05:00 <Sgeo> Python is probably an unusually bad language to target
19:08:25 <Sgeo> You know what would be a good language to target? Some implementation of Common Lisp
19:08:46 <Sgeo> Maybe
19:11:29 <Sgeo> What should I call this language?
19:11:31 <Sgeo> Trustfuck?
19:12:00 <elliott> how about base it on underload instead
19:12:27 <Sgeo> As in instead of Brainfuck, or as a target language?
19:12:41 * Sgeo looks at Underload
19:12:58 <Sgeo> Oh right that one
19:12:58 <Sgeo> Hmm
19:13:38 <Sgeo> So, a command that takes the top element of the stack and puts on the stack the target code?
19:14:47 <Sgeo> Do we still want to ... wait
19:15:01 <Sgeo> Is Underload even compilable?
19:15:07 <Sgeo> Without including an Underload interpreter?
19:15:21 * Sgeo glares at elliott
19:15:22 <boily> in times of doubt, uncertainty and generic undecisiveness...
19:15:24 <boily> ~yi
19:15:25 <cuttlefish> Your divination: "Great Exceeding" to "Small Accumulating"
19:15:51 <elliott> Sgeo: yes.
19:15:55 <elliott> Sgeo: I wrote an Underload compiler ages back
19:16:00 <elliott> it is easy
19:16:38 <Sgeo> I don't see an input mechanism :/
19:17:24 <elliott> I don't really see why you need input for this to work
19:17:28 <Phantom__Hoover> ~yi
19:17:28 <cuttlefish> Your divination: "Small Accumulating" to "Small Accumulating"
19:17:37 <Phantom__Hoover> is that bad
19:17:47 <boily> let me check...
19:18:25 <boily> you'll gain power by combining small things.
19:18:32 <kmc> smell accumulating
19:18:33 <kmc> ~yi
19:18:33 <cuttlefish> Your divination: "Diminishing" to "Centre Confirming"
19:18:39 <Sgeo> elliott, technically I don't, but prepending the program to compile to the compiler seems like it would be an annoying way to do things
19:18:56 <Sgeo> Wait, hmm
19:19:04 * Sgeo is slightly confused
19:19:31 <Sgeo> Yeah, I'm sorry, I want input
19:19:48 <nortti> lazy k?
19:20:38 <kmc> Phantom__Hoover: looks cool
19:21:49 <Phantom__Hoover> ~source
19:21:50 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
19:21:52 <Phantom__Hoover> boring
19:21:56 <Phantom__Hoover> ~duck
19:21:56 <cuttlefish> --- ~duck query
19:21:56 <cuttlefish> --- Query information from Duck Duck Go
19:22:25 <nortti> whose bot is cuttlefish?
19:22:31 <nortti> ~fortune
19:22:31 <cuttlefish> Accent on helpful side of your nature. Drain the moat.
19:22:33 <boily> nortti: mine.
19:22:51 <Sgeo> Is LLVM difficult to learn?
19:23:16 <kmc> it's 5 difficult
19:24:15 -!- monqy has joined.
19:24:33 * Sgeo wonders if an LLVM quine would be difficult
19:24:50 <Sgeo> LLVM bytecode still has to be compiled though I think? So why bother?
19:25:00 <olsner> you can interpret them too
19:25:48 <Sgeo> Either way, they're not native
19:26:25 <kmc> "native" is arbitrary
19:26:49 <nortti> Sgeo: target scab
19:27:21 -!- TwilightSpockle has changed nick to Gregor.
19:27:29 * kmc runs Sgeo's "native" code in qemu on a Transmeta processor. checkmate.
19:27:48 -!- zzo38 has joined.
19:28:08 <boily> transmeta?
19:28:16 <boily> ~duck transmeta
19:28:16 <cuttlefish> Transmeta Corporation was a US-based corporation that licensed low power semiconductor intellectual property.
19:28:27 <Taneb> ~duck FOGL
19:28:27 <cuttlefish> Falkland Oil and Gas Ltd, abbreviated to FOGL, is an energy company registered in the Falkland Islands and headquartered in London, the United Kingdom.
19:28:28 <kmc> "The actual Transmeta processors are in-order very long instruction word (VLIW) cores. To execute x86 code, a pure software-based instruction translator dynamically compiles or emulates x86 code sequences, using execution-hotspot guided heuristics."
19:28:59 <kmc> it didn't do that well, but cool idea
19:29:29 <boily> I think I recall remembering something like that we saw once in an obscure elective I had back in university.
19:30:53 <Sgeo> #jesus is hilarious
19:30:54 <kmc> an "x86" CPU that got a software update to add NX bit and SSE3 support
19:31:53 <Sgeo> Two people got into a people loop
19:32:49 -!- epicmonkey has quit (Ping timeout: 246 seconds).
19:33:02 <boily> there's an #jesus on freenode?
19:33:23 <Sgeo> yes
19:33:43 <boily> I fail to relate this channel's possible subject with any FLOSS project.
19:33:45 <olsner> a people loop?
19:33:54 <Sgeo> olsner, two people repeating the same thing
19:34:00 <kmc> a people loop?
19:34:08 <zzo38> boily: Look at the topic (you can look at it without joining)
19:34:13 <Sgeo> One going "shut your foul mouth up now." and the other going "wash your own mouth first"
19:34:21 <Sgeo> kmc, as opposed to a bot loop
19:34:23 <kmc> are they arguing about the pope
19:34:39 <Phantom__Hoover> boily, they have a link in the topic to the source for their channel bot
19:34:41 <Sgeo> I don't think so
19:34:49 <Phantom__Hoover> so maybe they're justifying it with that
19:34:57 <boily> oh well. here I join...
19:35:10 <Sgeo> It's been around since 2003
19:35:24 <Sgeo> So same way #esoteric justifies the single pound, I guess
19:35:44 <nortti> http://www.plutorocks.com/ vote persephone
19:35:49 <boily> now, I'm perturbed. shouldn't have joined.
19:36:17 <Sgeo> boily, you were in there and saw one line
19:36:25 <Sgeo> What happened before and afterwards is far more perturbing
19:37:04 * boily puts his hands on his ears and wildly sings ♪ LA LA LA LA LA LA LA ♪
19:38:46 <Phantom__Hoover> nortti, isn't persephone the greek name
19:38:54 <nortti> yes
19:39:16 <nortti> Phantom__Hoover: why do you ask?
19:39:34 <Phantom__Hoover> traditionally they use the roman ones
19:39:39 <nortti> ah
19:39:46 <Phantom__Hoover> in which case it should be... kore?
19:40:10 <Phantom__Hoover> fun fact: persephone was actually hades' niece
19:40:16 <boily> I voted persephone, but then eurydice was fine too. in the end, I checked both.
19:40:36 <Arc_Koen> Phantom__Hoover: how can kore be the roman name
19:40:42 <Phantom__Hoover> it's not
19:40:42 <Arc_Koen> kore means young girl in greek
19:41:02 <Phantom__Hoover> but i was working off the part of the wp article visible on google
19:41:33 <Arc_Koen> well I apologize, I haven't read the beginning of this conversation
19:41:48 <Arc_Koen> I just needed to show off and inform everyone here that I knew ancient greek
19:42:25 <boily> wikipedia says that the roman's persephone is proserpina.
19:43:23 -!- Taneb has quit (Ping timeout: 245 seconds).
19:43:25 <Sgeo> Maybe I should target Racket... wait, no
19:43:34 <Sgeo> I still think targetting CL is the best idea... somehow
19:43:49 <Sgeo> Or Haskell
19:43:55 <Sgeo> But might be easier to write the quine in CL?
19:44:51 <nortti> scheme?
19:49:04 <Sgeo> Hmm, what Schemes compile nicely?
19:52:26 <nortti> well there is stalin which seems like a pretty nice compiler
19:52:46 -!- WeThePeople has joined.
19:53:56 <Sgeo> That's R4RS, right?
19:54:19 <kmc> you should target Tcl via Ada and Clojure
19:54:21 -!- sirdancealot has quit (Ping timeout: 276 seconds).
19:55:23 <Sgeo> o.O <pjb> Sgeo: have a look at the sources of SBCL. Eg.: (defun car (x) (car x)) <--- !!!
19:55:52 <nortti> Sgeo: yeah. r4rs
19:56:03 <monqy> sgeo have you considered writing an interpreter for proof of concept before doing silly compiler things
19:56:31 <Sgeo> Not... entirely sure what an interpreter for this language would look like
19:57:28 <monqy> whats up with this language
19:58:59 -!- SirCmpwn has quit (Ping timeout: 252 seconds).
20:01:00 -!- DHeadshot has joined.
20:05:40 -!- SirCmpwn has joined.
20:06:34 -!- sirdancealot has joined.
20:11:27 -!- SirCmpwn has quit (Ping timeout: 260 seconds).
20:13:58 <Sgeo> I may as well make the compiler just glue an interpreter to some source-like thing
20:14:50 -!- DHeadshot has quit (Ping timeout: 240 seconds).
20:17:15 <Sgeo> Gah, need to remember esolangs password
20:17:49 <elliott> have you considered using our handy password reset feature
20:18:05 <Sgeo> There is no e-mail address recorded for user "Sgeo".
20:18:21 <elliott> maybe you should have recorded an email...........
20:18:25 <elliott> do you want me to reset it
20:18:49 <Sgeo> Sure, thanks
20:22:04 <Phantom__Hoover> monqy, at some point someone said 'metacircular compiler' and Sgeo rolled with it.
20:23:43 <monqy> i thought it was sgeo not wanting to learn x86 to implement his language so he overcomplicates it into a horrible thought experiment and nobody knoiws what they're even talking about
20:24:04 <Sgeo> Phantom__Hoover, I had the idea before anyone said "metacircular compiler"
20:24:16 <Sgeo> I think someone decided that my idea was a metacircular compiler
20:24:28 <Phantom__Hoover> oh was this your ridiculous language idea
20:24:45 <Phantom__Hoover> sorry i was misled by the fact that this is only mildly ridiculous
20:25:35 <Sgeo> monqy, the language idea is the same regardless of whether it targets x86 or not
20:25:45 <Sgeo> Targetting x86 would be cooler though
20:26:18 <Sgeo> There is still an implication I need to think through
20:26:22 <Sgeo> Having some trouble with it
20:27:01 <nortti> target stand-alone x86
20:27:14 <nortti> make your programs bootable!
20:27:37 <zzo38> I don't think you can make a full program target stand-alone x86, but you can target PC.
20:28:29 <Sgeo> Basically, I think it's currently a bit difficult to redefine ;
20:28:53 <nortti> compatible with original pc
20:29:04 <nortti> bios must have rom-basic
20:29:30 <kmc> zzo38 makes an important point that is often forgotten
20:29:41 <nortti> yeah
20:29:43 <kmc> there are significant non-PC x86 systems
20:30:45 <kmc> hell my college's intro microcontrollers class used a custom board (hand-soldered by students) with an 80186
20:30:46 <zzo38> Even disregarding those, though, the x86 is only the CPU and is not the keyboard, monitor, RAM, BIOS, disk, and everything else.
20:30:57 <kmc> which was pretty terrible
20:31:27 <kmc> i think they got a bulk discount on a 50 gallon drum full of 80186es back in the 80s and are still using them up
20:31:37 <nortti> 186?
20:31:41 -!- WeThePeople has quit (Quit: Leaving).
20:31:50 <kmc> yep
20:31:56 <Sgeo> What esolangs have I/O and are easy to write quines in?
20:32:03 <Sgeo> Might make more sense to use that as a base
20:32:08 <kmc> it was a halfassed attempt to make a microcontroller around the x86 architecture
20:32:19 <kmc> but it still requires way more external chips than, say, a PIC or AVR
20:32:28 <Sgeo> Trustfuck compiling to brainfuck. Would be a bit... pointless, but hmm
20:32:33 <kmc> probably due to being old
20:33:47 <kmc> here you are: http://wolverine.caltech.edu/eecs51/kits/index.htm http://wolverine.caltech.edu/eecs51/kits/kit51ins.htm
20:34:35 <kmc> in this class i would find some unusual term used, google it, and the only hit would be this course website
20:34:41 <kmc> nobody else cares about the 80186
20:36:25 -!- SirCmpwn has joined.
20:38:02 -!- Nisstyre has joined.
20:38:22 <Sgeo> To redefine ; is a quine needed?
20:38:59 -!- WeThePeople has joined.
20:39:40 <monqy> ; takes the value at the current location on the tape. If it is 0, it emits to output a "prelude". If it is 1, it emits to output an "epilogue". If it is any other value, it emits the code, in the target of the compiler, to perform the functionality of the
20:39:45 <monqy> ANSWER: maybe?
20:39:57 <olsner> !rot13 byfare
20:39:59 <EgoBot> olsner
20:40:28 <olsner> ah, twitter emails are sent from your email address rot13:d
20:43:26 * Sgeo goes to read an ActorScript tutorial
20:43:43 <monqy> ok
20:43:55 <Sgeo> oh god I thought it was going to be some cool thing of pure beauty but it has so many buzzwords
20:44:01 <Sgeo> Tutorial for ActorScript
20:44:01 <Sgeo> extension of C#
20:44:01 <Sgeo>
20:44:01 <Sgeo> , Java
20:44:01 <Sgeo>
20:44:01 <Sgeo> , Objective C
20:44:03 <Sgeo>
20:44:07 <Sgeo> oops
20:44:46 -!- impomatic has joined.
20:44:55 <monqy> what's this
20:45:08 <monqy> and why is it cool/pure beauty/buzzwords
20:45:44 <olsner> Sgeo: there may or may not be an attempt at humor hidden there
20:46:01 <Sgeo> olsner, oh
20:46:44 <monqy> ActorScript(TM): Industrial strength integration of local and nonlocal concurrency for Client-cloud Computing
20:47:26 <Sgeo> It's all message passing based, apparently including the definition of the language
20:47:32 -!- SirCmpwn has quit (Ping timeout: 248 seconds).
20:47:58 -!- zzo38 has quit (Remote host closed the connection).
20:48:35 <Sgeo> Ok, this paper is almost certainly a joke
20:49:00 <Sgeo> "Unlike almost all previous programming languages,
20:49:00 <Sgeo> because ActorScript uses bold font for reserved names,
20:49:00 <Sgeo> new reserved words can be introduced into the
20:49:00 <Sgeo> language without breaking existing programs."
20:49:25 <nortti> :DDDD
20:49:29 <kmc> doesn't algol do that
20:49:40 <boily> not sure if poe should be invoked...
20:49:44 <kmc> in some original form
20:49:54 <nortti> algol 58?
20:50:06 <olsner> are you sure that's not something they just did in books to make the programs look pretty?
20:50:17 <kmc> i heard that it was part of the language syntax, however I may have been misinformed
20:50:31 <kmc> in those days I guess "bold" meant "make the typewriter hit it twice"
20:50:46 <kmc> "punch an extra large hole in the card"
20:50:53 <olsner> hmm, so if it says "while" in bold you're supposed to type wwhhiillee?
20:51:24 <olsner> or maybe that plus backspaces
20:51:25 -!- asiekierka has quit (Read error: Connection reset by peer).
20:51:40 <Phantom__Hoover> no, you type while
20:51:50 <nortti> huh
20:51:52 <Phantom__Hoover> (backspaces omitted)
21:11:54 <Sgeo> Trustfuck is still a work in progress
21:14:24 <monqy> i'll take your word for it
21:18:04 -!- WeThePeople has quit (Ping timeout: 252 seconds).
21:19:02 <Sgeo> heh
21:31:14 <Sgeo> Hmm
21:31:59 <Sgeo> I forgot about :
21:33:47 -!- oerjan has joined.
21:34:25 <Sgeo> How do I avoid making my metacircular compiler look like a cleverly hidden metacircular interpreter?
21:35:18 -!- hagb4rd has joined.
21:35:31 * oerjan looks at the logs and starts inflating like a balloon
21:35:54 * boily looks at the logs and starts inflating like a zimbabwean dollar
21:36:02 <monqy> hi
21:36:03 <Sgeo> Quiler still confuses me. And I inspired it
21:36:04 <Sgeo> :/
21:36:04 <oerjan> OKAY
21:36:10 -!- trout has changed nick to variable.
21:36:11 <boily> ~metar OKAY
21:36:11 <cuttlefish> --- Station not found!
21:36:16 <boily> meh.
21:38:28 -!- Taneb has joined.
21:39:04 <Sgeo> Example might be easier
21:39:15 <Taneb> Perhaps, but perhaps not!
21:39:16 <Sgeo> Let's say that memory looks like this
21:39:24 <Sgeo> '+' | 1 | '-'
21:39:40 <oerjan> <Sgeo> The Pope's resigning <-- wat, seriously?
21:39:58 <Sgeo> That is, the current cell is the ASCII value for +, the cell to the right of that is 1, the cell to the right of that is the ASCII value for -
21:40:13 <boily> ~metar OKAS
21:40:13 <cuttlefish> --- Station not found!
21:40:18 <boily> ~metar OKAJ
21:40:19 <cuttlefish> --- Station not found!
21:40:19 <Sgeo> ; will take that, and change what will happen when : is executed with '+'
21:40:25 <boily> ~metar OKBK
21:40:25 <cuttlefish> OKBK 112100Z 17006KT 8000 NSC 18/10 Q1008 NOSIG
21:40:25 <Phantom__Hoover> Sgeo are you still prototyping this in brainfuck
21:40:42 <Sgeo> Phantom__Hoover, until such time that a better language for this purpose is shown to me
21:40:50 <Sgeo> But I agree there probably is a better language
21:40:56 <Phantom__Hoover> idk, false? underload/
21:41:11 <oerjan> fueue
21:41:12 <Sgeo> Underload has no input facility, which kind of sucks for this purpose
21:41:16 * oerjan hides back under rock
21:41:28 <Phantom__Hoover> false, then
21:41:56 -!- SirCmpwn has joined.
21:42:01 <Phantom__Hoover> maybe even something functional
21:43:07 <Taneb> oerjan: I'm amazed that a brainfuck intepreter in Fueue could be that short
21:43:10 <Taneb> Seriously, well done
21:43:18 <monqy> "prototype it in ada" - someone???
21:43:19 <oerjan> THANK YOU.
21:43:23 <monqy> "prototype it in dylan" - someone???, shortly after
21:43:30 * oerjan basks in his newfound divinity
21:43:47 -!- boily has quit (Quit: mon aéroglisseur est plein de lasagne française.).
21:43:51 -!- cuttlefish has quit (Remote host closed the connection).
21:43:58 <Sgeo> monqy, I need two languages for this
21:44:10 <Sgeo> 1) A language to base it on. That is, a simple language whose semantics I extend
21:44:18 <oerjan> it could have been even shorter if i had left out all the error checking (for mismatched [])
21:44:18 <monqy> "ada and dylan"
21:44:26 <Sgeo> And 2) A language to serve as the target of an initial implementation
21:45:08 -!- SirCmpwn has quit (Excess Flood).
21:46:04 <Phantom__Hoover> hmm
21:46:29 <Sgeo> I think Brainfuck might still be fine as a basis
21:46:37 <Taneb> oerjan: fondly regard creation?
21:46:53 <oerjan> Taneb: wat
21:47:02 <Sgeo> Especially with : and ;
21:47:09 <Taneb> oerjan: it's what gods do
21:47:25 <oerjan> ic. well my own creation, probably.
21:47:35 <oerjan> the rest is a bit mixed.
21:47:38 <Sgeo> Although I don't know how implementable that is
21:48:14 <Phantom__Hoover> would it be fair to say you're looking for a language in which you can write a 'general compiler'
21:48:17 <Taneb> http://www.mspaintadventures.com/?s=4&p=001326
21:48:26 <Taneb> shachaf: that isn't homestuck, don't worry
21:48:46 <Sgeo> Phantom__Hoover, for which part?
21:48:54 <Phantom__Hoover> i.e. if you have a compiler Q : A -> X, you can have a program P : A such that Q P : A -> X forall X?
21:49:01 <Phantom__Hoover> and it's the same P?
21:49:45 <Sgeo> erm
21:49:52 <Sgeo> Sorry, I'm feeling a bit derpy right now
21:50:28 <Phantom__Hoover> where A is the metacircular language, X is some target, P is the universal compiler, and Q P is the program in X that Q compiles P to, and this notation was a terrible idea
21:51:29 <Sgeo> Hmm. Yes, I think
21:51:57 <Sgeo> Although my current ; and : semantics rule out some Xs, which is sad
21:52:37 <Sgeo> But :,[:,]+: is supposed to be a Trustfuck compiler, written in Trustfuck, for any target language
21:52:54 <Sgeo> *that targets the language in which the compiler itself was... erm
21:53:09 <Phantom__Hoover> the thing is, i'm fairly sure to implement this you basically have to include a copy of Q in Q P
21:53:55 <Sgeo> That's done via quine
21:54:13 <oerjan> `quine is quite easily done
21:54:16 <Sgeo> : expands to a quine in the target
21:54:16 <HackEgo> ​`quine is quite easily done
21:56:29 <oerjan> `run $x = "$(quine)"; print "%s" "$x" #Is this the right syntax?
21:56:33 <HackEgo> bash: =: command not found \ Warning: unknown mime-type for "%s" -- using "application/octet-stream" \ Warning: unknown mime-type for "" -- using "application/octet-stream" \ Error: no such file "%s" \ Error: no such file ""
21:56:42 <oerjan> hmph
21:57:14 <oerjan> `cat bin/log
21:57:15 <HackEgo> ​#!/bin/sh \ cd /var/irclogs/_esoteric \ if [ "$1" ]; then \ grep -P -i -- "$1" ????-??-??.txt | shuf -n 1 \ else \ file=$(shuf -en 1 ????-??-??.txt) \ echo "$file:$(shuf -n 1 $file)" \ fi
21:57:29 <oerjan> `cat bin/'?'
21:57:30 <HackEgo> cat: bin/'?': No such file or directory
21:57:34 <oerjan> `cat bin/?
21:57:36 <HackEgo> ​#!/bin/sh \ topic=$(echo "$1" | tr A-Z a-z | sed "s/ *$//") \ topic1=$(echo "$topic" | sed "s/s$//") \ cd wisdom \ if [ \( "$topic" = "ngevd" \) -a \( -e ngevd \) ]; \ then cat /dev/urandom; \ elif [ -e "$topic" ]; \ then cat "$topic"; \ elif [ -e "$topic1" ]; \ then cat "$topic1"; \ else echo "$1? ¯\(°_o)/¯"; exit 1;
21:58:11 <oerjan> `run x="$(quine)"; print "%s" "$x" #Is this the right syntax?
21:58:15 <HackEgo> Warning: unknown mime-type for "%s" -- using "application/octet-stream" \ Warning: unknown mime-type for "`run x="$(quine)"; print "%s" "$x" #Is this the right syntax?" -- using "application/octet-stream" \ Error: no such file "%s" \ Error: no such file "`run x="$(quine)"; print "%s" "$x" #Is this the right syntax?"
21:58:19 <oerjan> oops
21:58:23 <oerjan> `run x="$(quine)"; printf "%s" "$x" #Is this the right syntax?
21:58:27 <HackEgo> ​`run x="$(quine)"; printf "%s" "$x" #Is this the right syntax?
21:58:38 <oerjan> there you go.
22:03:45 <Sgeo> oerjan, have you been reading about my language?
22:04:00 <oerjan> i'm not very far in the logs
22:04:25 <oerjan> although you have started mentioning it
22:06:39 <oerjan> <Phantom_Hoover> Don't think you have to use duplication for it, which is the trickiest thing in eodermdrome. <-- hm ideally you'd want [] to actually have a real cyclic path representation
22:06:46 <oerjan> *[] loops
22:08:36 <oerjan> i think the main difficulties with doing this in eodermdrome are (1) the limited number of letters forcing you to look at only small parts of the graph at a time - my BCT interpreter almost reached the limit although ais523 had a hunch it could be made to use less. (2) no implementation to actually test stuff in, which admittedly didn't stop me from doing BCT.
22:09:08 <Phantom__Hoover> oerjan
22:09:15 <Phantom__Hoover> there is a simple solution to 1
22:09:16 <oerjan> oh and you'd want complete character tables for I/O, but that was a thing with unlambda too.
22:09:32 <Phantom__Hoover> at no point in the spec does it say you have to stick to ascii
22:09:59 <oerjan> i'm pretty sure that is implied. although i also jested about ... the other day.
22:10:08 <Phantom__Hoover> a string of letters, representing a graph (see below); this is the match subgraph
22:10:12 * oerjan prepares to search the logs for what ... was
22:10:13 <Phantom__Hoover> just says letters
22:10:23 <Phantom__Hoover> no reason that can't include greek or cyrillic
22:10:55 <oerjan> `log <oerjan.*[^o]d.*rmdr.*m.*
22:11:23 <HackEgo> 2013-02-11.txt:22:08:36: <oerjan> i think the main difficulties with doing this in eodermdrome are (1) the limited number of letters forcing you to look at only small parts of the graph at a time - my BCT interpreter almost reached the limit although ais523 had a hunch it could be made to use less. (2) no implementation to actually test stuff in, w
22:11:38 <oerjan> oh hm
22:11:51 -!- Taneb has quit (Quit: Page closed).
22:12:00 <oerjan> `log <oerjan.*[^o]d..?.?rmdr.?.?m
22:12:08 <HackEgo> 2013-02-11.txt:22:10:55: <oerjan> `log <oerjan.*[^o]d.*rmdr.*m.*
22:12:13 <oerjan> fff
22:12:17 <oerjan> `pastlog <oerjan.*[^o]d..?.?rmdr.?.?m
22:12:24 <HackEgo> No output.
22:12:45 <oerjan> `pastlog <oerjan.*[^o]d..?.?.?rmdr..?.?.?m
22:12:52 <HackEgo> No output.
22:13:00 <oerjan> wat.
22:13:22 <oerjan> `pastlog <oerjan.*d.?.?.?[^e]rmdr..?.?.?m
22:13:26 <Phantom__Hoover> there is a not-so-simple solution to 2, as well
22:13:29 <HackEgo> No output.
22:13:43 <oerjan> oh wtf
22:13:57 <oerjan> YOU DON'T SAY
22:15:16 <oerjan> `pastlog <oerjan.*d.?.?.?.?[^e]rmdr..?.?.?.?m
22:15:22 <HackEgo> No output.
22:15:29 <oerjan> this is awkward
22:16:21 <oerjan> `pastelogs <oerjan.*[^o]d.*rmdr.*m.*
22:16:37 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27897
22:17:12 <oerjan> oh wait
22:17:19 -!- carado has quit (Ping timeout: 246 seconds).
22:17:20 <oerjan> i changed consonants too.
22:18:09 <oerjan> `pastelogs <oerjan.*đ
22:18:22 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.32689
22:18:52 <oerjan> 2013-02-06.txt:20:54:15: <oerjan> we shall just have to make the Ëơđëřmđřơmë dialect, which has a large enough alphabet to be practical.
22:19:27 <Phantom__Hoover> sorry, what were we talking about
22:19:49 <oerjan> my suggested name for a Unicode eodermdrome dialect
22:20:26 <Phantom__Hoover> oh
22:20:31 <Phantom__Hoover> how'd we get on to that
22:22:58 <oerjan> because i said eodermdrome had too few letters, and you said it wasn't restricted to ascii
22:24:43 <oerjan> <Sgeo> Maybe not rewriting, but just making it interoperate with the new idiom fully... which still sounds difficult <-- this _does_ sound a bit like what you use monad stacks for in haskell
22:25:04 <oerjan> *monad transformer stacks
22:25:10 <Sgeo> oerjan, you're still on that idea. I've since gone on to discuss something more plausible
22:25:27 <Sgeo> Yet somehow more headachey
22:25:27 <oerjan> LOG READING TAKES TIME
22:25:32 <oerjan> OKAY
22:25:33 <Sgeo> ok
22:52:24 <coppro> I want a language where 'intern' is either a data type
22:52:27 <coppro> or a modifier on a variable
22:55:18 <Sgeo> How goes log-reading?
23:01:08 <oerjan> i'm currently recursing into ais523's comment on splinter, which has led me to hand-execute his converted PDA
23:12:14 <FreeFull> How about eodermdrome with doubleletter and tripleletter constants, using some sort of escaping
23:22:12 <Phantom__Hoover> no
23:22:13 <Phantom__Hoover> unicode
23:22:19 <Phantom__Hoover> much better
23:23:59 <Sgeo> Phantom__Hoover, I'm starting to see what you mean
23:24:20 <Phantom__Hoover> what did i mean
23:24:35 <Sgeo> About needing to include the compiler
23:24:43 <Sgeo> Suppose I want to make a modification
23:25:08 <Sgeo> I'm going to end up needing to write a trustfuck quine in order to emit different code for : that stays consistent, I think
23:25:11 * Sgeo isn't certain though
23:25:29 * oerjan concludes Splinter is indeed a PDA
23:26:30 <Phantom__Hoover> actually you definitely need to include a full compiler
23:27:06 <Sgeo> ?
23:27:13 <Phantom__Hoover> because the target language could have completely ridiculous semantics for concatenation or whatever, so you pretty much need to compile the code given to you holistically
23:27:45 <Sgeo> Phantom__Hoover, with my current spec, the target language is constrained :(
23:28:49 <Phantom__Hoover> well i'm satisfied that there's no way to do it 'properly' now
23:29:14 * oerjan suddenly realizes `addquote sounds funny when read aloud
23:30:02 <Sgeo> Phantom__Hoover, eh? Just because I'm having a failure of imagination??
23:30:09 <Sgeo> s/\?\?/\?/
23:31:15 <Phantom__Hoover> no, because of the thing i just said
23:31:24 <Sgeo> Phantom__Hoover, one of my original thoughts had { and } primitives
23:32:06 <Sgeo> Where you go to one location in memory, then do {, then to another, then }, then those primitives proceed to compile the code represented within those memory locations into target language and output
23:32:12 <Phantom__Hoover> you have to either include a compiler into the compiled program or include details of the target language into the language spec itself
23:32:13 <oerjan> <ais523> (the "it didn't compile in the first place" isn't normally necessary, but it is if you suspect there's a strong AI in there) <-- "wtf is cat compiled with this 9 gigabytes? oh it was a bug in ls, it was fixed when i recompiled it."
23:32:52 <oerjan> "there was a similar bug in du and df"
23:33:14 <Sgeo> Phantom__Hoover, should I go back to those primitives
23:33:16 <FreeFull> Which is faster, multiplying two bignums and then taking the mod n, or taking the mod n of both, multiplying and taking the result mod n?
23:33:38 <kmc> depends how big and how n relates, i expect
23:33:46 <Phantom__Hoover> Sgeo, your best bet is to ignore my advice, because i'm thinking about something significantly different to you
23:33:53 <kmc> for large numbers and small n the latter will probably be faster
23:34:00 <kmc> but the real answer to "which is faster" questions is "benchmark it"
23:34:36 <Sgeo> Phantom__Hoover, I think in a sense I am including a compiler into the compiled program
23:34:51 <Sgeo> ...it's not "in a sense"
23:35:04 <Sgeo> The : primitive (or {} primitives) are a compiler
23:35:50 <Phantom__Hoover> yeah
23:36:04 <Phantom__Hoover> so i have relatively little interest in the actual implementation of the whole thing
23:36:41 <Phantom__Hoover> there are probably other interesting things you can do with the concept! but i suspect most of them will be equivalent to interesting things you can do with metacircular evaluators
23:37:07 * Sgeo isn't as used to metacircular evaluators as he'd like to be
23:37:50 <Phantom__Hoover> the first time i heard the word 'metacircular' was with Gregor's amazing javascript token checking thing
23:42:27 <kmc> "There's no doubt that Apple is at the center of technology's largest revolution ever"
23:42:35 <Sgeo> I think I like the {} idea better
23:44:08 <kmc> who needs agriculture or industrialization when you can have... ipads
23:44:47 <Sgeo> {,[>,]<}
23:45:07 <kmc> what kind of fucked up emoticon is that
23:46:27 <Sgeo> Hmm, the semantics of { and } aren't clear enough in my head
23:48:59 -!- sirdancealot has quit (Ping timeout: 255 seconds).
23:56:59 -!- augur has quit (Remote host closed the connection).
23:58:08 <oerjan> <Sgeo> Also I don't want to output <-- http://esolangs.org/wiki/Brainfuck_constants hth
2013-02-12
00:01:31 <Sgeo> .topic
00:02:56 <oerjan> <FreeFull> But you didn't specify which cube root <-- all of them, and then the general solution is to do all linear combinations.
00:04:55 <Sgeo> oerjan, that seems annoying, the way some of them, say, put the constant in the cell to the right
00:05:06 <Sgeo> Going to need to think about what each one does, exactly, in order to use it
00:05:07 <Sgeo> :/
00:06:10 <oerjan> well if you have something like +++++[->+++++<] for 25 then it's hard _not_ to get the result in the cell you didn't start in
00:06:45 <Sgeo> It's easy to modify, but would be nice for some of them if it were clearer what it would do
00:06:52 <Sgeo> So I know whether I need to mod
00:08:26 <oerjan> i believe we agreed to the principle that it should _end_ on the cell with the result.
00:09:38 <oerjan> and i think all the 2-cell versions have balanced loops, so if you look for those that have > after the final ] it should give it in the right hand cell.
00:09:40 <Sgeo> I might just give my language an extra command \
00:10:47 -!- sivoais has quit (Changing host).
00:10:47 -!- sivoais has joined.
00:12:17 <oerjan> Sgeo: i suspect all the 2-cell ones end on the right hand cell anyway
00:14:27 <oerjan> oh there's a counterexample for 75. it's not the first one listed, though.
00:14:48 * Sgeo decides he doesn't like {}
00:14:54 <Sgeo> Instead, meet ; and :
00:15:25 <Sgeo> ; inputs the current cell value into the current code block, and ; outputs the result of compiling the current code block
00:15:41 <Sgeo> erm, : outputs etc.
00:16:20 <Sgeo> ,[;,]:
00:23:00 <monqy> ok
00:23:28 <Sgeo> I still want to not require the pain of writing a Brainfuck quine just to permanently change the meaning of :
00:35:00 <oerjan> you realize this would be _so_ much easier in brainbrain.
00:35:18 <oerjan> oh hm wait
00:35:42 <oerjan> brainbrain compiles brainfuck easily, not brainbrain
00:35:55 <oerjan> or was that interpret argh
00:40:16 <monqy> well if brainfuck is brainfuck-1 and brainbrain is brainfuck-2, how about brainfuck-3.
00:40:37 * Sgeo is aiming at brainfuck-aleph-null
00:41:19 <monqy> well when we're talking about stuff like this we should be using ordinals not cardinals shouldn't we
00:41:22 <kmc> brainfuck-ω maybe
00:41:31 <kmc> yeah
00:42:02 <kmc> ordinals are more fun anyway
00:42:43 <kmc> brainfuck-ε₀
00:44:33 <Slereah_> Brainfuck Continuum
00:48:19 <Sgeo> Should I call it Trustfuck or Braintrust?
00:48:35 <Sgeo> I can put the latter on GitHub where employers could see it and mention it in interviews...
00:48:45 <Sgeo> But I like the name Trustfuck more
00:48:56 <Slereah_> Try Babyfuck
00:49:00 <Slereah_> Much better for resumes
00:49:54 <kmc> depends on the company, a lot of them seem to find being profane and unprofessional quite attractive
00:50:21 <monqy> you could call it trustf**k, or trust**** for added mystique
00:50:29 <kmc> how about *********
00:50:31 <monqy> could it be trustdamn?? trustshit????? nobody knows
00:50:38 <Slereah_> Trusthumbug
00:50:45 <kmc> call it buttshitter 2000
00:51:04 <kmc> enterprise edition
00:51:07 <Slereah_> Trustzounds
00:51:25 <elliott> how about t***tf***k
00:51:42 -!- monqy has quit (Quit: Lost terminal).
00:51:57 <Slereah_> titfuck
00:53:21 -!- monqy has joined.
00:54:16 <oerjan> fuckingfuck
00:54:58 <Slereah_> Or you could call it P''
00:55:02 <Slereah_> The math name
00:55:31 <oerjan> or rather, Reflections on Fucking Fuck
00:55:46 <oerjan> Slereah_: you realize that's taken
00:56:04 <Slereah_> But at least there's no profanity
00:58:35 -!- SirCmpwn has joined.
01:03:35 <kmc> oerjan: haha
01:05:39 <elliott> i endorse Reflections on Fucking Fuck
01:06:41 <kmc> that would be a good name for a blog
01:08:39 <Phantom__Hoover> Sgeo, call it ardemus
01:08:46 <Phantom__Hoover> latin is clever right
01:09:24 <Sgeo> I don't get it
01:09:38 <Phantom__Hoover> it's latin
01:09:42 <Phantom__Hoover> you're not supposed to get it
01:13:26 <Sgeo> More important things to work out than the name
01:13:40 <Sgeo> Do I need to add more commands to manipulate the code block? How do I fix the quine issue?
01:13:57 <Slereah_> Latin would be ainfuckbray
01:18:00 <Phantom__Hoover> my lazy translation would be cerebrumcrisandum, but that's a terrible translation
01:23:23 <Sgeo> I.... think what I need to do is subtly change the semantics of :
01:23:36 <monqy> ok
01:24:02 <Sgeo> I was thinking along the lines of adding a ! and having that mean compile with previous compiler, but that's almost identical to :, but... I see... a little bit of a diference
01:24:33 <Sgeo> What I need : to do is send to the previous version of the compiler, rather than have literal meaning tacked in
01:25:08 <Sgeo> ....now I need to think if that's implementable
01:25:23 <oerjan> when Sgeo is finished he'll have accidentally implemented Feather.
01:27:28 <Sgeo> I think my prior confusion was because I had an incorrect implementation in my head
01:27:51 <oerjan> happens to all of us.
01:30:24 <Sgeo> I feel like I want to extend it a bit more
01:30:35 <Sgeo> Not just store a compiler secretly, but arbitrary data too
01:31:10 <Sgeo> But that seems even more difficult
01:32:55 <shachaf> monqy: adjunctions are "pretty neat huh"
01:33:22 <monqy> hi shachaf
01:33:23 -!- copumpkin has quit (Ping timeout: 252 seconds).
01:33:27 <Sgeo> Actually, I don't need to add extra constructs to do it. Just write a compiler that transforms, say, q into, say, +++
01:33:34 <shachaf> hi monqy
01:33:36 <Sgeo> before sending to prior compiler
01:33:42 <shachaf> welcome to #-lens
01:33:55 <monqy> ye.
01:34:01 -!- copumpkin has joined.
01:39:15 -!- Phantom__Hoover has quit (Quit: Leaving).
01:40:56 <shachaf> monqy: you know how you can get State and Store from the unit and counit of the (e,) -| (e->) adjunction?
01:42:53 <monqy> ok
01:47:23 <Sgeo> How problematic is it that each iteration will result in a bigger and bigger binary
01:47:27 <Sgeo> Is this even avoidable?
01:47:30 <Sgeo> I doubt it, tbh
01:49:05 <Sgeo> Ok, new command. !. Compiles with the primitive compiler
01:51:38 <kmc> hichaf
01:51:46 <shachaf> heegan
01:51:52 <shachaf> do you like adjunctions
01:52:15 <shachaf> they "are pretty neat imo"
01:52:19 <kmc> don't know about those
01:52:46 <shachaf> An adjunction between two functions is when you have (F a -> b) ~~ (a -> G b)
01:53:05 <elliott> between two functions
01:53:08 <shachaf> Er.
01:53:09 <shachaf> functors
01:53:30 <shachaf> Just ask elliott how great they are.
02:08:02 <Sgeo> I keep thinking in terms of Haskell, but Scheme is probably easier to write quines in
02:10:14 <kmc> quines are equally easy to write in most languages, in that there's only one trick
02:10:38 <kmc> Scheme has the advantage that you get to read/print S-expressions rather than flat strings, but this isn't that useful in writing a quine
02:10:45 <kmc> Haskell quine is shorter overall I believe
02:11:08 <kmc> the quine trick is also the halting theorem proving trick and the Y combinator trick
02:11:11 <kmc> p. good trick imo
02:12:06 <shachaf> AAAA++++++ would trick again
02:12:37 -!- TeruFSX has joined.
02:20:49 <Sgeo> Should the compile command be : or !
02:21:05 <Sgeo> ! seems exciting, but : sort of evokes output, the way ; evokes input
02:21:35 <kmc> it should be ꙮ
02:24:20 <shachaf> So with an adjunction F -| G you have eps : F (G a) -> a and eta : a -> G (F a), and that's enough to give you a monad and a comonad.
02:24:38 <shachaf> With return = eta and join = fmap eps
02:25:01 <Sgeo> http://esolangs.org/wiki/Trustfuck
02:28:17 <Sgeo> So yeah, I added a cheat to make programming slightly easier
02:28:47 <Sgeo> \H.\e.\l.\l.\o.\ .\W.\o.\r.\l.\d. is hello world
02:28:53 <Sgeo> I have no regrets
02:37:22 <shachaf> @ask zzo38 What is <http://www.gravatar.com/avatar/432b14624c692e7a24b7ce1c1ec8db50?size=160&d=wavatar>?
02:37:23 <lambdabot> Consider it noted.
02:47:06 <Sgeo> Here's a question: As of right now, does Trustfuck count as implemented?
02:47:48 <Sgeo> I wrote the compiler. The compiler exists. Yet, it is not currently usable. However, it can be made usable in the future.
02:48:01 <Sgeo> So, Implemented or Unimplemented?
02:48:01 <kmc> shachaf: did you finish cryptochallenges part 2 yet?
02:49:19 <Sgeo> Hmm, I remember asking a similar question before, and someone noted that if "A compiler exists" is all that's needed, everything is implemented
02:51:07 <kmc> shachaf: what a strange question
02:51:40 <kmc> it looks like a default gravatar here, of the 'funny face' variety
02:51:52 <kmc> if you change 'wavatar' to 'identicon' you'll get a geometrical pattern
02:54:28 -!- DHeadshot has joined.
02:58:51 <Sgeo> I think I was just called a sinner for making an esolang
03:01:36 <shachaf> kmc: Oh, I thought it was zzo38's picture.
03:01:40 <shachaf> I've never seen that default.
03:01:49 <shachaf> kmc: Nope, haven't worked on it.
03:01:54 <shachaf> elliott has been distracting me!
03:01:57 <shachaf> (And other things.)
03:02:02 <kmc> i see
03:02:02 <shachaf> I should do it.
03:02:13 <kmc> i need to marshall enough attention to solve problem 14
03:02:53 <shachaf> have you added the word "kentucky" to your lexicon yet
03:03:11 <shachaf> KENTUCKY (adv.)
03:03:11 <kmc> i don't understand
03:03:11 <shachaf> Fitting exactly and satisfyingly. The cardboard box that slides neatly into an exact space in a garage, or the last book which exactly fills a bookshelf, is said to fit 'real nice and kentucky'.
03:03:21 <kmc> ok
03:03:32 <Sgeo> "activly wasting time is a sin just so you know"
03:03:52 <kmc> is that because kentucky perfectly fills the space between west virginia, virginia, tennessee, missouri, illinois, indiana, and ohio?
03:04:55 <shachaf> I'm not sure why.
03:04:57 <shachaf> http://folk.uio.no/alied/TMoL.html
03:05:27 <kmc> i've heard that's a good book
03:06:43 <shachaf> It has many useful words.
03:08:48 <shachaf> PAPPLE (vb.)
03:08:48 <shachaf> To do what babies do to soup with their spoons.
03:09:05 <shachaf> NYBSTER (n.)
03:09:05 <shachaf> Sort of person who takes the lift to travel one floor.
03:09:12 <shachaf> Perhaps I shouldn't paste the whole thing in here.
03:12:48 <kmc> it's been a while since i watched a baby eat soup
03:19:14 <kmc> haven't been keeping up with fuckyeahbabieseatingsoup.tumblr.com
03:21:11 <kmc> "The IPv6 version has extra scenes and extra color support. So if you want to experience ascii starwars to it's fullest you really should get IPv6."
03:21:51 <shachaf> Maybe kmc would find forgetful functors more interesting if someone left adjoint in one.
03:22:10 <kmc> *groan*
03:22:27 <kmc> it's funny because marijuana makes people forgetful
03:25:06 <shachaf> There should be a law against fancy letters.
03:25:22 <kmc> the nazis had one of those
03:26:26 <shachaf> Also there should be a law against Greek letters.
03:27:15 <kmc> they also banned tubas or was it accordians
03:27:42 <shachaf> have you learned to play the chromatic button accordion yet
03:28:19 <kmc> no why would i do that
03:28:40 <shachaf> because 'it's p. cool´
03:29:21 <kmc> im not cool :(
03:30:01 <shachaf> oh no
03:34:31 -!- augur has joined.
03:49:37 <Sgeo> "Next time, Ill explain what zippers are, and describe how to do calculus with types."
03:49:42 * Sgeo is finding this series enjoyable
03:50:05 -!- zzo38 has joined.
03:50:35 <shachaf> Sgeo: You should make a Twitter account.
03:50:55 <Sgeo> I have a Twitter account
03:50:58 <Sgeo> @sgeocomet
03:50:59 <lambdabot> Unknown command, try @list
03:51:04 <shachaf> Oh.
03:51:12 <shachaf> You should use it.
03:51:19 <Sgeo> I do occasionally
03:55:42 -!- SirCmpwn has quit (Ping timeout: 252 seconds).
04:00:49 <kmc> http://review.cyanogenmod.org/#/c/30269/1/include/utils/Singleton.h why should this matter? allegedly it fixes a One Definition Rule violation
04:05:56 <kmc> maybe i am drunk enough to venture into ##c++
04:06:09 <shachaf> oh boy
04:06:25 <kmc> i want to know the answer
04:07:41 <kmc> also using CPP to instantiate templates is great
04:08:10 <kmc> i heard you like templates so i put templates in your bastardized not-quite-templates
04:09:09 <shachaf> i heard you like monoids
04:12:21 -!- SirCmpwn has joined.
04:14:57 <zzo38> Is a disjunctive state monad useful for anything?
04:14:57 <lambdabot> zzo38: You have 1 new message. '/msg lambdabot @messages' to read it.
04:15:35 <zzo38> ?messages
04:15:36 <lambdabot> shachaf asked 1h 38m 14s ago: What is <http://www.gravatar.com/avatar/432b14624c692e7a24b7ce1c1ec8db50?size=160&d=wavatar>?
04:15:41 <shachaf> What is the disjunctive state monad?
04:16:13 <zzo38> shachaf: I don't know what tha picture is; I think it is just a random picture used when you don't have a account.
04:16:21 <shachaf> ok.
04:16:29 <zzo38> shachaf: A disjunctive state monad is what I called (CodensityAsk (Store x))
04:16:54 <zzo38> (It is either the state or the value rather than both)
04:16:58 <shachaf> Let me see.
04:16:59 <shachaf> newtype CA m a = CA { runCA :: forall r. m r -> (a -> r) -> r }
04:17:13 <shachaf> forall r. Store x r -> (a -> r) -> r
04:17:25 <shachaf> forall r. (x, x -> r) -> (a -> r) -> r
04:17:41 <shachaf> forall r. x -> (x -> r) -> (a -> r) -> r
04:17:50 <shachaf> forall r. x -> Either x a
04:18:01 <zzo38> (In addition, <|> can be used to compose states; if the left side is a state then that becomes the input state for the right side.)
04:18:03 -!- SirCmpwn has quit (Quit: Leaving).
04:18:45 <shachaf> That's like half a simple prism!
04:20:44 <zzo38> What is a simple prism?
04:21:01 <shachaf> SimplePrism s a = (a -> s, s -> Either s a)
04:21:05 -!- SirCmpwn has joined.
04:22:14 <zzo38> OK
04:23:35 <shachaf> How does this monad behave?
04:24:09 <shachaf> @unmtl ReaderT r (Either e) a
04:24:09 <lambdabot> r -> Either e a
04:24:40 <shachaf> So it's like ReaderT s (Either s)?
04:25:12 <zzo38> I suppose so, except that it is now also MonadPlus
04:25:15 <shachaf> I don't think this has much to do with state as such.
04:25:36 <zzo38> I also don't really think it has a lot to do with the state
04:25:53 <shachaf> ReaderT also has a MonadPlus instance.
04:26:04 <shachaf> And (Either e) does (right?)
04:26:12 <shachaf> Hmm, not always.
04:26:20 <zzo38> No it doesn't, but it should, if e is a monoid!
04:26:32 <zzo38> However, it is not the same MonadPlus you get from that.
04:26:55 <shachaf> Right.
04:28:21 <zzo38> (Note that (CodensityAsk ((->) x)) is like (Either x) and will give you the MonadPlus instance automatically.)
04:28:50 <shachaf> Are you sure CodensityAsk is a good name for this monad?
04:29:04 <zzo38> No, but I don't know the better name that is why it is called that.
04:30:05 <zzo38> (Codensity ((->) x)) gives you (State x).
04:31:16 <shachaf> (Codensity R) will give you (x ->)
04:31:17 <shachaf> What is R?
04:31:42 <zzo38> I don't know.
04:31:46 <shachaf> But it exists.
04:32:06 <zzo38> OK, maybe I can figure it out, but right now I don't know.
04:32:13 -!- sebbu has quit (Ping timeout: 256 seconds).
04:32:32 <shachaf> I thought we pay you to know these things.
04:32:43 <zzo38> You don't pay me.
04:32:51 <shachaf> We pay you attention!
04:32:58 <shachaf> Sometimes.
04:33:31 <zzo38> Well, yes, it is the IRC you can pay attention whever is written on here, if you want to.
04:33:32 -!- sebbu has joined.
04:33:36 <zzo38> But I don't know everything.
04:33:36 <shachaf> zzo38: Every monad M can be expressed as (Codensity R) for some R.
04:33:39 <shachaf> Is that true?
04:34:03 <zzo38> I don't know!
04:34:09 <shachaf> I read in a paper that it's true.
04:36:14 <shachaf> @src Cont (>>=)
04:36:14 <lambdabot> m >>= k = Cont $ \c -> runCont m $ \a -> runCont (k a) c
04:36:29 <shachaf> m >>= f = DSM $ \s -> either Left (\y -> unDSM (f y) s) (unDSM m s) -- disjunctive state monad
04:36:33 <shachaf> I suppose they look similar.
04:37:24 <shachaf> @ty \m k -> either Left k (m s)
04:37:25 <lambdabot> (Expr -> Either a b) -> (b -> Either a b1) -> Either a b1
04:37:44 <shachaf> @ty \m k -> \s -> either Left k (m s)
04:37:46 <lambdabot> (t -> Either a b) -> (b -> Either a b1) -> t -> Either a b1
04:38:03 <shachaf> @ty \q fm k -> \s -> q k (m s)
04:38:04 <lambdabot> The function `m' is applied to one argument,
04:38:05 <lambdabot> but its type `Expr' has none
04:38:05 <lambdabot> In the second argument of `q', namely `(m s)'
04:38:08 <shachaf> @ty \q f m k -> \s -> q k (m s)
04:38:10 <lambdabot> (t2 -> t3 -> t1) -> t -> (t4 -> t3) -> t2 -> t4 -> t1
04:40:08 -!- sebbu2 has joined.
04:40:08 -!- sebbu2 has quit (Changing host).
04:40:08 -!- sebbu2 has joined.
04:40:58 -!- sebbu has quit (Ping timeout: 245 seconds).
04:42:35 <shachaf> @instances Functor
04:42:36 <lambdabot> ContT r m, ErrorT e m, IO, Maybe, RWST r w s m, ReaderT r m, ST s, StateT s m, WriterT w m, []
04:43:59 -!- Arc_Koen has quit (Quit: Arc_Koen).
04:48:22 <hagb4rd> god i hate haskell. it's like a variegated salad of chars, but there are no vitamines.. just eye cancer
04:51:12 <Sgeo> I'm at the point where I can barely think straight
04:51:44 <hagb4rd> if at least someone would care and make something useful with it
04:51:53 <hagb4rd> like burry it deep in a secret place
04:52:13 <Sgeo> I'm planning on having Trustfuck compile to Haskell
04:52:15 <Sgeo> Does that help?
04:53:32 <hagb4rd> not yet. what is the goal of that? but i'm not familiar with trustfuck
04:53:38 <hagb4rd> @google trustfuck
04:53:40 <lambdabot> http://www.urbandictionary.com/define.php?term=Trust%20Fuck
04:53:40 <lambdabot> Title: Urban Dictionary: Trust Fuck
04:53:54 <hagb4rd> k
04:54:00 <hagb4rd> got it
04:54:19 <Sgeo> http://esolangs.org/wiki/Trustfuck
04:57:13 <hagb4rd> if you want don't want to waste your time (in the next few moments) have a look at THIS
04:57:15 <hagb4rd> http://mrdoob.github.com/three.js/
04:57:36 <hagb4rd> THAT'S POWERFULL STUFF
04:58:19 <hagb4rd> never seen such magic before
04:58:58 <hagb4rd> a few dozens lines of code, and you're off for the ride
04:59:08 <oerjan> hagb4rd: i just made a Quiler compiler to haskell hth http://esolangs.org/w/index.php?title=Quiler&diff=35432&oldid=35414
04:59:15 <oerjan> (probably not.)
05:00:25 <hagb4rd> haskell code just ends in itself
05:00:42 <oerjan> in that particular case, you are entirely correct.
05:01:10 <hagb4rd> just had to say this
05:01:15 * hagb4rd feels better now
05:01:29 <hagb4rd> cigarette?
05:01:38 <oerjan> sorry, i don't smoke.
05:02:10 <hagb4rd> let's have a look a at quiler
05:02:54 <oerjan> i've also used haskell _lots_ of times to make esolang program builders.
05:03:14 <oerjan> @quote oerjan
05:03:15 <lambdabot> oerjan says: i only do impractical things
05:03:52 <shachaf> `uoerjan
05:03:58 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: uoerjan: not found
05:03:59 <shachaf> 'oopps's
05:08:07 <oerjan> hm maybe i should have put in a #! line
05:08:28 <shachaf> @quote oerjan
05:08:28 <lambdabot> oerjan says: i only do impractical things
05:08:30 <shachaf> @quote oerjan
05:08:30 <lambdabot> oerjan says: i only do impractical things
05:08:32 <shachaf> @quote practical
05:08:32 <lambdabot> kmc says: I think C++ is best thought of as an esolang. It's fun to learn, fun to figure out how to do some trivial things in only 300 lines of code. Not fun to use for practical stuff.
05:09:00 <shachaf> kmc: did you figure out the answer to your c++ question
05:09:07 <kmc> no
05:09:09 <shachaf> @quote theoret
05:09:09 <lambdabot> JonHarrop says: As the Lispers always say, it is theoretically possible to do a good job but...
05:09:25 <shachaf> @quote arrop
05:09:25 <lambdabot> Heffalump says: he's [Jon Harrop] not exactly a Haskell beginner, more like a Haskell fuckwit
05:13:38 <kmc> tharrop
05:14:06 <shachaf> @quote beaky
05:14:07 <lambdabot> beaky says: why did they settle on bitshiftrightassign (>>=) for monadic bind?
05:14:20 <shachaf> @protontorpedo
05:14:21 <lambdabot> and haskell is not a lisp. correct? holy shit then m learning haskell
05:14:49 <hagb4rd> @protontorpedo
05:14:49 <lambdabot> as u scale and complexity grows?
05:14:53 <shachaf> So you know how (State s) has a hidden (Store s) and vice versa?
05:17:09 <oerjan> modified the quiler compiler a bit
05:18:22 <zzo38> Lisp and Haskell together might be good for some purposes.
05:19:07 <kmc> yes, i've always wanted an optional alternative lisp-like syntax for Haskell, for metaprogramming
05:19:11 <kmc> i know there are a few projects to do this
05:31:26 <kmc> good old stanford bunny
05:31:38 <kmc> that takes me back
05:37:51 <zzo38> I made up a combination connector format "Digi-RGB-Plus", which consists of two Digi-RGB video signals, four analog audio signals, and one 1200 bps 8N1 control signal. (The control signal may be absent; it is not needed to play a video. The other signals may also be absent if unused, and any of them can be split into other cables.)
05:38:20 <kmc> what is the control signal used for?
05:38:28 <kmc> is it bi-directional?
05:38:40 <zzo38> No, it is only one way (but the opposite way from all of the other signals).
05:39:38 <zzo38> It can be used for remote control functions and for some other functions, such as 0xE2 "Synchro start", 0xE9 "OSD suppress", and so on.
05:39:44 <kmc> what kind of physical connector would you use?
05:39:55 <oerjan> modified again
05:39:56 <zzo38> I haven't made that part yet.
05:41:45 <zzo38> For video-only you can use Digi-RGB, and you might make a cable between Digi-RGB and Digi-RGB-Plus (regardless of which side is in and out), and it can still work. Digi-RGB-Plus is more like a combined cable like SCART or HDMI, but free, open, far simpler, and other differences.
05:45:16 <zzo38> I don't know if I did something a bit wrong, and maybe there may be a bit more commands than it is now, but all of them are optional.
05:45:20 <zzo38> Maybe you know?
05:59:06 -!- oonbotti has joined.
06:05:02 <zzo38> Some places have really strange laws, I have a list in my computer and in a book
06:07:51 <zzo38> "The state constitution allows for freedom of speech, a trial by jury, and pregnant pigs to not be confined in cages."
06:08:25 <shachaf> is "pig" a euphemism for the common folks
06:08:30 <nortti> :D
06:08:43 <zzo38> I don't know. Maybe it means pigs.
06:09:54 <zzo38> "It is mandatory for a motorist with criminal intentions to stop at the city limits and telephone the chief of police as he is entering the town."
06:11:47 <zzo38> "Mourners at a wake may not eat more than three sandwiches."
06:20:49 -!- hagb4rd has quit (Ping timeout: 248 seconds).
06:23:52 -!- hagb4rd has joined.
06:53:53 -!- sebbu2 has quit (Ping timeout: 245 seconds).
07:07:02 -!- epicmonkey has joined.
07:35:53 -!- azaq23 has joined.
07:36:07 -!- azaq23 has quit (Max SendQ exceeded).
07:38:27 -!- oerjan has quit (Quit: leaving).
07:42:02 -!- stuntaneous has joined.
07:44:49 -!- stuntane has quit (Ping timeout: 256 seconds).
07:46:39 -!- stuntane has joined.
07:49:29 -!- stuntaneous has quit (Ping timeout: 276 seconds).
08:01:33 -!- carado has joined.
08:15:08 -!- sirdancealot has joined.
08:50:26 -!- Frooxius_ has joined.
08:50:46 -!- Frooxius has quit (Read error: Connection reset by peer).
08:51:06 -!- Frooxius_ has quit (Client Quit).
08:51:32 -!- Frooxius has joined.
08:59:05 -!- c00kiemon5ter has quit (Quit: c00kiemon5ter).
09:00:42 -!- c00kiemon5ter has joined.
09:09:52 -!- c00kiemon5ter has quit (Quit: c00kiemon5ter).
09:13:32 -!- c00kiemon5ter has joined.
09:15:02 -!- c00kiemon5ter has quit (Client Quit).
09:16:32 -!- c00kiemon5ter has joined.
09:21:04 -!- Phantom_Hoover has joined.
09:35:59 -!- zzo38 has quit (Remote host closed the connection).
10:18:16 -!- monqy has quit (Quit: hello).
10:50:41 -!- zzo38 has joined.
10:55:11 -!- Deewiant has quit (Quit: Reboot).
11:09:35 <zzo38> What do you think of "dry" and "wet" skepticism?
11:10:22 -!- Deewiant has joined.
11:10:39 <shachaf> zzo38: Hmm. I'm skeptical.
11:18:49 <zzo38> gopher://zzo38computer.org:70/0textfile/fun/sci-skep section 0.6.1. See also [[Pseudoskepticism]] on Wikipedia.
11:24:37 <zzo38> The two extremes are perhaps personified by Martin Gardner (dry) and Marcello Truzzi (wet).
11:33:39 -!- FreeFull has quit (Quit: Graphics drivers messed up. I am quitting blindly, please retype any messages to me once I'm back.).
11:38:37 -!- FreeFull has joined.
11:48:49 -!- hagb4rd has quit (Ping timeout: 240 seconds).
11:49:58 -!- sebbu has joined.
12:10:09 -!- hagb4rd has joined.
12:13:02 -!- sebbu2 has joined.
12:13:17 -!- sebbu2 has quit (Changing host).
12:13:18 -!- sebbu2 has joined.
12:13:23 -!- sebbu has quit (Ping timeout: 252 seconds).
12:14:07 -!- sebbu2 has changed nick to sebbu.
12:23:53 -!- DHeadshot has quit (Ping timeout: 245 seconds).
12:24:17 -!- DHeadshot has joined.
12:25:30 -!- Arc_Koen has joined.
12:27:53 -!- sebbu2 has joined.
12:27:53 -!- sebbu2 has quit (Changing host).
12:27:53 -!- sebbu2 has joined.
12:29:24 -!- sebbu has quit (Ping timeout: 252 seconds).
12:42:58 -!- TeruFSX has quit (Read error: Operation timed out).
12:51:59 -!- impomatic has quit (Ping timeout: 255 seconds).
12:57:23 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
13:07:56 -!- impomatic has joined.
13:12:38 -!- DHeadshot has quit (Ping timeout: 245 seconds).
13:13:33 -!- DHeadshot has joined.
13:31:08 -!- esowiki has joined.
13:31:09 -!- glogbot has joined.
13:31:10 -!- glogbackup has left.
13:31:12 -!- esowiki has joined.
13:31:12 -!- esowiki has joined.
13:38:01 -!- Taneb has joined.
13:52:33 -!- boily has joined.
13:57:03 -!- ais523 has joined.
13:59:14 <Sgeo> Is it ok to make code be on a very long line if it makes my life sufficiently easier?
13:59:50 <Sgeo> Actually, the code wouldn't be on one line, the string representing the code would be
14:00:00 <Sgeo> This would be far more pleasant if Haskell had multiline strings
14:00:12 <Phantom_Hoover> is it ok to put your code on the long line?
14:00:33 <Sgeo> As in, not bothering to break the string up so that it's on multiple lines
14:00:55 <Sgeo> Although I'm sure I could figure out a way to make it work
14:01:13 <Sgeo> (Splitting string on multiple lines)
14:08:03 -!- DHeadshot has quit (Ping timeout: 245 seconds).
14:08:53 -!- DHeadshot has joined.
14:19:57 -!- Taneb has quit.
14:32:00 -!- sebbu2 has changed nick to sebbu.
14:35:36 <Jafet> Haskell is the world's best multiline strings language.
14:43:24 <ais523> how do you do multiline strings in Haskell?
14:46:42 <Sgeo> I'm just going to use ++ or something probably :/
14:47:19 <Sgeo> It's not like I have no understanding of quines work, I'm sure I can pull this off
14:56:55 -!- cuttlefish has joined.
15:20:22 -!- copumpkin has quit (Ping timeout: 252 seconds).
15:20:59 -!- copumpkin has joined.
15:21:22 <FreeFull> Is randomIO/randomRIO generally a bad idea compared to newStdGen and then random/randomR ?
15:27:38 <Sgeo> It suddenly occurs to me that giving a program access to the compiler it was compiled with might not actually be impressive...
15:27:40 <Sgeo> :/
15:27:46 <Sgeo> Do other languages do that?
15:34:28 <Sgeo> ,[>\\;<;]:
15:34:31 <Sgeo> oops
15:34:50 <Sgeo> hmm
15:35:21 <Sgeo> \\>,[<;>;,]
15:35:24 <Sgeo> \\>,[<;>;,]:
15:35:48 <Sgeo> You know what makes more sense than ; and :?
15:35:50 <Sgeo> : and !
15:37:18 <Sgeo> After all, sending to code block is a sort of output
15:38:51 <boily> you could always go the intercal way with ¢.
15:39:28 <ais523> Sgeo: Perl does that
15:39:35 <ais523> although it's not obvious
15:39:51 <ais523> (Perl compiles to bytecode and then executes it, internally; it's possible to both get at the bytecode, and get at the compiler)
15:41:36 <Sgeo> I want to add another command
15:42:03 <Sgeo> But have a weird decision to make
15:42:09 <Sgeo> I want it to use the nth compiler
15:42:37 <Sgeo> But do I count 0 as "The compiler used for the running program", or "The original compiler that has no corresponding source code"?
15:42:55 <Sgeo> Hmm, I could make ! emit the current compiler version and 0@ be the primitive compiler
15:43:22 <Sgeo> Wow, that's bad naming, should switch them around
15:43:57 <FreeFull> There probably is an esoteric language where you can modify the compiler/interpreter
15:44:39 <boily> Sgeo: may I point you to this fine compilational eldritch horror: http://caterwauljs.org/
15:44:46 <FreeFull> So you could write some header code that would program the interpreter so that everything from a certain point gets interpreted as brainfuck
15:44:53 <Phantom_Hoover> Sgeo, ooh
15:44:54 <Phantom_Hoover> ooh
15:45:02 <Phantom_Hoover> you could include a spec of the target language
15:45:17 <Phantom_Hoover> and write a... compiler generator?
15:45:27 <Sgeo> ?
15:46:04 <FreeFull> The tricky part is that your code changes meaning as you change the interpreter
15:46:40 <ais523> just seen as a quiz question: "true or false: there are over 1 billion web pages on the Internet"
15:46:55 <ais523> if you count pages that are generated on demand, I think there are infinitely many, aren't there?
15:47:18 <FreeFull> You'd probably want some way to accumulate changes and then apply them all at once
15:47:48 <ais523> FreeFull: you can do that sort of thing in loads of languages, both eso and non-eso
15:47:49 <FreeFull> ais523: Do you count pages you can only see once though?
15:48:03 <ais523> FreeFull: well the quiz show said it was true, but didn't elaborate
15:49:16 <FreeFull> What, modify the interpreter on the go?
15:49:30 <FreeFull> To have it end up as a completely different interpreter?
15:50:11 <Sgeo> I swear I've seen a language that has some program that starts out Lisplike and becomes Smalltalk-like
15:51:19 <FreeFull> Sgeo: A haskell quine is very easy to write
15:51:31 <FreeFull> My first working quine was a haskell quine
15:51:45 <Sgeo> Yes, and I have an idea of how I would structure it
15:51:57 <ais523> FreeFull: it isn't normally /completely/ different, although in something like Forth it is
15:52:11 <Sgeo> The thing is, it's a large program that needs to be quinified, and it would be ... easier, to have macros to ease some of the pain
15:52:29 <Sgeo> Although again, I think I can do it comfortably in Haskell
15:52:30 <FreeFull> ais523: I'm thinking *some gobblebock* *brainfuck*
15:52:53 <ais523> FreeFull: yeah, I think you can do that in Forth, not sure if you can change the parser though
15:52:56 <FreeFull> And once it's in brainfuck mode of course, it's stuck there unless you provided an escape hatch
15:53:02 <ais523> but that's pretty much what Forth is designed for
15:53:14 <Sgeo> Also, it's not a perfect quine, I need to add stuff in and change a number etc.
15:53:52 <FreeFull> Sgeo: Guessing you can't read the source? =P
15:54:13 <Sgeo> That feels cheatingish
15:54:25 <Sgeo> And it would be nice to someday write a version in x86
15:54:33 <Sgeo> Although that would be clinically insane
15:54:53 <Sgeo> It would... illustrate what I want to, more clearly than Haskell
15:55:39 <Sgeo> Writing a compiler for a Brainfuck derivative in a Brainfuck-like language that targets x86 without writing a bit of ASM
15:56:12 <Sgeo> (Well, really, the compiler would be targetting a Brainfuck-like language then calling a compiler primitive)
15:57:16 <FreeFull> ais523: You should be able to do anything, even make the interpreter read backwards and reinterpret your code as something else
15:57:45 <ais523> FreeFull: there's no particular reason why you couldn't change the parser in that sort of language (see, e.g., Feather), just I'm not sure whether it tends to be implemented or not
16:11:58 -!- hagb4rd has joined.
16:20:15 <Sgeo> I thought my language was insane. Is it actually boring?
16:20:16 <Sgeo> :/
16:20:24 <Sgeo> Although implementing it will be interesting I guess
16:36:11 -!- sivoais has quit (Ping timeout: 255 seconds).
16:39:49 -!- sivoais has joined.
16:43:01 <Sgeo> Hmm, showing a tuple doesn't put a space after the ,
16:43:10 <Sgeo> (I mean, not a big deal or anything, just found that weird)
16:43:57 <Sgeo> What I'm doing is too elaborate for a typical quine, but considering that it's a large program that needs to be quined...)
16:48:18 -!- sivoais has quit (Ping timeout: 272 seconds).
16:48:24 <Sgeo> http://hpaste.org/82223
16:48:59 <ais523> Sgeo: there's a reasonably simple way to quine arbitrarily large quines
16:49:13 <ais523> you basically make a format for your language that can easily be either evalled or output (this may require writing an interpreter)
16:49:20 <ais523> then do your quine underload-style
16:49:46 -!- sivoais has joined.
16:51:50 <Sgeo> Anything particularly bad about my approach?
16:53:04 <ais523> I don't know, I haven't read it :)
16:53:28 <Sgeo> Hmm. With my current spec, even if something only uses the primitive compiler, there's no way to statically determine that, so all compilers get included
16:53:32 <Sgeo> :/
17:04:53 * Sgeo considers adding a ; command
17:05:45 -!- Taneb has joined.
17:07:43 <Sgeo> ; would be compile-in
17:08:15 <Sgeo> That is, if the program is being executed as a subcompiler, it receives code. This way, such a compiler is free to ask for genuine input if it wishes
17:08:18 <Sgeo> Is that too insane?
17:11:23 -!- DHeadshot has quit (Read error: Connection reset by peer).
17:22:24 <Phantom_Hoover> hmm
17:22:49 <Phantom_Hoover> how does the thing work where you denote the image of a function f : X -> Y work in category theory
17:23:33 <Phantom_Hoover> is it like... f is a functor from the... category of subsets of X to the category of subsets of Y?
17:25:18 <elliott> functions aren't really functors?
17:25:24 <elliott> category theory is all one level up
17:25:52 <elliott> a functor is from category C to D if that's what you mean?? bear in mind I know almost nothing about CT
17:27:18 -!- sebbu2 has joined.
17:27:38 -!- sebbu has quit (Ping timeout: 245 seconds).
17:28:58 <coppro> no, PH is correct
17:31:41 <Phantom_Hoover> elliott, no but you know how you write f(X) to mean {f(x) : x \in X}
17:31:58 <elliott> yes
17:35:08 -!- sebbu2 has changed nick to sebbu.
17:40:35 <Sgeo> http://www.reddit.com/r/tipofmytongue/comments/18cbti/tomtmod_avoid_linking_to_tumblr/
17:40:36 <Sgeo> fuck
17:43:05 <elliott> hi
17:44:10 <Sgeo> Reddit considers Tumblr to be spam :(
17:52:20 -!- Halite has joined.
17:52:48 <Halite> I made an Esoteric Programming Language today. It's heavily based on BF.
17:53:55 <Halite> !help
17:53:55 <EgoBot> ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
17:54:03 <Halite> !bf_txtgen
17:54:07 <EgoBot> ​20 +++++[>++>>><<<<-]>. [23]
17:54:09 -!- fizzie` has changed nick to fizzie.
17:54:20 <fizzie> `? brick
17:54:22 <HackEgo> Brick goes in brain. The statutory punishment for perpetrators of brainfuck derivatives.
17:54:51 <fizzie> (Law of the jungle, I'm afraid.)
17:54:58 <Halite> I call my programming language NAND++
17:57:45 <Sgeo> fizzie, I haven't been brainbricked
17:58:02 <Sgeo> Yet I'm actively working on a BF derivative
17:58:12 <Sgeo> Then again, it's not a trivial BF isomorphism
17:59:02 <Phantom_Hoover> no, it's just you using the wrong language as a basis for experimentation
18:06:53 <Halite> lol, are you talking about BF
18:07:29 <Sgeo> I'm making a language based on it, but the core interesting idea of my language isn't really BF specific
18:07:46 <Sgeo> I'm just using BF as a language to uses as a basis for my additions
18:08:19 <Taneb> Halite: there are an awful lot of brainfuck derivatives, it's very rare indeed that someone makes something new using one
18:08:55 <Taneb> If you look at Phantom_Hoover's Tumblr (phantom-hoover.tumblr.com), you'll see his opinion on the matter
18:09:31 <Phantom_Hoover> there are especially a lot of languages which are either bf with the commands renamed to something zany or bf with a couple of instructions added
18:11:03 <boily> I like your blog. it is sane.
18:11:25 <elliott> unfortunately it is not his
18:11:30 <elliott> he is a fraud
18:11:30 <Taneb> elliott: ssh
18:11:36 <Phantom_Hoover> that ook entry is amazing
18:11:48 <Taneb> There ought to be more content
18:11:49 <Phantom_Hoover> `my greatest work'
18:11:51 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: my: not found
18:11:58 <Taneb> Ooh, did we forget?
18:12:02 <Taneb> `welcome Halite
18:12:04 <HackEgo> Halite: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:12:32 <Halite> hi
18:12:42 <ais523> hi
18:13:27 <ais523> I personally think BF derivative are a good way to get into esolanging, so long as you follow up with something more interesting
18:13:31 <ais523> *derivatives
18:14:26 <Phantom_Hoover> you're just trying to legitimatise your own seedy past
18:14:40 <Phantom_Hoover> *I* never made a brainfuck derivative, and just look at all... the...
18:14:59 <ais523> Phantom_Hoover: I made three, I think
18:15:01 <ais523> but they're all good
18:15:06 <Taneb> I made three languages that could be described as brainfuck derivatives
18:15:14 <Taneb> One is technically an Ook! derivative
18:15:22 <boily> I haven't made three languages yet :(
18:15:22 <Taneb> (slightly better? maybe not?)
18:15:24 <Phantom_Hoover> Taneb
18:15:35 <Phantom_Hoover> i don't think i can talk to you any more
18:15:57 <Taneb> One is only like brainfuck in that it's imperative, tape based, and single-character-per-command
18:16:09 <Taneb> Which Phantom_Hoover has already forgiven me for
18:16:27 <Taneb> And MIBBLLII isn't brainfuck but looks like it is
18:16:43 <Taneb> So, all of them could be argued to /not/ be brainfuck derivatives
18:16:51 <Taneb> In fact, two of them really aren't at all
18:17:04 <Taneb> Phantom_Hoover: can you talk to me again?
18:17:47 <Phantom_Hoover> no
18:17:52 <Phantom_Hoover> http://www.taneb.org/
18:17:54 <Phantom_Hoover> ZEUGMA
18:18:09 <Taneb> THAT PROBABLY IS NOT ME
18:18:29 <Taneb> I, alas, am not a francophone psychologist
18:18:34 <Phantom_Hoover> i think it is perhaps the most french website
18:19:08 <Taneb> Especially not one with a website designed in the 90's
18:19:09 <Taneb> Ugh
18:19:11 <boily> ah tiens, zeugma. ça faisait un bout que j'en avais entendu parler. (oh, zeugma again. it's been a while since last time I heard of 'em.)
18:19:44 <elliott> is this some kind of french esolang association
18:19:45 <Taneb> boily: can you explain the thingy that is zeugma
18:20:09 <Phantom_Hoover> oh, zeugmas are like syllepses
18:21:08 <boily> as the large comic sans sentence says, it is a «rapprochement». some kind of weak surreality (and in that case, terrible web design.)
18:21:50 -!- augur has quit (Remote host closed the connection).
18:22:27 <Phantom_Hoover> must've mentally edited out the comic sans
18:32:13 -!- epicmonkey has quit (Ping timeout: 245 seconds).
18:38:19 <Halite> rapprochemet
18:38:30 <Halite> what are you talking about
18:39:57 <Phantom_Hoover> something french
18:40:35 <elliott> boily: do french things make any more sense if you are one of them
18:41:37 <boily> boily: perhaps. I'm not French.
18:41:48 <boily> `? boily
18:41:49 <HackEgo> boily is Canadian or something. We are not sure about Canada's existence.
18:41:59 <elliott> of course you're french, you talk to yourself
18:42:01 <Phantom_Hoover> i thought you were swiss
18:42:09 <elliott> same thing
18:42:33 <Sgeo> No one will complain if this thing gets compiled into what is essentially an interpreter glued to some code to interpret, right?
18:42:42 <boily> c'est pas parce que je me parle tu seul que je suis français, bon. (it's not because I talk to myself that I'm French, so there.)
18:43:19 <boily> by the way, wasn't there a belgian guy here some time ago? I remember having a conversation with him.
18:44:11 <Phantom_Hoover> prolly bike
18:44:16 <Phantom_Hoover> answer the question
18:44:20 <Phantom_Hoover> are you swiss??
18:44:28 <ais523> this IRC contains one intentional error and one accidental error
18:44:44 <ais523> *IRC line
18:44:50 <boily> Phantom_Hoover: no, I'm no Swiss.
18:45:06 <Phantom_Hoover> are you belgian?
18:45:10 <boily> neither.
18:46:10 <Phantom_Hoover> ...luxembourgishan?
18:47:03 <boily> nope.
18:47:33 <boily> (hm... do they have an easy citizenship application process? would be nifty to have a passport from them.)
18:49:50 <Sgeo> !haskell main = (\s -> putStr s >> putStr " " >> print s) "main = (\\s -> putStr s >> putStr \" \" >> print s)"
18:50:02 <EgoBot> main = (\s -> putStr s >> putStr " " >> print s) "main = (\\s -> putStr s >> putStr \" \" >> print s)"
18:50:04 <kmc> last night i had a dream where i was about to fly to germany and then i realized i'd left my passport at home :(
18:50:12 <elliott> what abour your wings
18:50:28 <kmc> boy were my arms tired
18:50:40 <kmc> luxembourg passport would be nice as it's an EU member
18:51:08 <kmc> they were in the EU back when it was just about coal and steel
18:51:11 <kmc> before it was cool
18:51:51 <Halite> talk about esoteric languages...
18:52:24 <boily> Halite: don't worry. it's not Friday yet.
18:53:38 <Halite> wait a second
18:53:44 <Phantom_Hoover> Halite, maybe we would if people would make new ones that aren't brainfuck derivatives
18:54:10 <elliott> Halite: don't be silly. this channel is about esoterica.
18:54:14 <Halite> are you talking about programming languages or languages you speak
18:54:23 <boily> yes.
18:54:26 <Halite> there are two types of esoteric languaged
18:54:34 <elliott> what's programming
18:54:39 <elliott> `WELCOME HALITE
18:54:41 <HackEgo> HALITE: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.)
18:55:04 <Halite> `welcome
18:55:05 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:55:25 <Halite> esoteric on irc.dal.net
18:55:35 <Phantom_Hoover> yeah
18:55:45 <Phantom_Hoover> you can talk about esolangs there
18:55:54 <Phantom_Hoover> this channel is about spiritualism
18:55:58 <Phantom_Hoover> so guys
18:56:02 <Phantom_Hoover> is it really enough to push
18:56:14 <Phantom_Hoover> or must we, on some level, pull
18:56:14 <Halite> `WELCOME PHANTOM_HOOVER
18:56:16 <HackEgo> PHANTOM_HOOVER: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.)
18:56:40 <Sgeo> :( the output Haskell code is going to be so damn verbose
18:56:44 <Halite> WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN
18:57:02 <Sgeo> Large Trustfuck programs compile into ridiculously large Haskell programs
18:57:11 <Sgeo> I don't know if this is something I should be too concerned about
18:57:26 <Sgeo> Halite, they're just messing with you
18:57:27 <boily> ain't no problem. disk space is cheap, and big means enterprisey.
18:58:22 <Halite> I made a programming language called NAND++
18:58:40 <Phantom_Hoover> Halite, no, see, we do that as part of a thesis on whether deception is justified if you do it to noobs
18:59:18 <Phantom_Hoover> so anyway
18:59:30 <Phantom_Hoover> is your language brainfuck except + and - are replaced with NAND
18:59:30 <Halite> Phantom_Hoover, oh. Deception wasn't justified to me. This is for esoteric languages.
18:59:57 <Halite> Phantom_Hoover, it is similar to Brainfuck but not intentionally that close.
19:00:28 <Phantom_Hoover> THERE'S HOPE FOR YOU YET
19:01:07 -!- md_5 has quit (Quit: ZNC - http://znc.in).
19:01:25 <Halite> Phantom_Hoover, what
19:01:50 <elliott> hello
19:04:00 <Taneb> Halite: put it on the wiki
19:04:13 <Sgeo> Hmm.
19:04:27 <Sgeo> I want to flip the meaning of ! so that ! on 0 is "most recent compiler"
19:04:37 <Sgeo> Fits in more with having a "compiler stack" I think
19:06:09 -!- augur has joined.
19:09:49 <ais523> o
19:10:43 <ais523> Phantom_Hoover: are you picking on Halite?
19:10:58 <Phantom_Hoover> no, mr smith
19:10:59 <olsner> Sgeo: I guess the worst case scenario is that you end up with some "ridiculously large program" stress tests that crash ghc
19:11:16 <Sgeo> Phantom_Hoover, think about what Trustfuck means: People will be able to write compilers for their favorite idiotic Brainfuck derivatives using a Brainfuck-like language!
19:11:34 <Phantom_Hoover> i am all for this
19:11:43 <Phantom_Hoover> make 'em suffer
19:15:34 <Halite> `welcome
19:15:36 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
19:19:06 <Halite> I need to create my user page at User:Halite first.
19:19:11 -!- c00kiemon5ter has left.
19:20:06 <Sgeo> Considering that I _am_ writing what acts as a large quine, is it ok that so much code is duplicated?
19:20:40 <Sgeo> (Once as code and once inside a string)
19:24:39 -!- sivoais has quit (Ping timeout: 252 seconds).
19:24:54 -!- Arc_Koen has quit (*.net *.split).
19:31:07 -!- Halite has quit (Remote host closed the connection).
19:37:56 -!- monqy has joined.
19:38:11 -!- epicmonkey has joined.
19:47:02 <Taneb> @time Taneb
19:47:02 <lambdabot> Local time for Taneb is Tue Feb 12 19:47:02 2013
19:51:16 <ais523> @time lambdabot
19:51:16 <lambdabot> I live on the internet, do you expect me to have a local time?
19:51:20 <ais523> yes, definitely
19:51:29 <ais523> you have to exist on a server somewhere, don't you?
19:51:41 <Taneb> Could be distributed?
19:53:56 <ais523> hmm
19:53:59 <ais523> not easily, but I guess it's possible
19:56:14 <ion> Screwmejssel (Finglish ftw.) http://youtu.be/UiYMM0kZvno
19:57:44 <olsner> finglish? not swenglish?
19:58:06 <olsner> or maybe it started out as swinnish
19:59:28 <olsner> "firstly" is a nice non-english word
20:00:44 <boily> firstly is not english? what about premièremently?
20:00:59 <elliott> that's canadian
20:01:04 <ais523> "firstly" is a real word, I think
20:01:05 <olsner> leastlastly
20:01:16 <ais523> not sure though
20:01:24 <ais523> it might just be "first" as the adverb too
20:01:53 <olsner> dictionary.org has it, but I think it's just an error that accidentally made its way into some dictionary
20:02:43 -!- oerjan has joined.
20:03:11 <olsner> *.com
20:04:24 -!- epicmonkey has quit (Read error: Operation timed out).
20:05:04 <Taneb> Remember how last year I went to a UV rave and fell asleep and dreamt of lambda calculus?
20:05:22 <oerjan> no.
20:05:27 <elliott> yes
20:05:40 <elliott> oerjan: look what I did today!!
20:05:41 <elliott> listIsAMonoidInTheCategoryOfEndofunctorsOfHask :: Monoid (FComp (->)) List
20:05:41 <elliott> listIsAMonoidInTheCategoryOfEndofunctorsOfHask = Monoid { unit = Nat Id List (\_ x -> [x]) , mult = Nat (List :. List) List (\_ -> concat) }
20:05:46 <oerjan> you young people and your functional memories.
20:06:01 <Taneb> Anyway, another UV rave is coming up
20:06:06 <monqy> what are raves like
20:06:06 <Taneb> Debating going
20:06:14 <oerjan> elliott: OKAY
20:06:19 <Taneb> Loud music that I don't recognize and flashy lights, monqy
20:06:24 <olsner> Taneb: your memories are inside your head and generally not accessible to other persons
20:06:32 <monqy> Taneb: sounds bad
20:06:44 <Taneb> monqy: but also dancing and people
20:06:49 <monqy> sounds real bad
20:07:10 <boily> bletch. people.
20:07:46 <olsner> hmm, how do you fall aslepp on a rave?
20:07:47 <oerjan> people. sometimes they are okay. but too frequently they meddle in my plans.
20:07:53 <ais523> elliott: I'm laughing so much at that its hilarious
20:07:55 <ais523> *im
20:07:57 <elliott> monqy: but consider: you fall asleep and dream of the lambda calculus?
20:07:58 <kmc> olsner: not taking enough speed
20:08:08 <Taneb> olsner: I have no idea
20:08:13 <Taneb> I think I was tired
20:08:22 <boily> I recently slept through an airplane landing.
20:08:26 <olsner> maybe you had a seizure from the blinkenlights?
20:08:32 <monqy> i recently slept
20:08:43 <Taneb> olsner: I was awake for a large portion
20:09:00 <kmc> what kind of music was it
20:09:05 <Taneb> Who knows
20:09:10 <elliott> lambda calculus music
20:09:12 <kmc> was it unz unz unz unz or more like WUBWUBWUBkzzzzzzUHUHWUBWUBWUB
20:09:15 <Taneb> Techo I think
20:09:19 <Taneb> So, the first
20:09:28 <Taneb> Not much dubstep
20:09:33 <oerjan> people combinating
20:09:33 <monqy> i've heard some "rave music" and it's all goofy goofy goofy
20:09:43 <kmc> i want you to point on this Ishkur's Guide to where the rave touched you: http://techno.org/electronic-music-guide/
20:09:52 <kmc> monqy: was it happy hardcore
20:10:01 <monqy> maaaybe
20:10:13 <ais523> I don't think I've ever dreamt about lambda calculus
20:10:15 <monqy> most likely some of it was yes
20:10:17 <olsner> ah, ishkur's guide, that was a while ago
20:10:25 <ais523> perhaps if it's CBN and affine and you add extra constants
20:10:34 <ais523> hmm… I should write a completely affine esolang some day
20:10:41 <ais523> not sure if it would be even vaguely usable
20:10:45 <monqy> i've likely dremt about lambda calculus but I don't remember it
20:10:57 <ais523> one problem is that I can't think of an obvious way to prevent losing all state when you loop
20:12:18 -!- md_5 has joined.
20:12:31 <elliott> hmm
20:12:38 <elliott> this representation of monads is not the most usable for programming.
20:12:52 <ais523> elliott: does it work, just in an unusable way?
20:13:18 <monqy> programming by way of ghc panics
20:13:52 <elliott> ais523: well I haven't figured out yet
20:13:55 <elliott> that's sort of the problem
20:14:01 <ais523> hmm
20:14:37 <elliott> ugh, not another "can write it but GHC rejects the type it infers for it" situation
20:15:38 <Taneb> The trick is to get GHC to spit out an error that none of the GHC team were aware existed
20:15:38 <ais523> elliott: if it helps, my boss is having the same problem with Verity
20:15:45 <ais523> because its typechecker isn't very good at error messages et
20:15:46 <ais523> *yet
20:16:00 <elliott> in this case it's that GHC isn't as good as me yet
20:16:04 <elliott> I am too advanced
20:16:53 <Taneb> elliott: what if you try to write usable, maintainable code
20:17:09 <kmc> elliott: you are a neural network processor, a learning computer
20:17:33 <Taneb> Okay, Facebook has suggested I ought to go to this UV rave
20:17:39 <elliott> Taneb: what is a usable maintainer code
20:17:58 <Taneb> elliott: do you remember my Fueue interpreter?
20:18:07 <elliott> yes
20:18:09 <elliott> kinda
20:18:10 <ais523> Taneb: do you trust Facebook to make suggestions for you?
20:18:12 <Taneb> Imagine that mixed with what you've just posted here
20:18:18 <elliott> that sounds kind of bad
20:18:24 <Taneb> Usable, maintainable code is the opposite of that
20:18:29 <elliott> my code looks roughly like this
20:18:31 <elliott> instance Category c => TensorProduct (FComp c) where
20:18:31 <elliott> type Unit (FComp c) = Id c
20:18:31 <elliott> unitorL f = natIso (FComp :. Const1 (natId Id)) Id
20:18:31 <elliott> (\(Nat f _ trans) -> Nat (Id :. f) f trans)
20:18:34 <elliott> (\(Nat f _ trans) -> Nat f (Id :. f) trans)
20:18:36 <elliott> unitorR f = natIso (FComp :. Const2 (natId Id)) Id
20:18:39 <elliott> (\(Nat f _ trans) -> Nat (f :. Id) f trans)
20:18:41 <elliott> (\(Nat f _ trans) -> Nat f (f :. Id) trans)
20:18:44 <elliott> assoc f = natIso (AssocL FComp) (AssocR FComp)
20:18:46 <elliott> (\(Prod m@(Nat f _ _) (Prod n@(Nat g _ _) o@(Nat h _ _))) -> Nat ((f :. g) :. h) (f :. (g :. h))
20:18:49 -!- cuttlefish has quit (Ping timeout: 276 seconds).
20:18:49 <elliott> (\o' -> m ! (n ! (o ! o'))))
20:18:52 <elliott> (\(Prod m@(Nat f _ _) (Prod n@(Nat g _ _) o@(Nat h _ _))) -> Nat (f :. (g :. h)) ((f :. g) :. h)
20:18:55 <elliott> (\o' -> m ! (n ! (o ! o'))))
20:18:57 <elliott> did i break cuttlefish
20:19:02 <Taneb> ais523: of the three people who've suggested I go, two are involved in the organization of the party
20:19:16 <ais523> Taneb: I'm not sure if that's a good thing or a bad thing
20:19:19 <Taneb> And the third isn't invited and probably isn't aware of any details of it
20:19:26 <ais523> hmm
20:19:34 <monqy> what does UV mean anyway
20:19:39 <ais523> ultraviolet
20:19:45 <monqy> i always thought it was "ultraviolet" too but that doesn't make much sense
20:20:03 <ais523> monqy: it's a party where they illuminate the area with one of the safer wavelengths of UV
20:20:08 <elliott> it means ultra violent
20:20:12 <ais523> and it makes people's clothes glow if they use the right sort of washing powder
20:20:18 <monqy> elliott: now that's sensible
20:20:21 <Taneb> And throw UV-reactive paint on people
20:20:28 -!- boily has quit (Ping timeout: 272 seconds).
20:20:36 <monqy> ais523: i hear that sort of thing makes old people look uglier. weird skin stuff.
20:20:52 <ais523> Taneb: I didn't realise that was a usual part of the party
20:21:01 <ais523> is it to compensate for people who've used the wrong sort of washing powder?
20:21:04 <Taneb> Okay, someone's suggested I DJ with him
20:21:09 <Taneb> ais523: perhaps
20:21:12 <elliott> can i pay money to see taneb dj
20:21:25 <elliott> also can i not pay money to see taneb dj. that would be preferable because i would save money
20:21:26 <Taneb> However, I seem to remember him being banned from DJing
20:21:36 <monqy> did he play the wrong kinda music
20:21:36 <elliott> oh no
20:21:44 <monqy> did he goof it up
20:21:48 <elliott> http://en.wikipedia.org/wiki/Extreme_ultraviolet_Imaging_Telescope
20:21:50 <elliott> really extreme
20:21:55 <elliott> i like how the ultraviolet is not capitalised for no reason at all
20:22:09 <monqy> uncapitalised for extra emphasis
20:22:18 <ais523> elliott: you can fix it, you know
20:22:28 <Taneb> His suggestion has received what is called in the social-networking world as a "Like"
20:22:46 <Taneb> I shall now reply with "Tempting..."
20:23:02 <ais523> oh no
20:23:09 <ais523> did you know that likes follow you around the internet and steal your browser?
20:23:23 <Taneb> I thought that was Phantom_Hoover
20:23:42 <Taneb> He even hacked into my Tumblr account to write his blog
20:23:50 <monqy> https://www.youtube.com/watch?v=2EC3ggFv7cY is the kind of music you listen to taneb. this is important
20:23:54 <elliott> Could not deduce (Dom (Id (Cod (Id (Cod t0)))) ~ (->))
20:23:56 <elliott> uuugh
20:24:10 -!- boily has joined.
20:24:23 <elliott> ais523: can you fix my code for me
20:24:28 <boily> stupid breakers.
20:24:36 <ais523> elliott: if it's written in highly category-theoretic Haskell, no
20:24:38 <ais523> I literally can't
20:24:54 <ais523> unless the mistake is something obvious enough that you'd have found it already
20:24:58 <elliott> well i wouldn't go so far as to say highly category-theoretic
20:25:19 <monqy> wow theres whole youtube playlists full of remixes of this "ravers fantasy" thing
20:25:38 <monqy> taneb i think this is big. maybe you can ca$$$$h in on it
20:25:39 <ais523> monqy: why are you surprised?
20:25:42 <elliott> all I did is develop functors up to natural transformations so I can define tensor products and the category of endofunctors with functor composition as the tensor product and then monoids!!!
20:26:51 <ais523> elliott: well isn't that more category-theoretic than average for Haskell?
20:27:27 <elliott> ais523: well maybe
20:27:47 <monqy> nobody knows really
20:28:22 <ais523> I find it hilarious that this is even nonobvious :)
20:28:55 <oerjan> <ais523> is it to compensate for people who've used the wrong sort of washing powder? <-- what about people who carefully apply different sorts of washing powder in patches
20:29:10 <Taneb> Then they are reet hard liek
20:29:14 <ais523> oerjan: I imagine that'd look quite good under UV, but I've never tried
20:30:58 <oerjan> ais523: also do you like my example Quiler compiler
20:31:09 <ais523> oerjan: yes
20:31:25 <ais523> except I'm a bit confused about the languages
20:31:32 <ais523> it's written in Perl and targets Haskell?
20:31:56 <ais523> hmm… what does the output target?
20:33:01 <oerjan> `addquote <ais523> did you know that likes follow you around the internet and steal your browser? <Taneb> I thought that was Phantom_Hoover
20:33:06 <HackEgo> 963) <ais523> did you know that likes follow you around the internet and steal your browser? <Taneb> I thought that was Phantom_Hoover
20:35:07 <oerjan> ais523: per the definition of a Quiler compiler, the output also must target haskell
20:35:17 <ais523> oerjan: indeed
20:35:36 <ais523> so I guess what's confusing me, is why there appears to be a Perl quine in there
20:36:37 <oerjan> there isn't. but since quines are boring quiler compilers, i made this one keep a history, and the first (well, last) item of that is the original perl
20:37:59 <oerjan> well i guess there is, in the sense that it actually does insert a representation of the original perl program into the haskell
20:38:35 <Taneb> If you close your eyes does it almost feel like nothing has changed at all?
20:39:00 <oerjan> AAAA THE PAIN. no.
20:40:20 <oerjan> putStr . snd $ last history from ghci with the module loaded will print the original perl from any of the iterated compilers in haskell.
20:40:53 <oerjan> well should, anyway, i haven't tested more than one step.
20:42:17 * Sgeo throws everyone onto a stack of compilers
20:42:38 <oerjan> kinky
20:42:39 <monqy> hi Sgeo
20:43:00 <Sgeo> Well, my current thoughts re implementation is that the generated Haskell code has a stack of compilers
20:43:07 * boily puts maple syrup on his compiler stack.
20:44:16 <Sgeo> Yay, a delusional recruiter emailed me
20:44:41 <Sgeo> "We have a requirement matching your profile with one of our client."
20:44:47 <oerjan> <Sgeo> Is it ok to make code be on a very long line if it makes my life sufficiently easier? <-- since i did just that with the quiler compiler, i have to say yes, although i briefly considered trying to reformat it
20:44:51 <Sgeo> "Minimum 5 years working with relational databases and SQL, ideally on an Oracle environment"
20:44:58 * Sgeo does not have that
20:45:05 -!- Taneb has quit (Quit: Page closed).
20:45:14 <ais523> Sgeo: the recruiter will probably just lie and say you have the experience
20:45:43 <Sgeo> :/
20:46:28 <ais523> is this your recruiter, or the company's recruiter?
20:46:43 <ais523> actually I'm not sure it matters, they tend to be equally delusional both ways
20:47:46 <coppro> haha
20:47:48 <Sgeo> they ust called me
20:48:11 <oerjan> Sgeo: btw are you familiar with haskell's "...\n\ \..." (still annoying) syntax for multiline strings?
20:48:20 <kmc> something is seriously wrong with the programming job market that recruiters continue to behave the way they do
20:48:36 -!- Taneb has joined.
20:48:50 <kmc> is it that they're compensated in a way that gives them shitty incentives from the hiring company's point of view
20:48:56 <kmc> but the hiring companies don't realize for some reason?
20:49:02 <Sgeo> oerjan, no
20:49:14 <Sgeo> `resume
20:49:15 <HackEgo> rsum
20:49:40 <oerjan> > "test\n\ \like this" -- the whitespace could contain newlines, but not in lambdabot
20:49:42 <lambdabot> "test\nlike this"
20:49:59 <boily> ~eval "test\n\ \like this"
20:50:08 <boily> oh. yeah. must start bot first.
20:50:23 <Sgeo> oerjan, is there a function similar to show that prints strings like that, rather than the one-liner version?
20:50:24 -!- cuttlefish has joined.
20:50:24 <oerjan> HAVE YOU TRIED PLUGGING IN THE BOT
20:50:25 <boily> ~eval "test\n\ \like this"
20:50:28 <cuttlefish> "test\nlike this"
20:50:51 <oerjan> Sgeo: no but you can write one using lines
20:51:31 <Sgeo> I was just about to call a (different) recruiter when that recruiter called me
20:52:15 <kmc> you should try to get a job without dealing with recruiters, if at all possible
20:52:47 <Taneb> You have always worn your flaws upon your sleeve, and I have alsways bured mine deep beneath the ground
20:52:56 <kmc> best way is through people you know
20:53:06 <kmc> or you can find companies you think look interesting and email them directly
20:54:13 <Taneb> Dig them up, let's finish what we've started
20:54:20 <Taneb> Dig them up, so nothing's left untouched
20:55:01 <Taneb> elliott: how would you like post access on phantom-hoover.tumblr.com
20:55:09 <Sgeo> kmc, well, this one practically offered an interview, just need to work out when
20:55:24 <elliott> Taneb: i dont know if i can deal with that kind of responsibility, sorry
20:55:26 <Sgeo> Not sure if recruiter or more representative person from the company
20:55:28 <elliott> i suggest asking monqy
20:55:35 <ion> or beaqy
20:55:36 <monqy> hi
20:55:44 <oerjan> Sgeo: the thing about doing it automatically is that to get nice haskell you want to include the right indentation before the final \
20:56:16 <Taneb> Phantom_Hoover: I'd bet you'd like the ability to post onto your own blog!
20:57:34 <elliott> no
20:57:35 <elliott> dont do tit
20:57:36 <elliott> thats cheating
20:59:23 <Taneb> On another note, my computer still doesn't work properly
20:59:34 <Taneb> And what I really want to do is implement Wordeger
20:59:59 <Taneb> In Haskell
21:01:10 <oerjan> > let mlShow _ "" = show ""; mlShow ind s = foldr1 merge (lines s) where merge s1 s2 = init (show $ init s1) ++ "\\n\\" ++ replicate ind ' ' ++ '\\' : tail (show s2) in var $ mlShow 2 "test\ning\n ho"
21:01:13 <lambdabot> "tes\n\ \\"in\\n\\ \\ ho\""
21:01:21 <oerjan> oh
21:01:41 <oerjan> > let mlShow _ "" = show ""; mlShow ind s = foldr1 merge (lines s) where merge s1 s2 = init (show $ init s1) ++ "\\n\\\n" ++ replicate ind ' ' ++ '\\' : tail (show s2) in var $ mlShow 2 "test\ning\n ho"
21:01:44 <lambdabot> "tes\n\
21:01:45 <lambdabot> \\"in\\n\\\n \\ ho\""
21:01:57 <oerjan> oops
21:02:05 <oerjan> > lines "test\ning\n ho"
21:02:07 <lambdabot> ["test","ing"," ho"]
21:02:13 <oerjan> > lines "test\ning\n"
21:02:15 <lambdabot> ["test","ing"]
21:02:21 <oerjan> ok that is bad.
21:02:42 * Sgeo is too lazy to deal with that
21:02:42 <oerjan> lines doesn't preserve the final newline information
21:05:06 <ion> oerjan: Also:
21:05:15 <ion> > (unlines . lines) "test\ning\n ho"
21:05:18 <lambdabot> "test\ning\n ho\n"
21:05:24 <oerjan> <ais523> how do you do multiline strings in Haskell? <-- see above
21:05:33 <oerjan> ion: um that's what i said.
21:06:30 <ion> What i said wasn’t about lines alone.
21:07:30 <oerjan> no but it follows from it by sheer logic
21:08:07 <oerjan> <FreeFull> Is randomIO/randomRIO generally a bad idea compared to newStdGen and then random/randomR ? <-- i think the fanatics will tell you not to use StdGen
21:08:46 <oerjan> i cannot remember what they suggest instead, though.
21:09:21 <oerjan> (note: random{,R}IO also use StdGen.)
21:10:06 <oerjan> also there's a random monad package somewhere
21:10:49 <elliott> oerjan: it's the global StdGen you're not meant to use, AIUI
21:10:59 <elliott> though if you are doing "serious random work" then you probably want to use another package entirely
21:11:34 <oerjan> i think i was alluding to the latter
21:12:26 <FreeFull> elliott: Well, newStdGen splits off the global StdGen, so are you meant to supply your own seed value to mkStdGen instead?
21:16:44 <elliott> I think you're meant to use newStdGen once and then maintain it yourself or some such
21:17:08 <kmc> StdGen sucks as a RNG anyway
21:17:15 <kmc> mwc256 for lyfe
21:17:45 <Sgeo> "Where's the volume control?
21:17:45 <Sgeo> There isn't one. If your fans want to change the volume of the audio on Bandcamp, they adjust their computer's volume -- simple as that. We're not trying to build the ultimate platform for them to stream your albums while they play World of Warcraft in another window (which we completely agree would require an independent volume control). "
21:17:49 <Sgeo> :(
21:18:08 <kmc> i,i pulseaudio
21:19:45 <Sgeo> #cslounge is leaking
21:20:09 <monqy> is it
21:21:17 <ais523> Sgeo: PulseAudio implements its own independent volume control for each program
21:21:21 <ais523> just in case they don't have one
21:21:28 <kmc> Sgeo: haha
21:22:38 <Sgeo> monqy, "i,i" is a thing that a lot of #cslounge ers do
21:23:52 <fizzie> ais523: It is also very possible for the application in question to make its own (in-the-UI) volume control the same control that is the PulseAudio control, if it wants to.
21:24:35 <coppro> I'm pretty sure that the best way to deal with pulseauio
21:24:37 <coppro> is to get rid of it
21:25:03 <ais523> coppro: keep it around so that you can uninstall it to fix audio problems?
21:25:22 <coppro> ais523:`quote pulseaudio
21:25:23 <ais523> btw, I've never had problems with pulseaudio that can't be fixed with "killall pulseaudio", except for when I was testing idim
21:25:24 <coppro> bah
21:25:27 <ais523> :)
21:25:28 <coppro> `quote pulseaudio
21:25:29 <ion> I’m pretty sure pulseaudio is better than anything else we have, although a lost of its functionality should be in the kernel.
21:25:29 <HackEgo> No output.
21:25:37 <ion> a lot
21:25:43 <coppro> I'm pretty sure I had a quote here along the lines of
21:26:10 <coppro> "The correct solution to solving all audio problems on linux is 'sudo apt-get remove pulseaudio' regardless of whether pulseaudio is installed or whether you're on debian"
21:26:24 <ais523> indeed
21:30:42 <olsner> I could've been quoted as saying that too
21:34:03 <olsner> I guess so could anyone who had a sound problem in linux at some point during the last N years
21:37:32 <fizzie> coppro: You did say something like that -- http://codu.org/logs/log/_esoteric/2012-10-06#182636coppro -- but I don't see it being made a quote.
21:39:33 <monqy> `pastequotes pulseaudio
21:39:39 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.6248
21:39:54 <monqy> good quotes
21:44:09 <oerjan> very zen
21:44:41 <Taneb> `pastequotes monqy
21:44:50 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.10519
21:46:31 -!- monqy has quit (Quit: hello).
21:51:00 -!- Arc_Koen has joined.
21:51:02 -!- Snowyowl has joined.
21:51:56 <ais523> `pastequotes kmc
21:52:02 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.22224
21:52:28 <kmc> :x
21:53:56 <Snowyowl> that's hilarious
21:55:26 <ais523> 631 is indeed accurate
21:55:34 <ais523> hi Snowyowl btw
21:55:39 <ais523> `welcome Snowyowl
21:55:41 <HackEgo> Snowyowl: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
21:56:08 <oerjan> mezzacotta almost makes sense today
21:56:26 -!- Anvilgames has joined.
21:56:27 -!- Anvilgames has quit (Client Quit).
21:57:13 <ais523> oerjan: is that better than average?
21:57:20 <Taneb> Anvilgames seemed cool
21:57:24 <Snowyowl> Yes, this is a good mezzacotta.
21:57:47 <oerjan> definitely
21:57:57 <elliott> `quote 631
21:57:59 <HackEgo> 631) <shachaf> You should get kmc in this channel. kmc has good quotes. <shachaf> `quote kmc <HackEgo> 686) <kmc> COCKS [...] <kmc> truly cocks <shachaf> Well, in theory.
21:58:13 <oerjan> elliott: you have to admit he picked up after that
21:58:15 <Snowyowl> Taneb: I agree, although I am biased here.
21:58:24 <oerjan> or maybe began a long decline
21:58:35 <kmc> `quote 873
21:58:36 <HackEgo> 873) <kmc> it's kind of the multiocular O of countries, if you will
21:58:38 <kmc> which country was that
21:59:00 <Taneb> `pastelogs multiocular O
21:59:37 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.9075
22:00:38 <Taneb> Liechtenstein
22:01:28 <kmc> ah
22:01:31 <kmc> seems correct
22:01:42 <oerjan> `url logs
22:01:42 <elliott> `qc
22:01:44 <HackEgo> 963 quotes
22:01:44 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/logs
22:01:49 <oerjan> er
22:01:54 <elliott> `quote 963
22:01:55 <oerjan> `url bin/log
22:01:55 <kmc> liechtenstein was invented as a scheme to get votes in the election of holy roman emperor
22:01:56 <HackEgo> 963) <ais523> did you know that likes follow you around the internet and steal your browser? <Taneb> I thought that was Phantom_Hoover
22:01:56 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/log
22:01:59 <elliott> `quote 962
22:01:59 -!- boily has quit (Quit: Poulet!).
22:02:01 <HackEgo> 962) <Taneb> I'm a story about the prohibition of chocolate
22:02:03 <elliott> `quote 961
22:02:05 <kmc> and ruled for centuries by people who had never been there
22:02:05 <HackEgo> 961) <oklopol> my university spam filter thinks it's okay for someone i have never met to discuss "usd 2,142,728.00 dollars" with me and "NEED MY HELP" etc. however, inviting me to a conference? such a nigerian thing to do.
22:02:08 -!- cuttlefish has quit (Remote host closed the connection).
22:02:11 <elliott> `quote 960
22:02:13 <HackEgo> 960) <fizzie> The other day (well, the other week) my wife was annoyed with me because she had a dream where I had gotten us plane tickets into a #esoteric meet somewhere in the middle of Greenland in the winter, without asking her first. Plus she wasn't really interested in a #esoteric meet at all, let alone one in Greenland, let alone one in Gree
22:02:21 <elliott> 960's being chopped off is unfortunate
22:02:35 <elliott> as it is clearly the best quote in the file
22:02:48 <ais523> `pastequotes Greenland
22:02:54 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27102
22:03:03 <ais523> oh, oops
22:03:04 -!- hogeyui has quit (Ping timeout: 272 seconds).
22:03:43 <oerjan> `run quote 960 | tail -c400
22:03:45 <HackEgo> fizzie> The other day (well, the other week) my wife was annoyed with me because she had a dream where I had gotten us plane tickets into a #esoteric meet somewhere in the middle of Greenland in the winter, without asking her first. Plus she wasn't really interested in a #esoteric meet at all, let alone one in Greenland, let alone one in Greenland
22:03:55 <oerjan> well that wasn't much
22:03:58 <ais523> elliott: I'd ask you to guess the reason behind the oops, but it's unlikely you could
22:04:01 <ais523> so it'd just be cruel
22:04:06 <ais523> `run quote 960 | tail -c300
22:04:08 <HackEgo> re I had gotten us plane tickets into a #esoteric meet somewhere in the middle of Greenland in the winter, without asking her first. Plus she wasn't really interested in a #esoteric meet at all, let alone one in Greenland, let alone one in Greenland in wintertime. (I think it's kind of cold there?)
22:04:13 <elliott> ais523: what is it?
22:04:15 <oerjan> oops right
22:04:26 <ais523> elliott: the website I'm trying to update had a broken certificate
22:04:36 <ais523> with the result that I'm trying to view it on the computer I'm editing it on, via ssh -X
22:04:41 <Taneb> `quote 960 | paste
22:04:42 <HackEgo> No output.
22:04:46 <Taneb> `run quote 960 | paste
22:04:52 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3535
22:04:55 <ais523> and Firefox gets confused if you try to run it twice on the same X display, even if it's on two different physical computers
22:05:18 <elliott> just imagine being fizzie's wife and having a dream about fizzie buying you plane tickets to an #esoteric meet in the middle of greenland in the winter without asking you
22:05:25 <elliott> is there any greater experience in life one could have
22:06:01 <Taneb> `quote lambda calculus
22:06:01 <ais523> `quote told the cat
22:06:02 <HackEgo> 110) <Mathnerd314> Gregor-P: I don't think lambda calculus is powerful enough \ 539) <Taneb> I think this has taught us one thing. We can't teach itidus20 lambda calculus by comittee
22:06:03 <HackEgo> 488) <fizzie> That's the stupidest thing I've heard all morning. (Though I did wake up five minutes ago, so I haven't had a chance to hear very much.) <fizzie> The "Why are you still asleep? I told the cat to wake you up." comment does come pretty close, though.
22:06:21 <ais523> fizzie: is your wife also responsible for 488, or was that something else?
22:06:47 -!- hogeyui has joined.
22:07:00 <ais523> quintopia: did you have a chance to look at my descriptions of omnipotence and anticipation2?
22:07:08 -!- nollapiste has joined.
22:07:33 <ais523> `welcome hogeyui: nollapiste
22:07:35 <HackEgo> hogeyui:: nollapiste: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:07:40 <ais523> oh, hmm
22:08:06 <Snowyowl> that was interesting, why did it double the :?
22:08:26 <ais523> probably because it splits on whitespace
22:08:44 <tswett> `welcome windmill windmill for the land
22:08:46 <Snowyowl> clever
22:08:46 <HackEgo> windmill: windmill: for: the: land: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:09:14 <Snowyowl> we need some way of inserting a literal space
22:09:35 <ais523> `run bin/welcome "windmill windmill for the land"
22:09:37 <HackEgo> windmill: windmill: for: the: land: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:09:40 <ais523> :(
22:09:59 <ais523> `run bin/welcome "windmill windmill for the land" | sed 's/://' | sed 's/://' | sed 's/://' | sed 's/://'
22:10:02 <HackEgo> windmill windmill for the land: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:10:02 <oerjan> Snowyowl: nicks don't contain spaces
22:10:12 <oerjan> Snowyowl: however you can use `@ directly
22:10:22 <oerjan> or wait can you
22:10:33 <Snowyowl> dunno
22:10:38 <oerjan> `run @ "windmill windmill for the land" ? welcome
22:10:39 <HackEgo> Can't exec "windmill": No such file or directory at /hackenv/bin/@ line 2. \ windmill:
22:10:45 <oerjan> nope
22:11:12 <oerjan> @ seems to split on space too, even if it has > 1 argumetn
22:11:15 <oerjan> *nt
22:11:29 <ais523> oerjan: probably because ` doesn't do argument splitting
22:11:29 <oerjan> i may have designed it to do so
22:11:34 <oerjan> ais523: yep
22:11:55 <ais523> oerjan: you wrote @?
22:11:59 <ais523> I thought writing @ was elliott's job
22:12:15 <oerjan> `cat bin/@
22:12:17 <HackEgo> ​#!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +([^ ]*) +//) { print "$1: "; exec $2, $_; }
22:12:18 <ais523> (retroactive log fixer, try handling /that/)
22:12:24 <oerjan> looks perly, so probably not elliott
22:12:32 <ais523> oerjan: I think you missed the joke
22:12:36 <oerjan> ...
22:12:37 <ais523> elliott probably got it, though
22:12:42 <oerjan> *`@
22:12:55 * oerjan tickles ais523 with feather
22:13:06 <ais523> not fair!
22:13:24 <ais523> why not swat me instead, it's what you usually do
22:13:41 * oerjan obliges -----###
22:14:04 <ais523> ow!
22:14:34 <Snowyowl> Does Hackego not like cd?
22:14:50 <oerjan> `url bin/@
22:14:51 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/%40
22:15:02 <ais523> `url ..
22:15:04 <oerjan> Snowyowl: sure it does, but it isn't preserved between ` invocations
22:15:04 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/..
22:15:24 <Snowyowl> `cd quotes
22:15:25 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: cd: not found
22:15:34 <ais523> Snowyowl: you need to use `run for shell commands
22:15:39 <Snowyowl> ah
22:15:41 <ais523> there's no such thing as /bin/cd, mostly because it wouldn't work
22:15:55 <ais523> actually, I can think of a way to implement /bin/cd
22:16:00 <ais523> it involves attaching a debugger to its parent
22:16:04 <kmc> /bin/cd should ptrace the parent process and execute... yes
22:16:07 <ais523> and forcing it to run a chdir syscall
22:16:19 <ais523> good idea?
22:16:23 <kmc> best idea
22:16:56 <Snowyowl> I don't know much about Linux, but you're scaring me anyway.
22:17:18 <ais523> Snowyowl: well what we're suggesting is an incredibly bad idea, really :)
22:17:33 <ais523> you can do that sort of thing on Windows too
22:17:42 <ais523> Raymond Chen uses it as a reductio ad absurdum, on occasion
22:20:01 -!- carado has quit (Ping timeout: 246 seconds).
22:20:39 <kmc> actually a friend of mine once used that trick to good practical effect
22:20:48 <kmc> his window manager was hosed because its cwd was a stale NFS file handle
22:21:30 <ais523> kmc: did he have a syscall injection process handy?
22:21:36 <ais523> (can gdb do that?)
22:22:28 <Snowyowl> can't he close and restart the window manager?
22:22:45 <kmc> gdb can more or less do that
22:22:58 <kmc> Snowyowl: yeah, you lose WM state though, and depending on how your xsession is set up, it might want to restart all X processes
22:23:11 <ais523> weboflies can do that, but (luckily for the sake of humanity) it can't attach to currently existing processes
22:23:23 <kmc> i do something like "xmonad & echo $$ > $HOME/.xsession.pid; while true; do sleep 86400; done"
22:23:30 <kmc> so that i can kill / restart my WM easily
22:24:38 <ais523> I just control-alt-f1 and do DISPLAY=:0.0 unity &
22:24:47 <ais523> in extreme cases, metacity --replace, rather than unity
22:24:50 <Snowyowl> what's the "while true" for?
22:24:55 <ais523> although the lack of any sort of penalty hurts
22:25:10 <ais523> Snowyowl: it looks like it's trying to intentionally halt the process
22:25:15 <ais523> and the sleep is to prevent it busylooping
22:25:30 <kmc> Snowyowl: xdm invokes ~/.xsession as a script, once that script ends it restarts the X server and goes back to the login prompt
22:25:34 <kmc> that snippet is from my ~/.xsession i mean
22:25:46 <kmc> there may of course be better ways to do all of this
22:26:04 <Snowyowl> I think you just went over my head again.
22:26:19 <ais523> Snowyowl: basically it's making the program not exit
22:26:34 <ais523> because if it exited, the login prompt would think that kmc had logged out
22:26:55 <kmc> yeah, typically you just end the file with "xmonad" or whatever your window manager is, but in that case if the WM dies you get logged out
22:27:24 <Snowyowl> Thanks, I understood that.
22:27:45 -!- Taneb has quit (Quit: Page closed).
22:27:55 <Snowyowl> (I'm feeling very un-leet as a result of this conversation.)
22:28:01 <elliott> well xmonad knows how to reload itself at least!
22:28:11 <ais523> elliott: is that lazy and pure, though?
22:29:20 <kmc> Snowyowl: sorry :/
22:29:34 <Snowyowl> oh, don't apologise.
22:30:54 <kmc> all right
22:31:18 <kmc> i hate that hacker culture is so obsessed with being h4rdc0re rather than learning and teaching :/
22:31:32 <ais523> kmc: it isn't
22:31:40 <ais523> you're thinking of script kiddie culture
22:31:56 <kmc> no i'm thinking of Reddit and HN and the endless wanking over who's a "real hacker"
22:32:17 <kmc> anyway if you want me to expand more on any of the things i say, just ask
22:32:19 <Snowyowl> kmc: I do learn, and occasionally teach, it's just that I'm a .net developer and I don't have anything much to do with Linux.
22:32:20 <kmc> always happy to
22:32:23 <kmc> *nod*
22:33:09 <ais523> Snowyowl: how depressing, I like it when .NET programs run on Linux too
22:33:15 <ais523> but so many .NET developers don't pay attention to portability
22:34:02 <Snowyowl> Ah.
22:34:08 <kmc> C# is a pretty nice language
22:34:19 <ais523> I personally dislike it, too much bloat
22:35:13 <Snowyowl> how so?
22:35:23 <ais523> although I like Perl, so…
22:35:42 <ais523> Snowyowl: it has a similar problem to C++ where you can't figure out what a line of code does, even if it's apparently obvious, without knowing all the context
22:36:52 <elliott> also like every other language on the planet
22:36:57 <elliott> with functions
22:37:43 <ais523> elliott: well, yes
22:37:51 <ais523> it's to do with the proportion of lines of code that act like that
22:37:58 <ais523> at least in Perl, you have the certainty of that proportion being 100%
22:38:04 <ais523> in C#, it doesn't apply to }
22:38:45 <ais523> also I don't like things like the existence of both value and reference types
22:40:37 <Snowyowl> I don't get that, even in C++. Was pointer arithmetic so hard that they added reference types as well?
22:41:09 <ais523> no, reference types in C++ are to solve a different issue (related to operator overloading)
22:41:17 <ais523> and then they got a little out of hand
22:41:25 <ais523> most of C++ is features that try to work around deficiencies in other features
22:47:23 <elliott> well pointers are kind of bad
22:47:27 <elliott> in that they are rampantly unsafe and cause tons of bugs
22:47:47 <ais523> oh, definitely
22:48:11 <ais523> but that's not the reason C++ added references
22:48:26 <elliott> that was more to Snowyowl
22:48:38 <ais523> and most possible pointer bugs that don't involve pointer arithmetic also exist with references
22:48:47 -!- sivoais has joined.
22:48:59 <ais523> (ever tried to return a pointer to something locally allocated from a function? returning a reference to something locally allocated from a function doesn't work so well either)
22:49:16 <ais523> `welcome sivoais
22:49:18 <HackEgo> sivoais: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:49:22 <ais523> any idea why lots of new people are joining today?
22:49:29 <ais523> with random-looking nicks?
22:49:36 <elliott> those aren't new
22:49:41 <elliott> you're just insane
22:50:08 * ais523 blames it on the Feather
22:51:36 <ais523> anyway, if they aren't new, why have I never heard of them?
22:52:39 <Snowyowl> because I'm not on very often?
22:53:13 <ais523> perhaps
22:53:16 <elliott> ais523: because you don't pay attention
23:02:33 -!- variable has changed nick to const.
23:04:04 <ais523> oh no, someone's SSA'd variable!
23:05:18 -!- Snowyowl has quit (Quit: Page closed).
23:09:57 <Sgeo> `olist
23:09:58 <HackEgo> shachaf oerjan Sgeo
23:11:15 <coppro> olist?
23:11:26 <ais523> is that a list of people who have complained about `list?
23:11:36 <coppro> `cat bin/list
23:11:37 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy
23:11:56 <ais523> coppro: that's cheating :)
23:12:07 <Sgeo> It's a list of people who care about OOTS
23:12:12 <ais523> aha
23:12:19 <coppro> I care!
23:12:25 <Sgeo> Append your nick to the list
23:12:28 <coppro> no
23:12:55 <Sgeo> I should have pulled a zzo38 and said "Append your nick to the list unless you don't want to"
23:13:27 <elliott> `run sed -i 's/Sgeo/Sgeo coppro' bin/olist
23:13:32 <elliott> can't have inaccurate lists in the bot.
23:13:32 <HackEgo> sed: -e expression #1, char 18: unterminated `s' command
23:13:34 <elliott> `run sed -i 's/Sgeo/Sgeo coppro/' bin/olist
23:13:37 <HackEgo> No output.
23:13:39 <coppro> elliott: please don't
23:13:42 <coppro> :(
23:13:52 <coppro> `run sed -i 's/coppro//' bin/olist
23:13:57 <HackEgo> No output.
23:15:29 <elliott> but the null string doesn't care about OOTS!
23:17:29 <shachaf> `rm bin/list
23:17:33 <HackEgo> No output.
23:19:05 <coppro> woohoo, hackego edit wars
23:19:36 <ais523> `revert
23:19:38 -!- sebbu2 has joined.
23:19:39 <HackEgo> Done.
23:19:59 <ais523> shachaf: I don't see what you're complaining about here, nobody even ran `list
23:20:19 <ais523> and you'd been pinged a few lines earlier
23:20:27 <elliott> `run sed -i 's/Sgeo /Sgeo/' bin/olist
23:20:37 <HackEgo> No output.
23:20:58 -!- sebbu has quit (Ping timeout: 272 seconds).
23:34:01 <Phantom_Hoover> so how'd halite turn out
23:37:09 -!- copumpkin has quit (Ping timeout: 252 seconds).
23:37:45 -!- copumpkin has joined.
23:39:51 -!- FreeFull has quit (Ping timeout: 252 seconds).
23:42:36 <ais523> Phantom_Hoover: it was a chatbot? I assumed it was a human
23:43:06 <Phantom_Hoover> you never know
23:43:14 <Phantom_Hoover> we were all fooled by tiffany, weren't we
23:46:10 -!- FreeFull has joined.
23:48:25 <oerjan> <Sgeo> `olist <-- that's not new, i'm pretty sure i did `olist for it before.
23:49:06 <oerjan> `pastelogs \<olist
23:49:33 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.19012
23:50:45 <oerjan> hm wrong syntax
23:51:02 <oerjan> `pastelogs \bolist
23:51:18 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.19003
23:51:18 <oerjan> (next time i might look it up)
23:52:04 <oerjan> wait, _both_ i and Sgeo did `olist.
23:52:24 <oerjan> oh no, a week apart
23:53:59 <Sgeo> Easy way to extend lists, appending echo foo to it?
23:54:20 <Sgeo> `run echo "echo foo" > bin/testlist
23:54:23 <HackEgo> No output.
23:54:27 <shachaf> Sgeo: Easier: See smlist.
23:54:28 <Sgeo> `run chmod a+x bin/testlist
23:54:32 <HackEgo> No output.
23:54:44 <Sgeo> `run echo "echo bar" >> bin/testlist
23:54:48 <HackEgo> No output.
23:54:49 <Sgeo> `testlist
23:54:50 <HackEgo> foo \ bar
23:54:53 <shachaf> `echo Sgeo >> bin/smlist
23:54:54 <Sgeo> `cat smlist
23:54:55 <HackEgo> Sgeo >> bin/smlist
23:54:55 <HackEgo> cat: smlist: No such file or directory
23:54:57 <shachaf> `smlist
23:54:59 <HackEgo> shachaf monqy elliott
23:55:01 <shachaf> `run echo Sgeo >> bin/smlist
23:55:03 <shachaf> `smlist
23:55:04 <HackEgo> No output.
23:55:05 <HackEgo> shachaf monqy elliott Sgeo
23:55:10 <Phantom_Hoover> what's smlist
23:55:14 <shachaf> super mega list
23:55:22 <Phantom_Hoover> i want in
23:55:29 <shachaf> go for it!
23:55:32 <Sgeo> `run cat bin/smlist
23:55:33 <HackEgo> tail -n+2 "$0" | xargs; exit \ shachaf \ monqy \ elliott \ Sgeo
23:56:03 <shachaf> `run cat bin/emptylist # template
23:56:04 <HackEgo> tail -n+2 "$0" | xargs; exit
23:56:07 <Sgeo> I get it
23:56:23 <Sgeo> Mostly
23:56:45 <shachaf> `run sed -i 'g/Sgeo/d' bin/smlist # does this work?help
23:56:47 <HackEgo> sed: -e expression #1, char 2: extra characters after command
23:56:50 <Sgeo> I get the concept but not the specific workings
23:56:52 <shachaf> I guess not.
23:57:19 <Sgeo> That it reads itself and does something with all the lines except the first
23:57:27 <shachaf> `run sed -i '/Sgeo/d' bin/smlist # does this work?help
23:57:32 <HackEgo> No output.
23:57:36 <shachaf> `run cat bin/smlist
23:57:38 <HackEgo> tail -n+2 "$0" | xargs; exit \ shachaf \ monqy \ elliott
23:57:43 <shachaf> yay
2013-02-13
00:05:21 <oerjan> `run ls bin/*list*
00:05:23 <HackEgo> bin/emptylist \ bin/list \ bin/liste \ bin/lists \ bin/makelist \ bin/olist \ bin/pbflist \ bin/slist \ bin/smlist \ bin/testlist
00:05:53 <oerjan> `cat bin/liste
00:05:57 <HackEgo> echo Taneb atriq Ngevd Fiora nortti Sgeo alot monqy
00:05:59 <oerjan> `cat bin/list
00:06:01 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy
00:06:08 <shachaf> `rm bin/list
00:06:11 <HackEgo> No output.
00:06:13 <oerjan> `revert
00:06:16 <HackEgo> Done.
00:06:51 <oerjan> `run rm bin/liste #IIRC this was the result of someone misunderstanding sed flag syntax
00:07:00 <HackEgo> No output.
00:07:13 <oerjan> (specifically, that sed -ie is not equivalent to sed -i -e)
00:07:47 <oerjan> (the former uses the e as backup suffix)
00:08:06 <oerjan> `run ls bin/*e
00:08:12 <HackEgo> bin/addquote \ bin/define \ bin/delquote \ bin/fortune \ bin/fueue \ bin/google \ bin/hyfinate \ bin/pastaquote \ bin/paste \ bin/quine \ bin/quote \ bin/relcome \ bin/resume \ bin/runce \ bin/shove \ bin/translate \ bin/wehlcohme \ bin/welcome
00:08:53 <oerjan> `cat bin/runce
00:08:54 <HackEgo> ​#!/bin/bash \ t=`tempfile` \ echo "$@" | gcc -o $t -x c - 2>/dev/null && $t \ rm $t
00:09:04 <oerjan> `cat bin/runc
00:09:05 <HackEgo> ​#!/bin/bash \ t=`tempfile` \ echo -e "$@" | gcc -o $t -x c - 2>/dev/null && $t \ rm $t
00:09:12 <oerjan> `rm bin/runce
00:09:15 <HackEgo> No output.
00:09:33 <elliott> `cat bin/relcome
00:09:35 <HackEgo> ​#!/bin/sh \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())"
00:09:38 <elliott> `relcome
00:09:41 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/relcome: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/relcome: cannot execute: Permission denied
00:10:18 <oerjan> `sh bin/relcome test
00:10:19 <HackEgo> sh: Can't open bin/relcome test
00:10:22 <oerjan> `run sh bin/relcome test
00:10:24 <HackEgo> No output.
00:10:30 <elliott> this is not the greatest script
00:10:35 <oerjan> you think
00:12:46 <shachaf> `run sed -i /shachaf/d bin/list
00:12:50 <HackEgo> No output.
00:14:20 -!- augur has quit (Remote host closed the connection).
00:15:53 <ais523> `cat /bin/list
00:15:55 <HackEgo> cat: /bin/list: No such file or directory
00:15:59 <ais523> `cat bin/list
00:16:01 <HackEgo> ​#!/bin/sh
00:16:04 -!- sebbu2 has changed nick to sebbu.
00:16:04 <ais523> `revert 3
00:16:06 <ais523> shachaf: you fail at sed
00:16:08 <ais523> `cat bin/list
00:16:15 <elliott> ais523: um... you fail at `revert
00:16:17 <ais523> err, yes
00:16:21 <elliott> `help
00:16:22 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
00:16:24 <ais523> I thought that might be it
00:16:28 <elliott> you need to look up revision on the site every time if you want to revert stuff
00:16:36 <HackEgo> Done.
00:16:38 <HackEgo> cat: bin/list: No such file or directory
00:16:49 <ais523> oh well, you can revert my revert, right?
00:17:25 <ais523> `revert 87c64ef250a0
00:17:26 <ais523> or I can
00:17:39 <elliott> ais523: I hope that isn't the revert commit
00:17:42 <elliott> or in fact that won't even work
00:17:48 <shachaf> ais523: I think that command did what I expected.
00:17:48 <elliott> "`revert rev" takes the revision _number_ (not hash) to revert _to_
00:17:51 <HackEgo> Done.
00:17:57 <ais523> elliott: well it's not listing hashes
00:17:59 <ais523> `ls
00:18:02 <HackEgo> ​= 0 \ bin \ brainfuck.fu \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ fueue.c \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ test \ u \ wisdom \ zalgo.hs
00:18:04 <ais523> err, not listing numbers
00:18:05 <ais523> just hashes
00:18:07 <shachaf> ais523: If you want something more fine-grained, feel free to do it yourself.
00:18:08 <elliott> ais523: you click the commit
00:18:10 <ais523> `cat bin/list
00:18:12 <ais523> elliott: I did
00:18:14 <ais523> it just gave me more hashes
00:18:17 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy
00:18:19 <elliott> ais523: "changeset <number>:<hash>"
00:18:21 <elliott> look closer.
00:18:23 <ais523> anyway the revert to hash worked
00:18:24 <shachaf> `rm bin/list
00:18:28 <HackEgo> No output.
00:18:35 <ais523> `revert
00:18:38 <HackEgo> Done.
00:21:09 <oerjan> <ais523> anyway the revert to hash worked <-- wait it did? this changes *EVERYTHING*
00:21:26 <ais523> that's a lot of change
00:22:00 <oerjan> as expected for a change all the way from revision 3. now why did i click that..
00:24:20 <oerjan> had to kill my browser
00:24:32 <ais523> `cat canary
00:24:45 <HackEgo> foo
00:24:48 <ais523> I'm wondering if /that/ changed too
00:24:51 <ais523> apparently so
00:24:53 <elliott> `run echo chirp >canary
00:24:58 <HackEgo> No output.
00:25:02 <oerjan> `run hg diff 2116:2112 | paste
00:25:12 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12699 \ 2116:2112: No such file or directory
00:25:26 <oerjan> ffff
00:25:56 <elliott> oerjan: -r 2116 -r 2112?
00:25:58 <elliott> or the other way around
00:26:31 <oerjan> `run hg diff -r 2116 -r 2112 | paste
00:26:41 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12320
00:26:49 <oerjan> why did i have this memory of colon working...
00:27:48 <elliott> oerjan: aliens planted it
00:30:16 <oerjan> anyway knowing that hashes work should make things easier. although it will make the resulting descriptions even harder to interpret.
00:31:32 <oerjan> ais523: although a plain `revert would also have worked - the other 2 commands made no changes
00:31:45 <ais523> I didn't realise it skipped no-change commands
00:31:52 <oerjan> instead of `revert 3, that is
00:32:52 <oerjan> `perl -e 'print "testing\015ho"'
00:32:55 <HackEgo> No output.
00:33:08 <oerjan> `perl -e 'print "testing\015ho";'
00:33:09 <HackEgo> No output.
00:33:12 <quintopia> what
00:33:32 <oerjan> oh duh
00:33:37 <ais523> you need `run
00:33:37 <oerjan> `run perl -e 'print "testing\015ho";'
00:33:39 <HackEgo> testing
00:33:41 <oerjan> right
00:33:48 <ais523> \015 is \r?
00:33:53 <ais523> I'm more used to seeing it in hexadecimal
00:33:57 <quintopia> oh
00:34:04 <quintopia> ais523: yes i read them earlier
00:34:12 <ais523> what did you think?
00:34:32 <quintopia> ais523: made sense to me. don't know if they'd make sense to a noobie though :P
00:35:04 <quintopia> ais523: do you think they are amenable to the color-coded symbol system? or if it does not encompass their strategies?
00:35:46 <ais523> I forgot the color-coded symbol system
00:36:02 <ais523> omnipotence can probably be described like that, at least
00:36:05 <ais523> less sure about anticipation2
00:36:15 <ais523> omnipotence is just a bunch of standard components glued together in a very nonstandard way
00:36:25 <ais523> (poke + full-tape clear has probably never been tried before)
00:36:58 <ais523> whereas anticipation2 is a synchronizing vibration program, the only other program like that is the original anticipation, as far as I know
00:48:23 <ais523> hmm… you know those random dating adverts which have a "here are people living nearby" thing
00:48:35 <ais523> I assumed that they were telling the technical truth, just not useful
00:48:48 <ais523> but… I observed the same advert twice on the same page, same photo, different name
00:49:07 <ais523> that seems to take more effort than doing it in a not easily disprovable way!
00:49:21 -!- DHeadshot has joined.
00:57:29 <Sgeo> Ugh
00:57:36 <elliott> hi
00:57:50 <Sgeo> I really want access to a nice dynamically scoped way to fake being standard IO
00:58:49 <Sgeo> Hmm, I see another way to solve my probkem
00:58:52 <Sgeo> problem
00:59:14 <Sgeo> That doesn't require some sort of library that makes it easy to write a shim I/O with multiple interpretations
01:00:12 -!- TeruFSX has joined.
01:03:33 -!- stuntaneous has joined.
01:04:53 <ais523> elliott: oh, an observation I had a while ago: lexical scoping works by replacing the variable names as you enter and leave the scope, and dynamic scoping by replacing the variable values
01:05:02 <ais523> so it's basically like scope-by-name, scope-by-value
01:05:06 <ais523> I wonder if there's a scope-by-need
01:06:56 <elliott> ais523: I dislike renaming-based reasoning
01:07:20 <Sgeo> Quick, someone make a BF derivative that relies on renaming
01:07:20 -!- stuntane has quit (Ping timeout: 252 seconds).
01:07:21 <elliott> I view explicit unstructured variable names like that as artefacts and definition in terms of them suspect
01:07:45 <Sgeo> Piss off two people for the price of one
01:08:00 <ais523> elliott: I know it's not a very /good/ view of lexical scoping, it's just a /possible/ view
01:08:16 <elliott> sure
01:08:17 <ais523> and I'm not saying this is going to be useful, I just saw a possible esoöpportunity
01:08:20 <elliott> it is an interesting observation apart from that
01:08:26 <elliott> scope-by-need sounds confusing
01:08:51 <kmc> well, call-by-need is a transparent optimization for call-by-name right?
01:08:54 <elliott> ais523: I just have an axe to grind, since I find the fact that people learn about alpha-renaming when introduced to the lambda calculus terrible beyond belief
01:09:06 <kmc> so i imagine scope-by-need is like "don't allocate a new frame until the old one is written to"
01:09:11 <kmc> a sensible optimization
01:09:15 <ais523> kmc: no, it's not equivalent to call-by-name or call-by-value in an impure language
01:09:23 <kmc> mmmmmm right
01:09:31 <kmc> i guess most obviously, if you have an object-identity operator
01:09:33 <ais523> in Haskell, it's only equivalent because all function calls are idempotent
01:09:37 <elliott> wouldn't you need *scoping itself* to somehow be impure to distinguish this, then?
01:09:46 <ais523> (and call-by-value is only different because of nontermination)
01:09:50 <elliott> kmc: I forgot that most languages have object-identity tests :(
01:09:52 <kmc> cough cough lazy blackholing of unsafePerformIO thunks
01:09:57 <ais523> elliott: yeah, I think so
01:10:02 <shachaf> Function calls are idempotent?
01:10:16 <ais523> if your language does dynamic scoping, the only way to determine the fact is by calling something in an outer scope
01:10:22 <kmc> evaluation is idempotent
01:10:24 <ais523> and seeing that it gets your variable rather than its variable
01:10:30 -!- stuntane has joined.
01:10:31 <FreeFull> In Haskell everything is interchangeable with a value, right? At least outside of the IO monad
01:10:37 <shachaf> Ah, I suppose.
01:11:06 <elliott> IO has nothing to do with it.
01:11:24 <ais523> possibly unsafePerformIO has something to do with it, but IO itself doesn't
01:11:32 <kmc> ugh
01:11:36 <Sgeo> I thought, say, (car (1, 2), car (1, 2)) isn't optimized?
01:11:40 <FreeFull> You could interchange io with a value too if that value somehow still had the side effects
01:11:41 <elliott> what is car
01:11:45 <Sgeo> fst
01:11:47 <elliott> and what does optimisation have to do with it
01:11:55 <Sgeo> Well, nothing observable
01:11:56 <kmc> FreeFull: IO actions are values too. evaluating an IO action doesn't do anything special. only /executing/ the IO action has any side effect
01:12:10 <kmc> the thing to focus on is not "pure vs impure" but "evaluation vs execution"
01:12:13 <kmc> man this takes me back
01:12:15 <ais523> and yeah, car is the Lisp name for fst
01:12:18 <kmc> i gotta go pick up my nooooodles though
01:12:19 <kmc> bbl
01:12:32 <elliott> kmc: are those noodles made by nooodl
01:12:48 -!- stuntaneous has quit (Ping timeout: 240 seconds).
01:12:48 <kmc> no they are made by Thelonious Monkfish
01:13:12 <Sgeo> Does crashing vs not crashing due to poor algorithm count as observable?
01:13:40 <ais523> yes
01:14:10 <ais523> crashing is like non-termination for most purposes, except that you don't have to wait infinitely long to determine whether it's happened or not
01:14:26 <Sgeo> So, if the fact that Haskell might do the same function evaluation twice (not memoizing by default) can be exploited into a crash where a memoized version wouldn't crash...
01:14:33 <Sgeo> Observable memoization.
01:14:36 <elliott> incidentally IO does break the semantics of the language
01:14:39 <elliott> it can distinguish _|_s etc.
01:14:46 <elliott> Sgeo: uh...
01:14:49 <elliott> what
01:15:04 <ais523> elliott: it's more a case of "some IO actions in the standard library break the semantics of the language", isn't it?
01:15:13 <ais523> it's perfectly possible to imagine an IO that can't distinguish between bottoms
01:15:21 -!- augur has joined.
01:15:25 <Sgeo> Or can lack of memoization only result in nontermination but not actual crashes?
01:15:33 <FreeFull> kmc: Yeah, but you can't get a value out of an IO action without executing it, can you?
01:15:58 <shachaf> IO actions don't contain values in the first place.
01:16:13 <FreeFull> How does IO distinguish bottoms?
01:16:13 <Sgeo> You can build up another IO action that goes "imagine if we had a value from this IO action. I would like to do this with it"
01:16:26 <FreeFull> shachaf: so IO String is a fake?
01:16:30 <FreeFull> Everything is a lie?
01:16:31 <copumpkin> FreeFull: there is no value "in" IO
01:16:41 <copumpkin> @quote ls
01:16:41 <lambdabot> dons says: - yeah, the idea is that you use the tools in the chapter
01:16:43 <elliott> @quote /bin/ls
01:16:43 <lambdabot> shachaf says: getLine :: IO String contains a String in the same way that /bin/ls contains a list of files
01:16:44 <copumpkin> dammit
01:16:45 <elliott> ais523: I am talking about Haskell, not an imaginary Haskell derivative
01:16:47 <Sgeo> IO String does not contain a string. It is an action that describes how to obtain a string.
01:16:58 <elliott> IO distinguishes bottoms by way of Control.Exception
01:17:12 <elliott> e.g. observable sharing should also "be impossible" if IO were truly "kosher"
01:17:20 <elliott> but these are not the details most people think about when they think IO is impure
01:17:24 <shachaf> It could presumably also "distinguish" them in some other ways.
01:17:45 <shachaf> Mostly more evil ways, though.
01:18:34 * oerjan thinks thelonious monkfish sounds like a member of the main girl genius villain family
01:19:32 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:19:53 <ais523> elliott: I was thinking about Haskell without access to certain libraries
01:20:06 <elliott> I think exception handling is in the Report
01:20:09 <ais523> which is certainly a legitimate language family (see, e.g., lambdabot)
01:20:15 <ais523> but OK
01:23:35 <shachaf> ~eval 1
01:23:37 <shachaf> Hmm.
01:25:00 <FreeFull> ~eval 3+3
01:25:04 <FreeFull> Nope
01:25:36 <oerjan> hm that's spelled "mongfish"
01:27:28 -!- nollapiste has quit (Quit: Sto andando via).
01:41:23 <Sgeo> Does there exist a transform of BF program to BF program such that a BF program that relies on 255 + wrapping to 0 or something can be made to run on an implementation that 255+ crashes on?
01:41:32 <Sgeo> A mechanical transform
01:41:40 <shachaf> Yes.
01:42:04 <oerjan> you will have to add cells, though.
01:42:19 <Sgeo> add cells?
01:42:21 <shachaf> Sure.
01:43:38 <Sgeo> As in, I'm not sure what is meant
01:44:19 <oerjan> you cannot do it without adding memory bloat to get somewhere to put the necessary temporary cells for testing.
01:44:55 <oerjan> oh hm
01:45:38 <oerjan> a constant number is enough, although then you need to transform > and < as well to move the extra cells together with your pointer
01:46:10 <ais523> oerjan: oh, and then you test the cell for each individual value to see if it's that value or not?
01:46:14 <ais523> actually, not sure you can
01:46:23 <ais523> how do you distinguish -255 from +255?
01:46:28 <ais523> or are we assuming unsigned only?
01:46:42 <oerjan> i was assuming you could only use values 0 to 255, inclusive
01:47:08 <Sgeo> Hmm, suddenly, I'm... not totally sure if... hm
01:48:09 <Sgeo> Yeah, could work
01:48:16 <oerjan> if you have negative values as well, it will be harder. in fact then i don't think you can do it with constant number of cells, since you pretty much have to store whether a cell is positive or negative to avoid things going wrong at one end
01:48:17 <Sgeo> Might need to transform :
01:48:40 * Sgeo is thinking in terms of Trustfuck
01:48:58 <Sgeo> If the native Trustfuck BF implementation were constrained, writing a compiler for a variation that is not so constrained
01:49:16 <oerjan> i don't really feel like wrapping my brain around trustfuck right now
01:49:31 <Sgeo> aww, darn >.>
01:50:29 <Sgeo> I do feel like it's simpler than I made it sound. ! sends the code block to a compiler stack, which compiles into Trustfuck native primitives, which then get compiled to target
01:50:59 <Sgeo> The resulting output has the current program on top of its compiler stack
01:51:09 <Sgeo> when it itself runs
01:51:40 <Sgeo> s/which compiles into/which collectively compile the code into/
02:15:43 -!- monqy has joined.
02:21:37 <zzo38> Is it possible to make something like LLVM's "appending" linkage in GCC?
02:26:50 -!- ais523 has quit.
02:44:39 <kmc> how does that linkage work?
02:59:34 <zzo38> Make multiple declarations of the array to be appending to put together.
03:01:55 <kmc> i don't know how to do that at the symbol level with gnu toolchain
03:02:26 <kmc> but sections of the same name get concatenated, and you can have arbitrary named sections in e.g. ELF
03:02:33 <kmc> Linux uses this to good effect in many places
03:03:11 <zzo38> But can it be made to work on cross-platform?
03:03:19 <kmc> Linux kernel code has a lot of macros that you put into your code which as a side effect output records into a table in some section
03:07:56 <kmc> these are used for all kinds of fun things which i would be happy to blather on about at length
03:08:33 <kmc> self-modifying code and stupid processor tricks
03:12:58 <Sgeo> self-modifying code in the kernel
03:12:58 <Sgeo> ?
03:13:16 <Sgeo> Is it actually... used for important stuff?
03:13:27 <Sgeo> Because there's a time and place to mess around, the kernel isn't it.
03:14:03 * Sgeo assumes that there is a good reason, otherwise it wouldn't be done. I hope.
03:14:09 <kmc> Sgeo: tons of it, and yes they have good reasons
03:14:11 <kmc> it's not "messing around"
03:15:01 <kmc> for example, if you boot a SMP kernel on a uniprocessor system, it will go through and remove lock instructions / prefixes
03:15:01 <kmc> and if you boot a kernel under paravirtualization, it will replace certain hardware operations with hypervisor calls
03:15:32 <kmc> all of this enables distributions to maintain fewer binary kernels, while keeping things flexible and performant for users
03:15:50 <Sgeo> Hmm, interesting
03:16:01 <kmc> the kernel may be a bad place for 'messing around' but it's a good place for marginal performance improvements because they apply to /everything/
03:16:37 <kmc> more remarkably though, if you boot a multiprocessor system and then hot-unplug all but one CPU, it will /dynamically/ remove those lock instructions
03:16:43 <kmc> and reinsert them if you bring another CPU online
03:17:31 <kmc> self-modifying code is also used for debugging, tracing, etc
03:17:42 <Sgeo> Hmm. How does one add locks where there weren't any? What if you're in a section that should have a lock around it when the new CPU comes on?
03:17:56 <kmc> you have each function start with a call to a "record trace" function, but you nop those out unless tracing is enabled
03:18:08 <kmc> much better performance than putting a conditional at the beginning of every function
03:18:35 <kmc> in fact they have an abstraction for "immediate variables" which look like variables you can assign to, but actually they are load-immediates and each "assignment" rewrites every instruction that reads those "variables"
03:18:53 <kmc> Sgeo: as to the first part, the locks were present in the compiled code, then they were NOPped out when you go to uniprocessor
03:18:57 <kmc> so there is space to put them back in
03:19:07 <kmc> as to the second, it happens in this wonderful function called stop_machine()
03:20:14 <kmc> which gives you total control of all CPUs
03:20:19 <kmc> so that nothing else is running concurrently
03:20:49 <Sgeo> (My first "question" was just really about the second)
03:21:21 <kmc> though those suspended processes still might be in the middle of some kernel function
03:21:21 <kmc> when they resume
03:21:32 <kmc> so i think you need to maintain certain properties about the code you're swapping out
03:21:59 <kmc> executing a NOP; MOV which is in the middle of turning into a LOCK MOV is okay
03:22:06 <kmc> because the NOP instruction and LOCK prefix are one byte each
03:22:13 <kmc> (talking about x86 here as an example i know well)
03:22:23 <kmc> (and because the most sophisticated tricks are for x86 and maybe ARM)
03:22:54 <zzo38> How can you expect that to work in a C program?
03:23:09 <kmc> you don't; it's all done with inline assembly
03:23:22 <kmc> Sgeo: here's the Linux kernel's big list of favorite NOP instructions: http://lxr.linux.no/linux+v3.7.7/arch/x86/include/asm/nops.h
03:23:32 <kmc> "Note: All the above are assumed to be a single instruction. There is kernel code that depends on this."
03:23:45 <kmc> that means you can replace them with a non-NOP of the same size without worrying about code that's in the middle of the instruction
03:24:25 <kmc> Sgeo: it gets more complicated for something like Ksplice, which is swapping out an entire kernel function for another. Ksplice does stop_machine(), walks the kernel stacks of all processes, and aborts if any of them are executing one of the functions to be patched
03:25:34 <kmc> depending on the patch and the workload of the machine this can actually make it rather hard to apply a patch
03:25:59 <kmc> like on the super oversubscribed OpenVZ hosts running 1000 separate Apache processes, it would be pretty hard to patch bits of the network stack
03:29:07 <Sgeo> Hard as in, takes time before there's a window of opportunity?
03:29:10 <kmc> yes
03:29:33 <kmc> the ksplice tools would retry periodically but sometimes it would take hours
03:38:28 -!- sivoais has quit (Remote host closed the connection).
03:39:34 -!- sivoais has joined.
03:45:49 <oerjan> `pastelogs ais523.*shove
03:46:22 <HackEgo> No output.
03:46:27 <oerjan> `pastelogs ais523.*shove
03:46:48 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27210
03:57:41 <zzo38> Do you know if it is possible in GCC to include a variable (possibly in its own section) which is accessed by a machine code for a different processor from the main program?
04:08:56 <kmc> i don't understand
04:09:59 <zzo38> I mean without having to compile the other machine code within the C program, so it can instead be included in the compiled executable file.
04:20:33 -!- Arc_Koen has left.
04:39:35 <zzo38> C2 wiki mentions about three start programming, you might be a three star programmer ... if raw machine codes debugging is not low level enough. But now we have Verilog can we use that in such circumstances?
04:39:57 <kmc> oh C2 wiki
05:06:14 -!- TeruFSX has quit (Ping timeout: 256 seconds).
05:33:12 <shachaf> zzo38: Why didn't you tell me curl supports gopher?
05:33:48 <shachaf> oerjan: Should I figure out what a limit is?
05:33:58 <kmc> shachaf: how many buffer overflows in the gopher handlin
05:34:51 <oerjan> certainly
05:34:53 <shachaf> kmc: one more than you can handle
05:35:30 <kmc> :O
05:36:38 <shachaf> Maybe buffer overflow in the curl gopher code are zzo38's secret weapon.
05:36:50 <shachaf> s
05:38:20 <kmc> hax
05:38:36 <shachaf> kmc: are you drunk again
05:41:00 <oerjan> maybe he never stopped
05:47:30 <kmc> no
05:51:23 <shachaf> adjunctions, man
05:57:15 <zzo38> shachaf: I don't know exactly why I will tell you that, and I also didn't know if there are buffer overflow in the curl gopher code.
05:57:35 <zzo38> But you can just download a gopher file using netcat very easily
05:58:01 <shachaf> what if there's a buffer overflow in the netcat gopher code
05:58:32 <zzo38> Netcat has no gopher code.
05:59:24 <shachaf> zzo38: Do you ever tell people to "gopher it"?
05:59:32 <shachaf> zzo38 peyton jones
05:59:36 <zzo38> No.
06:18:36 -!- copumpkin has quit (Ping timeout: 252 seconds).
06:19:11 -!- copumpkin has joined.
06:20:23 -!- pikhq has quit (Ping timeout: 252 seconds).
06:20:28 -!- pikhq_ has joined.
06:42:52 -!- pikhq has joined.
06:43:40 -!- pikhq_ has quit (Ping timeout: 272 seconds).
06:50:27 <shachaf> monqy: elliott is "holding me hostage"
06:50:32 <monqy> i've heard
06:50:44 <monqy> something about fake category theory
06:50:54 <monqy> “why not try the real thing„
06:51:22 <shachaf> because "the real thing doesnt have a type checker"
06:51:26 <shachaf> also "elliott hates maths'
06:51:44 <oerjan> shocking
06:52:20 <monqy> um agda has a type checker
06:52:45 <shachaf> agda isnt" the real thing monqy"
06:52:56 <monqy> :0
06:52:59 <shachaf> also i suggested agda and he said no
06:53:05 <monqy> you write the real thing in agda
06:53:09 <monqy> “duh„
06:53:11 <shachaf> also does agda have gobby mode
06:55:04 <monqy> good question
07:31:49 -!- Halite has joined.
07:41:00 <Halite> I lost the source for NAND++'s interpreter :c
07:41:30 <oerjan> oops
07:57:12 -!- oklofok has joined.
08:02:00 -!- oerjan has quit (Quit: leaving).
08:12:12 -!- azaq23 has joined.
08:12:22 -!- azaq23 has quit (Max SendQ exceeded).
08:17:24 -!- DHeadshot has quit (Ping timeout: 272 seconds).
08:27:38 -!- Halite has quit (Remote host closed the connection).
08:45:38 -!- sebbu2 has joined.
08:45:53 -!- sebbu2 has quit (Changing host).
08:45:53 -!- sebbu2 has joined.
08:46:33 -!- sebbu has quit (Ping timeout: 272 seconds).
08:58:25 -!- quintopia has quit (Ping timeout: 246 seconds).
08:58:46 -!- quintopia has joined.
09:13:22 -!- epicmonkey has joined.
09:44:06 -!- sebbu2 has changed nick to sebbu.
09:47:09 <zzo38> A variant of UTF-18 could be made to allow surrogates to be used to encode code points which are out of range of UTF-18. (The ordinary UTF-16 surrogates would be used.)
09:48:40 <zzo38> What they call UTF-9 should be called VLQ-9 since it is actually VLQ and not UTF.
09:50:23 <zzo38> (Like UTF-8, it can be generalized to encode any numbers; it doesn't have to be Unicode at all.)
09:59:29 <fizzie> If it's an encoding for Unicode codepoints, it's a UTF, no matter how it can be generalized. (Of course they could have a name such as VLQ-9 for the encoding in general, and then specify UTF-9 as simply using it.)
09:59:35 -!- monqy has quit (Quit: hello).
10:04:48 -!- DHeadshot has joined.
10:13:18 -!- Nisstyre_ has joined.
10:14:47 -!- Nisstyre has quit (Ping timeout: 240 seconds).
10:23:25 -!- DHeadshot has quit (Ping timeout: 260 seconds).
10:30:52 <zzo38> I should make the program to print out the file of Internet Quiz Engine to fill out the quiz on paper.
10:31:53 <zzo38> First I should fix the analysis program.
10:33:54 <zzo38> On the C2 wiki I found that Visual Basic 9 has command like: Dim query = From token In tokens Group By token Into Count()
10:45:27 <Deewiant> That's the release where they added LINQ, I think.
10:57:39 -!- carado has joined.
10:59:56 -!- oklofok has quit (Ping timeout: 255 seconds).
11:17:27 -!- Phantom_Hoover has joined.
11:28:02 -!- nooodl_ has joined.
11:29:52 <elliott> `WELCOME nooodl_
11:29:57 <HackEgo> NOOODL_: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.)
11:32:07 <nooodl_> thanks
11:32:13 <nooodl_> `THANK elliott
11:32:15 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: THANK: not found
11:33:10 <shachaf> hi nooodl_
11:35:34 <zzo38> Do you like "worse-is-better"?
11:35:59 <nooodl_> hi shachaf
11:43:14 -!- nooodl_ has quit (Ping timeout: 272 seconds).
12:36:34 <fizzie> http://sprunge.us/OaVJ "The problem is, the Wotan German AI holds the manifest destiny of becoming so smart in the future that humans will not so much "use" Wotan as co-operate with Him or even be subservient to Him."
12:36:41 <fizzie> (comp.lang.forth strikes again.)
12:46:33 -!- TeruFSX has joined.
13:24:14 -!- boily has joined.
13:27:43 <Phantom_Hoover> all hail wotan
13:27:46 <Phantom_Hoover> god of the electron
13:28:13 * boily checks his calendar. hm. not Friday yet.
13:28:43 <boily> could someone here be amiable enough to please explain the link between a subatomic particle and a norse god?
13:29:16 <boily> (and if anyone points that electrons are probabilistic waves, I'll get quantic on their puny meatbody.)
13:33:12 -!- Taneb has joined.
13:33:24 -!- impomatic has quit (Quit: Core War - the ultimate programming game http://corewar.co.uk).
13:33:47 -!- TeruFSX has quit (Ping timeout: 252 seconds).
13:40:54 -!- ssue has quit (Ping timeout: 264 seconds).
13:41:13 -!- ssue has joined.
13:43:51 <Phantom_Hoover> note to self: don't read reddit threads on the dorner siege
13:53:09 -!- Taneb has quit (Quit: Page closed).
13:56:26 -!- cuttlefish has joined.
14:02:38 -!- ogrom has joined.
14:25:21 -!- Taneb has joined.
14:37:27 <FreeFull> http://www.chrisseaton.com/katahdin/
14:46:32 -!- ais523 has joined.
14:46:46 <ais523> @messages?
14:46:46 <lambdabot> Sorry, no messages today.
14:48:34 <Taneb> Oh no!
14:49:16 -!- Taneb has quit (Quit: Leaving).
15:03:12 -!- Gregor has quit (Ping timeout: 264 seconds).
15:03:19 -!- Gregor has joined.
15:03:44 -!- Gregor has changed nick to Guest92969.
15:04:08 -!- Guest92969 has changed nick to Gregor.
15:07:19 -!- Taneb has joined.
15:07:22 <fizzie> Is that a different message than the usual, or does it just have multiple, or do I just misremember?
15:07:25 <fizzie> @massages?
15:07:26 <lambdabot> Sorry, no messages today.
15:07:27 <fizzie> @massages?
15:07:27 <lambdabot> Sorry, no messages today.
15:07:31 <fizzie> Seems pretty fixed.
15:07:40 <fizzie> Maybe it's the usual and people just rarely use the ? form.
15:08:07 <ais523> @help messages
15:08:07 <lambdabot> messages. Check your messages.
15:08:11 <ais523> @help messages?
15:08:11 <lambdabot> messages?. Tells you whether you have any messages
15:08:38 <Taneb> @help messages?
15:08:38 <lambdabot> messages?. Tells you whether you have any messages
15:21:00 <FreeFull> I wonder if I'll ever make use of the ST monad
15:26:24 -!- DHeadshot has joined.
15:31:32 -!- impomatic has joined.
15:37:07 -!- ogrom has quit (Quit: Left).
15:41:32 <zzo38> You have said about materialism is "everything is physics", but what is it called "everything is mathematics"?
15:42:02 <Slereah_> Mathematical realism or something
15:42:45 <Slereah_> Possibly Pythagorianism, but that one has a mystic vibe to it
15:42:54 <Taneb> Pythagorianism is weird
15:43:56 <FreeFull> Mathematics isn't restricted to describing reality though
15:44:10 <FreeFull> It describes things that aren't real just as well
15:44:28 <Phantom_Hoover> i'm cool with the whole "even numbers are female" or whatever thing they had
15:44:33 -!- Arc_Koen has joined.
15:45:03 <Slereah_> Which one is the sexiest?
15:45:14 <Taneb> I thought that was the Chinese
15:45:40 <FreeFull> I like 24
15:45:48 <Taneb> I prefer 28
15:47:08 <Phantom_Hoover> 169
15:47:15 <Slereah_> Not even!
15:47:16 <Phantom_Hoover> or was it 163
15:47:31 <Phantom_Hoover> yeah, 163
15:47:36 <Taneb> Slereah_, I think you're making too many assumptions about Phantom_Hoover
15:47:37 <Phantom_Hoover> 163 is a sexy beast
15:47:43 <Slereah_> Gayyy
15:47:53 <Taneb> Nothing wrong with that
15:47:59 <Phantom_Hoover> hey who said i agreed with the pythagorean assignment of genders to numbers
15:47:59 <Slereah_> Also what are fractions then
15:49:00 <Taneb> Who knows
15:49:04 <Phantom_Hoover> well, you have one number on top and the other on the bottom
15:49:07 <Phantom_Hoover> you work it out
15:49:37 <Slereah_> But how to determine if they're even or odd?
15:49:41 <Slereah_> Since 1/1 = 2/2
15:50:00 <Slereah_> Also what is division by zero
15:50:13 <Slereah_> Zero is the loneliest number
15:53:14 <Phantom_Hoover> you can generalise the idea of factorisation to Q but i don't know precisely how
15:53:54 <Phantom_Hoover> on further reading, all noninteger fractions are odd
15:59:32 <Taneb> I'm becoming increasingly annoyed at the admissions team of the maths department at Birmingham university
16:00:46 <ais523> Taneb: I suspect they're badly organized
16:00:58 <Taneb> And won't answer the phone!
16:01:00 <Taneb> :(
16:01:19 <Taneb> And their phone number is similar to a blood collection service!
16:01:23 <Taneb> :( :(
16:01:36 <ais523> there are definitely times of day when the phone wouldn't be answered
16:01:42 <ais523> it depends on if any of the secretaries are in or not
16:01:53 <ais523> email tends to be more reliable (this does not equal "reliable", though)
16:06:21 <Phantom_Hoover> Taneb, so is this one of those hilarious mishap things where it turns out you've actually sold all your blood
16:06:43 <Taneb> Phantom_Hoover, knowing my luck...
16:07:17 <ais523> Phantom_Hoover: I don't think it works like that
16:07:37 -!- Halite has joined.
16:08:06 <Phantom_Hoover> (are they asking for an interview or something?)
16:08:30 <Taneb> (applicant visitor day)
16:08:34 <Halite> There should be an easy programming language creator to end the BF era.
16:08:39 <Taneb> (I need to register for it and their website sucks)
16:09:10 <Taneb> Halite, do you mean an "(easy programming language) creator" or an "easy (programming language) creator"
16:09:17 <Phantom_Hoover> well there's already an easy bf derivative creator, it's called tr
16:09:22 <Taneb> Because both suck
16:09:38 <ais523> Taneb: I think the idea would be to divert people who are going to make sucky esolangs
16:09:47 <ais523> into making sucky esolangs that aren't BF derivatives, but are just as sucky
16:10:07 <Halite> Taneb, an easy (programming language) creator, not to make easy programming languages but to make programming languages easily
16:10:11 <ais523> like, say, LOLCODE
16:10:20 <ais523> which instead of being a boring keyword substitution on BF
16:10:29 <ais523> is a boring keyword substitution on C-like imperative languages
16:10:50 <Phantom_Hoover> i wouldn't describe it that way
16:10:53 <Halite> ais523, I want to make a programming language with new syntax
16:11:00 <Phantom_Hoover> it's a naff scripting language with a crappy joke for syntax
16:11:14 <Slereah_> Phantom_Hoover your british is showing
16:11:30 <Halite> instead of JS var x = 2, do set x to 2
16:11:43 <Phantom_Hoover> oh no! hang on i'll cover it up
16:11:53 <Slereah_> Zip up!
16:12:01 <Halite> Phantom_Hoover, you're British, aren't you
16:12:04 <Taneb> Sounds like COBOL
16:12:12 <Phantom_Hoover> i'm SCOTTISH
16:12:20 <Halite> Phantom_Hoover, laise
16:12:38 <ais523> scottish is a subset of british
16:12:40 <Slereah_> http://www.youtube.com/watch?v=hp4mENrAnq4
16:12:53 <Phantom_Hoover> ais523, only to people who know what british means
16:12:57 <Halite> Taneb, but COBOL is a rarer programming language for today
16:12:58 <ais523> Phantom_Hoover: well, yes
16:13:11 <ais523> but I know the british/english distinction, and frequently correct foreigners on it
16:14:00 <Halite> I'm not a foreigner
16:14:07 <Taneb> @time Halite
16:14:07 <lambdabot> Local time for Halite is Wed Feb 13 16:14:05
16:14:11 <Taneb> Oh no
16:14:12 <Slereah_> You're a foreigner to me!
16:14:17 <Slereah_> We're all someone's foreigner
16:14:20 <Taneb> We haven't asked him the question
16:14:29 <Taneb> Halite, do you live in Hexham
16:14:41 <Halite> Taneb, uh no
16:14:44 <Taneb> Okay
16:14:46 <Taneb> Thank god
16:14:53 <Phantom_Hoover> are you finnish
16:15:02 <Halite> Phantom_Hoover, no
16:15:13 <Halite> @finger Taneb
16:15:13 <lambdabot> Unknown command, try @list
16:15:23 <Halite> @version Taneb
16:15:23 <lambdabot> lambdabot 4.2.2.1
16:15:23 <lambdabot> darcs get http://code.haskell.org/lambdabot
16:15:23 <Taneb> Please don't finger me.
16:15:44 <Halite> I'll stick my finger in your client as much as I want, thank you Taneb .
16:15:55 <Taneb> That's probably rape.
16:15:59 <Phantom_Hoover> are you, as is apparently the fashion nowadays, either in or planning to be in the west midlands
16:16:03 <Halite> @ctcp finger Taneb
16:16:03 <lambdabot> Unknown command, try @list
16:16:12 <Halite> Phantom_Hoover, YES
16:16:14 <Taneb> You're using the wrong command char
16:16:17 <Phantom_Hoover> oh fuck
16:16:18 <Taneb> Use / rather than @
16:16:30 <Taneb> Phantom_Hoover, this is bad
16:16:38 <Halite> Taneb, I'm trying to get lambdabot to respond
16:16:49 <ais523> huh, Halite is indeed apparently in UTC+0
16:16:53 <Phantom_Hoover> Taneb, when are you going to birmingham anyway
16:17:06 <ais523> Phantom_Hoover: the applicant visit days are already happening right now
16:17:12 <Taneb> Phantom_Hoover, most like the 20th
16:17:20 <Halite> duh
16:17:29 <Phantom_Hoover> ais523, just don't look behind you
16:17:29 <Halite> Britain is UTC+0
16:17:38 <ais523> Phantom_Hoover: wall, etc.
16:17:39 <Halite> Phantom_Hoover, is British.
16:17:42 <Halite> @time Phantom_Hoover
16:17:43 <lambdabot> Local time for Phantom_Hoover is Wed Feb 13 16:17:09
16:17:48 <ais523> Halite: yeah, I was doing it as a quick test of whether you were likely to be in the UK or not
16:17:56 <Halite> I'm right, Phantom_Hoover is 16:17 too.
16:17:57 <Phantom_Hoover> ais523, black holes, geodesics, all that
16:18:07 <ais523> it's not 100% conclusive either way (the timezone might be set wrong, and the UK isn't the only country in UTC+0)
16:18:14 <ais523> but it's a start
16:18:17 <Halite> ais523, yes
16:18:26 <Halite> Phantom_Hoover, do you live in Hexham
16:18:31 <Phantom_Hoover> no
16:18:38 <Phantom_Hoover> i am in the west midlands though
16:18:44 <Halite> Phantom_Hoover, NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
16:18:51 <ais523> Phantom_Hoover: so the weather here is actually /better/ than you're used to?
16:19:04 <Phantom_Hoover> well there's certainly more snow
16:19:16 <Halite> duh
16:19:25 <Taneb> Two people in this channel live in Hexham, three (including Halite) live in the West Midlands, and about 9 live in Finland
16:19:45 <Phantom_Hoover> `? finland
16:19:45 <ais523> I didn't think Phantom_Hoover /lived/ in the West Midlands, just that he happened to be here at the moment
16:19:46 <HackEgo> Finland is a European country. There are two people in Finland, and at least nine of them are in this channel. Corun drives the bus.
16:19:54 <ais523> `? west midlands
16:19:56 <HackEgo> west midlands? ¯\(°_o)/¯
16:19:57 <Taneb> ais523, he lives there in termtime
16:20:01 <ais523> aha
16:20:23 <Halite> @time ais
16:20:35 <ais523> Halite: that command fails in at least two ways
16:20:42 <Halite> @time ais523
16:20:43 <lambdabot> Local time for ais523 is Wed Feb 13 16:20:42 2013
16:20:50 <Halite> ais523, are you British too
16:20:53 <ais523> yes
16:21:01 <ais523> unlike Phantom_Hoover, I am actually also English
16:21:13 <Taneb> `run echo "Nobody knows anything about the West Midlands, and it has claimed the lives of at least two former regulars in this channel who tried to investigate so for" > wisdom/west\_midlands
16:21:17 <HackEgo> No output.
16:21:22 <Taneb> `?west midlands
16:21:23 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ?west: not found
16:21:26 <Taneb> `? west midlands
16:21:28 <HackEgo> west midlands? ¯\(°_o)/¯
16:21:35 <Taneb> `run echo "Nobody knows anything about the West Midlands, and it has claimed the lives of at least two former regulars in this channel who tried to investigate so for" > wisdom/west\ midlands
16:21:38 <HackEgo> No output.
16:21:40 <Taneb> `? west midlands
16:21:42 <HackEgo> Nobody knows anything about the West Midlands, and it has claimed the lives of at least two former regulars in this channel who tried to investigate so for
16:21:47 <ais523> `rm wisdom/west_midlands
16:21:50 <Taneb> `run echo "Nobody knows anything about the West Midlands, and it has claimed the lives of at least two former regulars in this channel who tried to investigate so far." > wisdom/west\ midlands
16:21:50 <HackEgo> No output.
16:21:51 <Halite> `WELCOME CHICKEN
16:21:54 <HackEgo> No output.
16:21:57 <HackEgo> CHICKEN: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.)
16:22:21 <Halite> err
16:22:25 <Halite> `rm error
16:22:26 <HackEgo> rm: cannot remove `error': No such file or directory
16:22:28 <Halite> `run error
16:22:29 <HackEgo> bash: error: command not found
16:22:46 <Halite> `run throw "I was thrown by Halite!"
16:22:48 <HackEgo> bash: throw: command not found
16:22:55 <Halite> `run help
16:22:57 <HackEgo> GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu) \ These shell commands are defined internally. Type `help' to see this list. \ Type `help name' to find out more about the function `name'. \ Use `info bash' to find out more about the shell in general. \ Use `man -k' or `info' to find out more about commands not in this list. \ \ A star (*
16:23:00 <ais523> what are you trying to do?
16:23:11 <Halite> `info
16:23:12 <HackEgo> info: Writing node (dir)Top... \ info: Done. \ File: dir,Node: TopThis is the top of the INFO tree \ \ This (the Directory node) gives a menu of major topics. \ Typing "q" exits, "?" lists all Info commands, "d" returns here, \ "h" gives a primer for first-timers, \ "mEmacs<Return>" visits the Emacs manual, etc. \ \ In Emacs, you can
16:23:19 <Halite> trying to make the bot throw an error
16:23:19 <Taneb> `help
16:23:19 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:23:37 <Taneb> I made the bot crash the other day and I have no idea how
16:23:51 <Halite> does anyone think...
16:23:57 <Taneb> Yes
16:24:03 <Halite> someone do `rm -rf /
16:24:04 <Taneb> Some people do indeed think
16:24:08 <Gregor> `run rm -rf /*
16:24:18 <Halite> `rm -rf /
16:24:28 <Gregor> That won't work, it's interpreted as rm "-rf /"
16:24:50 <Halite> `eval rm -rf /
16:24:53 <Halite> `help
16:24:53 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:24:57 <Halite> `help eval
16:24:57 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:25:01 <Halite> `info
16:25:09 <Halite> `run help
16:25:22 <Gregor> `help is a special command. `run <foo> does bash -c '<foo>'
16:25:34 <HackEgo> rm: cannot remove `/bin/bash': Read-only file system \ rm: cannot remove `/bin/rbash': Read-only file system \ rm: cannot remove `/bin/sh': Read-only file system \ rm: cannot remove `/bin/ln': Read-only file system \ rm: cannot remove `/bin/uname': Read-only file system \ rm: cannot remove `/bin/stty': Read-only file system \ rm: cannot remove `/bi
16:25:38 <Gregor> Unfortunately, although my rm -rf / won't do anything, it'll take some time to not do anything ;)
16:25:38 <Gregor> See.
16:25:55 <Halite> `rm -rf /*
16:25:57 <HackEgo> rm: invalid option -- ' ' \ Try `rm --help' for more information.
16:25:58 <HackEgo> rm: invalid option -- ' ' \ Try `rm --help' for more information.
16:25:58 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: eval: not found
16:25:58 <HackEgo> info: Writing node (dir)Top... \ info: Done. \ File: dir,Node: TopThis is the top of the INFO tree \ \ This (the Directory node) gives a menu of major topics. \ Typing "q" exits, "?" lists all Info commands, "d" returns here, \ "h" gives a primer for first-timers, \ "mEmacs<Return>" visits the Emacs manual, etc. \ \ In Emacs, you can
16:25:58 <HackEgo> GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu) \ These shell commands are defined internally. Type `help' to see this list. \ Type `help name' to find out more about the function `name'. \ Use `info bash' to find out more about the shell in general. \ Use `man -k' or `info' to find out more about commands not in this list. \ \ A star (*
16:26:13 <Gregor> (That was all the output from everything run in the interim)
16:26:26 <Gregor> And again, `rm -rf /* is interpreted as rm "-rf /*"
16:26:27 <Halite> `rm --help
16:26:28 <HackEgo> Usage: rm [OPTION]... FILE... \ Remove (unlink) the FILE(s). \ \ -f, --force ignore nonexistent files, never prompt \ -i prompt before every removal \ -I prompt once before removing more than three files, or \ when removing recursively. Less intrusive than -i, \
16:26:28 <Gregor> That's not useful.
16:26:30 <Gregor> You want `run.
16:26:45 <Halite> `run rm -f /*
16:26:47 <HackEgo> rm: cannot remove `/bin': Is a directory \ rm: cannot remove `/dev': Is a directory \ rm: cannot remove `/etc': Is a directory \ rm: cannot remove `/hackenv': Is a directory \ rm: cannot remove `/home': Is a directory \ rm: cannot remove `/lib': Is a directory \ rm: cannot remove `/lib64': Is a directory \ rm: cannot remove `/opt': Is a directory \
16:27:02 <Halite> lol it can't remove because it's a directory
16:27:08 <Gregor> You didn't use -r
16:27:10 <Halite> `run rm -rf /*
16:27:24 <Gregor> Now that'll take another minute to fail, just like mine X-D
16:27:44 <Halite> >:D
16:27:53 <Halite> it deleting all the directories
16:28:00 <Halite> `run shutdown
16:28:14 <Halite> `run shutdown --help
16:28:28 <Halite> it's shutting down bot
16:28:30 <Gregor> Why does everybody first try things that would only work if they were running as root X_X
16:28:34 <Gregor> People are really stupid.
16:28:34 <HackEgo> rm: cannot remove `/bin/bash': Read-only file system \ rm: cannot remove `/bin/rbash': Read-only file system \ rm: cannot remove `/bin/sh': Read-only file system \ rm: cannot remove `/bin/ln': Read-only file system \ rm: cannot remove `/bin/uname': Read-only file system \ rm: cannot remove `/bin/stty': Read-only file system \ rm: cannot remove `/bi
16:28:42 <Gregor> `echo OH LOOK I'M NOT SHUT DOWN
16:28:47 <HackEgo> bash: shutdown: command not found
16:28:47 <HackEgo> OH LOOK I'M NOT SHUT DOWN
16:28:49 <HackEgo> bash: shutdown: command not found
16:29:00 <Halite> `shutdown -f
16:29:01 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: shutdown: not found
16:29:18 <Gregor> Adding -f will not magically make the shutdown command be in $PATH.
16:29:30 <Taneb> Gregor, I think when I was unleashed on HackEgo, I tried to make it botloop
16:29:48 <Taneb> Which if it could be done at all probably could be done without root
16:30:04 <Gregor> Taneb: OK, then you get an exemption from the "People are really stupid" statement. *stamp*
16:30:08 <Halite> `run help
16:30:10 <HackEgo> GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu) \ These shell commands are defined internally. Type `help' to see this list. \ Type `help name' to find out more about the function `name'. \ Use `info bash' to find out more about the shell in general. \ Use `man -k' or `info' to find out more about commands not in this list. \ \ A star (*
16:30:21 <Taneb> Yay
16:30:37 <Halite> `run info
16:30:38 <Gregor> Y'know, you're free to fail to hack HackEgo in #hackbot . Less... interrupty there.
16:30:38 <HackEgo> info: Writing node (dir)Top... \ info: Done. \ File: dir,Node: TopThis is the top of the INFO tree \ \ This (the Directory node) gives a menu of major topics. \ Typing "q" exits, "?" lists all Info commands, "d" returns here, \ "h" gives a primer for first-timers, \ "mEmacs<Return>" visits the Emacs manual, etc. \ \ In Emacs, you can
16:32:16 <Phantom_Hoover> didn't lymia or someone actually successfully break it
16:33:02 <Gregor> It's been DoSed—heck, it was DoSed two minutes ago—but otherwise, no.
16:33:09 <Gregor> Lymia made the least stupid attempt.
16:33:22 <Gregor> Honestly I'm not even sure why I didn't work.
16:33:32 <Phantom_Hoover> what was it
16:33:34 <Gregor> Err
16:33:35 <Gregor> *it
16:33:46 <Gregor> It was a rootkit for a bug in the kernel version I was using.
16:33:56 * boily is devising a new esolang
16:34:04 <Gregor> Phantom_Hoover: It would've only escalated to the hosting user, but that's more than nothing.
16:34:09 <Gregor> boily: YAY ON-TOPIC WOOOH tell us
16:34:12 <boily> the usual cat: « =0,1.12./.2.7./.3.6-/.4./.5./.1./.9,10.11+/.6.8./.9./.15./.13,/.13+/.12.0, »
16:34:20 <boily> (without the guillemets)
16:34:28 <Phantom_Hoover> (also didn't someone successfully ruin it for everyone by whining to the network staff)
16:34:29 <Halite> If I document my idea for an esolang, can you build an interpreter for it
16:34:35 <ais523> Gregor: yeah, botloops were my first idea too
16:34:35 <Gregor> Looks ALGEBRAIC
16:34:45 <ais523> strangely, I don't think I've actually ever tried to break HackEgo's sandbox
16:34:55 <ais523> I just decided there wouldn't be much reason in doing so, I guess
16:35:01 <Gregor> Phantom_Hoover: Yeah, but that wasn't a security issue, it just let you say anything, including \x01LOL CTCP SPAM DERP\x01
16:35:09 <ais523> I enjoy learning about its security features, but not for that reason
16:35:39 <Phantom_Hoover> my first experience with HackEgo was trying to run something that exceeded the line lengths and failing miserably
16:35:41 <boily> Gregor: maybe.
16:36:08 <ais523> I think it's something of a rite of passage for bots in this passage, that someone tries to make a botloop with them
16:36:14 <ais523> (and unless they're really boring bots, succeeds)
16:36:24 <boily> (neat! I remembered my password!)
16:36:32 <Halite> `run logout
16:36:33 <HackEgo> bash: line 0: logout: not login shell: use `exit'
16:36:40 <Halite> `exit
16:36:41 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: exit: not found
16:36:45 <Halite> `run exit
16:36:46 <HackEgo> No output.
16:36:50 <Phantom_Hoover> gj halite
16:36:54 <Halite> lol it exit
16:37:07 <Phantom_Hoover> you have ingeniously hacked HackEgo into halting execution of your command
16:37:19 <Halite> it exit the command
16:37:19 <Gregor> <Phantom_Hoover> you have ingeniously hacked HackEgo into halting execution of your command // lul
16:37:23 <Halite> lul
16:37:28 <Halite> `run login
16:37:30 <HackEgo> login: Cannot possibly work without effective root
16:37:40 <Phantom_Hoover> see Halite
16:37:44 <Phantom_Hoover> even HackEgo is getting sick of this
16:37:49 <ais523> haha, I didn't know login had a sensible error message for that
16:38:06 <ais523> I guess you'd have a better (but still zero) chance with getty
16:38:09 <ais523> `run getty
16:38:11 <HackEgo> bash: getty: command not found
16:38:16 <ais523> hmm
16:38:28 <ais523> `run init
16:38:30 <HackEgo> bash: init: command not found
16:38:33 <ais523> `run /sbin/init
16:38:34 <HackEgo> init: must be superuser.
16:38:43 <ais523> I wasn't expecting that to work
16:38:47 <Taneb> `run echo "shut up this is boring"
16:38:48 <ais523> but I was interesting in how init would react
16:38:49 <HackEgo> shut up this is boring
16:38:50 <ais523> *interested
16:38:55 <Taneb> `run echo "talk about esolangs"
16:38:56 <Halite> `run rm -rf /home/hackbot/hackbot.hg/multibot_cmds/lib/*
16:38:56 <HackEgo> talk about esolangs
16:38:57 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/lib/fetch': Read-only file system \ rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/lib/limits': Read-only file system \ rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/lib/revert': Read-only file system \ rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/lib/sand
16:39:10 <Halite> :o
16:39:21 <ais523> hmm, does that imply there were things there that it /did/ remove?
16:39:26 <ais523> `help
16:39:26 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:39:30 <Phantom_Hoover> Halite, if you're interested in learning how to write interpreters, the standard first language to target is eodermdrome
16:39:30 <Gregor> ais523: In this case, no.
16:39:34 <zzo38> I can propose a feature of AWK, to allow any regular expression match with ~ (or implied) to expose the matches of full and parenthesized parts, by \0 and \1 and so on so that you can write /A([A-Z])Z/ { print \1 }
16:39:40 <ais523> apparently there weren't
16:39:43 <ais523> but I had to check
16:39:47 <ais523> Phantom_Hoover: :)
16:40:05 <ais523> zzo38: doesn't Perl do that already, though?
16:40:13 <Halite> `run quit
16:40:14 <HackEgo> bash: quit: command not found
16:40:17 <Halite> `run exit
16:40:18 <HackEgo> No output.
16:40:23 <Halite> `run exit -f
16:40:24 <ais523> also sed does that already, too (although it uses & not \0)
16:40:24 <Slereah_> Phantom_Hoover
16:40:24 <HackEgo> bash: line 0: exit: -f: numeric argument required
16:40:28 <Slereah_> Are you a president ghost
16:40:28 <Halite> `run exit 1
16:40:30 <HackEgo> No output.
16:40:31 <Gregor> Halite: Please, take it to #hackbot
16:40:34 <ais523> Halite: at this point, I'd suggest doing it in a different channel
16:40:38 <ais523> it's getting pretty spammy
16:40:39 <boily> just created Zucchini on the wiki.
16:40:41 <Phantom_Hoover> Slereah_, no i'm the ghost of a hoover
16:40:48 <Phantom_Hoover> also i'm a gay vampire but that's secondary
16:40:52 <Slereah_> The vacuum?
16:41:00 <Phantom_Hoover> yes the vacuum
16:41:01 <zzo38> ais523: I don't know, maybe it does, and AWK does it too inside of the replacement texts but not outside.
16:41:16 <Slereah_> As long as you're not Taft's ghosts
16:41:22 <ais523> Gregor: btw, the hackbot filesystem history seems to be overescaping apostrophes
16:41:30 <ais523> zzo38: oh, outside
16:41:35 <ais523> sed doesn't do it outside, but Perl does
16:41:44 <ais523> except they're called $&, $1, $2, $3, and so on, in Perl
16:41:47 <Slereah_> The Stay Puft marshmallow man was Taft's ghost
16:41:49 <ais523> because \1 means something else
16:42:20 <zzo38> In AWK $1 means something else
16:42:25 <Gregor> ais523: I didn't try especially hard to make it work properly. It's surprisingly difficult to get it to work when there can be Unicode and such *bleh*
16:42:43 <ais523> fair enough
16:42:54 <ais523> normally seeing \' rather than ' is a sign of a broken PHP installation, though
16:43:41 <ais523> oh, no
16:43:47 <ais523> in this case, it appears to be doing some sort of repr() on the strings
16:43:56 <ais523> not sure in which language, although it uses C-like escape synax
16:43:58 <ais523> *syntax
16:44:04 <coppro> s/normally.* '/PHP/
16:44:15 <Gregor> Heheh, no PHP here. Yeah, it tries to escape the strings, and does a crummy job of it. It's just to squeeze it into a box, it's far from correct.
16:44:27 <Gregor> Suffice it to say that the commit messages are for reference, they're not copy-pasteable.
16:44:29 <zzo38> It is possible to work around \' in PHP though, which can work regardless of the PHP setting. This is a dumb feature of PHP (well, PHP in general is stupid) but it can work around, at least!
16:44:45 <Halite> coppro, normally PHP is a sign of a broken
16:44:51 <Gregor> zzo38: It's quite possibly the silliest “feature” of PHP X-D
16:44:56 <Gregor> Although that's quite a competition.
16:45:00 <ais523> Gregor: no, register_globals is worse
16:45:10 <ais523> by orders of magnitude
16:45:16 <zzo38> That too.
16:45:19 <Phantom_Hoover> what about that lexer optimisation
16:45:35 <Gregor> I think we can all agree that PHP is unbelievably terrible.
16:45:43 <Phantom_Hoover> yes
16:45:59 <zzo38> Yes it is. I intend one day to rewrite Icoruma in something better and faster than PHP.
16:45:59 <Taneb> It's got to be better than LOLPHP
16:46:04 <Phantom_Hoover> also Halite, Gregor, coppro and ais523 all have the same length of nick
16:46:05 <ais523> Phantom_Hoover: that's just "stupid and buggy", rather than "requires every PHP program that wants to be secure against injection attacks to be written in a really obscure style just in case someone turns the option on by mistake"
16:46:09 <Taneb> That is, LOLCODE meets PHP
16:46:39 <Jafet> PHP has great features, such as Turkish locale support!
16:47:09 <ais523> Jafet: that's an unfair criticism, pretty much every program in existence breaks on Turkish, and the ones that don't were written purely to prove it was possible
16:47:50 <ais523> although Perl finally fixed the main issue in 5.14 by inventing the "cf" keyword, although it still doesn't work, because it would need a special pragma to tell it to work in "turkish mode" that isn't implemented yet
16:49:04 <Phantom_Hoover> what's so weird about turkish
16:49:32 <Slereah_> It's all gobble gobble
16:49:44 <ais523> `? quine
16:49:46 <HackEgo> ​`? quine
16:49:52 <ais523> haha, I was just going to add that
16:50:11 <ais523> Phantom_Hoover: basically, uppercase i in Turkish still has a dot, and lowercase I doesn't have a dot
16:50:19 <ais523> i.e. dotted i and dotless I are two different letters
16:50:38 <ais523> so its casefolding is actually inconsistent with pretty much every other language in existence that contains the same letters
16:51:08 <Gregor> `echo Um... hello?
16:51:09 <HackEgo> Um... hello?
16:51:17 <Gregor> Why didn'—oh jeez I'm stupid.
16:51:26 <Gregor> I was wondering why `? quine didn't do anything X_X
16:51:33 <Gregor> I need to go put my head in a bucket of water.
16:52:03 <ais523> now I'm trying to work out if `? quine is even a cheating-quine or not
16:52:11 <ais523> I think it's the same sort of quine as HQ9+ supports
16:52:32 <ais523> but slightly more legitimate
16:52:34 <Phantom_Hoover> http://net.tutsplus.com/articles/editorials/why-2013-is-the-year-of-php/
16:52:38 <Phantom_Hoover> beautiful
16:53:29 <fizzie> http://sprunge.us/SMgZ that was confusing for a moment there.
16:53:54 <fizzie> It's a slightly #esoteric-specific quine.
16:54:46 <ais523> oh wait, is it actually checking the logs for the most recently spoken line?
16:54:56 <fizzie> Sure.
16:55:03 <ais523> `cat wisdom/quine
16:55:04 <HackEgo> ​`? quine
16:55:09 <ais523> hmm
16:55:10 <fizzie> Not that one, bin/quine.
16:55:14 <ais523> oh, `quine
16:55:17 <ais523> not `? quine
16:55:25 <ais523> `quine
16:55:27 <ais523> whee
16:55:28 <HackEgo> whee
16:55:32 <ais523> race conditions are fun
16:55:54 <ais523> this strikes me as a potential way to abuse the `list, too
16:56:25 <fizzie> It does have that problem too. It could do a tail -n 20 | grep `quine | tail -n 1 perhaps. Though then it'd fail worse.
16:56:32 <Taneb> `cat bin/list
16:56:34 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy
16:56:51 <fizzie> ais523: Didn't you-know-who-chaf already end up on `list because of that.
16:57:10 <ais523> fizzie: it was his own fault, though; he told fungot to `list, and interrupted it himself
16:57:11 <fungot> ais523: i find walking on gravel to be unpleasant and string processing is not my code ( define pi ( 4 ( 1 4 9
16:57:35 <ais523> so he might have been added via race condition, but he was responsible for causing the race condition in the first place
16:57:53 <fizzie> fungot: Those two things don't seem to have all that much with each other.
16:57:53 <fungot> fizzie: x? k?" at http://paste.lisp.org/ display/ 56631 than nothing
16:58:27 <ais523> I don't really like this style
16:58:29 <ais523> ^style
16:58:29 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
16:58:36 <ais523> ^style europarl
16:58:37 <fungot> Selected style: europarl (European Parliament speeches during approx. 1996-2006)
16:59:17 <fizzie> Maybe I should train a new europarl too, one of these days.
16:59:18 <Jafet> What is the honourable fungot's opinion on PHP?
16:59:21 <fungot> Jafet: mr president, i welcome the acceptance of harm-reduction as a basic principle, so the range of subjects. there are also big regional differences within europe. an opportunity that we must make sure that this will provide you with more than 15 years, i would like to make several comments. first of all i must say that it is apparent from article 5 the list of priorities. we all agree upon, which are also rejected. furtherm
16:59:28 <ais523> harm-reduction
16:59:35 <ais523> hmm… = banning PHP, or = making PHP less harmful?
17:00:02 <Jafet> Did a member of parliament actually welcome the acceptance of harm-reduction as a basic principle
17:00:03 <ais523> although apparently whatever they were planning, they all agreed upon it, but it was rejected anyway
17:00:08 <Halite> mmm pancake
17:00:15 <ais523> Jafet: it's possible it's a literal quote
17:00:18 <ais523> but it's funny either way
17:00:22 <Halite> I have an idea for a programming language called Pancake
17:00:28 <fizzie> "first of all i must say that it is apparent from article 5 the list of priorities. we all agree upon, which are also rejected."
17:00:31 <ais523> that was yesterday, but go on
17:01:15 <ais523> `pastequotes
17:01:20 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.16040
17:01:23 <ais523> if I don't say anything in the next hour or so, call an ambulence
17:01:25 <ais523> *ambulance
17:01:27 <fizzie> I think I've lost the preprocessed Europarl dataset, since it seems it's one of the VariKN models I trained at my work-workstation, and the local disk of that got wiped the other month.
17:01:31 <ais523> although there are friends here, so they should be able to do it for us
17:01:36 <fizzie> Oh well; it wasn't well-preprocessed anyway.
17:01:53 <ais523> reading `quotes sometimes makes me laugh so hard I have trouble breathing
17:01:58 <ais523> so normally I read subsets of it
17:02:00 <fizzie> But it does mean I can't grep as easily for direct quotes.
17:02:55 <Halite> `quotes
17:02:56 <HackEgo> 922) <ais523> you can define Feather as "Smalltalk done right" if you want to confuse people into wondering why that would involve time travel stuff and all that
17:03:07 <fizzie> Hmm, the corpora dir of the cog group has enron already downloaded. I'm a bit tempted to run it through the gauntlet.
17:03:11 <ais523> HackEgo: my link above is all of them
17:03:12 <ais523> err
17:03:14 <ais523> Halite:
17:03:15 <Halite> `quotes
17:03:16 <HackEgo> 556) <Phantom_Hoover> It's like Pygmalion and Galatea but more weeaboo. <Phantom_Hoover> Also lesbian.
17:03:17 <ais523> or you can just do `quote for a random one
17:03:30 <ais523> if you do five `quote in a row, people will start debating what the worst one is, and then delete it
17:03:34 <ais523> it's one of the ways we maintain quality
17:03:40 <Halite> `quotes
17:03:40 <Halite> `quotes
17:03:41 <HackEgo> 942) <olsner> as long as you're in company where no-one knows both, you can always say either "that's just like welsh ll" or "that's just like klingon tlh"
17:03:41 <Halite> `quotes
17:03:42 <HackEgo> 917) <shachaf> FOUR SIMULTANEOUS TYPE SYSTEMS IN A SINGLE ROTATION OF THE LAMBDA CUBE
17:03:42 <Halite> `quotes
17:03:43 <HackEgo> 946) <augur> DIE <augur> oh hey elliott
17:03:43 <Halite> `quotes
17:03:43 <HackEgo> 16) <fungot> oerjan: are you a man, if there weren't evil in this kingdom to you! you shall find bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him!
17:03:44 <HackEgo> 599) <oklopol> that's crazy, it almost seems like you have to tell the program how you want it to manipulate the data and not just give it the relevant commands in a random sequence
17:03:54 <Halite> start maintaining quality
17:04:18 <fizzie> There seems to also be a random small dataset of 15k spam emails, but I doubt anyone *really* wants a ^style spam in fungot.
17:04:19 <fungot> fizzie: mr president, as we walked along, the young, women and children, who feel under a lot of progress but with every guarantee. in this regard, at a time when the copenhagen criteria, particularly those paid by users. any infrastructure charging system, like the immigrants forum, which must be emphasised that the fishing effort are also imposed on the palestinian point of view it is undoubtedly the involvement of women in t
17:04:48 <ais523> fizzie: it might be amusing, I guess; the problem is spambots sometimes use markov chains already, so it might even make more sense than average
17:05:15 <ais523> I don't really like 16, it's not particularly up to fungot's usual quality
17:05:16 <fungot> ais523: mr president, the eu does not have a community proposal, to fulfil its main objective. i am also saying it because, at this stage.
17:05:25 <boily> started describing Zucchini. will finish it some time later, need to eat now.
17:05:47 <Halite> I don't like 946
17:05:51 <fizzie> I like 16, but it's probably just because I liked the game.
17:06:08 <fizzie> The "he's really a tricycle! pass him!" bit is a verbatim quote.
17:06:21 <ais523> that makes it worse, doesn't it?
17:06:25 <ais523> I agree that 946 isn't so good
17:07:13 <Halite> so 946 and 16 should go
17:07:47 <ais523> no you can only delete one of htem
17:07:51 <ais523> or sometimes not any
17:08:00 <ais523> also elliott isn't here which makes messing with the quotes risky
17:08:27 <Halite> not sure about 917; 599 is quite good in relevance to esolangs;
17:09:28 <ais523> Halite: oklopol actually wrote that language :)
17:10:56 <ais523> `quote 159
17:10:58 <HackEgo> 159) [spam] Any flavored hell can pee on the pig pen, but it takes a real football team to throw a slyly optimal formless void at a hole puncher.
17:11:08 <ais523> fungot: do you get spam like /that/ in your data set?
17:11:08 <fungot> ais523: mr president, to paraphrase fnord twist, i have asked to speak before the subcommittee on security and defence policy.
17:11:18 <ais523> err, fizzie:, although it works both ways
17:11:27 <ais523> if you do, it has to be added
17:11:40 <ais523> otherwise, updating the bf joust stats page would probably be a better use of the time
17:13:30 <fizzie> Well, I can certainly do that.
17:14:04 <Taneb> Would that "fnord" be "Oliver"?
17:14:10 <Taneb> fungot: oliver oliver oliver
17:14:11 <fungot> Taneb: madam president, we are waiting for us to make a few brief words about each of those amendments substantially improve the text but i am sure that, like him, although convinced of the need to renew its working methods, without which this programme, which have been issued to others by the football league not the premiership. this is the first step in the right direction.
17:17:39 <Phantom_Hoover> `cat bin/quotes
17:17:41 <HackEgo> ​#!/bin/sh \ allquotes | if [ "$1" ]; then \ if expr "$1" + 0 >/dev/null 2>&1; then \ sed "$1q;d" \ else \ grep -P -i -- "$1" \ fi \ else shuf -n 1; fi
17:18:27 <Phantom_Hoover> `quotes 7
17:18:29 <HackEgo> 7) <oerjan> what, you mean that wasn't your real name? <Warrigal> Gosh, I guess it is. I never realized that.
17:18:36 <Phantom_Hoover> `cat bin/quote
17:18:37 <HackEgo> ​#!/bin/sh \ allquotes | if [ "$1" ]; then \ if expr "$1" + 0 >/dev/null 2>&1; then \ sed "$1q;d" \ else \ grep -P -i -- "$1" \ fi \ else shuf -n 1; fi
17:18:55 <Phantom_Hoover> so... there's no difference
17:20:22 -!- copumpkin has quit (Ping timeout: 252 seconds).
17:21:00 -!- copumpkin has joined.
17:22:28 <Halite> fungot, oliver
17:22:29 <fungot> Halite: mr president, to consider the long-term solution of establishing a work programme not a legislative proposal, should problems arise in the discussion under way on reforms reforms that will be implemented. the resolution even goes so far as it continues to operate its plants safely. mrs ahern, and the rules of the game for the single currency.
17:22:35 <Halite> fungot, oliver
17:22:36 <fungot> Halite: it is scandalous, i am aware that this fish used to be about baltic sea regional cooperation. finally, madam president, in declaring my vote in favour of this. politicians cannot and may not ascribe to them the insecurity to which they improve the commission's proposal, namely consumer protection and i am in a position to strike in the charter of rights could equally be used to break a deadlock which has existed, for me
17:22:44 <Halite> fungot, oliver oliver oliver
17:22:51 <ais523> `quote 365
17:22:53 <HackEgo> 365) <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary <ais523_> so far, it has found four digits <ais523_> I hope it will find the fifth some time this week
17:22:55 <ais523> I remember that
17:23:03 <Phantom_Hoover> fungot has a limit on how mucn he'll reply to a single person for exactly this reason, btw
17:23:04 <fungot> Phantom_Hoover: mr president, mr harbour, for their contribution to establishing world peace and stability, tackle the problem. it is also a measure which would support these misplaced positions.
17:23:04 <Halite> why doesn't it know my gender
17:23:04 <ais523> it never did find the fifth, the computer crashed first
17:23:16 <ais523> so we wrote a paper about it instead
17:23:41 <Halite> omg
17:23:59 <Phantom_Hoover> `style pa
17:24:00 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: style: not found
17:24:03 <Halite> oliver
17:24:06 <Phantom_Hoover> ^style pa
17:24:06 <fungot> Selected style: pa (around 1200 transcribed Penny Arcade comics)
17:24:08 <Phantom_Hoover> (im idiot)
17:24:10 <Phantom_Hoover> fungot!
17:24:10 <Halite> fungot
17:24:10 <fungot> Phantom_Hoover: well, mine's from namco! let's see... " you are not to come within one hundred feet of our mascot, pac man." they are so overreacting.
17:24:11 <fungot> Halite: that... that sounds really nice. lil' jim. that's real fucking fantasy, there.
17:24:24 <Halite> ^style lol
17:24:24 <fungot> Not found.
17:24:27 <fizzie> fungot: Stop with the verbatim quotes there. :/
17:24:27 <fungot> fizzie: except they're probably all girls, who are just pretending to be guys. no, relax! i'm not sure what this means!"
17:24:41 <fizzie> I'll have to retrain that with different options some day.
17:24:46 <ais523> yeah, agreed
17:25:08 <ais523> xkcd would be interesting if not for the fact it wouldn't work
17:25:33 <Halite> fungot, Namco is a dictatorship
17:25:33 <fungot> Halite: yeah... but i need that insulin to live!
17:26:09 <Halite> fungot, you can get insulin without Namco
17:26:09 <fungot> Halite: the where is mommy map. i should've... should've liked the saturn!
17:26:35 <Halite> fungot, what
17:26:35 <fungot> Halite: it's tribes 2! we're... we're saved!
17:26:36 <fizzie> There's already a number of webcomics, also.
17:26:41 <ais523> indeed
17:26:45 <Halite> fungot, lolwhut
17:26:45 <fungot> Halite: extra! read all about it.
17:26:51 <Halite> fungot, no
17:26:58 <fizzie> ^style qwantz
17:26:58 <fungot> Selected style: qwantz (Dinosaur Comics transcriptions 2003-2011)
17:27:06 <Halite> ^style nintendo
17:27:06 <fungot> Not found.
17:27:09 <Halite> :c
17:27:17 <fizzie> ^style
17:27:17 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz* sms speeches ss wp youtube
17:27:17 <Halite> ^style sonic
17:27:18 <fungot> Not found.
17:27:18 <Phantom_Hoover> ^style
17:27:18 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz* sms speeches ss wp youtube
17:27:20 <fizzie> That's the full list, you know.
17:27:25 <Halite> ^style YOUTUBE
17:27:26 <fungot> Not found.
17:27:30 <Halite> ^style youtube
17:27:30 <fungot> Selected style: youtube (Some YouTube comments)
17:27:40 <Halite> ^style lovecraft
17:27:40 <fungot> Selected style: lovecraft (H. P. Lovecraft's writings)
17:27:40 <Phantom_Hoover> fungot, please stop listening to Halite
17:27:42 <fungot> Phantom_Hoover: bear in mind closely that i did not exactly relish this task, for the covered parts of the building and in the flaming violet light gilman thought he saw a dimly illumined corridor lined with worm-eaten panelling.
17:27:45 <fizzie> That's three videos or so, it's kind-of borking.
17:27:46 <fizzie> Boring.
17:27:49 <fizzie> Well, maybe borking too.
17:27:51 <Halite> fungot, listen to me
17:27:53 <fungot> Halite: the thing in the moonlight that flooded the spacious plain was a spectacle which no mortal fnord to the last calm, cold, slight, and fnord revelled clumsily here and there. the ground under one of the repugnant shantaks, helping him up as his judgement struggled with his loathing. it was not that distant whine which robbed me of my faculties and set upon my soul such a seal of fright as tangible as a draught of air whic
17:28:19 <Phantom_Hoover> a draught of air whic
17:28:35 <Halite> h blew me away into a trash landfill
17:29:11 <Halite> fungot, var fnord = oliver
17:29:11 <fungot> Halite: so instead of accepting the train he chose i telephoned the station and devised another arrangement. by rising early and taking the train at rowley after the branch was dropped but now they have fnord themselves to unknown kadath in the cold
17:29:21 <zzo38> I fixed the analysis program for Internet Quiz Engine. It still fails in cases of questions other than a plain ? due to its simplicity but should work in most cases, which will not use those features.
17:30:01 <Halite> fungot, die
17:30:02 <fungot> Halite: a reservoir of darkness, where solid and fnord forms were known only by their windy stirrings, and cloudy patterns of force seemed to fnord as though mirrored in fnord waters. i was reminded of some vaguely disquieting lines i had once called home. the old ones an fnord relationship which must have been malignly silent suddenness, the portrait of joseph curwen at last. that newspaper item and what his mother had heard i
17:30:03 <Phantom_Hoover> Halite
17:30:05 <Phantom_Hoover> all the bots
17:30:07 <Phantom_Hoover> work in /query
17:30:10 <Halite> fungot, Phantom_Hoover
17:30:10 <fungot> Halite: sometimes when earth's gods are homesick they visit in the still harbour.
17:30:14 <Halite> SOWWY
17:30:17 <Halite> OWWU
17:30:27 <ais523> I don't think thutubot works properly in /query, but I@m not sure
17:30:30 <ais523> *I'm
17:30:48 <Halite> ERR
17:31:04 <Halite> Fatal Error: /home not found
17:31:09 <Taneb> Pietbot doesn't work in /query
17:31:10 -!- Halite has quit (Quit: Fatal Error).
17:31:20 <Taneb> Then again, Pietbot doesn't work in channel
17:31:40 <zzo38> http://sprunge.us/jKMZ This is copy of the program for analysis of Internet Quiz Engine files.
17:31:46 <ais523> `ls /home
17:31:48 <HackEgo> hackbot
17:31:54 <ais523> I can find it…
17:32:21 -!- Halite has joined.
17:32:40 <zzo38> It will still consider the timers and multiple selection questions when counting how many slots it takes up, though.
17:33:18 <Halite> I want to make a programming language
17:33:27 <ais523> good idae!
17:33:31 <ais523> *idea!
17:33:37 <ais523> do you have any interesting concepts to base it on?
17:33:38 <Halite> but not a boring one
17:33:48 <Halite> well, NAND being functionally complete
17:34:07 <ais523> that's been done a few times in the past
17:34:10 <Halite> I want too make one whose only boolean operation is binary NAND
17:34:16 <Halite> possibly with NOR
17:34:28 <ais523> the problem is, that NAND-based programming languages don't lend themselves to infinite state
17:34:41 <ais523> but see, say, http://esolangs.org/wiki/Norfuck http://esolangs.org/wiki/Suffolk
17:34:59 <zzo38> If you add NAND and shifting then will it work?
17:34:59 <ais523> that should help you understand where the TCness issues come from
17:35:21 <ais523> zzo38: hmm, bitwise NAND? if you can shift both ways, it would work
17:35:25 <ais523> if you can shift only to the right, no
17:35:33 <ais523> if you can shift to the left but not right, I'm not sure
17:35:40 <ais523> and "not sure" is always a good place to be
17:35:42 <Taneb> Halite, did you see Nandypants?
17:36:02 -!- augur has quit (Remote host closed the connection).
17:37:01 <ais523> OK, let's see
17:37:29 <Halite> I don't want it to look like Brainfuck
17:37:35 <ais523> say we have an OISC, whose only command is "a = ~(b & c) << 1", where b and c can be variables or literal numbers, and everything is bignum
17:37:55 <ais523> and, hmm, some sort of flow control; probably while is enough, like in BF, perhaps we should have if and while
17:38:04 <ais523> TC, or sub-TC?
17:38:13 <Halite> btw. I have an idea. We could eliminate the need for any operation by creating a new data type called 'truth tables'
17:38:33 <ais523> well an OISC has only one operation
17:38:42 <ais523> so it eliminates the need for specific operations that way
17:38:48 <ais523> although it's not an OISC if I'm adding if and while :)
17:39:10 <ais523> I guess to make it a proper OISC, we need the instruction pointer to be a variable you can assign to
17:39:27 <Halite> I think I'll make it something like an OISC
17:40:40 <Halite> with one operation but IF, WHEN, and WHILE
17:40:51 <Halite> one boolean op*
17:42:02 <Halite> Should I call it Nandy or NAND#
17:42:17 <ais523> I wouldn't be surprised if both those names, or similar ones, were already taken
17:42:23 <ais523> so I'd suggest being more creative
17:43:01 <Halite> can you think of a name
17:43:49 <ais523> not right now, although sometimes I can
17:44:01 <ais523> normally I name it after concepts in the language itself, which requires writing the language first
17:44:13 <Halite> I'll document the language in a draft first.
17:44:21 <Halite> I won't write an interpreter yet.
17:50:03 <fizzie> Oh, speaking of fungot's fnords: there's also a technical limit in the format that restricts the vocabulary to some not-terribly-giant number (2^21 tokens, maybe? Or a total of 2^28 characters in the string table?) -- though of course that "drop OOV things" option is always possible.
17:50:03 <fungot> fizzie: just about every night on some of them do))
17:50:46 <ais523> `pastlog themselves
17:51:17 <HackEgo> No output.
17:51:24 <ais523> `pastlog themselves
17:51:38 <HackEgo> 2007-10-25.txt:17:29:14: <lament> setting up the initial conditions themselves can be represented as a program
17:51:38 <Halite> Could I make a programming language where the if condition is formatted if(operand1,operand2) { function }
17:52:10 <ais523> yes, you could
17:52:19 <ais523> I'd need more details to know whether it was a good idea or not, though
17:52:27 <fizzie> Bleh, Lingua::EN::Sentence is kinda slow. It has taken now something like 20 minutes to process about 6000 emails.
17:52:38 <Halite> `run kernelbugcheck
17:52:39 <HackEgo> bash: kernelbugcheck: command not found
17:53:15 <Halite> 'kernelbugcheck' would force a Kernel Panic
17:53:37 <Gregor> Feel free to force a kernel panic, it won't affect the bot.
17:53:50 <ais523> Gregor: is each request run with a separate kernel?
17:53:57 <Gregor> Eeyup.
17:53:58 <Halite> Gregor, why
17:54:04 <Halite> :o
17:54:06 <ais523> and is that for security reasons, or just because it was easier that way?
17:54:12 <Gregor> Yes.
17:54:29 <Halite> security probably
17:54:41 <Phantom_Hoover> How does running each request with a seperate kernel work?
17:54:43 <Phantom_Hoover> I'm curious.
17:55:01 <Gregor> Phantom_Hoover: http://bitbucket.org/GregorR/umlbox
17:55:04 <ais523> Phantom_Hoover: it's UMLbox
17:55:19 <ais523> so it's treating kernels just like any other process
17:55:19 <Phantom_Hoover> ah
17:58:06 <ais523> as opposed to weboflies, which uses the same kernel as the rest of the system, but has its own idea of time, process IDs, networking namespaces, filesystems, and init
17:58:20 <ais523> and probably a few other things too
17:58:33 <Gregor> (web o' flies)
18:00:49 <fizzie> Only three unpruned 6-grams of my enron subset: "to thank you for your patience", "not be able to determine which" and "communication i believe that the new".
18:01:20 <ais523> is that the spam, or the nonspam?
18:01:35 <fizzie> It's the enron, which I suppose shouldn't contain any spam?
18:02:04 <fizzie> I only took a few messages out of it, though. It has a bit over half a million emails.
18:02:05 <ais523> I guess
18:02:14 <ais523> I get a lot of internal spam sometimes
18:02:36 -!- sebbu has quit (Ping timeout: 272 seconds).
18:02:39 <fizzie> I suppose it depends on what "spam" means.
18:02:58 <Gregor> Is it homogenized meat product?
18:05:00 -!- iamcal_ has quit (Read error: Operation timed out).
18:05:48 <kmc> does fungot do enron?
18:05:48 <fungot> kmc: and right well and i i
18:06:09 <Phantom_Hoover> kmc, didn't you ask that less than a week ago
18:06:21 <kmc> yes and i forgot
18:06:22 <kmc> so
18:06:25 <kmc> does fungot do enron?
18:06:25 <fungot> kmc: there's a couple of hours
18:06:33 <fizzie> http://sprunge.us/fhWV well, I don't know if that's so good. (Each paragraph is a single output.)
18:06:36 <fizzie> At the very least it needs some MIME preprocessing step to get rid of the =20's. And the HTML.
18:06:47 -!- epicmonkey has quit (Ping timeout: 240 seconds).
18:07:00 <fizzie> I don't know what all that ".?" stuff is, too.
18:07:02 <ais523> Gregor: the company who makes that actually put out a press release saying that they were happy with people using "spam" to refer to unsolicited email, but wanted to reserve "SPAM" in allcaps for their homogenized meat product
18:07:12 <tswett> http://pastie.org/6154897
18:07:13 <kmc> "bentley, wear hand-tailored silk shirts and jackets if you wish you were from hizbullah, a lebanese billionaire rafik hariri"
18:07:17 <tswett> What determines which category a word falls in?
18:07:27 <Gregor> ais523: All press is good press.
18:07:29 <kmc> category theory
18:07:48 <tswett> Ah, but I have fooled you. These "categories" are actually disjoint sets.
18:08:52 <ais523> Gregor: in general, yes
18:08:56 <ais523> I think there are exceptions, though
18:09:05 <ais523> especially as a company gets larger
18:09:23 <Gregor> ASDA: Your Premier Source for Horse Meat
18:09:55 <Halite> Tesco: Every little bit of Horse Meat helps
18:10:24 <ais523> well at this point, you have to work out what's screwed up with the supply chain
18:10:24 <Halite> (that should be a quote, that should)
18:10:30 <ais523> rather than with the people who ended up with it
18:10:43 <ais523> ever since the BSE thing, Europe's tried really hard to make all meat traceable
18:10:49 <Halite> what is screwed up with the supply chain is that suppliers are labeling Horse Meat as Beef
18:10:51 <ais523> so this is quite embarrassing for the meat inspector people
18:11:02 <ais523> Halite: well yes, obviously
18:11:12 <ais523> but there are many suppliers in the chain, so you want to find out which ones are responsible
18:11:15 <kmc> each request to HackEgo basically boots up a separate Linux machine, runs the command, and then merges the filesystem changes using Mercurial
18:11:18 <kmc> it's the best
18:11:21 <ais523> also, why are you initcapitalizing "Horse Meat"?
18:11:32 -!- sivoais has quit (Quit: leaving).
18:11:46 <Gregor> kmc: Actually it never has to merge anymore, it sequentializes writing requests.
18:12:00 <Halite> `run login --help
18:12:01 <HackEgo> login: Cannot possibly work without effective root
18:12:31 <ais523> `man gcc
18:12:33 -!- sivoais has joined.
18:12:33 <HackEgo> man: can't open the manpath configuration file /etc/manpath.config
18:13:06 <kmc> Gregor: oh that's too bad
18:13:10 <Gregor> Heh, it's got a pretty restrictive /etc X-D
18:13:16 <kmc> !!!Horse Meat
18:13:29 <Gregor> `welcome sivoais
18:13:31 <ais523> I don't think EgoBot has a !!Horse command
18:13:31 <HackEgo> sivoais: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:13:34 <ais523> Gregor: we've done that already
18:13:43 <Gregor> ais523: Well piffle to you too then!
18:13:55 <ais523> Gregor: well elliott told me off for doing it when /I/ did it
18:14:01 * ais523 hopes sivoais feels properly welcomed, at least
18:14:09 <Gregor> lul
18:14:26 <oklopol> `welcome Gregor
18:14:28 <HackEgo> Gregor: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:15:36 <Gregor> That reminds me, I've been once again thinking about how HackEgo could reasonably be made to trigger on other situations, such as channel-join. For a while I was thinking that so long as any particular trigger fires only once, that would be OK, but in retrospect, that's useless in both dimensions (it doesn't restrict spam enough, and doesn't actually accomplish anything).
18:17:06 <Halite> `run exit
18:17:08 <HackEgo> No output.
18:17:18 <Halite> `run echo "No output."
18:17:19 <HackEgo> No output.
18:17:28 <Halite> `run echo "Yes output."
18:17:30 <HackEgo> Yes output.
18:18:43 -!- augur has joined.
18:18:55 <Halite> `run echo "Gregor: Welcome to the international hub for esoteric programming language design and deployment! For more information, check our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)"
18:18:56 <HackEgo> Gregor: Welcome to the international hub for esoteric programming language design and deployment! For more information, check our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:19:14 <Halite> `run echo "Welcome to the international hub for esoteric programming language design and deployment! For more information, check our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)"
18:19:16 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:19:25 <Halite> `Welcome augur.
18:19:26 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Welcome: not found
18:19:28 <Gregor> Yes, your ability to make the bot do things is downright masterful.
18:19:30 <Halite> `Welcome augur
18:19:31 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Welcome: not found
18:19:38 <Halite> `welcome augur
18:19:40 <HackEgo> augur: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:19:47 <Halite> `WELCOME CHICKENS
18:19:49 <HackEgo> CHICKENS: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.)
18:20:35 <augur> i hate you so much
18:21:35 -!- sebbu has joined.
18:23:38 <Halite> everybody hates me
18:24:43 <Gregor> Maybe that's because you're botspamming.
18:25:00 <kmc> `Waugur
18:25:02 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Waugur: not found
18:26:48 <fizzie> Wauguries of Innocence.
18:28:02 -!- ogrom has joined.
18:28:35 <fizzie> How surprising, piping the stuff through MIME::Parser is even slower. Oh well.
18:33:49 -!- zzo38 has quit (Remote host closed the connection).
18:34:53 <fizzie> he also thought that socal was being PODQUOT naive if they thought they would get a better deal from the legislature than from the bankruptcy court PDOT PCDQUOT this is such a BUSINESS-ORIENTED thing.
18:35:36 <fizzie> he added that the davis PSLASH socal mou is dead and that all the PODQUOT plan b's PCDQUOT are PODQUOT speculative PCDQUOT at best PDOT also what's a "mou"?
18:36:14 <fizzie> A "memorandum of understanding", apparently.
18:43:55 <boily> fizzie: mou is a French word meaning soft (things), without initiative or personality (persons).
18:44:23 <boily> also, updated Zucchini. feel free to give me any feedback!
18:48:27 <fizzie> Okay, a new try on MIME-parsed messages: http://sprunge.us/DPbW well, I dunno... there's still quite a lot of email-formatting crap in the body texts that would need to be heuristicced away; quoted messages and the like.
18:50:41 <fizzie> Though I did not know that wearing shorts was favoured by industry executives.
18:51:24 <fizzie> "layoffs first in oilpatch as lower energy commodity prices to keep people from watching porn" I don't know about that either.
18:53:27 -!- Halite has quit (Changing host).
18:53:27 -!- Halite has joined.
19:02:48 -!- monqy has joined.
19:07:05 <Halite> `quote 15
19:07:07 <HackEgo> 15) <FireFly> Meh <FireFly> ._.
19:07:13 <Halite> horribl quote
19:07:17 <Halite> howwible quote
19:07:23 <Gregor> Wow, yeah X_X
19:07:24 <Gregor> `rmquote 15
19:07:25 <Taneb> `quote 16
19:07:26 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rmquote: not found
19:07:27 <HackEgo> 16) <fungot> oerjan: are you a man, if there weren't evil in this kingdom to you! you shall find bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him!
19:07:31 <Gregor> Oh, what's the command...
19:07:34 <Gregor> `delquote 15
19:07:39 <HackEgo> ​*poof* <FireFly> Meh <FireFly> ._.
19:08:11 <boily> `quote boily
19:08:17 <HackEgo> 942) <olsner> boily: the man eating chicken is just a normal man, it's quite common to eat chicken in some parts of the world \ 943) <elliott> ~eval 1+2 <cuttlefish> Error (127): <elliott> this is a great bot boily i love it \ 952) <boily> not only there is no God, but try to find an APL keyboard on Sunday. \ 955) <boily> ais523: I'm not sure my
19:08:31 <boily> `quote 955
19:08:36 <HackEgo> 955) <boily> ais523: I'm not sure my grasp of the English language is getting better by visiting this channel..
19:09:02 <boily> everything is fine. my narcissistic paranoïd self is reässured.
19:09:17 <Gregor> boily: The "oi" in paranoid is not a diaeresis.
19:09:36 <ais523> yeah, "reässured" is fine, but it's "paranoid"
19:10:16 <ais523> the vowel with the diaeresis has to belong to a different syllable to the vowel before
19:10:45 <monqy> goöd to heär
19:12:02 <Gregor> You peöple are goïng to drive me to the saüce.
19:12:55 <boily> saüce?
19:13:10 <fizzie> Saus.
19:13:22 <fizzie> (It's a place.)
19:13:26 <Gregor> Eüphemism for liquör.
19:19:19 -!- epicmonkey has joined.
19:20:33 -!- Taneb has quit (Quit: DINNER).
19:23:57 -!- ogrom has quit (Read error: Connection reset by peer).
19:29:54 -!- Halite has quit (Remote host closed the connection).
19:36:15 -!- sirdancealot has quit (Ping timeout: 260 seconds).
19:41:40 -!- ogrom has joined.
19:43:15 <Sgeo> I should really just be writing code and then filling in the corresponding strings later
19:43:31 <Sgeo> I wrote a little main=getContents>>=print utility to help me with that bit later on
19:44:21 <monqy> ok
19:47:37 <kmc> :t interact
19:47:38 <lambdabot> (String -> String) -> IO ()
19:49:35 -!- Taneb has joined.
19:50:50 * Sgeo is vaguely worried about the call stack
19:51:42 <Sgeo> It's going to grow by one for each compiler in the compiler stack :/
19:51:56 <Sgeo> The way I'm implementing, anyway
19:53:21 <Sgeo> Actually, it might not, depending on each compiler in the compiler stack
19:53:31 <Sgeo> If the last thing they do is ! (compile)....
19:53:46 <ais523> Sgeo: oh no
19:53:53 <ais523> you may hit the problem that most recently halted Feather :(
19:54:26 <Sgeo> o.O hm?
19:55:12 <ais523> Sgeo: the whole "how do you have a forever-growing stack of interpreters without losing time" thing
19:56:08 <FreeFull> Have each interpreter write the next one
19:56:13 <Sgeo> I take it that "The slowdown is inevitable, it's just an experimental concept anyway" is not an adequate solution?
19:56:51 <ais523> Sgeo: it possibly is
19:57:11 <Taneb> This sounds like the problem I had with programming in Brook, except not at all
19:57:31 <Taneb> It sounds like the problem I thought I would have with programming in Brook, except backwards
19:57:36 <Sgeo> At any rate, these are compilers, which compile into the TF primitives, so it's not like each one in the stack needs to be recompiled itself before being used
19:57:43 <Sgeo> Just interpreted
19:57:49 <ais523> oh good
19:57:55 <Taneb> The actual problem with programming in Brook is making a quine in a crappy language
19:58:41 <Sgeo> Taneb, that's what was about to stump me with what I now call the ! operation. So I made it so that ! doesn't compile in terms of primitives, but in terms of the currently executing language
19:59:55 <Taneb> Sgeo, I've given up understanding your new language
20:02:01 <Sgeo> Let's call the primitive implementation H0, and the language that it implements L0
20:02:07 <Sgeo> L0 is Trustfuck
20:03:04 <Sgeo> I write a compiler for L1, which is whatever language, in L0. This consists of reading L1 code, transforming it into L0 code, then emitting with : and compiling with !
20:03:21 <Sgeo> When I compile, H1 is output.
20:04:47 <Sgeo> I can now write a compiler in L1 for another language L2. The primitive ! and :, which may be called something else in L1, take L1 code now, not L0 code
20:04:56 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
20:04:57 -!- iamcal_ has joined.
20:05:01 -!- augur has quit (Ping timeout: 245 seconds).
20:06:14 <Sgeo> Internally, when I emit H1 from my L0 program, a compiled form of L0 is itself stored in H1, on top of the compiler stack
20:07:03 <Sgeo> Thus, when I use the ! primitive from an L1 program, first the code to be compiled is run through the L1 compiler which was written in L0, before the L0 primitives are compiled by whatever means
20:08:00 -!- Vorpal has joined.
20:08:11 <Sgeo> I do feel quite limited by basing this on Brainfuck
20:08:36 <Sgeo> Maybe a future Trust-family language could, say, state that different code other than itself will get thrown onto the compiler stack?
20:10:03 <Sgeo> erm, support a mechanism for doing so
20:17:53 <Sgeo> Actually, I see a simple extension to Trustfuck that could support that
20:18:05 <Sgeo> But right now, meh
20:18:59 <FreeFull> I have a big appreciation for :info, even if it doesn't tell me everything I want to know
20:19:00 -!- DHeadshot has quit (Ping timeout: 260 seconds).
20:19:40 <FreeFull> ghci should have a way to see all definitions in its current scope for which part of their type signature matches x
20:20:01 -!- DHeadshot has joined.
20:20:53 -!- augur has joined.
20:41:26 <Sgeo> My brain feels like slime when I'm working on this
20:41:38 <Sgeo> And it's more me forgetting how to program in Haskell than it is me not grasping my idea
20:42:10 <Sgeo> I should probably be using lenses, shachaf
20:42:17 <Taneb> And that's the downside of using so many languages, Sgeo
20:42:20 <boily> ~fortune
20:42:20 <cuttlefish> Does the same as the system call of that name.
20:42:20 <cuttlefish> If you don't know what it does, don't worry about it.
20:42:20 <cuttlefish> -- Larry Wall in the perl man page regarding chroot(2)
20:42:40 <ais523> heh, I remember reading that recently
20:43:01 <Taneb> Stick to one, and eventually people will laugh at you for not being able to understand C
20:43:31 <boily> I have the feeling that what Taneb said works with only knowing C.
20:46:58 <Sgeo> How do I fix this to not be so ugly (I'm not even sure if it's correct, I haven't tried compiling it)
20:46:59 <Sgeo> http://hpaste.org/82310
20:47:21 -!- ogrom has quit (Quit: Left).
20:48:54 <Gregor> I think there's a special place in Hell for people who do chroot in perl.
20:49:37 -!- Taneb has quit (Ping timeout: 248 seconds).
20:50:26 <Sgeo> I could factor it out
20:50:41 <ais523> Gregor: it makes sense if you're a sysadmin and using perl as a shel
20:50:42 <ais523> *shell
20:50:45 <Sgeo> That would be good practice, rather than copy/pasting the way I usually would in this situation
20:51:02 <Gregor> I think there's a special place in Hell for people who use perl as a shell.
20:51:22 -!- carado has quit (Ping timeout: 246 seconds).
20:51:55 <olsner> boily: indeed :) otoh, C could actually be small enough that you *could* know it
20:52:19 <Vorpal> Gregor, hi
20:52:28 <Vorpal> Gregor, did you figure out the -R issue with umlbox btw?
20:52:37 -!- Taneb has joined.
20:52:40 <Gregor> Vorpal: Haven't had time to investigate yet.
20:52:46 <Vorpal> Gregor, fair enough
20:53:04 <Vorpal> Gregor, also chroot in perl? You mean by doing the syscall?
20:53:13 <Vorpal> and why would you do that in a perl script
20:53:13 <Gregor> I'm thinking it may not be worth investigating, it'd be best to just rip that out and find a better way to communicate guest-host. The tty system is a nightmare.
20:53:25 <Gregor> Vorpal: Read just a liiiiiiiiiiiiiiiiiiiiiiittle bit further back in the backlog.
20:53:32 <Vorpal> okay
20:54:21 <Gregor> The mudem itself is good AFAIK, it's just that UML ttys are awful.
20:54:34 <Vorpal> hm
20:54:43 <Vorpal> Gregor, what options to ttys are there
20:55:09 <Gregor> Err, s/options/alternatives/?
20:55:15 <Vorpal> err yeah
20:55:37 <Gregor> It has a system for memory-mapping host files. That's not a stream though.
20:55:42 <Gregor> I don't think it has any other stream options.
20:55:42 <Vorpal> Gregor, I blame that on them being the same word in Swedish
20:55:56 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
20:56:08 <Vorpal> Gregor, doing manual stream over a mmap page sounds awful
20:56:18 <Gregor> Indeed X_X
20:56:26 <Vorpal> but if you want to, go ahead
20:56:27 <Gregor> Hence why I haven't tried X-D
20:56:46 <Vorpal> especially the syncronization
20:57:09 <FreeFull> Gregor: What about people who use ghci as their shell?
20:57:25 <Gregor> *shudders*
20:58:06 <Vorpal> Gregor, how does normal uml do networking?
20:58:38 <FreeFull> rawSystem "bla" ["buh","bluh"]
20:58:40 <Gregor> Vorpal: It exposes either a tun/tap or slirp as an ethernet device. That's implemented as a kernel module. Neither really allow me to meaningfully place any restrictions.
20:59:02 <Vorpal> Gregor, the tun/tap one would work, you just have to use iptables to restrict it
20:59:16 <Vorpal> no idea about the slirp one
20:59:27 <Gregor> Well, OK, tun/tap is impractical because UMLBox doesn't run as root.
20:59:36 <Vorpal> true
20:59:36 <Gregor> And many can run at once.
20:59:41 <Vorpal> okay, good point
20:59:54 <Vorpal> patched slirp daemon?
20:59:57 <Gregor> Really, it's just plain nutty that uml has no reliable host/guest character device.
21:00:07 <Gregor> That's probably a good approach.
21:00:22 <Gregor> The biggest issue with slirp is that it has a "let's run arbitrary host commands" pseudo-server.
21:01:40 <Vorpal> Gregor, so patch that bit out?
21:01:42 <Sgeo> Hmm, my code seems a bit repetitive
21:01:42 <Sgeo> interpret' (Inc:cmds) = modTape incTape >> interpret' cmds
21:01:42 <Sgeo> interpret' (Dec:cmds) = modTape decTape >> interpret' cmds
21:01:42 <Sgeo> interpret' ((Set n):cmds) = modTape (setTape n) >> interpret' cmds
21:02:41 <Gregor> Vorpal: I haven't looked into it, at the time the mudem approach seemed better (whitelist instead of blacklist)
21:03:48 <Vorpal> Gregor, why would it allow executing commands on the host at all?
21:04:03 <Vorpal> isn't it just a user space program forwarding network
21:04:12 <coppro> /slash
21:04:13 <Gregor> Yes, it offers that as a virtual service.
21:04:20 <Vorpal> huh
21:04:23 <Gregor> Because it's stupid that way X-D
21:04:28 <Vorpal> that sounds complicated
21:04:33 <Vorpal> also who came up with this shit
21:04:41 <Gregor> Hahaha
21:04:44 <Gregor> Wonderful question.
21:05:11 <Vorpal> so what is slirp originally intended for?
21:05:53 <Gregor> I think it was so that you could have an ethernet-connected computer accept dial-in connections without needing to run a whole other networking stack in-kernel.
21:06:30 <kmc> i think it's for old ISPs that gave you dial-in shell access only
21:06:57 <Gregor> Exactly.
21:07:23 <Vorpal> hm
21:07:36 -!- oerjan has joined.
21:07:36 <Vorpal> that was never common over here afaik
21:07:48 <Vorpal> it was usually just straight PPP or SLIP
21:12:59 <FreeFull> Sgeo: I can make it less repetitive at the cost of readibility
21:14:00 <monqy> can you?
21:14:24 <FreeFull> Sgeo: by the way, where is the case for []? Or is : here not the list constructor?
21:14:38 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
21:15:10 <Sgeo> It occurs to me that the Linux kernel has swears in it, yet that wouldn't stop someone from pointing to it on their `resume
21:15:21 <Sgeo> FreeFull, I didn't show all cases, but forgot about that one, ty
21:15:31 <monqy> Sgeo: my advice is to factor out the thing that goes from instruction to action like Inc->IncTape
21:15:57 <monqy> *incTape
21:16:12 <monqy> and Set n -> setTape n
21:16:17 <monqy> and so on
21:16:32 <FreeFull> You might be able to map and then sequence_
21:16:47 <monqy> aka mapM_
21:20:16 <FreeFull> interpret' = mapM_ mod where mod x = modTape $ case x of { Inc -> incTape; Dec -> decTape; (Set n) -> setTape n }
21:20:19 <FreeFull> This might work
21:20:48 <FreeFull> It might not
21:21:36 <monqy> imo dont do that
21:22:10 <fizzie> I had a slirp-driven dialup connection going a while (a decade? 15 years?) ago.
21:22:12 <Sgeo> meh
21:22:32 <fizzie> Though probably not as the regular "commercial ISP" at-home dialup.
21:22:40 <Sgeo> Besides, I have cases that don't involve just modifying the tape
21:22:55 <Sgeo> data InterpState = InterpState { tape :: Tape, higherInput :: Maybe String, currentCompilerStack :: [[TFCommand]], codeBlock :: String }
21:22:55 <monqy> Sgeo: ok then think for yourself
21:23:16 <Sgeo> Does thinking not to bother with factoring it out as much as possible count?
21:24:05 -!- Phantom_Hoover has joined.
21:24:38 <Sgeo> Hi Phantom_Hoover. I believe that the easiest Trustfuck programs to write are probably BF derivative compilers.
21:24:45 <monqy> you don't have to do it "as much as possible" (what does that mean???) but i suggest avoiding too much repetition because duplication leads to error and also pain
21:24:48 <monqy> pain and error
21:24:49 <monqy> you dont want this
21:24:56 <Sgeo> In fact, I plan on making a few
21:24:59 <Sgeo> Just to test it out
21:25:07 <Sgeo> switching [ and ]
21:25:08 <Sgeo> etc
21:25:37 <oerjan> logically, Phantom_Hoover now has to replace Sgeo's brain with a brick factory
21:26:36 <olsner> brick factory might be a nice name for a brainfuck derivative
21:26:41 <Phantom_Hoover> would be useful
21:26:50 <Phantom_Hoover> i don't know where i'd even find a brick these days
21:27:11 <Taneb> I seem to remember a brick factory near Newcastle
21:27:37 <monqy> could make your own bricks
21:27:43 <olsner> I thought they made bricks by pouring mud in molds in the desert
21:27:44 <monqy> homemade bricks for that "homemade" charm
21:28:19 <olsner> I wonder what kind of desert has lots of mud though
21:28:19 <Phantom_Hoover> olsner, how would you know
21:28:23 -!- augur has quit (Remote host closed the connection).
21:28:44 <Phantom_Hoover> mississipi mud pie, obviously
21:28:45 <oerjan> Phantom_Hoover: hm i'd suggest Leca, but that's apparently a norwegian company so might not be in britain
21:30:56 <fizzie> There's a brick factory next to the summer place of some people I know. It's in Mjösund, Kemiö, if you're interested. I'm sure it's not much out of your way.
21:32:31 <oerjan> hm ok they've been absorbed by Weber, which seems multinational.
21:33:42 <oerjan> <olsner> I wonder what kind of desert has lots of mud though <-- the ones rivers run through? see: egypt, mesopotamia
21:34:54 <fizzie> ais523: Oh, I updated the bfjoust stats, incidentally; started it when you mentioned it, but then totally forgot about it so didn't rsync.
21:35:08 <olsner> oerjan: mythological deserts don't count
21:35:12 <ais523> fizzie: good to know
21:35:16 <ais523> do you have the link handy?
21:35:49 <oerjan> oh actually weber is part of saint-gobain.
21:36:14 <ais523> `pastlog bfjoust stats
21:36:25 <fizzie> ais523: http://zem.fi/egostats/
21:36:33 <fizzie> (Faster than a speeding bot.)
21:36:43 <HackEgo> No output.
21:36:48 <fizzie> (Maybe HackEgo doesn't quite always count as "speeding".)
21:36:52 <ais523> indeed :)
21:36:54 <ais523> thanks
21:37:10 <oerjan> HackEgo is best at grinding
21:38:07 <ais523> hmm… so I conclude from this that part of the reason omnipotence does so much better than the other top programs is that it doesn't have issues with short tape lengths
21:38:37 <coppro> omnipotence?
21:38:39 <coppro> sounds cool
21:38:59 <Sgeo> @hoogle Char -> Int
21:38:59 <lambdabot> Data.Char digitToInt :: Char -> Int
21:39:00 <lambdabot> Data.Char ord :: Char -> Int
21:39:00 <lambdabot> Graphics.UI.GLUT.Callbacks.Window Char :: Char -> Key
21:39:02 <fizzie> Hrm... the "absolute values" plot for it has numbers from (about) -24 to 12; that sounds a bit suspicious.
21:39:49 -!- augur has joined.
21:40:05 <ais523> coppro: it's a new BF Joust innovation, and it wins "fairly", mostly (although it'd be hurt if people used timer clears more often even when they had no reason to suspect defence)
21:40:34 <fizzie> The others have negative values there too. Hrm, perhaps I have broken it.
21:41:10 <ais523> the absolute tape value plot is interesting because it shows strategy
21:41:19 <ais523> most programs have their flags near 128
21:41:32 <ais523> anticipation2 does synchronization, so its flag tends to be really low when it wins
21:41:56 <ais523> and omnipotence defends but doesn't synchronize, so its flag is averaging approximately 64 (i.e. pretty much a random value)
21:42:41 <fizzie> Yes, the overall average (plot_tapeabs) version seems to work, the numbers are nonnegative; but the per-program versions I probably have managed to break.
21:42:48 <fizzie> I did refactor some repeated code out of there.
21:42:58 <shachaf> `rm bin/list
21:43:04 <HackEgo> No output.
21:44:40 <boily> `list
21:44:41 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: list: not found
21:44:44 <boily> nooooooooooo!
21:47:26 <fizzie> Yes, I seem to have managed to drop an "abs" out.
21:47:39 <Sgeo> I hate monad stacks I hate monad stacks I hate monad stacks
21:47:50 <Sgeo> And after pressing Enter, I tried to Ctrl-S to save IRC
21:48:36 <fizzie> There, fixeded that.
21:48:38 <oerjan> `revert
21:48:41 <HackEgo> Done.
21:49:13 <Taneb> `list
21:49:17 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy
21:50:04 <oerjan> `run sed -i 's/shachaf //' bin/list # It's getting annoying
21:50:08 <HackEgo> No output.
21:50:12 <fizzie> Is there a `delist / `unlist already, incidentally?
21:50:26 <oerjan> not last i checked
21:51:51 <Sgeo> Oh crud I am lost in a monad stack
21:51:53 <Sgeo> Totally lost
21:52:22 <monqy> advice: dont do that
21:52:27 <oerjan> Sgeo: you are not supposed to use explicit lift's hth
21:52:31 <oerjan> *-'
21:52:39 <Sgeo> Not done writing this function, but http://hpaste.org/82314
21:52:45 <Sgeo> I think I need to use liftIO somewhere
21:52:58 <Sgeo> The function itself returns a StateT InterpState IO ()
21:52:58 <monqy> what's the signature of interpret'
21:53:06 <Sgeo> interpret' :: [TFCommand] -> StateT InterpState IO ()
21:53:11 <oerjan> Sgeo: modify takes just one argument
21:53:29 <Sgeo> Yeah, that part's also still in progress
21:53:54 <Sgeo> But I think I need to fit a liftIO near the getChar
21:54:04 -!- dessos has quit (Quit: leaving).
21:54:06 <shachaf> oerjan: Thanks.
21:54:34 -!- Taneb has quit (Quit: Leaving).
21:54:39 <oerjan> shachaf: yw, even if you could have done it yourself instead of messing it up every time
21:55:21 -!- dessos has joined.
21:59:08 <Sgeo> `welcome dessos
21:59:11 <HackEgo> dessos: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:02:22 <oerjan> * boily checks his calendar. hm. not Friday yet. <-- good chap.
22:07:19 -!- augur has quit (Remote host closed the connection).
22:08:18 <FreeFull> What is the cleanest way to map over the second element of a tuple?
22:08:52 <oerjan> <Slereah_> Phantom_Hoover your british is showing <-- but naff is such a cute word!
22:09:07 <oerjan> FreeFull: second from Control.Arrow
22:09:13 <oerjan> > second succ (1,2)
22:09:15 <lambdabot> (1,3)
22:09:37 <Phantom_Hoover> oerjan, it's the perfect word to describe inoffensively bad things"
22:10:52 <oerjan> FreeFull: if you're doing deeper stuff, maybe you should look at lens.
22:11:12 <oerjan> :t _2
22:11:13 <lambdabot> (Functor f, Field2 s t a b, Indexable Int p) => p a (f b) -> s -> f t
22:11:49 <oerjan> if i only remembered the names
22:11:58 <FreeFull> second is just \f (a,b) -> (a,f b) right?
22:12:02 -!- Phantom_Hoover has quit (Quit: Leaving).
22:12:12 <oerjan> FreeFull: on the (->) Arrow, yes >:)
22:12:14 -!- Phantom_Hoover has joined.
22:12:35 <FreeFull> oerjan: Does anyone use any other Arrows?
22:12:36 <oerjan> :t (^=)
22:12:37 <lambdabot> (Integral e, Num a, MonadState s m) => ASetter' s a -> e -> m ()
22:13:02 <FreeFull> :t second
22:13:04 <lambdabot> Arrow a => a b c -> a (d, b) (d, c)
22:13:04 <oerjan> FreeFull: i think zzo38 uses Kleiski and probably some others do too
22:13:44 <boily> oerjan: dates are complex. time is hard. I need periodic sanitic realitic checks.
22:13:47 <oerjan> what's the lens equivalent of modify
22:14:07 <oerjan> boily: especially on the 13th, no?
22:14:12 <FreeFull> http://en.wikipedia.org/wiki/Arrow_%28computer_science%29 This article seems to have been written by Haskellers
22:14:56 <oerjan> FreeFull: probably, i'm not sure if anything but Haskell uses them
22:15:26 <oerjan> they're kind of not mathematically pretty like monads are
22:15:41 <shachaf> profunctors are better
22:15:44 <oerjan> they're sort of a chimera of Category and Applicative
22:16:07 <oerjan> @hoogle (^=)
22:16:07 <lambdabot> No results found
22:16:19 -!- nooodl_ has joined.
22:16:36 <FreeFull> @hoogle ASetter'
22:16:36 <lambdabot> No results found
22:16:37 <boily> oerjan: on those days, I'm sure this channel becomes some kind of SCP.
22:16:54 <FreeFull> boily: That'd be a retarded SCP
22:16:56 <oerjan> oh
22:17:11 <oerjan> > _2 %~ succ $ (1,2)
22:17:14 <lambdabot> (1,3)
22:17:27 <coppro> `addquote <boily> oerjan: on those days, I'm sure this channel becomes some kind of SCP.
22:17:30 <HackEgo> 963) <boily> oerjan: on those days, I'm sure this channel becomes some kind of SCP.
22:17:40 <nooodl_> "those days"?
22:17:44 <FreeFull> _2 %~ looks like gibberish
22:17:47 <oerjan> > over _2 succ (1,2)
22:17:49 <lambdabot> (1,3)
22:17:53 <FreeFull> :t over
22:17:55 <lambdabot> Profunctor p => Setting p s t a b -> p a b -> s -> t
22:17:57 <oerjan> more readable alternative
22:18:06 <nooodl_> wow i'm reading _2 as (-2) "thanks apl"
22:18:18 <FreeFull> I think I'll just import Control.Arrow (second)
22:18:22 <shachaf> @let theSecondOne = _2
22:18:24 <lambdabot> Defined.
22:18:28 <boily> nooodl_: friday thirteens.
22:18:32 <shachaf> > over theSecondOne succ (1,2)
22:18:35 <lambdabot> (1,3)
22:18:35 <oerjan> nooodl_: hm i'm not, even if i've been using it that way all the time while writing Fueue
22:18:45 <FreeFull> shachaf: we aren't trying to make it into English
22:18:55 <nooodl_> > over theSecondOne succ (1,2,3)
22:18:58 <lambdabot> (1,3,3)
22:19:06 <oerjan> (Fueue doesn't have _, but i needed something to distinguich negative numbers from - positivenumber)
22:19:11 <Sgeo> :t liftIO
22:19:13 <lambdabot> MonadIO m => IO a -> m a
22:19:46 <nooodl_> i'm, how can that even work in haskell
22:19:51 <nooodl_> :t over theSecondOne succ
22:19:53 <lambdabot> (Enum b, Field2 s t b b) => s -> t
22:19:58 <shachaf> It's awful.
22:20:23 <FreeFull> > liftIO putStr "a" :: Maybe String
22:20:24 <nooodl_> oh god. i never asked
22:20:25 <lambdabot> Couldn't match expected type `GHC.Types.IO
22:20:25 <lambdabot> ...
22:20:37 <FreeFull> > (liftIO putStr "a") :: Maybe String
22:20:39 <lambdabot> Couldn't match expected type `GHC.Types.IO
22:20:39 <lambdabot> ...
22:20:46 <Sgeo> Maybe is not a MonadIO
22:20:51 <FreeFull> Oh, right
22:20:51 <Sgeo> Also, bad parenthization
22:20:55 <FreeFull> And it'd have to be Maybe ()
22:20:58 <Sgeo> liftIO $ putStr "a"
22:21:11 <FreeFull> > (liftIO $ putStr "a") :: Maybe ()
22:21:13 <lambdabot> No instance for (Control.Monad.IO.Class.MonadIO Data.Maybe.Maybe)
22:21:13 <lambdabot> arisin...
22:21:19 <FreeFull> There, the right error
22:21:29 <oerjan> FreeFull: you can only liftIO into monads that are built on top of IO
22:21:47 <FreeFull> > (liftIO $ putStr "a") :: MaybeT (IO a)
22:21:49 <lambdabot> Not in scope: type constructor or class `MaybeT'
22:21:49 <lambdabot> Perhaps you meant `Maybe'...
22:22:06 <oerjan> old lambdabot is old
22:23:08 <FreeFull> I'm guessing there is an instance MonadIO a => MonadIO MaybeT a
22:23:54 <oerjan> boily: it's a little known fact that everyone dies every Friday the 13th and is resurrected with partial amnesia the next morning
22:24:20 <boily> you sure of that? I have no memories of it.
22:25:49 <oerjan> quite sure.
22:26:05 <oerjan> > over _2 succ [1,2,3]
22:26:07 <lambdabot> No instance for (Control.Lens.Tuple.Field2 [t0] a0 b0 b0)
22:26:07 <lambdabot> arising from a...
22:26:15 <boily> next time, I'll write myself a post-it.
22:26:21 <oerjan> INSUFFICIENT MADNESS
22:26:53 <oerjan> boily: there might also be a few things replaced or missing, hth
22:27:54 <oerjan> boily: also you cannot write a post-it when you are dead, duh
22:28:11 <boily> oerjan: good point.
22:29:33 <boily> that means I nead to get back my cloneduino from my brother, and implement some contraption with it that will write to a post-it when I'm dead, then wrap the precious slip into a safe, then lock the aforementioned safe in a secret underground vault.
22:30:44 <oerjan> :t act
22:30:46 <lambdabot> (Conjoined p, Effective m r f) => (s -> m a) -> p a (f a) -> p s (f s)
22:32:18 <oerjan> i'm not sure that's the act from lens
22:32:24 <oerjan> > (0$0`act`)
22:32:26 <lambdabot> The operator `Control.Lens.Action.act' [infixl 9] of a section
22:32:26 <lambdabot> must ha...
22:32:30 <oerjan> oh it is
22:32:39 <FreeFull> :t over _2
22:32:41 <lambdabot> (Field2 s t a b, Indexable Int p) => p a b -> s -> t
22:35:31 <Sgeo> Hmm, my currently envisioned primCompiler has too many jobs I think
22:36:01 <Sgeo> Translating a string of Trustfuck into TFCommands, and then outputting the appropriate Haskell
22:39:19 <Sgeo> I could call primTranslation the translation of Trustfuck->[TFCommand]
22:39:40 <oerjan> refactor!
22:39:46 <oerjan> refactor!
22:39:47 <oerjan> refactor!
22:40:10 <oerjan> hm Taneb is not here
22:41:59 <oerjan> > (id += 2) 3
22:42:01 <lambdabot> No instance for (Control.Monad.State.Class.MonadState s0 ((->) a0))
22:42:02 <lambdabot> aris...
22:42:08 <oerjan> > (id +~ 2) 3
22:42:10 <lambdabot> 5
22:46:36 -!- ais523 has quit.
22:48:01 <Sgeo> Oh hey there's a J 8 beta
22:50:58 <nooodl_> oooh
22:53:33 <nooodl_> oh apparently there's just some boring GUI changes
22:54:21 -!- copumpkin has quit (Ping timeout: 252 seconds).
22:55:01 -!- copumpkin has joined.
22:56:55 -!- augur has joined.
22:59:37 <Gregor> Vorpal: ARRRRRRRRRRRRGH
22:59:41 <Gregor> Vorpal: PYTHOOOOOOOOON
23:00:01 <Sgeo> I've only begun hating Python recently
23:00:42 <Gregor> Vorpal: umlbox mudem bug fixed.
23:04:02 <oerjan> <Gregor> Y'know, you're free to fail to hack HackEgo in #hackbot . Less... interrupty there. <-- funniest thing, not a single thing he did showed up in the repository
23:04:06 <Sgeo> @hoogle catch
23:04:07 <lambdabot> Prelude catch :: IO a -> (IOError -> IO a) -> IO a
23:04:07 <lambdabot> System.IO.Error catch :: IO a -> (IOError -> IO a) -> IO a
23:04:07 <lambdabot> Control.OldException catch :: IO a -> (Exception -> IO a) -> IO a
23:04:40 <Sgeo> :t (Just <$> getChar) `catch` \_ -> return Nothing
23:04:40 <Gregor> oerjan: lol, 'struth.
23:04:42 <lambdabot> IO (Maybe Char)
23:06:00 * oerjan is not sure how he feels about using catch just to check for eof
23:06:01 <Sgeo> grr typing } does not mean I want to deindent
23:06:09 <Sgeo> What's a better way to check for eof?
23:06:16 <oerjan> hIsEOF
23:06:32 <oerjan> admittedly catch may be shorter
23:08:27 <oerjan> oh or just isEOF for stdin
23:08:50 <Sgeo> :t isEOF
23:08:52 <lambdabot> Not in scope: `isEOF'
23:08:54 <Sgeo> @hoogle isEOF
23:08:55 <lambdabot> System.IO isEOF :: IO Bool
23:08:55 <lambdabot> GHC.IO.Handle.FD isEOF :: IO Bool
23:08:55 <lambdabot> System.IO.Error isEOFError :: IOError -> Bool
23:09:03 <nooodl_> "deindenting" should be called "exdenting" imo
23:09:55 <monqy> have I heard "dedent"??? maybe.
23:10:26 <nooodl_> i've heard "dedent" but "de-" isn't the opposite of "in-"...
23:10:27 <oerjan> monqy: DEDENT is a lexical token in python, iirc
23:10:57 <oerjan> used for implementing its indentation blocks
23:11:26 <oerjan> :t hIsEOF
23:11:28 <lambdabot> Not in scope: `hIsEOF'
23:11:28 <shachaf> what does it use for implementing its dedentation blocks
23:11:44 <oerjan> shachaf: nothing
23:11:50 <shachaf> oh
23:13:22 <Sgeo> oerjan, ok, using isEOF
23:13:37 <Sgeo> What I wrote is more verbose, but using catch like that makes me feel icky
23:14:09 <oerjan> hm...
23:14:25 <oerjan> @hoogle Bool -> m a -> m (Maybe a)
23:14:25 <lambdabot> Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a
23:14:26 <lambdabot> Data.Time.Calendar.MonthDay monthAndDayToDayOfYearValid :: Bool -> Int -> Int -> Maybe Int
23:14:26 <lambdabot> Control.Monad unless :: Monad m => Bool -> m () -> m ()
23:14:29 <oerjan> oh
23:15:23 <oerjan> gah when and unless are the closest but don't give maybes
23:15:32 <oerjan> or wait
23:15:43 <oerjan> ...sigh
23:16:05 <Sgeo> @hoogle Maybe a -> a -> a
23:16:06 <lambdabot> Data.Maybe fromMaybe :: a -> Maybe a -> a
23:16:06 <lambdabot> Prelude asTypeOf :: a -> a -> a
23:16:06 <lambdabot> Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a
23:16:34 <oerjan> Sgeo: you need something which starts with a Bool, something haskell standard libraries sorely lacks
23:16:37 <shachaf> oerjan: To be fair Bools are evil.
23:16:51 <Sgeo> oerjan, it's fine, I just used do notation
23:17:11 <Sgeo> I could also use >>= and a lambda
23:17:17 <shachaf> @pl \x m -> if x then Just <$> m else pure Nothing
23:17:17 <lambdabot> flip flip (pure Nothing) . (. (Just <$>)) . if'
23:17:20 <Sgeo> Nothing -> liftIO $ do
23:17:20 <Sgeo> eof <- isEOF
23:17:20 <Sgeo> if eof then Just <$> getChar else return Nothing
23:17:21 <shachaf> There y'go.
23:17:32 <shachaf> @ty \x m -> if x then Just <$> m else pure Nothing
23:17:34 <lambdabot> Applicative f => Bool -> f a -> f (Maybe a)
23:17:50 <oerjan> Sgeo: sure. it's just awful that afaik there is no way to do it that is shorter than your catch expression
23:18:10 <oerjan> oh wait
23:18:19 <oerjan> well not _quite_ shorter but...
23:18:37 <monqy> @ty \case { True -> "hello"; False -> "goodbye" }
23:18:39 <lambdabot> parse error on input `case'
23:18:57 <shachaf> "hello monqy"
23:19:01 <oerjan> monqy: old lambdabot is old
23:19:14 <monqy> hi shachaf
23:19:17 <shachaf> hi
23:19:27 <shachaf> do you have anything to say about galois connections today
23:19:30 <monqy> no
23:19:39 <shachaf> perhaps tomorrow, then.
23:20:29 <oerjan> :t let isEOF :: IO Bool; isEOF = undefined in isEOF >>= maybe (return Nothing) getChar . guard
23:20:31 <lambdabot> Couldn't match expected type `a0 -> IO (Maybe a1)'
23:20:31 <lambdabot> with actual type `IO Char'
23:20:31 <lambdabot> In the second argument of `maybe', namely `getChar'
23:20:32 <shachaf> @let monoids = easy
23:20:35 <lambdabot> Defined.
23:20:36 <oerjan> fff
23:21:04 <oerjan> :t maybe (return Nothing) getChar . guard
23:21:06 <lambdabot> Couldn't match expected type `a0 -> m0 (Maybe a1)'
23:21:06 <lambdabot> with actual type `IO Char'
23:21:06 <lambdabot> In the second argument of `maybe', namely `getChar'
23:21:09 <oerjan> :t maybe
23:21:11 <lambdabot> b -> (a -> b) -> Maybe a -> b
23:21:15 <oerjan> oh right
23:21:32 <shachaf> = CodensityAsk Identity
23:21:41 <shachaf> Er, no.
23:21:57 <shachaf> Er, yes.
23:22:40 <oerjan> :t let isEOF :: IO Bool; isEOF = undefined in isEOF >>= fromMaybe (return Nothing). (getChar <$) . guard
23:22:41 <lambdabot> Couldn't match expected type `Maybe a0' with actual type `Char'
23:22:41 <lambdabot> Expected type: IO (Maybe a0)
23:22:41 <lambdabot> Actual type: IO Char
23:22:50 <oerjan> this isn't going very well
23:22:58 <oerjan> :t (getChar <$) . guard
23:22:59 <lambdabot> (Functor f, MonadPlus f) => Bool -> f (IO Char)
23:23:39 <oerjan> :t fromMaybe (return Nothing) . (getChar <$) . guard
23:23:41 <lambdabot> Couldn't match expected type `Maybe a0' with actual type `Char'
23:23:41 <lambdabot> Expected type: IO (Maybe a0)
23:23:41 <lambdabot> Actual type: IO Char
23:24:29 <Sgeo> :t String -> IO a
23:24:31 <lambdabot> parse error on input `->'
23:24:36 <Sgeo> @hoogle String -> IO a
23:24:37 <lambdabot> Foreign.C.Error throwErrno :: String -> IO a
23:24:37 <lambdabot> Network.Socket.Internal throwSocketError :: String -> IO a
23:24:37 <lambdabot> System.Environment withProgName :: String -> IO a -> IO a
23:24:42 <Sgeo> @hoogle throw
23:24:42 <lambdabot> Control.Exception.Base throw :: Exception e => e -> a
23:24:42 <lambdabot> Control.Exception throw :: Exception e => e -> a
23:24:42 <lambdabot> Control.OldException throw :: Exception e => e -> a
23:24:44 -!- Nisstyre_ has changed nick to Nisstyre.
23:24:45 <Sgeo> bah
23:25:06 <oerjan> :t fromMaybe (return Nothing)
23:25:08 <lambdabot> Monad m => Maybe (m (Maybe a)) -> m (Maybe a)
23:25:20 <Sgeo> Hmm. What should happen when a compiler in the middle of the compiler stack attempts to do normal output?
23:26:08 -!- epicmonkey has quit (Ping timeout: 255 seconds).
23:26:29 <shachaf> chaos
23:26:35 <shachaf> don't do it Sgeo
23:26:51 <Sgeo> "Chaos" is easily achieved by just doing normal output
23:27:36 <Sgeo> Imagine something randomly outputting in the middle of creating x86 binary for no good reason
23:27:57 <shachaf> don't do it
23:28:07 <Sgeo> ?
23:28:20 <Sgeo> Well, any program that does that is ... certainly broken
23:28:55 <Sgeo> The question is, do I throw an error?
23:29:10 <Sgeo> Also, I have separate sorts of output: Output via . and output via : and !
23:29:26 <Sgeo> I've been wondering whether to separate input out in that fashion
23:29:56 <Sgeo> That is, any compiler in the middle of the compiler stack that uses , rather than codein ; would see standard input
23:30:03 <Sgeo> Rather than code in the language they were expecting
23:30:07 <Sgeo> Possibly causing havock
23:30:10 <Sgeo> havoc?
23:30:11 <Sgeo> Fun
23:30:32 <Sgeo> Right now though I'm just going to keep implementing the spec as-is
23:31:14 <fizzie> http://sprunge.us/JHIC I am somewhat a confuse.
23:31:29 <Sgeo> :t chr
23:31:31 <lambdabot> Int -> Char
23:31:42 <Sgeo> :t putCh
23:31:44 <lambdabot> Not in scope: `putCh'
23:31:44 <Sgeo> :t putChar
23:31:46 <lambdabot> Char -> IO ()
23:32:23 <oerjan> fizzie: making its lamarck on game history, surely
23:32:33 <FreeFull> How would you rewrite sum . map (\(x,y) -> if x == y then 1 else 0) $ zip not to use $ like that?
23:33:04 <FreeFull> Wait, that's not valid
23:33:13 <Sgeo> http://hpaste.org/82320
23:33:55 <Sgeo> I like how -> and <- align. I am easily amused
23:33:58 <FreeFull> Wait, could use zipWith there
23:34:29 <oerjan> FreeFull: in any case, that would use . not $
23:34:50 <oerjan> or not even that
23:35:05 <FreeFull> zip is a function of two arguments
23:35:10 <FreeFull> The others are of one
23:35:19 <oerjan> so .: which is not standard
23:36:08 <oerjan> :t sum .: zipWith (uncurry (==))
23:36:10 <lambdabot> Couldn't match expected type `b1 -> b0' with actual type `Bool'
23:36:10 <lambdabot> Expected type: b2 -> b2 -> b1 -> b0
23:36:10 <lambdabot> Actual type: b2 -> b2 -> Bool
23:36:17 <oerjan> now what
23:36:22 <oerjan> :t (.:)
23:36:23 <lambdabot> (Functor g, Functor f) => (a -> b) -> f (g a) -> f (g b)
23:36:32 <oerjan> CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALE
23:36:45 <FreeFull> What I meant was something like \x -> sum . zipWith (\x y -> if x == y then 1 else 0) x
23:37:05 <FreeFull> But more pointless
23:37:13 <oerjan> yes, .: would fit
23:37:18 <oerjan> *should
23:37:34 <oerjan> :t sum .: zipWith (\x y -> if x == y then 1 else 0)
23:37:35 <lambdabot> (Eq a, Num b) => [a] -> [a] -> b
23:37:37 <fizzie> oerjan: Apparently the game was not in fact good. :/ (But the Ghost Crab did evolve to Fiddler Crab and then the Yeti Crab and then the Coconut Crab.)
23:37:51 <FreeFull> The type fits
23:37:55 <Phantom_Hoover> fizzie, ???
23:38:50 <nooodl_> how about
23:38:51 <fizzie> Phantom_Hoover: [01:31:14] <fizzie> http://sprunge.us/JHIC I am somewhat a confuse.
23:39:02 <FreeFull> @hoogle (.:)
23:39:02 <lambdabot> No results found
23:39:15 <nooodl_> length . filter (uncurry (==)) . zip
23:39:17 <FreeFull> :info (.:)
23:39:18 <nooodl_> or something
23:39:39 <FreeFull> :t (length . filter (uncurry (==)) . zip)
23:39:40 <lambdabot> Couldn't match expected type `[(b0, b0)]'
23:39:41 <lambdabot> with actual type `[b1] -> [(a0, b1)]'
23:39:41 <lambdabot> Expected type: [a0] -> [(b0, b0)]
23:39:44 <FreeFull> :t (length . filter (uncurry (==)) .: zip)
23:39:46 <lambdabot> Couldn't match expected type `[[(b0, b0)]]'
23:39:46 <lambdabot> with actual type `[b1] -> [(a0, b1)]'
23:39:46 <lambdabot> Expected type: [a0] -> [[(b0, b0)]]
23:40:26 <oerjan> :t (.:)
23:40:28 <lambdabot> (Functor g, Functor f) => (a -> b) -> f (g a) -> f (g b)
23:40:34 <oerjan> :t (.).(.)
23:40:35 <lambdabot> (Functor f1, Functor f) => (a -> b) -> f (f1 a) -> f (f1 b)
23:40:46 <monqy> :t (.)
23:40:47 <oerjan> that's the portable version
23:40:47 <lambdabot> Functor f => (a -> b) -> f a -> f b
23:40:53 <FreeFull> Oh, .: is the owl
23:41:02 <monqy> cale cale cale cale cale
23:41:42 <monqy> owl?
23:42:10 <oerjan> :t length . filter id . zipWith (==)
23:42:12 <lambdabot> Couldn't match expected type `[Bool]'
23:42:12 <lambdabot> with actual type `[b0] -> [c0]'
23:42:12 <lambdabot> Expected type: [a0] -> [Bool]
23:42:15 <oerjan> oops
23:42:31 <oerjan> :t (length . filter id) .: zipWith (==)
23:42:33 <lambdabot> Eq b => [b] -> [b] -> Int
23:42:41 <oerjan> FreeFull: simpler ^
23:42:55 <nooodl_> i have no idea when to use (.).(.) it's so stupid
23:43:10 <monqy> that's why they call it (.:)
23:43:15 <monqy> "less stupid"
23:43:27 <FreeFull> :t (.).(.) (length . filter id) (zipWith (==))
23:43:29 <lambdabot> Couldn't match expected type `a0 -> b0' with actual type `Int'
23:43:29 <lambdabot> Expected type: [a1] -> a0 -> b0
23:43:29 <lambdabot> Actual type: [a1] -> Int
23:43:30 <oerjan> :t (length . filter id .) . zipWith (==)
23:43:31 <lambdabot> The operator `.' [infixr 9] of a section
23:43:31 <lambdabot> must have lower precedence than that of the operand,
23:43:31 <lambdabot> namely `.' [infixr 9]
23:43:32 <shachaf> what about (∴)
23:43:40 <oerjan> :t ((length . filter id) .) . zipWith (==)
23:43:41 <shachaf> "minimally stupid"??
23:43:41 <lambdabot> Eq b => [b] -> [b] -> Int
23:43:48 <monqy> (∴) is maximally stupid, sorry
23:43:52 <shachaf> oh
23:43:57 <shachaf> what about (∵)
23:44:03 <monqy> also maximally stupid
23:44:09 <shachaf> are they isomorphic
23:44:18 <monqy> if you want
23:44:23 <shachaf> isomorphic up to isomorphic isomorphism
23:44:25 <oerjan> if they'd only made . associate the other way, the innermost parentheses would be unnecessary
23:44:42 <shachaf> 2241 NOT TILDE [≁]
23:44:47 <Sgeo> @hoogle (<$>)
23:44:47 <lambdabot> Data.Functor (<$>) :: Functor f => (a -> b) -> f a -> f b
23:44:47 <lambdabot> Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b
23:44:54 <shachaf> lambdabot: plz support unicode again.........
23:44:56 <Sgeo> @hoogle ord
23:44:56 <lambdabot> Prelude class Eq a => Ord a
23:44:57 <lambdabot> Data.Ord class Eq a => Ord a
23:44:57 <lambdabot> Prelude data Ordering :: *
23:44:58 <monqy> i don't have not tilde on my compose key :(
23:45:03 <shachaf> oh no
23:45:04 <Sgeo> @hoogle chr
23:45:05 <lambdabot> Data.Char chr :: Int -> Char
23:45:05 <lambdabot> Text.PrettyPrint.HughesPJ Chr :: Char -> TextDetails
23:45:05 <lambdabot> Text.PrettyPrint Chr :: Char -> TextDetails
23:45:12 <shachaf> 2247 NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO [≇]
23:45:15 <shachaf> 2246 APPROXIMATELY BUT NOT ACTUALLY EQUAL TO [≆]
23:45:18 <shachaf> 2245 APPROXIMATELY EQUAL TO [≅]
23:45:21 <shachaf> these are good
23:45:25 <nooodl_> yeah
23:45:30 <Sgeo> @hoogle Int -> Char
23:45:30 <lambdabot> Data.Char chr :: Int -> Char
23:45:30 <lambdabot> Data.Char intToDigit :: Int -> Char
23:45:30 <lambdabot> Data.Text index :: Text -> Int -> Char
23:45:35 <nooodl_> that reminds me of my favorite thingy in unicode
23:45:36 <shachaf> it's missing ACTUALLY BUT NOT APPROXIMATELY EQAUL TO
23:45:36 <Sgeo> @hoogle Char -> Int
23:45:37 <lambdabot> Data.Char digitToInt :: Char -> Int
23:45:37 <lambdabot> Data.Char ord :: Char -> Int
23:45:37 <lambdabot> Graphics.UI.GLUT.Callbacks.Window Char :: Char -> Key
23:45:52 <shachaf> nooodl_: ⋚ ?
23:45:57 <monqy>
23:46:11 <nooodl_> wow shachaf how did you know
23:46:16 <nooodl_> i was just looking it up. ⋚
23:46:27 <nooodl_> also ⋙ is pretty good
23:46:29 <shachaf> nooodl_: "im an expert in knowing things"
23:46:48 <nooodl_> don't forget about ⪑
23:46:53 <nooodl_>
23:47:00 <nooodl_> ⪠ wow these are trainwrecks
23:47:05 <shachaf> those are pretty good
23:47:21 <shachaf> wow 𪩶
23:47:22 <shachaf> er
23:47:23 <nooodl_> ⪢ i can't even see this one
23:47:25 <shachaf> 2A76 THREE CONSECUTIVE EQUALS SIGNS [⩶]
23:47:29 <nooodl_> but i trust that it looks really nice
23:47:29 <shachaf>
23:47:31 <nooodl_> hahaha
23:47:44 <nooodl_> i can't see that one either but that's actually good
23:47:49 <shachaf> i can see ⪢
23:47:52 <shachaf> "get better fonts"
23:48:12 <shachaf> nooodl_: the good thing about THREE CONSECUTIVE EQUALS SIGNS is that it goes way out of the box into the next character
23:48:16 <nooodl_> because i imagine that they're just haphazardly smashed into a single unicode character "box"
23:48:24 <shachaf> Not in my font!
23:48:26 <nooodl_> that's even better :')
23:48:32 <shachaf> 2AA4 GREATER-THAN OVERLAPPING LESS-THAN [⪤]
23:48:37 <shachaf> Can you see that?
23:48:39 <nooodl_> what's a good font that supports all of these
23:48:40 <nooodl_> nope :/
23:48:47 <shachaf> They're >< overlapping.
23:48:57 <shachaf> I use the font called "Monospace"
23:49:02 <shachaf> "good font imo"
23:49:03 <nooodl_> me too
23:49:08 <oerjan> <Sgeo> @hoogle Int -> Char <-- tip: while ord and chr exist, i usually don't bother importing them and just use fromEnum and toEnum instead.
23:49:19 <shachaf> 2A94 GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL [⪔]
23:49:19 <nooodl_> however xchat2 does all kinds of stupid things
23:49:27 <Sgeo> meh
23:49:31 <shachaf> 2A84 GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT [⪄]
23:49:40 <kmc> polyspace
23:49:41 <monqy> 💩
23:49:50 <nooodl_> monqy: what's that...
23:50:03 <monqy> U+1F4A9
23:50:07 <Gregor> `cat /proc/version
23:50:09 <nooodl_> i'm installing a unicode font so i can fully enjoy all of these
23:50:10 <Sgeo> undefined is going to be so useful
23:50:11 <HackEgo> Linux version 3.7.0-umlbox (root@codu.org) (gcc version 4.4.5 (Debian 4.4.5-8) ) #1 Wed Feb 13 23:30:40 UTC 2013
23:50:12 <kmc> it's great how Unicode has this whole combining-characters mechanism but then they throw in 3865927348 pre-composed characters as well
23:50:17 <Sgeo> Nice to be able to compile incomplete code etc
23:50:19 <nooodl_> wow good monqy
23:50:19 <Gregor> `curl http://google.com/
23:50:19 <kmc> `gcc -V
23:50:21 <HackEgo> gcc: '-V' option must have argument
23:50:22 <HackEgo> ​ % Total % Received % Xferd Average Speed Time Time Time Current \ Dload Upload Total Spent Left Speed \
23:50:22 <kmc> `gcc -v
23:50:24 <HackEgo> Using built-in specs. \ Target: x86_64-linux-gnu \ Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecd
23:50:30 <Gregor> `run curl http://google.com/ 2> /dev/null
23:50:32 <HackEgo> ​<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> \ <TITLE>301 Moved</TITLE></HEAD><BODY> \ <H1>301 Moved</H1> \ The document has moved \ <A HREF="http://www.google.com/">here</A>.
23:50:33 <shachaf> 2A69 TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE [⩩]
23:50:37 <monqy> 😿
23:50:43 <Lumpio-> So how long to U+1672A RUBBER CHICKEN WITH A PULLEY IN THE MIDDLE
23:50:44 <kmc> Sgeo: did you see that GHC now has a feature to defer type errors to runtime
23:50:46 <Gregor> OK, HackEgo's network access should be considerably more reliable now.
23:50:54 <FreeFull> You want to have Symbola installed
23:50:55 <kmc> an ill-typed term is replaced with error "whatever"
23:50:58 <Sgeo> I'm still on GHC 6.something
23:51:03 <kmc> upgrade
23:51:05 <kmc> ye gads
23:51:11 <Sgeo> I'm on Ubuntu 10.10
23:51:16 <shachaf> it's had that feature for basically forever..........
23:51:19 <kmc> upgrade
23:51:19 <kmc> ye gads
23:51:23 <kmc> shachaf: o?
23:51:23 <FreeFull> `ghc --version`
23:51:23 <FreeFull> The Glorious Glasgow Haskell Compilation System, version 7.6.2
23:51:28 <HackEgo> ghc: unrecognised flags: --version` \ Usage: For basic information, try the `--help' option.
23:51:30 <shachaf> Well, I guess it's new.
23:51:35 <shachaf> OK, it's only since 7.6.
23:51:52 <Sgeo> What I really want is to not lose bindings I make when I :r
23:51:52 <shachaf> So since September.
23:51:54 <Sgeo> in GHCi
23:52:07 <kmc> eternal september
23:52:16 <FreeFull> What I want is a way to remove certain bindings in GHCi
23:52:22 <FreeFull> Without affecting others
23:52:26 <kmc> what i want is a god that stays dead, not plays dead
23:52:43 <Sgeo> :t fromMaybe
23:52:44 <lambdabot> a -> Maybe a -> a
23:52:59 <FreeFull> fromMaybe 3 Nothing
23:53:01 <shachaf> all i want is a monoid
23:53:03 <FreeFull> > fromMaybe 3 Nothing
23:53:05 <lambdabot> 3
23:53:18 <shachaf> what's an adjunction between monoids like
23:53:21 <shachaf> "really boring??"
23:53:49 <FreeFull> Is abs int, 0, + a monoid?
23:53:53 <shachaf> since basically every pair of functors between monoids is an adjunction, or what??
23:53:53 <kmc> shachaf: so easy
23:54:03 <shachaf> theegan
23:54:04 <kmc> FreeFull: what does "abs int" mean?
23:54:21 <FreeFull> kmc: Any negative value becomes positive before any other action is taken
23:54:41 <nooodl_> yeah isn't that Sum
23:54:42 <kmc> no, because 0 + (-5) ≠ -5
23:54:43 <oerjan> <Sgeo> Nice to be able to compile incomplete code etc <-- not in the platform yet i think, but newest ghc has some nice new features for this
23:54:51 <kmc> so 0 is not an identity
23:55:03 <FreeFull> Is it a semigroup?
23:55:18 <kmc> but the nonnegative integers under 0,+ are a monoid
23:55:21 <Sgeo> let inVal = fromMaybe -1 (fmap ord maybeIn)
23:55:28 <Sgeo> inVal should be an Int after that, right?
23:55:45 <Sgeo> :t fromMaybe -1 (fmap ord Nothing)
23:55:46 <lambdabot> (Num (Maybe Int -> a -> Maybe a -> a), Num (a -> Maybe a -> a)) => a -> Maybe a -> a
23:55:49 <Sgeo> wtf
23:56:07 <oerjan> <Gregor> OK, HackEgo's network access should be considerably more reliable now. <-- yay!
23:56:16 <FreeFull> :t fmap ord
23:56:18 <lambdabot> Functor f => f Char -> f Int
23:56:36 <kmc> :t fromMaybe -1
23:56:36 <shachaf> @ty compare `on` void
23:56:37 <Sgeo> :t fmap
23:56:38 <lambdabot> Num (a -> Maybe a -> a) => a -> Maybe a -> a
23:56:38 <lambdabot> (Functor f, Ord (f ())) => f a -> f a -> Ordering
23:56:38 <lambdabot> Functor f => (a -> b) -> f a -> f b
23:56:39 <kmc> :t fromMaybe (-1)
23:56:40 <lambdabot> Num a => Maybe a -> a
23:56:45 <FreeFull> > fromMaybe -1 (fmap ord Nothing)
23:56:47 <lambdabot> No instances for (GHC.Num.Num (a0 -> Data.Maybe.Maybe a0 -> a0),
23:56:47 <lambdabot> ...
23:56:56 <nooodl_> FreeFull: so mempty is 0, and mappend is (\x y -> abs x + abs y)?
23:56:57 <kmc> :t fromMaybe (-1) (fmap ord Nothing)
23:56:58 <lambdabot> Int
23:57:08 <FreeFull> XD
23:57:16 <Sgeo> Dear Haskell: Please switch to using _ for negatives
23:57:17 <FreeFull> nooodl_: Yes
23:57:25 -!- augur has quit (Remote host closed the connection).
23:57:27 <FreeFull> nooodl_: kmc already showed it isn't a monoid
23:57:38 <Sgeo> Yay! I get a different error now!
23:57:45 <nooodl_> oh, yeah
23:58:26 <oerjan> <kmc> what i want is a god that stays dead, not plays dead <-- are you sure he's playing dead, and that you weren't just not invited to the game
23:58:46 <kmc> :(
23:59:26 <nooodl_> http://en.wikipedia.org/wiki/Group_(mathematics)#Generalizations looks like it's indeed a semigroup. (hey, this table is cool)
23:59:40 <boily> oerjan: again with dead people. are you a zombie or something?
2013-02-14
00:00:52 <kmc> non-associative semicategory
00:01:26 <kmc> ok this is another term that i google and the only instance is me making the joke here before
00:01:39 <nooodl_> non-associative semicategories, like the word "apple"
00:01:51 <oerjan> <boily> oerjan: again with dead people. are you a zombie or something? <-- try bribing me with brains...
00:02:57 <boily> will brawn do? delicious, savoury brawn spread on hot and buttered toasts?
00:03:06 <oerjan> MAYBE
00:03:52 <olsner> brawn on bran over brain
00:04:17 <boily> the new BBBBLT sandwich.
00:05:39 <oerjan> can you add some brown cheese?
00:05:46 <oerjan> sort of seems to fit
00:05:53 <boily> what's brown cheese?
00:06:00 <oerjan> norwegian specialty
00:06:36 <oerjan> http://en.wikipedia.org/wiki/Brunost
00:07:06 <boily> I think I can find that somewhere.
00:07:14 <boily> oh well. time to go eat again.
00:07:15 <oerjan> compulsory part of our foreigner test kit, together with lutefisk
00:07:17 <olsner> http://en.wikipedia.org/wiki/File:Messmor.jpg this is disgusting
00:07:25 <boily> lutefisk will come after that.
00:07:27 -!- boily has quit (Quit: Poulet!).
00:07:30 -!- cuttlefish has quit (Remote host closed the connection).
00:08:03 <Sgeo> Hmm... I think I'm going to write some repetitive code for the sake of occasional TCO
00:08:34 <kmc> nooooo don't write repetitive code
00:08:38 <monqy> sgeo
00:08:39 <monqy> dont
00:08:50 <kmc> "what monqy said" (am i doing this right)
00:09:04 <Sgeo> I'm sure I could make it unrepetitive
00:09:15 <monqy> then why don't you
00:09:25 <Sgeo> It will still make the code slightly uglier
00:09:48 <monqy> what do you mean by tco anyway
00:09:51 <oerjan> Sgeo: is this like when interpreting the last element of a list? it rings a bell
00:10:14 <Sgeo> Yes
00:10:49 <Sgeo> If the last element that I'm interpreting is Compile, then there's no more work to be done save for that Compile, which starts interpreting the next element on the compiler stack
00:10:59 <monqy> maybe you should use a different data structure alt. not care because this is a silly proof of concept and not a production quality whatever the heck you're making
00:11:29 <oerjan> i think it came up similarly for ^ in an underload interpreter
00:11:37 <oerjan> or was it elliott's compiler
00:12:02 <Sgeo> Compile being the last element is going to be the most common case, I think
00:13:15 <Sgeo> I can make the rare case work by simply calling to the common case while protecting the state, I think
00:13:25 <nooodl_> what's sgeo doing
00:13:33 <oerjan> nooodl_: TCO'ing
00:13:52 <Sgeo> There is an StateT s m a thing that calls StateT s m a while reverting back afterwards, right?
00:14:28 <monqy> what do you mean by while reverting
00:14:55 <oerjan> :t mapStateT
00:14:57 <lambdabot> (m (a, s) -> n (b, s)) -> StateT s m a -> StateT s n b
00:15:08 <Sgeo> That is, something like
00:15:12 <oerjan> wrong mapping thing
00:15:26 <Sgeo> StateT s m a -> StateT s m a
00:15:39 <monqy> are you looking for something like `local`
00:15:43 <Sgeo> Possibly
00:15:50 <oerjan> local works on StateT?
00:15:50 <monqy> what's possibly
00:15:54 <monqy> no
00:16:33 <Sgeo> withStateT I think I saw which the name makes me think along those lines
00:16:54 <Sgeo> Wait, no
00:17:00 <monqy> how about you use precise words to describe what you want
00:17:22 <Sgeo> I want to take a stateful action and execute it and then undo the changes to the state
00:17:27 <monqy> ok
00:18:02 <Sgeo> Possibly get >>= runStateT /
00:18:03 <Sgeo> ?
00:18:18 <Sgeo> Erm, well, something along those lines
00:18:41 <oerjan> get >>= \s -> do v <- x; put s; return v
00:18:50 <monqy> i was just about to say that but with applicative notation
00:18:53 <monqy> "much prettier"
00:19:14 <oerjan> i'm not sure you can do it with only applicative notation
00:19:20 <monqy> i mean
00:19:31 <monqy> instead of just part of it
00:19:37 <oerjan> x <* put s i guess
00:19:40 <monqy> yes
00:19:49 <Sgeo> I also don't need the result
00:19:52 <monqy> ok
00:19:54 <Sgeo> I'm doing it for the side effects
00:19:57 <monqy> ok
00:20:34 <oerjan> anyway, the above should work
00:20:54 <monqy> no it won't!!!! keeping the result around ⇒ bloat ⇒ unacceptable
00:20:55 <oerjan> unless you need to catch throws inside x too
00:21:06 <oerjan> *from inside
00:21:16 <oerjan> and reset the state even then
00:26:07 <Sgeo> What's wrong with my runStateT solution?
00:28:08 <oerjan> <Phantom_Hoover> Halite, if you're interested in learning how to write interpreters, the standard first language to target is eodermdrome <-- nice try
00:29:30 <Phantom_Hoover> it's my master plan
00:29:36 <Phantom_Hoover> someday a savant will enter the channel
00:29:48 <Phantom_Hoover> and we will all be propelled into a glorious new dawn
00:32:58 <Sgeo> FUCK YOU KATE
00:33:24 <Sgeo> Typing on a line beginning with [] does NOT mean "indent me indent me please please please"
00:34:37 <Phantom_Hoover> oh dear, is it making your brainfuck code too unreadable
00:37:38 <Sgeo> It's turning my correct Haskell code into incorrect Haskell code
00:37:56 <Sgeo> :t runStateT
00:37:58 <lambdabot> StateT s m a -> s -> m (a, s)
00:39:38 <Sgeo> Blah, oerjan's way was easier
00:41:02 <Sgeo> My code, as it currently stands
00:41:06 <Sgeo> It compiles so far :) https://gist.github.com/Sgeo/fe54715fc61d1d98f4cc
00:42:02 <Phantom_Hoover> oh
00:42:10 <Phantom_Hoover> in that case; why are you using kate
00:42:49 <Sgeo> Because it wasn't irritating me until just then
00:42:59 <Sgeo> I can live with sometimes faulty code hilighting
00:43:27 <Phantom_Hoover> but there's a whole hierarchy of why here
00:43:34 <Phantom_Hoover> for instance: why are you using kde
00:44:21 <Sgeo> Because I like KDE? Also this system is a bit broken, in such a way that whether I'm using KDE or GNOME tends to vary on whether X works when I boot up
00:44:28 <Sgeo> Although X has been working, so
00:44:34 <kmc> ah linux
00:44:53 <kmc> i do recall switching to KDE because i fuckxed up my GNOME install
00:45:56 <Phantom_Hoover> i think the horrific brokenness that ultimately trashed my laptop started when i experimented briefly with kde
00:46:04 <Phantom_Hoover> it's a gateway drug
00:58:30 <Sgeo> I can feel this thing getting closer to completion
01:07:34 -!- augur_ has joined.
01:16:45 <Sgeo> I just need to remember how to parse parens
01:16:50 <Sgeo> Parens, my eternal nemesis
01:20:33 <Sgeo> Conceptually, the code I'm writing is the result of compiling ,+[-:,+]! by hand
01:21:13 <Sgeo> (EOF=-1)
01:25:20 <Sgeo> :t runWriter
01:25:22 <lambdabot> Writer w a -> (a, w)
01:26:34 <Sgeo> :t execState
01:26:36 <lambdabot> State s a -> s -> s
01:26:43 <Sgeo> I never rember exec vs eval
01:28:01 <Sgeo> I wonder if the State monad is good or bad for my globals addiction
01:28:19 <Sgeo> With it, one writes code that looks like it's accessing a global, but it's all confined
01:28:47 <Sgeo> On the one hand, it lets me write in that style, on the other, when I move into other languages...
01:29:41 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:36:01 <monqy> globals addition
01:37:41 <monqy> ****addiction
01:39:14 <shachaf> ★★★★hi monqy
01:40:54 <monqy> hi
01:41:15 <shachaf> @quote monqy
01:41:15 <lambdabot> Plugin `quote' failed with: getRandItem: empty list
01:42:19 <Sgeo> What might an interpreted Trustfuck look like/!
01:42:33 <monqy> good question
01:46:22 <kmc> i wonder if there are good generalizations of poker
01:47:06 <kmc> there's kolmogorov poker
01:47:21 <kmc> where instead of a fixed hand ranking, you can challenge someone's hand by producing a shorter program to generate your hand
01:47:39 <kmc> probably a p. shitty game tho
02:02:03 <kmc> Sgeo: most languages have some way to confine 'globals'
02:02:46 <kmc> i like how the Linux kernel shoehorns basically a fourth layer of scoping for static-storage variables into the C language
02:04:15 <kmc> 'static' vars in functions have static scope, 'static' vars at file level have file scope, non-'static' vars at file level are scoped to a whole kernel module
02:04:26 <kmc> but if you want it to be visible outside that kernel module you have to add EXPORT_SYMBOL(foo) as well
02:05:06 * Sgeo decides that the state monad is analogous to dynamic scoping
02:05:16 <Sgeo> With an implicit name
02:09:55 <kmc> and only one value
02:18:20 <oerjan> the reader monad with its local might fit even better.
02:23:22 <pikhq> kmc: That's one of those tricky linker tricks, isn't it?
02:24:13 <Sgeo> Maybe I should just have one very long line representing the bulk of the program
02:24:23 <Sgeo> Rather than a multitude
02:24:55 <monqy> what do you mean by that
02:25:12 <Sgeo> code = all the code in the program save for two lines
02:25:17 * Sgeo is deja vuing
02:25:39 <Sgeo> This program needs to ultimately output almost itself save for two lines
02:25:55 <Sgeo> And those two lines are different
02:26:13 <kmc> pikhq: well, the trick is just that the kernel has its own dynamic linker/loader for modules, and so gets to decide which symbols are dynamically resolvable
02:26:26 <kmc> i don't actually know if they implement this layer of scoping when stuff gets compiled in
02:26:39 <kmc> you might need unique names anyway for the compiled-in case
02:27:24 <pikhq> They probably do; as far as I know, they link each module into a single object and then vmlinuz is linked from those.
02:27:35 <kmc> mm
02:27:53 <pikhq> (binutils has some thing where you can link a bunch of objects into a single object file that's still not fully linked...)
02:30:39 <kmc> there's ld -r
02:33:56 <oerjan> Sgeo: do you know about explicit {} blocks in haskell?
02:34:16 <Sgeo> For things like do? Yes
02:34:32 <oerjan> so that you don't need to care about layout
02:35:15 <Sgeo> Some of these functions are on multiple lines. I don't see what's wrong with just outputting what's here
02:35:56 <oerjan> just trying to help in case getting indentation right trips you up
02:35:56 <Sgeo> Seriously, it's going to output a mostly-quine with two things changed, and those two things are not functions
02:36:02 <Sgeo> Ok
02:36:56 <Sgeo> > let a=1; b=2 in a+b
02:36:57 <lambdabot> 3
02:38:28 * Sgeo sets indentation to none
02:38:32 <Sgeo> Fuck you, fuck you, and fuck you Kat
02:38:34 <Sgeo> Kate
02:39:34 <coppro> lol
02:39:43 <kmc> an omnishambles
02:41:31 -!- copumpkin has quit (Read error: Connection reset by peer).
02:41:59 -!- copumpkin has joined.
02:44:16 -!- WeThePeople has joined.
02:45:49 <Sgeo> TYPING THE WORD IN DOES NOT MEAN INDENT INSANELY
02:46:09 <Sgeo> Nor does typing a comma
02:50:59 <Sgeo> Meh, my parser is not perfect at detecting unbalanced []
02:52:07 <Sgeo> It assumes [ have a ] at the end if there isn't, and ] followed by nothing might just be dropped
02:52:13 <Sgeo> Is this a big deal?
02:57:24 <oerjan> what i did in the fueue brainfuck interpreter was to keep a flag of whether i'm already inside a loop. then it's easy to discern those cases.
02:59:29 <Sgeo> :t runStateT
02:59:30 <oerjan> then in either case, exactly one of ] and eof are permitted to occur.
02:59:30 <lambdabot> StateT s m a -> s -> m (a, s)
03:02:07 <oerjan> mind you, in haskell it should still be simpler to use parsec.
03:02:25 <Sgeo> Probably >.>
03:02:46 <Sgeo> Right now I'm so close to getting this working
03:02:48 <Sgeo> fsvo working
03:06:24 <Sgeo> A 4,886 character line
03:06:32 <Sgeo> Maybe this is not the best idea for readability
03:07:11 <Sgeo> Oh crud
03:11:00 <monqy> hm?
03:11:08 <Sgeo> I forgot to write main
03:11:13 <Sgeo> At least, that what that crud was about
03:11:16 <Sgeo> Currently having another crud
03:11:21 <Sgeo> This program is going to be a PITA to edit
03:11:48 <monqy> what were you expecting
03:12:38 <Sgeo> Not to need to edit it very much
03:13:32 <shachaf> monqy: Something ... someone ... nothing.
03:13:42 <shachaf> Are you hungry?
03:13:50 <monqy> ????????????????
03:14:25 <shachaf> hi
03:14:46 <monqy> hi
03:14:49 <shachaf> did you ever explain comma categories
03:15:11 <shachaf> or was it just that "limited version" of them
03:15:31 <monqy> i explained the specific instance of them you want for free objects...for a more general explanation you'd be better served just looking them up
03:15:54 <shachaf> good point
03:16:18 <shachaf> mr.hird and i did a few "adjunctions" to get "free functors´
03:16:23 <shachaf> it was p. great
03:16:39 <monqy> alrite
03:16:50 <Sgeo> https://gist.github.com/Sgeo/fe54715fc61d1d98f4cc
03:16:54 <Sgeo> Still need to test it
03:17:11 <shachaf> monqy: you know how you can make the "Cont monad" out of adjunction of (-> r) -| (-> r)?
03:17:25 <monqy> probably you've said that? maybe??? idk
03:17:34 <shachaf> going into Haskᵒᵖ
03:17:44 <shachaf> monqy: its "pretty nifty"
03:18:10 <shachaf> monqy: have you ever noticed that Cont'sjoin = contramap (Cont'sreturn)??
03:19:04 <Sgeo> primitive.o: In function `rQf_info':
03:19:04 <Sgeo> (.text+0xa74): undefined reference to `mtlzm1zi1zi0zi2_ControlziMonadziTrans_zdfMonadIOIO_closure'
03:19:07 <Sgeo> wat
03:19:27 <shachaf> mtl-1.1.0.2_Control.Monad.Trans_$fMonadIOIO_closure
03:19:27 <shachaf> hth
03:19:33 <monqy> probably you did something bad
03:21:05 <Sgeo> Not only that, I tried to mess around in GHCi a bit
03:21:06 <Sgeo> There's a big
03:21:08 <Sgeo> bug
03:21:36 <oerjan> ouch
03:21:49 <Sgeo> That big was a typo for bug
03:21:52 <shachaf> a big
03:21:53 <shachaf> bug?
03:21:57 <shachaf> that soudns dangerous
03:22:10 <shachaf> so big that you have to pause after saying big
03:22:26 <Sgeo> As soo as it saw , as input it output
03:22:34 <shachaf> i've written some pretty terrible bugs
03:22:40 <shachaf> but i've never written a big
03:22:41 <shachaf> bug
03:24:34 -!- impomatic has quit (Read error: Connection reset by peer).
03:28:10 <Sgeo> There's no bug. I'm just an idiot.
03:28:29 <oerjan> yay!
03:29:12 <Sgeo> Well, there's still a bug
03:29:17 <Sgeo> Just not what I was thinking
03:29:30 -!- nooodl_ has quit (Ping timeout: 260 seconds).
03:30:01 <Sgeo> I think.
03:30:07 -!- oklopol has quit (Read error: Connection reset by peer).
03:30:27 -!- oklopol has joined.
03:30:43 <shachaf> In this case https://plus.google.com/107913314994758123748/posts/3adHiA9yq9D
03:30:53 <shachaf> elliott: We should get around to doing Kan extensions.
03:31:29 <shachaf> Hmm, wrong channel.
03:31:45 <shachaf> I guess elliott is in both channels.
03:32:14 <oerjan> he's been idle for quite a while.
03:32:53 <shachaf> I know.
03:39:01 <Sgeo> Ok, so one problem: Input is broken
03:39:18 <shachaf> Problem two: Output is cobroken.
03:39:31 <Sgeo> I think loops are broken too
03:41:11 <Sgeo> if eof then Just <$> getChar else return Nothing
03:41:14 <Sgeo> derp
03:41:16 <shachaf> ƪ
03:41:35 <oerjan> oops
03:41:58 <kmc> time of check time of use!
03:42:56 <Sgeo> Um. I guess that's a theoretical problem with the isEOF vs my original catch-based way, but that's not the large bug
03:44:13 <oerjan> :t \f -> return True >>= f . guard
03:44:15 <lambdabot> (Monad m, MonadPlus m1) => (m1 () -> m b) -> m b
03:44:34 <Sgeo> Anyways, now to see waht the deal with loops is
03:44:35 <oerjan> :t \f g -> return True >>= maybe f g . guard
03:44:36 <lambdabot> Monad m => m b -> (() -> m b) -> m b
03:44:53 <oerjan> :t \f g -> return True >>= fromMaybe g . guard
03:44:55 <lambdabot> Couldn't match expected type `m0 b0' with actual type `()'
03:44:55 <lambdabot> Expected type: Bool -> Maybe (m0 b0)
03:44:55 <lambdabot> Actual type: Bool -> Maybe ()
03:44:59 <oerjan> :t \f g -> return True >>= fromMaybe f g . guard
03:45:01 <lambdabot> (Monad m, MonadPlus m1) => (m1 () -> m b) -> Maybe (m1 () -> m b) -> m b
03:45:57 <oerjan> :t \x -> guard :: Maybe ()
03:45:58 <lambdabot> Couldn't match expected type `Maybe ()'
03:45:58 <lambdabot> with actual type `Bool -> m0 ()'
03:45:58 <lambdabot> In the expression: guard :: Maybe ()
03:46:02 <oerjan> :t \x -> guard x :: Maybe ()
03:46:04 <lambdabot> Bool -> Maybe ()
03:46:17 <oerjan> oh
03:47:10 <Sgeo> Ok, so loops are broken somehow
03:49:01 <Sgeo> Or maybe output's broken, wat
03:49:30 <oerjan> the primTranslate cases for [] look fine to me
03:50:55 * Sgeo is assuming the problem is in interpret'
03:51:01 <Sgeo> I'm testing things out by changing program
03:56:59 -!- pikhq has quit (Read error: Connection reset by peer).
03:57:00 <Sgeo> Well, that's one problem
03:57:06 <Sgeo> Out doesn't continue interpretation
03:57:16 -!- pikhq has joined.
04:04:40 -!- Arc_Koen has quit (Quit: Arc_Koen).
04:05:52 <Sgeo> I think some of this is me failiing at Brainfuck
04:05:55 <Sgeo> failing
04:07:02 -!- copumpkin has quit (Read error: Connection reset by peer).
04:07:19 -!- copumpkin has joined.
04:08:13 <shachaf> kmc: http://www.theproofistrivial.com/
04:09:27 <oerjan> "Just biject it to a trivial algebra whose elements are semi-decidable posets", sounds quite trivial.
04:09:52 <Sgeo> I just successfully compiled and ran a trivial Trustfuck program
04:10:20 <oerjan> excellent. now we can take over the world.
04:10:37 <Sgeo> The gist is now updated with the latest version
04:10:57 <kmc> very good
04:11:03 <coppro> http://www.youtube.com/watch?v=KmK0bZl4ILM
04:11:05 <coppro> truth
04:14:42 <Sgeo> Ok, so my next test will be this:
04:15:06 <Sgeo> Creating a compiler for a variation of Trustfuck in which each character maps to the character above it
04:15:14 <Sgeo> And then writing a cat program in that dialect
04:15:58 <Sgeo> Erm
04:16:05 <Sgeo> Easiest thing to do, character below it
04:16:27 <Sgeo> > inc
04:16:29 <lambdabot> Not in scope: `inc'
04:16:29 <lambdabot> Perhaps you meant one of these:
04:16:29 <lambdabot> `int' (imported fro...
04:16:35 <oerjan> > succ
04:16:37 <lambdabot> No instance for (GHC.Show.Show (a0 -> a0))
04:16:37 <lambdabot> arising from a use of `M77076...
04:16:38 <Sgeo> ty
04:18:04 <Sgeo> > map pred ",+[-.,+]"
04:18:06 <lambdabot> "+*Z,-+*\\"
04:19:44 <Sgeo> fuck
04:21:02 <Sgeo> I'm an idiot who can barely remember how to use his own language
04:23:45 <Sgeo> module `main:Main' is defined in multiple files: predtest.hs
04:23:46 <Sgeo> predtest.hs
04:23:55 <Sgeo> Oh
04:24:14 <Sgeo> It works!
04:24:23 <Sgeo> I guess there are some things currently untested
04:31:56 <Sgeo> oerjan, ais523 if you logread, anyone else? Feel free to play with it
04:38:16 <coppro> I'm far too lazy to even figure out what trustfuck is
04:39:47 <monqy> sgeo's brainfuck derivative
04:46:34 <Sgeo> coppro, shall I attempt to explain it?
04:55:02 <oerjan> "\35\52\56\63\48"
04:55:06 <oerjan> > "\35\52\56\63\48"
04:55:08 <lambdabot> "#48?0"
04:58:03 <Sgeo> I could (should?) be storing the unparsed versions rather than the parsed versions, I think
04:58:10 <Sgeo> Take up less space in the compiled program
04:58:25 <Sgeo> Might be important for trying to compile that large game
05:07:29 <Sgeo> Hmm.
05:07:43 <Sgeo> A Trustfuck compiler targetting x86 might not require writing x86 code directly
05:13:12 <Sgeo> Just need to write C code that alters its memory then retrieves all of its ...
05:21:46 -!- dessos has quit (Ping timeout: 240 seconds).
05:34:16 -!- WeThePeople has quit (Quit: Leaving).
05:35:51 <oerjan> > '\59'
05:35:53 <lambdabot> ';'
05:45:53 <Sgeo> > '\10'
05:45:55 <lambdabot> '\n'
05:46:11 <Sgeo> > '\64'
05:46:13 <lambdabot> '@'
05:46:15 <Sgeo> > '\65'
05:46:17 <lambdabot> 'A'
05:46:19 <Sgeo> Ok
05:46:23 * Sgeo is derptastic today
05:47:53 <oerjan> okay
06:03:51 -!- hogeyui has quit (Ping timeout: 276 seconds).
06:20:41 -!- DHeadshot has quit (Read error: Connection reset by peer).
06:20:47 -!- DH____ has joined.
06:21:20 -!- noam has quit (Read error: Connection reset by peer).
06:21:45 -!- noam has joined.
06:36:27 -!- hogeyui has joined.
06:54:10 <oerjan> > popCount (65::Int)
06:54:11 <lambdabot> 2
06:55:16 <shachaf> @ty popCount
06:55:18 <lambdabot> Bits a => a -> Int
06:55:37 <shachaf> I guess it's in Bits?
06:55:40 <shachaf> Everything is in Bits.
06:55:41 <oerjan> yeah
06:55:56 <shachaf> @ty popSixSquishUhuhCiceroLipschitz
06:55:58 <lambdabot> Not in scope: `popSixSquishUhuhCiceroLipschitz'
06:56:02 <oerjan> the ridiculous thing is, they have this function but none to find the highest set bit...
06:56:37 <shachaf> There isn't one for lowest set bit either, right?
06:56:52 <oerjan> not afaict
06:56:54 * shachaf would like to take this moment to mention that de Bruijn indices are the future.
06:57:01 <oerjan> OKAY
06:57:24 <shachaf> > toListOf bits 123
06:57:27 <lambdabot> [True,True,False,True,True,True,True,False,False,False,False,False,False,Fa...
06:57:35 <shachaf> good function
06:57:46 <oerjan> :t bits
06:57:47 <lambdabot> (Applicative f, Bits b, Indexable Int p) => p Bool (f Bool) -> b -> f b
06:58:27 <pikhq> Hmm. gzip in Haskell is probably fairly easy. Funny.
07:07:31 -!- Halite has joined.
07:08:42 <Halite> hai
07:08:52 <shachaf> `welcome Halite, pikhq
07:08:58 <HackEgo> Halite,: pikhq: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
07:09:11 <Halite> `welcome ChanServ
07:09:13 <HackEgo> ChanServ: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
07:09:16 <Halite> lol
07:11:41 <monqy> hello
07:12:19 <shachaf> monqy:
07:12:40 <shachaf> (btw that was 0006 ACKNOWLEDGE)
07:14:19 <monqy> ok
07:16:10 -!- Halite has quit (Changing host).
07:16:10 -!- Halite has joined.
07:17:01 <Halite> I'm trying to crash HackEgo in the other channel by sending a WHILE loop.
07:18:57 <Halite> HackEgo, die
07:19:32 <monqy> hackego's feelings????
07:20:51 <shachaf> monqy: good point in the other channel
07:21:30 <monqy> thachaf
07:21:31 <Sgeo> HackEgo is set up with version control. Anything happens, it can be revertred
07:21:37 <Sgeo> `ls
07:21:39 <HackEgo> ​= 0 \ bin \ brainfuck.fu \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ fueue.c \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ sudo \ %sudo \ test \ wisdom \ zalgo.hs
07:21:41 <shachaf> you're wonqy
07:21:46 <Sgeo> `run rm canary
07:21:49 <HackEgo> No output.
07:21:57 <Sgeo> `ls
07:22:01 <HackEgo> ​= 0 \ bin \ brainfuck.fu \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ fueue.c \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ sudo \ %sudo \ test \ wisdom \ zalgo.hs
07:22:12 <Sgeo> Wait, what's = 0 ?
07:22:22 <oerjan> `file = 0
07:22:25 <HackEgo> ​= 0: ERROR: cannot open `= 0' (No such file or directory)
07:22:27 <shachaf> `cat = 0
07:22:29 <HackEgo> No output.
07:22:32 <oerjan> `file = 0
07:22:34 <HackEgo> ​= 0 : empty
07:22:43 <oerjan> `rm = 0
07:22:46 <HackEgo> No output.
07:23:00 <Sgeo> `file canary
07:23:02 -!- HackEgo has quit (Remote host closed the connection).
07:23:05 <Sgeo> uh
07:23:22 <oerjan> someone apparently succeeded!
07:23:45 <Sgeo> file canary shouldn't kill it, right?
07:23:46 <Sgeo> >.>
07:24:07 <oerjan> oh hm
07:24:19 <oerjan> i think maybe i did
07:24:54 <oerjan> iirc HackEgo isn't supposed to keep empty files, so maybe deleting one breaks things
07:26:54 <oerjan> weird it claims it was added by coppro's `addquote http://codu.org/projects/hackbot/fshg/index.cgi/file/36a0f4a7116c/%3D%200%20
07:28:00 -!- epicmonkey has joined.
07:29:52 <oerjan> oh no it existed before
07:31:31 <oerjan> been there a while it seems
07:32:52 <Halite> can HackEgo rejoin
07:33:25 <oerjan> only Gregor can make it
07:33:40 <oerjan> he seems idle at the moment
07:34:48 <oerjan> he might be sleeping at this time
07:34:50 <Halite> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
07:34:53 <Halite> Gregor,
07:35:03 <Halite> @time Gregor
07:35:05 <lambdabot> Local time for Gregor is Thu Feb 14 02:35:04
07:35:05 <Sgeo> Halite, play with Trustfuck for a while if you're bored
07:35:18 <Halite> Sgeo, please give a TF Interpreter
07:35:26 <Sgeo> There's no interpreter, just a compiler
07:35:43 <Sgeo> http://esolangs.org/wiki/Trustfuck
07:36:27 <Sgeo> https://gist.github.com/Sgeo/fe54715fc61d1d98f4cc is a Haskell file. Compile it with GHC. Then feed it Trustfuck as input, it will output some Haskell code
07:36:47 <Sgeo> Compile that Haskell code, and run the result, and that's the Trustfuck program
07:37:11 <Sgeo> So, let's say I have somecode.tf
07:37:13 <Sgeo> I might do
07:37:32 <Sgeo> ./primitive < somecode.tf > somecode.hs
07:37:41 <Sgeo> ghc --make somecode.hs -o somecode
07:37:43 <Sgeo> ./somecode
07:38:34 -!- epicmonkey has quit (Read error: Operation timed out).
07:38:35 -!- DH____ has quit (Ping timeout: 260 seconds).
07:40:09 <Sgeo> Incidentally, here's the Trustfuck compiler written in Trustfuck
07:40:09 <Sgeo> ,+[-:,+]!
07:40:36 <Sgeo> The Haskell code can be viewed as being basically that, hand-compiled
08:01:25 <oerjan> :t _head
08:01:27 <lambdabot> Cons (->) f s s a a => LensLike' f s a
08:06:53 -!- carado has joined.
08:10:16 <oerjan> > ([], [1,2,3]) ^? (_1 . _head <|> _2 . _head)
08:10:18 <lambdabot> No instance for (Control.Applicative.Alternative
08:10:19 <lambdabot> ((->)
08:10:19 <lambdabot> ...
08:10:26 <oerjan> > ([], [1,2,3]) ^? (_1 . _head)
08:10:30 <lambdabot> Nothing
08:24:48 <oerjan> > ([], [1,2,3]) ^? (both . _head)
08:24:51 <lambdabot> Just 1
08:38:36 -!- sebbu2 has joined.
08:38:36 -!- sebbu2 has quit (Changing host).
08:38:36 -!- sebbu2 has joined.
08:39:46 -!- sebbu has quit (Ping timeout: 272 seconds).
08:42:31 -!- azaq23 has joined.
08:42:41 -!- azaq23 has quit (Max SendQ exceeded).
08:43:05 -!- azaq23 has joined.
08:52:12 <oerjan> :t zoom
08:52:13 <lambdabot> Zoom m n s t => LensLike' (Control.Lens.Internal.Zoom.Zoomed m c) t s -> m c -> n c
08:56:10 <oerjan> :t (^~)
08:56:13 <lambdabot> (Integral e, Num a) => ASetter s t a a -> e -> s -> t
08:56:24 <oerjan> oops
08:56:29 -!- epicmonkey has joined.
08:56:56 <oerjan> :T over
08:57:00 <oerjan> :t over
08:57:02 <lambdabot> Profunctor p => Setting p s t a b -> p a b -> s -> t
09:02:12 -!- oerjan has quit (Quit: leaving).
09:03:27 -!- Taneb has joined.
09:10:07 -!- sebbu2 has changed nick to sebbu.
09:17:14 -!- nooodl_ has joined.
09:37:34 <Taneb> "Bueue"!?
09:56:10 -!- md_5 has quit (Remote host closed the connection).
09:56:40 -!- md_5- has joined.
09:58:14 -!- Taneb has quit (Ping timeout: 256 seconds).
09:58:56 -!- Taneb has joined.
10:16:07 -!- monqy has quit (Quit: hello).
10:16:55 -!- mroman has joined.
10:24:02 -!- DHeadshot has joined.
10:47:35 -!- sebbu has quit (Ping timeout: 260 seconds).
10:48:29 -!- Halite has quit (Remote host closed the connection).
10:51:19 -!- sebbu has joined.
10:51:19 -!- sebbu has quit (Changing host).
10:51:19 -!- sebbu has joined.
10:53:30 -!- copumpkin has quit (Ping timeout: 264 seconds).
10:54:07 -!- copumpkin has joined.
11:01:07 -!- sebbu2 has joined.
11:01:07 -!- sebbu2 has quit (Changing host).
11:01:07 -!- sebbu2 has joined.
11:02:45 -!- sebbu has quit (Ping timeout: 260 seconds).
11:07:42 -!- HackEgo has joined.
11:20:11 -!- md_5- has changed nick to md_5.
11:20:14 -!- aloril has quit (Ping timeout: 276 seconds).
11:24:54 -!- ncultures has joined.
11:24:55 -!- ncultures has left.
11:25:45 <FreeFull> :t _head
11:25:47 <lambdabot> Cons (->) f s s a a => LensLike' f s a
11:27:02 <FreeFull> Is (.).(.) infix or prefix?
11:28:40 -!- ncultures has joined.
11:28:40 -!- ncultures has left.
11:29:13 <Taneb> Prefix
11:29:24 <Taneb> :t (.).(.)
11:29:26 <lambdabot> (Functor f1, Functor f) => (a -> b) -> f (f1 a) -> f (f1 b)
11:29:45 <Taneb> Actually, it's nigh-unusable unless you put brackets around it
11:30:06 <Taneb> > ((.).(.)$(+1)) (1, [1,2,3])
11:30:09 <lambdabot> (1,[2,3,4])
11:33:08 -!- sebbu2 has changed nick to sebbu.
11:34:02 -!- aloril has joined.
11:56:42 -!- oonbotti has quit (Remote host closed the connection).
11:56:57 -!- oonbotti has joined.
11:57:56 -!- DHeadshot has quit (Ping timeout: 245 seconds).
11:58:13 -!- Lumpio- has quit (Ping timeout: 246 seconds).
12:10:51 -!- nooga has joined.
12:13:30 -!- carado has quit (Read error: Connection timed out).
12:16:49 -!- sebbu2 has joined.
12:17:05 -!- sebbu2 has quit (Changing host).
12:17:05 -!- sebbu2 has joined.
12:18:03 -!- sebbu has quit (Ping timeout: 245 seconds).
12:22:17 <nortti> http://mobile.osnews.com/story.php/26784/Opera-to-switch-desktop-mobile-browsers-to-WebKit/
12:22:54 <mroman> what?
12:23:59 <mroman> I'm a little bit disappointed right now, but I get their point.
12:26:12 <nortti> I really hope they open source presto
12:26:18 <nortti> but probably not
12:34:07 <nooga> uh
12:34:14 <nooga> what?
12:35:51 <Taneb> Help I now have two libraries on Hackage
12:35:56 -!- Lumpio- has joined.
12:36:32 <shachaf> Taneb: base 4.5.*?
12:36:39 <shachaf> Thanks for hating GHC 7.6 users.
12:36:46 <shachaf> Also I can't look at the actual code.
12:36:47 <Taneb> shachaf, that's me being sleepy when checking the depends
12:38:01 <Taneb> It would actually work in base 3.0.3.1
12:38:28 <shachaf> Taneb: Does your package have free groups?
12:38:42 <Taneb> Alas, no
12:38:47 <shachaf> :-(
12:38:50 <shachaf> I want free groups!
12:41:38 <Taneb> shachaf, the dependency is less stupid now
12:42:13 <Taneb> Although free groups are still missing
12:42:52 <shachaf> And I still can't see the code.
12:43:06 <Taneb> (is that my fault, or Hackage's?)
12:43:23 <Taneb> Anyway, it's just a class Monoid m => Group m where invert :: m -> m
12:43:26 <shachaf> Taneb: "<5"?
12:43:28 <Taneb> Plus a few instances
12:43:30 <shachaf> Are you sure about that?
12:43:34 <Taneb> REASONABLY
12:43:55 <shachaf> Hmm, I guess it works.
12:45:29 <Taneb> It's got instance Num a => Group (Sum a); instance Fractional a => Group (Product a); instance Group a => Group (Dual a)
12:45:37 <Taneb> And all the tuple ones that Data.Monoid has
12:47:02 <Taneb> There's nothing that special
12:47:07 <Taneb> Free groups'd be harder
12:47:32 <shachaf> Is newtype Foo a = Foo { runFoo :: forall g. (a -> g) -> g } equivalent to a free group?
12:48:15 <Taneb> ...I don't think so
12:48:28 <Taneb> It's equivalent to a
12:49:15 <shachaf> Er.
12:49:18 <shachaf> Group g =>
12:50:47 <Taneb> Let me think about that for a bit
12:54:19 <Taneb> It is a group
13:05:09 <nooodl_> > (Product <> Product) 7
13:05:11 <lambdabot> Product {getProduct = 49}
13:05:14 <nooodl_> neat
13:06:26 <Taneb> Huh
13:06:39 <Taneb> :t getProduct . Product <> Product
13:06:41 <lambdabot> Occurs check: cannot construct the infinite type: b0 = Product b0
13:06:41 <lambdabot> Expected type: b0 -> b0
13:06:41 <lambdabot> Actual type: b0 -> Product b0
13:06:46 <Taneb> :t getProduct . (Product <> Product)
13:06:48 <lambdabot> Num b => b -> b
13:07:41 <nooodl_> instance Monoid b => Monoid (a -> b) where
13:07:41 <nooodl_> mempty _ = mempty
13:07:41 <nooodl_> mappend f g x = f x `mappend` g x
13:08:37 <nooodl_> > getSum $ (Sum <> Sum) 10
13:08:39 <lambdabot> 20
13:08:42 <shachaf> nooodl_: Can you come up with a free group type for me, please?
13:09:39 <nooodl_> i just had to up what a free group is so probably i won't be of much help
13:10:48 <nooodl_> hmmmm
13:12:18 <nooodl_> this sounds like it'd be impossible to define as a type
13:12:37 <shachaf> Haskell is bad at things like commutativity and invertibility. :-(
13:14:46 <nooodl_> a free group can have multiple free generating sets, right
13:15:05 <shachaf> ?
13:15:07 <nooodl_> like for (Z,+) you have could have S = {1} or S = {-1}
13:15:27 <nooodl_> (i'm reading http://en.wikipedia.org/wiki/Free_group because i'm bad)
13:15:33 <nooodl_> (at group theory)
13:16:24 <shachaf> Hmm. I'm not sure what you mean.
13:16:40 <shachaf> Ah, you're going in the other way.
13:17:00 <shachaf> I mean: Given some generating set S, give me a free group over that set.
13:17:12 <nooodl_> ohh i see
13:17:28 <shachaf> [] is a free monoid in a similar way.
13:17:30 <nooodl_> (also: given an operator?)
13:17:35 <shachaf> No, you make the operator.
13:17:49 <Taneb> What shachaf wrote earlier is a group
13:18:17 <shachaf> Given the set S = {A,B,C}, you can give me the free monoid: (MS,(++),[]), where MS = {[], [A], [B], [C], [A,A], ,[C,A,B,A], ...}
13:18:32 <shachaf> Note that you pick your own operation here. What the elements actually are doesn't really matter.
13:18:43 <Taneb> But it needs Ranks2Types
13:18:53 <shachaf> Taneb: Just PolymorphicComponents!!!!!!!!!!
13:19:04 <Taneb> It needs some extension
13:19:10 <shachaf> Sure.
13:19:10 <nooodl_> so that type would be... FreeGroup S
13:19:16 <shachaf> nooodl_: You can look at Nat as a free monoid over some singleton generating set.
13:19:22 <shachaf> That's the same as saying that [()] ~ Nat
13:19:38 <shachaf> Where [] = 0, [()] = 1, and so on.
13:19:41 <shachaf> (++) becomes addition.
13:19:50 <nooodl_> right
13:20:07 <shachaf> Now, if you define data Unit = Unit and data Younit = Younit, [Unit] and [Younit] are equivalent.
13:21:42 <shachaf> nooodl_: Anyway, a free group would be similar, except you also have inverses.
13:22:09 <shachaf> So if your generating set is {A, B, C}, then you'd make up new elements A^-1, B^-1, C^-1
13:22:25 <shachaf> It doesn't matter what A,B,C actually were originally. You're making up inverses for them.
13:23:23 <shachaf> Then you can take "" (the empty word) as an element of Freegroup S, and also A, AB, AAA, ABA^-1, etc.
13:23:35 <shachaf> But ABB^-1A isn't an element.
13:23:40 <shachaf> Or rather it's equivalent to AA.
13:23:50 <shachaf> (Note: That means [A, B, B^-1, A])
13:24:17 <nooodl_> let me guess, ABB⁻¹A⁻¹ is equal to ""?
13:24:33 <shachaf> Right.
13:25:09 <shachaf> So you've made up a group structure from any set at all.
13:25:18 <shachaf> And in a sense this is the "minimal" group structure you can make.
13:25:41 <shachaf> (For example, this is also a monoid -- just forget about the invertibility -- but it's not a "minimal" monoid, because it has all these extra elements.)
13:31:10 <Taneb> For groups I took a leaf from edwardk's book and inlined things so that the core is shorter
13:31:33 <Taneb> However, I did not experiment with eta-expansion
13:51:24 <Taneb> shachaf, your Group seems to be rather useless
13:51:30 <Taneb> No, wait
13:51:31 <Taneb> Nevermind
13:52:50 <FreeFull> shachaf: A^-1 would be {B, C} right?
13:53:05 <FreeFull> Or not?
13:53:34 <FreeFull> Oh wait, it wouldn't be, you're talking about something else
13:55:08 <FreeFull> Groups
13:58:09 -!- sebbu2 has changed nick to sebbu.
14:00:56 <FreeFull> Haskell and GHC don't seem to come with stuff for groups, just for monoids
14:01:44 <Taneb> That's why I wrote a small library in 5 minutes and uploaded it to Hackage
14:01:49 <Taneb> http://hackage.haskell.org/package/groups-0.1.0.1
14:02:28 <FreeFull> class (Monoid a) => Group a where { invert :: a -> a }
14:02:33 <FreeFull> Right?
14:02:59 <Taneb> Yeah
14:03:07 <Taneb> That's pretty much exactly my definition
14:03:39 <Taneb> The main difference is formatting and I used the letter 'm' rather than 'a'
14:05:43 <Taneb> And I still haven't decided whether to go to the UV party or not
14:11:13 -!- Arc_Koen has joined.
14:15:33 <FreeFull> Taneb: You could make Group instances for Ordering and Maybe a
14:15:49 <Taneb> ...no you can't
14:16:22 <Taneb> > mempty :: Maybe String
14:16:24 <lambdabot> Nothing
14:16:38 <Taneb> Give me a value x such that x <> Just "hello" is Nothing
14:17:04 <FreeFull> Oh, you're right
14:17:29 <Taneb> Believe me, I actually double-checked those
14:17:36 <Taneb> You can't make an instance for Any or All either
14:17:56 <FreeFull> You could make an instance for Xor possibly?
14:18:13 <FreeFull> If there was a Xor
14:18:34 <Taneb> Possibly
14:19:20 <Taneb> invert = id
14:19:58 -!- boily has joined.
14:20:09 <FreeFull> Would have to define the Xor monoid first though
14:20:09 -!- carado has joined.
14:20:39 <Taneb> Yeah
14:21:05 <Taneb> I don't want that to be on my head, though
14:22:02 <FreeFull> newtype Xor = Xor { getXor :: Bool } instance Monoid Xor where { mempty = False; mconcat = (/=) } instance Group Xor where { invert = id }
14:22:29 <FreeFull> Looks good?
14:23:56 <Taneb> ...almost
14:24:05 <Slereah_> Xor always makes me thing of some alien overlord
14:24:21 <Slereah_> THE ALMIGHTY XOR, MASTER OF THE LOGIC GATE
14:24:33 <Taneb> newtype Xor = Xor {getXor :: Bool} deriving (Eq); instance Monoid Xor where {mempty = Xor False; mconcat = (/=) } instance Group Xor where {invert = id}
14:24:42 <FreeFull> Xor is weaker than Nand and Nor though
14:24:57 <FreeFull> Taneb: Oh right
14:25:01 <FreeFull> Good catch
14:25:12 <Slereah_> That's why Xor needs his henchman, Not
14:25:45 <mroman> Don't be true or i'll invert you.
14:27:10 <Taneb> I don't think Xor + Not is universal
14:27:13 <Taneb> But I am not sure
14:27:22 <Slereah_> I dunno either
14:27:49 <Slereah_> But I needed to act quickly!
14:27:51 <Slereah_> For humor timing
14:28:14 <FreeFull> You can make Not using Xor though
14:28:23 <Taneb> Hmm, yes
14:28:24 <FreeFull> not = xor 1
14:28:25 <Slereah_> Then Xor and ->
14:28:36 <Taneb> And as Xor isn't universal, neither is Xor + Not
14:28:36 <FreeFull> Well, you need both xor and 1
14:28:40 <Slereah_> How do you pronounce -> in programming?
14:28:42 <Taneb> 1 is free
14:28:44 <Taneb> "to"
14:28:47 <FreeFull> And you can't make a 1 using xor
14:29:42 <FreeFull> Well, by 1 I mean True
14:30:00 <FreeFull> Too used to thinking bitwise
14:30:02 <Taneb> I understood that
14:30:22 <Taneb> Hmm
14:30:46 <Taneb> I think XNOR is as universal as XOR
14:30:53 <Taneb> Because with XNOR you can't get 0
14:34:17 <mroman> afaik NAND,NOR,XOR,XNOR can each cover all logical operations.
14:34:17 -!- Taneb has quit (Quit: Leaving).
14:35:03 -!- Taneb has joined.
14:35:04 -!- Nisstyre has quit (Ping timeout: 272 seconds).
14:36:04 <Slereah_> I think it's only nand and nor?
14:47:45 <mroman> *XOR&XNOR
14:49:13 -!- Nisstyre has joined.
14:49:56 <Taneb> Yeah, wikipedia says XOR isn't universal
14:50:18 <Slereah_> FNORD
14:50:20 <Taneb> XOR + implication is
14:50:27 <Taneb> FNORD is universal, of course
14:50:36 <Slereah_> Implication + NOT is so it's not too surprising
14:50:58 -!- mekeor has joined.
14:54:25 -!- azaq23 has quit (Ping timeout: 248 seconds).
15:02:01 -!- dessos has joined.
15:03:27 -!- upgrayeddd has joined.
15:04:43 <upgrayeddd> more than a decade of logs, wow
15:04:54 <Taneb> `welcome upgrayeddd
15:04:58 <HackEgo> upgrayeddd: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
15:05:26 <upgrayeddd> thank you Taneb
15:05:29 <fizzie> To be honest, the pre-2005 days are pretty quiet.
15:05:58 <Slereah_> Not even people coming in to get magic advice
15:05:59 <Slereah_> ?
15:07:16 <fizzie> Slereah_: Well, I mean, http://codu.org/logs/log/_esoteric/2003-01-19 looks like a pretty typical day to me.
15:07:30 -!- Phantom_Hoover has joined.
15:07:51 <Taneb> upgrayeddd, so, what brings you to the channel
15:08:19 <Slereah_> heh
15:08:24 <Slereah_> I forget when I came in
15:08:26 <Slereah_> 2007 maybe?
15:08:36 <upgrayeddd> Taneb: jconn said there was an open session here and I was curious
15:12:22 <Gregor> "Open session"?
15:12:42 <Sgeo> jconn apparently stores a sandbox for each person
15:12:44 <Sgeo> jconn, ls
15:12:45 <Sgeo> jconn, ls:
15:12:46 <jconn> Sgeo, open sessions are: Sgeo,#jsoftware Taneb,#esoteric Okasu,#jsoftware Sgeo,#esoteric crassus,#e3b solemn,#jsoftware fftw,#jsoftware b_jonas,#jsoftware Elision,#jsoftware
15:12:46 <jconn> Sgeo, done list
15:14:32 <Sgeo> Let's trick shachaf into using the bot!
15:23:36 -!- oerjan has joined.
15:25:08 -!- impomatic has joined.
15:26:58 <Taneb> What bot
15:27:29 -!- cuttlefish has joined.
15:28:14 <Sgeo> Taneb, jconn
15:28:32 <Sgeo> Because if shachaf uses it, he'll be on the ls: list
15:28:34 <Taneb> Whose bot is that?
15:28:38 <Taneb> And when did I use it
15:28:47 <Sgeo> afk
15:29:26 -!- azaq23 has joined.
15:35:47 <oerjan> <Taneb> "Bueue"!? <-- wat
15:36:02 <Taneb> The name is too darn similar to Fueue
15:36:23 <Taneb> ...says the guy who deleted the first Numberwang to replace it with a completely different language
15:36:34 <oerjan> OKAY
15:40:49 <boily> oerjan: WHY SO CAPITALIST?
15:41:03 <oerjan> wat
15:41:15 <Phantom_Hoover> wats are the tool of the bourgeousie
15:41:38 <Phantom_Hoover> oh shit there's only one u in bourgeoisie
15:41:43 <Phantom_Hoover> it seemed frencher that way
15:41:54 <Taneb> buourgueuousuiue
15:42:05 <boily> ow.
15:43:17 <Phantom_Hoover> baeiourgaeoiusaeiou
15:43:22 <boily> AAAARGH!
15:43:26 <boily> stop!
15:45:17 <oerjan> have some beaaaujoileaise
15:46:26 <boily> that's wanton cruelty to the common French vowel.
15:58:17 <oerjan> darn i've accidentally stopped my watch
15:58:23 <oerjan> no wonder i'm getting hungry
15:58:51 <Taneb> Is this the watch that pipes glucose directly into your arteries?
15:59:28 <oerjan> no, but i was planning to wait until half past 3 to eat and just started wondering why it wasn't already the time
15:59:38 <oerjan> (it's 5)
15:59:50 <Taneb> :(
16:00:11 <oerjan> oh wait, just half past 4
16:00:46 <Taneb> It's just turned 4 here
16:00:48 <Taneb> @time oerjan
16:00:50 <lambdabot> Local time for oerjan is Thu Feb 14 17:00:48 2013
16:00:56 <oerjan> i mean the plan
16:00:58 <Taneb> Oh
16:03:45 -!- sebbu has quit (Ping timeout: 260 seconds).
16:08:03 <Sgeo> wtf
16:08:12 <Sgeo> My Nook says that A Clockwork Rocket only has 316 pages
16:08:17 <Sgeo> Is it really a short book?
16:08:24 <Sgeo> Was planning on wasting a few hours reading it today
16:08:56 <Sgeo> A 30 minute read isn't going to cut it :(
16:09:49 <Gregor> If 316 pages takes 30 minutes, that's a page every 6 seconds.
16:11:34 <elliott> Gregor: that doesn't sound so unreasonable
16:11:50 <elliott> Sgeo: (how can you plan to waste a few hours on something but only have 30 minutes)
16:11:59 <Gregor> It does if you're actually reading. And it's not The Cat in the Hat.
16:13:19 <Taneb> I preferred the sequel
16:13:36 <elliott> how fast can you read cat in that hat
16:13:39 <elliott> that is the real question here
16:14:22 <Sgeo> Ok, so I don't actually know how fast I read
16:14:49 <Sgeo> The point is I'm going to need to spend a few hours, and if a book takes too short to read, I'm going to need to find something else to do afterwards
16:15:27 <Taneb> 316 pages isn't a quick read
16:17:12 <Taneb> I've just ordered a plain grey t-shirt
16:17:34 <Taneb> These two facts are fundamentally interrelated
16:17:44 -!- Halite has joined.
16:18:10 <Halite> someone make a valentines day esolagn
16:18:17 <Taneb> Nah
16:18:27 <Halite> OH YAH
16:18:57 <quintopia> sup salty
16:19:30 <Halite> quintopia, hey square utopia
16:19:45 <Halite> wait, soup salty
16:19:48 <Halite> mmm soup
16:19:52 <Halite> Halite Soup
16:20:09 <Sgeo> Halite, feel free to make one yourself
16:20:16 <Halite> BrainSoup
16:20:26 <Halite> Norfsoup
16:20:28 <Sgeo> Preferably not based on brainfuck
16:20:32 <Halite> Sorfsoup
16:20:47 <Halite> how can I make a programming language not based on BF
16:21:01 <Taneb> Look at unlambda
16:21:10 <Halite> link
16:21:11 <quintopia> i cant think of a good v-day idea. it doesnt seem like a commercial holiday for candy, cards, and flowers has much in common with esolangery
16:21:51 <Sgeo> Trustlambda?
16:21:57 <Halite> quintopia, buy flower of colour "Hello world!"
16:22:09 <mroman> it's valentines day?
16:22:12 * Sgeo wonders if Unlambda might be a good base for a new Trust family language
16:22:37 <Sgeo> Except I don't know if I want to write an Unlambda interpreter
16:22:39 <quintopia> languages that are basically procedural with weird themed syntax are not very fun imo
16:22:50 <oerjan> `wiki Unlambda
16:22:52 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wiki: not found
16:23:00 <oerjan> ...we don't have that?
16:23:06 <oerjan> !wiki Unlambda
16:23:11 <oerjan> ^wiki Unlambda
16:23:11 <fungot> http://esoteric.voxelperfect.net/wiki/Unlambda
16:23:22 <oerjan> oh that ... is outdated.
16:23:24 <Sgeo> Ah, ye old classic wiki
16:23:34 <elliott> Sgeo: are you having nostalgia for the old wiki url
16:23:40 <quintopia> i am
16:23:55 <Sgeo> surprisingly, no
16:24:00 <Phantom_Hoover> the way none of us knew what voxelperfect.net actually
16:24:01 <oerjan> oh well, the link does work
16:24:01 <Phantom_Hoover> was
16:24:04 <Phantom_Hoover> good times, good times
16:24:07 <elliott> Phantom_Hoover: it was graue's domain
16:24:19 <oerjan> a domain of perfect voxels
16:24:21 <elliott> I don't think it hosted anything except the esolangs stuff
16:24:33 <Sgeo> There was another thing for esolang files on that domain
16:24:35 <elliott> http://voxelperfect.net/ is a pretty good placeholder page, that looks new
16:24:39 <elliott> Sgeo: yes that's still hosted there
16:25:39 <oerjan> * Sgeo wonders if Unlambda might be a good base for a new Trust family language <-- my self-interpreter is almost meta-circular already!
16:25:50 <elliott> self-circular is almost meta-interpreter
16:26:30 -!- Halite has left ("Halting execution").
16:26:44 -!- Halite has joined.
16:26:53 <Halite> wrong channel to part on lolol
16:26:54 <oerjan> that's how it managed to have an eigenratio of 1
16:26:58 <Halite> trying to part #irp
16:29:41 <elliott> oerjan: thought: perhaps the best way to define "non-cheating self-interpreter" is "self-interpreter with eigenratio > 1"
16:30:06 <elliott> of course then someone will define a very silly joke language with a "slow self-interpreter" command...
16:30:27 <Sgeo> eigenration?
16:30:31 <Halite> how can an interpreter self-interpretate
16:30:48 <Gregor> eigenration: How much of your own body you're allowed to eat per day if stranded.
16:30:57 <Phantom_Hoover> you write an interpreter for <language> in <language>
16:31:16 <Halite> like writing an interpreter for BF in BF
16:31:25 <Phantom_Hoover> yes
16:31:30 <Halite> how would you interpretate the interpreter
16:31:38 <Phantom_Hoover> what
16:31:52 <Halite> how would you interpretate the self-interpreter
16:31:55 <Sgeo> I wrote a compiler for Trustfuck in Trustfuck
16:32:12 <Sgeo> Is the compiler cheating?
16:32:26 <Phantom_Hoover> Halite, it works exactly the same as running the self-interpreter with any other interpreter
16:32:28 <Halite> Sgeo, possible if there is a TF interpreter
16:32:28 <Phantom_Hoover> that's the point
16:32:37 <oerjan> <Taneb> I don't think Xor + Not is universal <-- indeed not, and i shall have to point you to the Post Lattice again
16:32:56 <Sgeo> Halite, there are currently no TF interpreters, only TF compilers
16:32:57 <Halite> NOR and NAND are functionally complete
16:33:15 <Halite> Sgeo, laise
16:33:34 <Sgeo> I have to think about whether interpreted TF misses the point...
16:33:45 <oerjan> Halite: the post lattice gives you a way to see exactly which sets of boolean functions are functionally complete, and if not, what they _do_ generate
16:34:01 <Sgeo> Although the infrastructure is there
16:34:23 <Sgeo> oerjan, go look at TF go look at TF go look at TF?
16:34:27 <Halite> oerjan, NOR and NAND are functionally complete, and so are its neighbours OR+NOT and AND+NOT
16:34:55 <Phantom_Hoover> yes Halite
16:34:56 <oerjan> Halite: i am trying to tell you that i already know quite a lot more than this
16:34:58 <Phantom_Hoover> i think oerjan knows this
16:35:21 <Phantom_Hoover> http://en.wikipedia.org/wiki/File:Post-lattice-centre.svg]
16:35:39 <Phantom_Hoover> i like the descriptive labels
16:36:23 <nooodl_> http://upload.wikimedia.org/wikipedia/commons/1/19/Post-lattice.svg wow
16:36:37 <elliott> Phantom_Hoover: I like how it looks like a cube with some crap sticking out of it.
16:36:40 <elliott> Um, not cube. What's the word again?
16:37:13 <elliott> Phantom_Hoover: WHAT IS THE NAME FOR A 3D RECTANGLE HELP
16:37:17 <nooodl_> cuboid
16:37:18 <Phantom_Hoover> parallelipiped?
16:37:27 <nooodl_> cuboid elliott !!!!!
16:37:30 <Taneb> tetrahedron
16:37:31 <ion> The 4-day time cube.
16:37:31 <elliott> thanks you nooodl_
16:37:38 <nooodl_> `THANK nooodl_
16:37:38 <Phantom_Hoover> tesseract
16:37:40 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: THANK: not found
16:38:34 <oerjan> elliott: btw some of the discussion i had with that eigenratio guy was how the known brainfuck self-interpreters don't seem to have a finite eigenratio at all (they use quadratic time as the tape grows), although i thought i had a way to fix it. alas he didn't seem to have much time for the discussion, i didn't hear from him any more after a while
16:39:20 <quintopia> parallelopiped is 3d parallelogram Phantom_Hoover
16:39:48 <Phantom_Hoover> i think you'll find it's parallelapiped, quintopia
16:40:18 <quintopia> i might...IF I LOOKED
16:40:28 <quintopia> but that would be cheating
16:40:37 <Phantom_Hoover> oerjan, how does he define eigenratio
16:41:04 <Taneb> what is an eigenratio
16:41:16 <Taneb> It sounds interesting and vaguely familiar
16:41:30 <Phantom_Hoover> a rough measure of the efficiency of a self-interpreter
16:41:36 <Taneb> Okay
16:42:26 <FreeFull> Hey, Haskell has data construction syntax that looks like [something| insert stuf here] right?
16:42:36 <Taneb> Yes...?
16:43:10 <Phantom_Hoover> he seems to define it as the limit as n -> infinity of the ratio of time taken to simulate an n interpreter stack to the time taken to simulate an n-1 interpreter stack
16:43:18 <FreeFull> Can't find a haskell wiki page about it
16:43:20 <elliott> oerjan: hm
16:43:30 <elliott> oerjan: you can generalise that to an eigenfunction, right?
16:43:34 <elliott> (what's abuse of terminology)
16:44:01 <oerjan> um that sounds like an eigenvector in a function space
16:44:01 <Phantom_Hoover> 'eigenfunction' is already taken by those dastardly linear algebraists
16:44:10 <oerjan> right
16:44:22 <elliott> oerjan: hence abuse of terminology :P
16:44:34 <elliott> I mean s.t. an eigenratio of k would become f(x) = kx
16:45:11 <oerjan> elliott: in fact i _did_ conclude that there should be something like r^(n^2) for the brainfuck self-interpreters, so i've had similar idea
16:45:12 <Phantom_Hoover> i was about to suggest o notation but that would be stupid
16:45:41 <Phantom_Hoover> elliott, er, wouldn't an eigenratio be f(x) = k^x
16:46:09 <elliott> er sure
16:46:43 <Phantom_Hoover> i guess metacircular interpreters would have linear eigenfunctions
16:46:49 <oerjan> Phantom_Hoover: that is, i _think_ that if you take the logarithm of f(x), its limit will be a polynomial instead of linear for brainfuck, so you can look at the degree and the coefficient of the largest exponent
16:47:29 <elliott> also it would be nice if they were defined more abstractly than realtime
16:47:34 <elliott> but I guess you can just reuse big-O notation's "step"
16:47:48 <Phantom_Hoover> it's all a bit dodgy to me
16:48:01 <Phantom_Hoover> because obviously you need to have some dummy program to cap off the stack
16:48:13 <oerjan> FreeFull: are you thinking about list comprehensions or quasiquotations? (the latter are [something| insert stuff here |])
16:48:28 <Phantom_Hoover> and you can easily set things up so all the numbers vary wildly depending on what program you use
16:48:48 <elliott> oerjan: btw what do you think about his golden ratio speculation? (http://eigenratios.blogspot.co.uk/2007/11/search-for-phi-holy-golden-ratio.html) it appeals to me but I don't know if it seems like coincidence to someone more competent
16:49:10 <FreeFull> oerjan: Quasiquotations, thanks
16:50:11 <FreeFull> Seems those aren't for data like I thought
16:50:12 <Phantom_Hoover> elliott, er, so wait
16:50:19 <oerjan> Phantom_Hoover: the thing that makes brainfucks nonlinear isn't that they aren't metacircular, it's that they frequently need to move through the tape for a long while
16:50:32 <Phantom_Hoover> oerjan, er
16:50:40 <Phantom_Hoover> that's not what i meant
16:51:09 <Phantom_Hoover> i mean if you define the eigenfunction as just being the limit of the time taken
16:51:19 <Phantom_Hoover> then metacircular interpreters are rougly linear
16:51:57 <Phantom_Hoover> 'proper' self-interpreters are exponential or more, presumably
16:54:06 <oerjan> Phantom_Hoover: anyway the thing about the linear case is that with a nice interpreter you get a linear matrix describing how operations are implemented in terms of many operations at the previous stage, and if the operations are sufficiently cross-implemented, you get that perron-frobenius theory applying so that everything converges to the eigenspace of a universal eigenvector
16:55:08 <oerjan> and so the eigenratio then exists completely stringently
16:55:16 <Phantom_Hoover> sorry oerjan i'm not doing that much maths today
16:55:47 <oerjan> Phantom_Hoover: it's the same principle behind the proposed new scoring for bfjoust, btw
16:55:55 -!- copumpkin has quit (Ping timeout: 252 seconds).
16:56:35 -!- copumpkin has joined.
16:56:52 <elliott> oerjan: thanks a lot :(
16:57:58 <oerjan> <Phantom_Hoover> then metacircular interpreters are rougly linear <-- oh right, yeah that's what happened with the unlambda
16:58:26 <oerjan> elliott: what?
16:58:49 <FreeFull> There doesn't seem to be documentation for GHC.Arr at http://www.haskell.org/ghc/docs/latest/html/libraries/index.html
16:59:17 <FreeFull> I wanted to look at the source ):
17:00:37 <oerjan> elliott: well the golden ratio clearly isn't a lower bound
17:01:23 <oerjan> FreeFull: hm i think i've managed to guess urls for such stuff before...
17:02:23 <oerjan> http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.6.0.1/src/GHC-Arr.html#Array
17:03:00 <elliott> oerjan: well if you exclude "cheating" self-interpreters somehow
17:03:02 <oerjan> FreeFull: this was simple, the source link from Array in the Data.Array module pointed directly there :P
17:04:40 <oerjan> elliott: it seems like a matter of deciding how many operations you minimally can implement an operation with before you call it cheating. even the golden ratio seems a little low when you put it that way.
17:05:25 -!- varnie has joined.
17:05:36 <elliott> oerjan: right
17:05:37 <oerjan> because you cannot get the golden ratio without _some_ operations being implemented with just one underlying operation
17:05:56 <oerjan> and once you admit that, it doesn't seem that implausible to go even lower
17:06:11 <elliott> hm so I wonder if there is any limit to how small an eigenratio can be if it is > 1
17:06:14 <elliott> I guess not really
17:06:18 <elliott> if you just have enough operations
17:06:33 <elliott> oerjan: btw what about eigenratios > 0 < 1 :P
17:06:35 <FreeFull> oerjan: Aww, seems to be a primitive =P
17:06:43 <Vorpal> what about a TC OISC, how would that count here?
17:06:57 <elliott> FreeFull: you can implement the immutable array interface (inefficiently) in pure haskell
17:07:09 <elliott> well, even efficiently, if you use a tree
17:07:16 <elliott> no guarantees of contiguousness in memory though
17:07:32 <oerjan> yeah if you have a cycle of operations where everyone is implemented in terms of one other except _one_ which is implemented in terms of two others, then you can get arbitrarily close to n by making the number of them large enough. i think.
17:07:48 <oerjan> *close to 1
17:08:17 <elliott> oerjan: I guess an eigenratio < 1 is where you have an instruction that somehow saves time by doing the work of two others...
17:08:30 <elliott> ...and for that instruction itself to take less time to interpret than it saves
17:10:26 <FreeFull> elliott: Well, the only purpose of Data.Array seems to be convienience and speed
17:10:52 <elliott> Data.Array is not as convenient nor perhaps as fast as you might hope for. take a look at the vector packgae
17:15:26 -!- azaq23 has quit (Max SendQ exceeded).
17:19:00 -!- epicmonkey has quit (Ping timeout: 260 seconds).
17:22:27 <Halite> esoteric
17:22:38 <Halite> esolang
17:23:19 -!- Zuu has joined.
17:24:49 -!- Zuu has left.
17:25:49 -!- sebbu has joined.
17:25:49 -!- sebbu has quit (Changing host).
17:25:49 -!- sebbu has joined.
17:26:03 <FreeFull> elliott: How well does Data.Vector do multidimensional stuff though?
17:26:27 <elliott> FreeFull: you can nest vectors manually, or see the "repa" package, which does multidimensional arrays on top of vector with automatic parallelisation
17:26:34 <elliott> though I think the API is in flux maybe?
17:26:50 <elliott> there is a nice http://www.haskell.org/haskellwiki/Numeric_Haskell:_A_Repa_Tutorial. I don't know if it is up to date
17:46:45 <elliott> http://en.wikipedia.org/wiki/Worshipful_Company_of_Hackney_Carriage_Drivers
17:55:05 <Halite> I have an idea for an esolang
17:55:43 <olsner> the worshipful company of etc sounds like something out of a terry pratchett book
17:56:26 <Taneb> He had to get inspiration from somewhere
17:57:00 <elliott> Halite: what is it
17:58:50 <Halite> elliott, that the esolang's only boolean operation will be - not NAND - not NOR - but f(three bit integer a, boolean b, boolean c)
17:59:47 <Halite> elliott, ahem, f(four bit integer a, boolean b, boolean c)
18:01:10 <Halite> it's basically a multiplexer where b is the most significant bit of the selector and c is the least significant bit of the selector. Also, a is the integer whose bx2 + c bit is selected
18:01:30 <Halite> b*2
18:01:36 <Halite> b*2 + c bit
18:08:08 <FreeFull> Halite: What is the output type? boolean?
18:08:17 <FreeFull> Can you construct the integer out of four booleans?
18:08:29 <Halite> FreeFull, the output is boolean
18:08:44 <Halite> FreeFull, you can construct a out of four booleans
18:08:51 -!- oerjan has quit (Quit: leaving).
18:09:43 <Halite> if you know how to merge two bits together, then it's a multiplexer with b and c merged (assuming booleans are single-bit integers)
18:11:26 <oklopol> a "repa" tutorial? is that a typo or a euphemism?
18:11:45 <FreeFull> and(b,c) would be something like f(1000,b,c) right?
18:12:04 -!- azaq23 has joined.
18:12:10 <FreeFull> So the a is basically the logic table for whatever boolean operation
18:12:28 <Halite> yes
18:12:35 <Halite> a is the logic table
18:13:43 <Halite> f(1000,1,1) will be 1, as ab is 11 and the (binary) 11th (fourth including 00) bit of a is 1
18:14:02 <Halite> so you can make NAND
18:14:06 <Halite> and NOR
18:14:21 <FreeFull> 0111 and 0001
18:14:32 <Halite> with f(0111,b,c) and f(0001,b,c)
18:14:54 <Halite> you've got it exactly right
18:15:07 <FreeFull> You could do this as a DSL
18:15:40 <Halite> what is a DSL
18:16:00 <kmc> domain-specific language
18:16:25 <Halite> what is a domain-specific language
18:16:37 <fizzie> Digital subscriber line.
18:16:38 <kmc> a language specialized to one problem domain
18:16:45 <kmc> as opposed to a general purpose programming language
18:16:54 <elliott> what is a google
18:17:04 <kmc> people also talk about "embedded DSLs" which are libraries for a general purpose language that support rich syntax that makes them feel like a mini-langauge of their own
18:17:07 <FreeFull> Well, I meant EDSL
18:17:09 <kmc> but also yes google it
18:19:04 <fizzie> http://zem.fi/ttd_logic/gate.png that's like the very same thing, it's been configured to be a NAND gate.
18:19:43 <oklopol> dood you that?
18:20:04 <oklopol> *doed
18:20:19 <fizzie> I doed it quite a long time aggo.
18:20:27 <FreeFull> fizzie: o.o
18:20:39 <FreeFull> I didn't know that game was turing-complete
18:21:00 <Phantom_Hoover> well
18:21:01 <Phantom_Hoover> it's not
18:21:08 <Phantom_Hoover> bounded storage and all that
18:21:22 <FreeFull> True
18:21:45 <FreeFull> http://zem.fi/ttd_logic/ttd_4adder.png This looks surprisingly like an electronic circuit when zoomed out (large image warning)
18:22:03 <fizzie> The AI scripting language ("Squirrel") in it (nowadays) probably is.
18:22:06 <Phantom_Hoover> why do people still do that in the broadband age
18:22:47 <FreeFull> Phantom_Hoover: Because having a fast connection doesn't mean the page has a fast upstream
18:23:00 <FreeFull> And some people might still have small amounts of RAM or something
18:23:10 <fizzie> I've always thought it's more about the memory thing.
18:23:17 <Phantom_Hoover> i think nortti has nobody to blame but himself
18:23:21 -!- epicmonkey has joined.
18:23:30 <fizzie> Loading up a 10k x 10k image on my phone makes everything all sucky, for example.
18:23:35 <Halite> I got back from the toilet
18:23:44 <Phantom_Hoover> Halite..
18:23:46 <Phantom_Hoover> ...
18:23:47 <Phantom_Hoover> ........
18:23:51 <Halite> what could I call my logic table function
18:24:05 <Halite> Phantom_Hoover, whatt
18:24:10 <Halite> whattt
18:24:13 <FreeFull> Halite: You should borrow a term from intercal
18:24:15 <elliott> Phantom_Hoover: Have you never seen Firefox try to load a gigantic image.
18:24:17 <Halite> whatttttttt
18:24:23 * boily lends his personal ellipses supply to Phantom_Hoover
18:24:28 <Phantom_Hoover> elliott, i did... once
18:24:29 <Halite> FreeFull, can you give me a link to intercal
18:24:34 <Phantom_Hoover> i think i repressed the memory
18:24:42 <Halite> FreeFull, I don't know what intercal even is
18:24:47 <Phantom_Hoover> iirc alt-sysrq stopped working
18:24:52 <boily> (careful, they're canadian dots, aligned to SI. they may not fit with US customary dots.)
18:25:14 <fizzie> FreeFull: Random fact: there was a single farm there in the middle (due to the terrain generator); it got mostly overwritten by the hacked-in copy-paste, but the fields still remain and get tilled.
18:25:33 <FreeFull> fizzie: Cool
18:25:53 <FreeFull> Halite: Do you at least know befunge and brainfuck?
18:25:58 <elliott> boily: what about scottish dots
18:26:05 <elliott> also I believe they are US customary "periods"
18:26:08 <Halite> FreeFull, I know BrainFuck a little bit and I've only heard of Befunge
18:26:25 <FreeFull> Halite: Ok, go on and read about INTERCAL now
18:26:27 <Phantom_Hoover> how can you know brainfuck 'a little bit'
18:26:28 <fizzie> I showed fungot's source to some people today, and they thought it was in brainfuck. Honestly, people these days!
18:26:28 <fungot> fizzie: you know as
18:26:43 <boily> elliott: those are fine. 20% better!
18:27:00 <Phantom_Hoover> do you only understand +-.<]?
18:27:13 <FreeFull> fizzie: What, they can't tell befunge apart from brainfuck?
18:27:45 <FreeFull> You know, is there a 2D brainfuck?
18:27:49 <fizzie> FreeFull: I suppose "the non-initiated" just know both look funny, and I suppose the sources mention the word "brainfuck" in comments.
18:27:58 <fizzie> I'm pretty sure there is.
18:28:15 <FreeFull> Hmm, minifuck-2d
18:28:37 <FreeFull> Which isn't brainfuck but is brainfucky enough
18:29:18 <fizzie> Dimensifuck is reasonably close too.
18:29:33 <nooodl_> 2D brainfuck wouldn't be much different from regular brainfuck
18:29:38 <Halite> Phantom_Hoover, I only understand that BF uses +-.,[] (and sometimes #! ) symbols
18:30:35 <fizzie> I'm reasonably certain there's the "obvious" "2D brainfuck" that's bf +-.,<> and then the directional commands and some conditional direction-changer.
18:32:02 -!- azaq23 has quit (Max SendQ exceeded).
18:32:13 <fizzie> Brainloller is pretty much that except the source format is an image.
18:32:17 <nooodl_> reasonably interesting idea: only implement directional commands for x-axis movement. ( and ) or something
18:32:21 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
18:32:31 <fizzie> It even has the same [] loops (along the "current direction").
18:32:32 <nooodl_> and have | be a conditional up-down thingy
18:33:41 <Halite> I want to call my function LCOP (Logic Custom OPeration)
18:33:43 <nooodl_> actually, screw ( and ), you could work with conditional directional commands only
18:33:47 <FreeFull> If | will be conditional, you can get rid of []
18:34:02 <nooodl_> +-.,<>_| stealing _| from befunge
18:34:28 -!- azaq23 has joined.
18:34:41 <Halite> for example, LCOP(1000,x,y) = x AND y
18:35:03 -!- hagb4rd has joined.
18:35:15 <Halite> in decimal, LCOP(8,x,y)
18:36:08 <nooodl_> oh, and @ to stop running, of course
18:36:10 <FreeFull> Halite: Your language would allow recursion, right?
18:36:38 <Halite> FreeFull, why not
18:36:51 <Halite> FreeFull, if JS supports recursion
18:37:11 <FreeFull> I think recursion + LCOP would be enough to make it turing-complete, not sure though
18:37:19 <FreeFull> Why are you implementing it in JS? D:
18:37:26 -!- ogrom has joined.
18:38:55 <fizzie> I think that thing was called "B" *somewhere*, but I can't recall at all where, or why. (Might have been B for "boolean" or "binary" or both.)
18:40:15 <Halite> FreeFull, because then it'd be easier to not make it Brainfucking. Simply set var lang = {big object with commands being properties} and then lang.command will execute a command
18:40:55 <nooodl_> i hate myself for inventing this...
18:40:57 <Halite> FreeFull, basically a custom set of custom JS commands
18:41:22 <Halite> nooodl_, be happy :D
18:41:30 <FreeFull> Javascript does recursion but doesn't do tail-call optimisation or anything
18:41:40 <FreeFull> So it'll eat up memory if you put it into an infinite loop that way
18:41:45 <Halite> FreeFull, :c
18:42:25 <Halite> FreeFull, I could make tail-call optimisation myself, just put a few yields at the end of a while (true) loop
18:42:26 <fizzie> Gnah, once every couple of months I keep accidentally opening a PDF file in Emacs.
18:42:30 <fizzie> The worst thing is that it works.
18:45:06 <FreeFull> Your fault for using emacs
18:45:18 <FreeFull> When you try to open a pdf in vim, all you get is gibberish
18:45:20 <fizzie> FreeFull: It's so close to "evince".
18:45:35 <fizzie> FreeFull: I think ECMAScript 4 (which kind of retroactively never happened) required tail call optimization.
18:45:37 <FreeFull> v isn't even that close to m
18:45:52 <fizzie> I don't know if they have any plans for it for Harmony.
18:46:45 <fizzie> http://wiki.ecmascript.org/doku.php?id=harmony:proper_tail_calls has at least some kind of a proposal.
18:48:44 <nooodl_> hmmm
18:48:53 <nooodl_> here's a thing that reverses stdin
18:48:53 <nooodl_> http://bpaste.net/show/DHOattKOtoIOCHu8CWid/
18:49:04 <nooodl_> i think it looks pretty cool
18:50:35 <Halite> I'm calling my language SaltScript
18:51:24 <FreeFull> That doesn't tell you anything about the language itself
18:51:35 <FreeFull> Why not bitswitch
18:52:09 <FreeFull> Or maybe Nybswitch
18:52:21 <FreeFull> nybswytch
18:52:22 <FreeFull> Perfect
18:52:57 <nooodl_> what should i write an interpreter in
18:52:57 <FreeFull> https://github.com/dzamkov/SaltScript There is this saltscript already
18:53:08 <FreeFull> nooodl_: itself
18:53:10 <FreeFull> Then bootstrap
18:53:12 <nooodl_> :(
18:53:13 <elliott> nooodl_: haskell
18:53:36 <FreeFull> Haskell is too easy
18:53:38 <nooodl_> that could be interesting
18:53:56 <nooodl_> i'm afraid it's going to look really bad
18:54:05 <nooodl_> i've never done anything... state-y... in haskell
18:54:32 <elliott> what is the language
18:54:45 <elliott> ugh is it a brainfuck derivative
18:54:57 <nooodl_> no... its a good brainfuck derivative
18:55:33 <Taneb> Can someone tell me what C++ templates are in language I understand?
18:55:46 <Halite> SaltScript
18:55:51 <nooodl_> http://bpaste.net/show/QvVFMDSNVcPbuBVUEOX3/ that's my conversion of ,[>,]<[.<]
18:56:06 <nooodl_> (i hope)
18:56:33 <FreeFull> Taneb: C++ templates are intentionally confusing
18:56:37 <fizzie> Minimal-2D is I think what I was thinking of when mentioning that "obvious" "2D-brainfuck".
18:57:07 <FreeFull> Taneb: They're basically generic functions
18:57:24 <elliott> anyway you can do bf nicely in haskell with a zipper for the tape
18:57:51 <kmc> Taneb: they are a weird hybrid between a glorified macro system and a system of generic / polymorphic types
18:58:01 <nooodl_> how do you handle loops
18:58:13 <nooodl_> hmm. wait
18:58:14 <FreeFull> elliott: So U [a] a [a]
18:58:17 <FreeFull> For the tape
18:58:25 <Halite> I need help in implementing f(four-bit a,boolean b,boolean c)
18:58:34 <kmc> Taneb: you can think of it as polymorphism implemented by a glorified macro system, but many details of that "implementation" leak into the semantics
18:58:42 <Taneb> :(
18:58:43 <elliott> FreeFull: or even data Tape a = Tape (Tape a) a (Tape a)
18:58:45 <Halite> Basically, it's a logic table definer
18:58:49 <elliott> that gives you a two-ways-infinite tape
18:59:26 <nooodl_> Halite: return a & (1 << (b * 2 + c)) != 0;
18:59:36 <kmc> and they're totally duck-typed. there's no in-language concept of "what sort of classes can i put in this template parameter and have it work"
18:59:38 <FreeFull> Halite: It's basically (a >> ((b<<1)|c)) & 1 I think
18:59:45 <kmc> you can't know until you've pasted that type into all the code and try to type check it
18:59:56 <FreeFull> Or what nooodl_ said
18:59:59 <Halite> FreeFull, I'll ask on ##javascript
19:00:21 <FreeFull> Both should work I think
19:00:25 <FreeFull> nooodl_'s might be faster
19:00:51 <nooodl_> it's probably even faster if you combine them into
19:01:02 <Halite> (a >> ((b<<1)|c)) & 1
19:01:03 <nooodl_> a & (1 << ((b << 1) | c))
19:01:45 <nooodl_> meh, they're probably equally fast
19:02:40 <Halite> what formats do a, b, and c have to be in the script
19:03:00 <FreeFull> Halite: I'm assuming they're just numbers here
19:03:18 <FreeFull> And that b and c are only 0 or 1
19:03:25 <Halite> FreeFull, what about a
19:03:33 <FreeFull> Also a number
19:03:35 <Halite> FreeFull, is a something like 1000 or is it 8
19:03:36 <FreeFull> from 0 to 15
19:03:45 <nooodl_> 8
19:03:51 <Halite> it doesn't work
19:03:59 <Halite> returns nothing
19:04:07 <Halite> wait
19:04:12 <Halite> problem with my code I think
19:04:17 <FreeFull> f(8,1,1) should return 1
19:04:21 <Halite> forgot to add ;
19:04:43 <Halite> still does not work
19:04:48 <FreeFull> You probably want to make more custom so that you can write 1000 instead of 8
19:04:50 <nooodl_> what's your function like
19:04:59 <Halite> (a >> ((b<<1)|c)) & 1
19:05:17 <FreeFull> Halite: I just typed that from the brain, not guaranteed to work
19:05:20 <fizzie> http://sprunge.us/GEAi it seems fine for that single test case.
19:05:21 <nooodl_> try "return"...
19:05:23 <Halite> wait
19:05:29 <Halite> nooodl_, I did put return
19:05:35 <nooodl_> what fizzie did
19:05:39 <Halite> the arguments aren't a, b and c in the code
19:05:47 <nooodl_> oh
19:05:59 <Halite> they're table,x,y
19:06:25 <Halite> so (table >> ((x<<1)|y)) & 1 should work
19:06:42 <Halite> yes!
19:06:54 <FreeFull> Well, what did you think a, b and c were?
19:07:05 <Halite> a = table, b = x, and c = y
19:07:08 <FreeFull> Yeah
19:07:12 <FreeFull> What did you have them as before?
19:07:18 <Halite> before
19:07:29 <Halite> it was always table,x,y for the args
19:07:42 <Halite> wait
19:07:45 <Halite> I do not understand
19:07:49 <Halite> Ww
19:08:29 <fizzie> How rude, they've removed octal literals from ECMA-262. :/
19:08:51 <Halite> lolwhat
19:09:20 <Halite> table is not 3 bits, it's 4 bits
19:09:22 <fizzie> It's just decimal and hex ever since version 3 of it.
19:09:31 <Halite> oh
19:09:48 <Halite> they should have a custom bits() function, so you can choose the number of bits
19:10:10 <Halite> base*
19:10:13 <Halite> wrong
19:10:16 <Halite> wrong word
19:10:39 <Halite> they should have a base() function, so you can choose the base, where decimal = 10, hex = 16, etc.
19:10:51 <Halite> octal would be 8
19:10:55 <Halite> binary 1
19:11:05 <fizzie> Not 2, then?
19:11:25 <FreeFull> Halite: You could use strings and then convert to numbers
19:11:36 <FreeFull> Then you could have binary in the string
19:11:56 <FreeFull> Javascript's to number function does take a base parameter
19:12:03 <fizzie> Anyway, nobody but some Erlang hippies &c. seem to bother with arbitrary-base number literals.
19:12:54 <Halite> FreeFull, I'm talking to someone else about their rant about octal's removal from ECMA-262
19:13:35 <FreeFull> fizzie: I think they should add base 7
19:13:45 <FreeFull> Hex should be good enough to replace octal, right?
19:13:46 <Gregor> loloctal
19:13:49 <Gregor> Welcome to the future.
19:14:03 <fizzie> FreeFull: And use a leading 0 to denote that.
19:15:26 <nooodl_> wow everyone who's ever written a single line of haskell is going to hate me after i show them this
19:16:56 <FreeFull> nooodl_: Show us, see it as an opportunity to improve
19:17:08 <nooodl_> yeah, when it's finished
19:17:26 <FreeFull> Write ugly code -> refactor isn't a bad approach when you don't know how to write pretty code on the first go
19:18:37 <FreeFull> And sometimes you can't go the pretty code straight away path at all
19:19:57 <Halite> you can make ugly code pretty by adding indentation and whitespace
19:19:59 <boily> nowadays, I never write pretty code first. my workflow looks like: write ugly stupid obvious code -> see what happens -> rinse off bad parts -> repeat.
19:21:01 <Halite> my workflow looks like: write whitespaced pretty code -> see what happens -> repeat
19:21:21 <Halite> one step less
19:21:33 <Halite> no water needed
19:21:56 <Halite> sometimes it's write ugly code -> see what happens -> repeat
19:22:03 <Halite> but that's my early time
19:22:12 <mroman> https://github.com/FMNSSun/Burlesque/blob/master/Burlesque/Eval.hs#L695 <- improve :)
19:23:00 <Halite> SaltScript is getting on quite nicely
19:24:16 <FreeFull> Halite: "you can make ugly code pretty by adding indentation and whitespace" You clearly haven't seen truly ugly code, or don't know what truly pretty code looks like
19:24:39 <mroman> https://github.com/FMNSSun/Burlesque/blob/master/Burlesque/Eval.hs#L339 <- all that case stuff looks really chaotic.
19:24:46 <mroman> but I don't know any other way to do it.
19:27:02 -!- sirdancealot has joined.
19:27:47 <nooodl_> runState (DFState code tape@(Tape _ curr _) pos@(x,y) dir@(dx,dy) input) = ...
19:27:52 <nooodl_> i already want to kill myself because of this line
19:32:42 -!- Halite has quit (Remote host closed the connection).
19:36:50 <FreeFull> nooodl_: What language are you interpreting again?
19:37:05 <nooodl_> the brainfuck interpreter i invented a while ago
19:37:18 <nooodl_> uhh
19:37:20 <nooodl_> brainfuck derivative
19:37:36 -!- mekeor has quit (Quit: novus ordo seclorum).
19:37:37 <fizzie> Briiiiick.
19:37:52 <nooodl_> like http://esolangs.org/wiki/Minimal-2D but instead of /UDLR there's only conditional up/down and left/right commands
19:40:14 <Vorpal> What sort of person goes around thumbing down a quite popular and well produced video on youtube. It is a well produced lets play, so there is not really that people could hate what the guy said. In fact I never seen a video on youtube with more than a few hundred views that didn't at least have a couple of thumbs down.
19:40:19 <Vorpal> It boggles my mind.
19:41:05 <nooodl_> i've wondered the same thing
19:41:46 <elliott> maybe they: disliked the video
19:42:05 <elliott> nooodl_: you do not need to be writing like that
19:42:20 <nooodl_> uh oh
19:43:14 <nooodl_> what's the alternative
19:44:00 <Gregor> Sooo, HackEgo can do sockets again, but the Google Translate API is now a paid service.
19:44:02 <Gregor> Suggestions?
19:44:19 <elliott> Gregor: BABELFISH
19:44:24 <elliott> Or just screen-scrape.
19:44:26 <elliott> Can't be that hard.
19:44:33 <nooodl_> ooh, i just remembered
19:44:47 <Gregor> elliott: Google Translate is crazy HTML5 stuff...
19:44:48 <nooodl_> the update syntax thingy
19:44:59 <elliott> Gregor: Sure, but under the hood it's going to do an HTTP request.
19:45:02 <elliott> Unless it's websockets or something.
19:45:07 <elliott> By "screenscrape" I just mean hack something up with curl.
19:45:09 <Gregor> Fair nuff.
19:45:10 <elliott> And sed.
19:45:25 <elliott> Or I guess Python and BeautifulSoup if you want to be FANCY
19:45:28 <Vorpal> <Gregor> Sooo, HackEgo can do sockets again, but the Google Translate API is now a paid service. <-- how did you fix sockets on umlbox?
19:45:35 <Gregor> Vorpal: I gave it a handshake.
19:45:45 <elliott> nooodl_: that syntax is awful too
19:45:49 <Gregor> Oh, the other issue was Python being stupid.
19:45:54 <Vorpal> Gregor, and that fixed the kernel panic?
19:46:02 <Gregor> No, that was Python stupidity.
19:46:06 <Vorpal> okay
19:46:09 <Vorpal> wtf still
19:46:12 <Gregor> Vorpal: In some version of Python, they changed it so that pipes from child processes were cloexec by default.
19:46:21 <Gregor> That caused nonsense when I told the guest to use said pipes by fd.
19:46:47 <Vorpal> ah
19:47:03 <Gregor> `wl es en Hola
19:47:05 <HackEgo> Hola
19:47:08 <Gregor> Fail
19:47:13 <nooodl_> well, "state { tape = succ <$> tape, pos = nextPos }" is probably better than "DFState code (succ <$> tape) nextPos dir input"
19:47:20 <nooodl_> actually. now that i write it out
19:47:27 <Gregor> `wl en es narcissism
19:47:30 <HackEgo> Narcisismo
19:47:33 <Gregor> Weeeh
19:47:34 <Vorpal> - 2013-02-14 19:47:19 INFO Connecting to "127.0.0.1:6697"...
19:47:34 <Vorpal> Cannot connect to 127.0.0.1:6697: Connection refused
19:47:34 <Vorpal> ^C- 2013-02-14 19:47:22 ERROR Connection failed
19:47:37 <Vorpal> Gregor, hm
19:47:42 <Vorpal> it doesn't crash
19:47:47 <Vorpal> but it does appear to be working either
19:47:49 <Vorpal> I wonder why
19:47:59 <Gregor> Vorpal: What's your command line?
19:48:00 <nooodl_> god how do i write haskell code
19:48:05 <Gregor> (I assume you upgraded and rebuilt)
19:48:28 <Vorpal> Gregor, I did git pull -u && make nokernel && make install PREFIX=same-as-before
19:48:43 <Vorpal> Gregor, also I used -R6697:irc.someserverIreplacedforthisline.net:6697
19:49:08 <Vorpal> let me try it with netcat on the 6667 port instead of the ssl one
19:49:12 <Gregor> To test, running bash in the guest and then running the command you care about from that bash.
19:49:30 <elliott> Gregor: `wl is purposely crap
19:49:34 <elliott> if you are expecting useful results
19:49:58 <Vorpal> $ $HOME/local/umlbox/bin/umlbox -B -R6667:irc.sporksmoo.net:6667 netcat 127.0.0.1 6667
19:49:58 <Vorpal> sh: 1: /home/arvid/local/umlbox/bin/umlbox-mudem: not found
19:49:58 <Vorpal> /bin/sh could not be executed
19:49:58 <Vorpal> (UNKNOWN) [127.0.0.1] 6667 (?) : Connection refused
19:50:00 <Gregor> elliott: Yes, I know.
19:50:00 <Vorpal> wait, what?
19:50:17 <Gregor> Vorpal: -B doesn't include $HOME/local/umlbox/bin ;)
19:50:17 <Vorpal> Gregor,
19:50:18 <Vorpal> $ ls /home/arvid/local/umlbox/bin/umlbox-mudem
19:50:19 <Vorpal> /home/arvid/local/umlbox/bin/umlbox-mudem
19:50:21 <Vorpal> hm
19:50:25 <Vorpal> Gregor, oh, okay
19:50:32 <elliott> `which umlbox-mudem
19:50:33 <HackEgo> ​/usr/bin/umlbox-mudem
19:50:34 -!- ais523 has joined.
19:50:35 <Vorpal> so mudem needs to run inside
19:50:44 <elliott> `run cat `which umlbox-mudem`
19:50:45 <ais523> @messages?
19:50:45 <HackEgo> ​ELF............>.....@.....@........7..........@.8..@.........@.......@.@.....@.@........................................@......@............................................@.......@.....L/......L/........ .............0.......0`......0`................... ...........(0......(0`.....(0`............................
19:50:45 <lambdabot> Sorry, no messages today.
19:50:48 <Vorpal> rigth
19:50:48 <Gregor> I maybe should add .../bin to the default -B path, but I don't like -B being dynamic...
19:50:50 <Vorpal> right*
19:51:04 <elliott> `run umlbox-mudem abc
19:51:06 <HackEgo> Use: umlbox-mudem {0|1} [sockets...]
19:51:07 <Vorpal> Gregor, eh, I'm not running it so that ../bin would help me anyway
19:51:07 <elliott> nice blink btw
19:51:28 <Gregor> Vorpal: I mean the bin path in which umlbox-mudem resides.
19:51:39 <Vorpal> Gregor, oh right, makes sense
19:51:52 <Gregor> Needs to run on bot host and guest.
19:51:59 <Gregor> elliott: umlbox-mudem is a socket multiplexer/demultiplexer.
19:52:18 <Gregor> elliott: It multiplexes a number of tcp or unix domain sockets over stdin/stdout.
19:52:32 <Vorpal> there we go
19:53:11 <Vorpal> Gregor, why is ctrl-c being broken? :/
19:53:13 <elliott> Gregor: yes I was just trying to mess it up
19:53:31 <Vorpal> hm
19:53:39 <Gregor> elliott: You're not going to mess it up by manually running the mudem ^^
19:53:58 <Gregor> Vorpal: The guest interprets ctrl+C, and doesn't really have job control support due to nonsense.
19:54:12 <elliott> Gregor: I CAN TRY
20:00:40 <FreeFull> The net for a dodecahedron looks like two flowers
20:05:12 <Vorpal> Gregor, hm
20:05:35 <Vorpal> Gregor, yeah I'm running that old irc bot I wrote in bash years ago inside. It might be that which is messing around with ctrl-c
20:05:38 <Vorpal> I don't remember
20:06:03 -!- varnie has quit (Quit: Leaving).
20:06:09 <elliott> what are you doing with it
20:08:18 <Gregor> By the way, umlbox is also a great fakeroot :)
20:08:21 <Vorpal> elliott, laughing at it
20:08:30 <Vorpal> Gregor, hah
20:08:30 <Taneb> Organising things is hard
20:08:41 <Vorpal> and yeah it messes with trap
20:08:46 <Vorpal> so yep, messing with ctrl-c
20:08:54 <Vorpal> though it doesn't appear it should be ignoring it
20:09:00 <Vorpal> I'm confused as to why it does
20:09:09 <Vorpal> Gregor, it might be the lack of job control I guess
20:17:43 <Vorpal> I... don't think I properly understood Makefiles back then
20:17:45 <Vorpal> this is a mess XD
20:18:09 <Vorpal> some targets lacked proper dependency info and were always built
20:26:42 <elliott> i remember it being very enterprisey for a bash bot
20:27:11 <boily> how can a bot be enterprisey?
20:27:49 <Gregor> If you try to use !welcome, it offers a welcome for a one-time fee of $49.95, or discounted if you have a coupon code.
20:27:58 <elliott> boily: you should have seen
20:30:19 * boily checks his wallet...
20:30:24 <boily> !welcome
20:42:17 <boily> yep. feels enterprisey enough.
20:49:46 <kmc> if you try to use !welcome it sends 3 "sales engineers" to your company to figure out the maximum amount it could charge you
20:51:54 <boily> !please-dont-send-me-any-sales-engineers-here
21:01:36 <boily> ~metar CYUL
21:01:36 <cuttlefish> CYUL 142000Z 22009KT 15SM BKN050 01/M06 A2989 RMK SC7 SLP124
21:02:04 <Taneb> ~metar EGNT
21:02:05 <cuttlefish> EGNT 142050Z 26009KT 9999 FEW030 05/03 Q1009
21:02:10 <Taneb> What does that mean
21:02:17 <Taneb> I think it's the weather near here
21:02:21 <Taneb> But I don't know how
21:03:58 <olsner> they have space people in satellites with binoculars watching the weather
21:05:11 <boily> Taneb: you report means it's kinda chilly, with a few clouds. otherwise, nothing particularly interesting or notable.
21:05:21 <Taneb> Sounds about right
21:10:46 <fizzie> It also means it was 20:50 (UTC) on the 14th day of the month.
21:11:58 -!- augur_ has quit (Remote host closed the connection).
21:12:50 <fizzie> 09KT of wind I guess counts as some sort of a low-moderate breeze?
21:13:47 <Taneb> So, basically what you'd expect for the north of England on a February night
21:14:51 <boily> you're lucky to have sane units in your metars. I'm stuck with a weird mixture of just about everything, even inches of mercury.
21:15:05 <Taneb> !
21:15:17 * Sgeo is back
21:15:19 -!- sivoais has quit (Ping timeout: 260 seconds).
21:15:37 <ais523> boily: inches of mercury is a measure of pressure, right?
21:15:53 <coppro> yes
21:16:02 <boily> 29.97 inHg is 101.325 kPa.
21:16:03 <Sgeo> millimeters of mercury is more conventional, I think
21:16:44 <nooodl_> ugh numbers in haskell are weird
21:16:53 <Taneb> So, they haven't just got a ruler next to a thermometre
21:16:54 <nooodl_> Int and Integer and Integral
21:16:57 <Taneb> nooodl_, how so?
21:17:40 <nooodl_> i somewhat understand the differences, but i don't know which one to use where
21:17:47 <Taneb> Int is machine-word sized, Integer is unbounded, Integral isn't a type
21:17:58 <Taneb> It's a class that generalizes over integral types
21:18:03 <Taneb> Such as Int and Integer
21:18:28 <boily> ais523: but you have to be careful with canadian metars, A2989 is QFE (29.89 inHG with elevation calibrated at airfield level) and SLP124 is QNH (1012.4 hPa sea level pressure).
21:19:01 <fizzie> The Finnish Meteorological Institute's weather page uses units of hPa (aka mbar but they write hPa) for atmospheric pressure.
21:19:17 <boily> as any sane national weather office.
21:20:22 <fizzie> ~metar EFHK
21:20:23 <cuttlefish> EFHK 142050Z 11005KT 9999 -SG BKN009 BKN030 M02/M03 Q1030 TEMPO SCT008 BKN030
21:20:51 <Taneb> ~metar EGNC
21:20:52 <cuttlefish> EGNC 141750Z 23009KT 9999 FEW020 05/04 Q1009
21:22:22 <boily> ~metar EGED
21:22:22 <cuttlefish> --- Station not found!
21:22:29 <FreeFull> I wonder if you can implement factorial more efficiently than product [1..n]
21:22:44 <Taneb> product [2..n]
21:22:50 <Taneb> hth
21:23:17 <Taneb> (doesn't work with n == 1)
21:23:22 <Taneb> (i think)
21:23:25 <FreeFull> Taneb: It actually does work with n == 1
21:23:33 <Taneb> Oh, sweet!
21:23:33 <FreeFull> > product [2..1]
21:23:35 <lambdabot> 1
21:23:46 <boily> ~eval [2..1]
21:23:47 <cuttlefish> []
21:23:49 <Taneb> It's ever so slightly more efficient
21:23:54 <Taneb> Possibly
21:24:10 <coppro> > product [2..0]
21:24:11 <lambdabot> 1
21:25:12 <fizzie> ~metar UOOO
21:25:12 <cuttlefish> UOOO 142100Z 04012MPS 0250 R01/0800U DRSN HZ NSC M38/M42 Q1013 NOSIG RMK QFE746 0139//41
21:25:19 <fizzie> Well, that's kind of on the cold side.
21:26:45 <fizzie> ~metar UESO
21:26:45 <cuttlefish> UESO 142100Z 21003MPS 2000 BR NSC M46/M49 Q1024 NOSIG RMK QFE766
21:26:48 <fizzie> As is that.
21:26:49 <boily> ~eval gamma 5
21:26:49 <cuttlefish> Error (1): No instance for (Math.Gamma.Gamma a0) arising from a use of `e_15'
21:26:50 <cuttlefish> The type variable `a0' is ambiguous
21:26:50 <cuttlefish> Possible fix: add a type signature that fixes these type variable(s)
21:26:50 <cuttlefish> Note: there are several potential instances:
21:26:50 <cuttlefish> instance Math.Gamma.Gamma (Data.Complex.Complex GHC.Types.Double)
21:26:50 <cuttlefish> -- Defined in `gamma-0.9.0.2:Math.Gamma'
21:26:50 <cuttlefish> instance Math.Gamma.Gamma (Data.Complex.Complex GHC.Types.Float)
21:26:51 <cuttlefish> -- Defined in `gamma-0.9.0.2:Math.Gamma'
21:26:51 <cuttlefish> instance Math.Gamma.Gamma GHC.Types.Double
21:26:52 <cuttlefish> -- Defined in `gamma-0.9.0.2:Math.Gamma'
21:26:52 <cuttlefish> ...plus one otherNo instance for (GHC.Show.Show a0)
21:26:53 <cuttlefish> arising from a use of `M6213143843420178839.show_M6213143843420178839'
21:26:53 <cuttlefish> The type variable `a0' is ambiguous
21:26:54 <cuttlefish> Possible fix: add a type signature that fixes these type variable(s)
21:26:56 <FreeFull> Lol
21:27:03 <boily> woops ¬_¬'...
21:27:12 <FreeFull> :t gamma
21:27:14 <lambdabot> Not in scope: `gamma'
21:27:26 <boily> ~eval gamma 5 :: Double
21:27:27 <cuttlefish> 24.0
21:27:51 <FreeFull> cuttlefish's output should be restricted
21:28:28 <boily> the thing is, I can't recompile cuttlefish. the libs I use won't compile with GHC 7.6.
21:30:27 -!- ogrom has quit (Quit: Left).
21:36:57 <FreeFull> boily: Fix the libs
21:37:09 <FreeFull> Might be fixable with just some pragmas
21:41:53 -!- hagb4rd has quit (Ping timeout: 252 seconds).
21:42:22 -!- augur has joined.
21:44:35 <elliott> ion: don't remind me of my lost $1,000,000,000,000.
21:45:08 <ion> elliott: How did you lose $1,000,000,000,000?
21:45:39 <kmc> which nigerian prince owes you a cool amount of money?
21:45:51 <Gregor> kmc: I was JUST ABOUT to say that same joke.
21:45:52 <elliott> ion: something about a certain cable offering me $1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 for my nick
21:45:53 <Gregor> You JOKE THIEF
21:46:24 <Gregor> elliott: Wow, that's like all the money in the world TIMES all the money in the world!
21:46:40 <ion> Dollars squared?
21:49:43 <nooodl_> elliott: here's my code for the thing http://hpaste.org/82379
21:50:17 <elliott> nooodl_: for a start, using Tape Word8 gets you overflow behaviour for free. no mods needed
21:50:34 <nooodl_> apparently my tac implementation was broken... but the program in there seems to find the last byte in stdin so that's cool
21:50:49 <nooodl_> oh. cool
21:51:04 <nooodl_> oh god there's some stupid leftover debug things
21:51:21 <nooodl_> import Debug.Trace (trace), and the Show instance for Tape/DFState
21:51:43 <boily> FreeFull: hm. looks like the exception model changed between 2011 and now.
21:52:39 <elliott> boily: rather, the long-deprecated one finally got removed
21:52:57 <FreeFull> That would be a bigger change then
21:53:21 <nooodl_> man, the anything-but-haskell programmer in me really feels like adding some spaces to ((0,0),(torusWidth-1,torusHeight-1))
21:53:35 <elliott> you can add spaces.
21:53:40 <elliott> nooodl_: I would recommend not storing the input in the state like that
21:53:56 <kmc> multi-letter variable names?!?!?!?! go back to the java mines you corporate drone slave
21:54:01 <elliott> instead you can make run :: DFState -> String -> String
21:54:13 <elliott> and then you can also write runIO :: DFState -> IO (), which can do interactive IO
21:54:25 <nooodl_> i see
21:54:45 <FreeFull> kmc: Ideal haskell has no variables at all, right?
21:54:48 <FreeFull> Everything is pointless!
21:54:55 <kmc> riiiight
21:55:35 <boily> FreeFull: so, yeah. I fear the complete rewrite. besides, simpleirc can't do SSL, which our company's server uses.
21:55:47 <FreeFull> :t (,) ((,) 0 0) ((,))
21:55:49 <lambdabot> (Num b, Num a) => ((a, b), a1 -> b1 -> (a1, b1))
21:55:59 <nooodl_> also interesting: i tried to run it on codepad.org but this happened http://codepad.org/748jN02r
21:56:06 -!- Phantom_Hoover has joined.
21:56:09 <elliott> nooodl_: if I wrote that I would probably then iterate it to a free monad based version.
21:56:30 <FreeFull> I never get how to extract the internal function outside to make application easy
21:56:51 <FreeFull> While staying pointfree
21:58:02 <nooodl_> what was (,) ((,) 0 0) ((,)) supposed to be?
22:00:30 <FreeFull> A way to make a tuple of tuples
22:00:51 <FreeFull> I guess I didn't have to write (0,0) as ((,) 0 0)
22:01:18 <FreeFull> @pl \x y -> ((0,0),(x,y))
22:01:18 <lambdabot> ((,) (0, 0) .) . (,)
22:01:24 <FreeFull> I guess that's what I wanted
22:01:29 <elliott> nooodl_: I would probably also not use Array but that's just me
22:01:51 <nooodl_> elliott: i'd considered Tape (Tape Char) for the code...
22:01:59 <FreeFull> I still don't get the way . works when partially applied like that
22:02:14 <FreeFull> :t ((,) (0,0) .)
22:02:16 <lambdabot> (Functor f, Num t1, Num t) => f a -> f ((t, t1), a)
22:02:17 <elliott> nooodl_: that would be a bad idea
22:02:20 <elliott> FreeFull: ignore that :t
22:02:22 <elliott> stupid Caleskell
22:02:35 -!- boily has quit (Quit: Poulet!).
22:02:39 -!- cuttlefish has quit (Remote host closed the connection).
22:02:41 <FreeFull> ((,) (0,0) .) :: (Num t, Num t1) => (a -> b) -> a -> ((t, t1), b)
22:04:05 <nooodl_> elliott: what would you have used instead? [[Char]]?
22:04:47 <elliott> nooodl_: possibly (Int,Int) -> Char. since you never modify the playfield, and you can construct (Int,Int) -> Char from Array (Int,Int) Char which, if inlined, should be just as performant
22:07:01 <FreeFull> So value :: (Int,Int) -> Char; value = (playfield !)
22:07:41 <nooodl_> well then you're still using Array
22:08:04 <Sgeo> I like this book, although so far it seems to still be world building
22:08:12 <Sgeo> Does The Clockwork Rocket have an actual plot?
22:09:13 <nooodl_> oh, is it good practice to *always* write explicit type signatures for functions
22:10:29 <Sgeo> I think in vanilla Haskell there are some cases where you can't
22:10:45 <Sgeo> (for functions in where and let, I think?)
22:11:12 <nooodl_> oh, yeah, i've never done that
22:11:38 <Sgeo> I mean, there is syntax for it, but some circumstances where it's inadequate, iirc
22:11:45 <elliott> nooodl_: s/functions/top-level definitions/
22:11:53 <elliott> not the same thing
22:12:01 <elliott> (there are non-function top-level definitions, and non-top-level definition functions)
22:12:13 <nooodl_> in my example lines 13-26 seem really ugly and verbose
22:12:24 <elliott> all of the lines are ugly and verbose
22:12:42 <nooodl_> elliott: so, i should've also written "torusWidth :: Int", for example?
22:13:17 <elliott> generally, yes, though it doesn't really matter for a small program :P
22:13:37 <elliott> note that in the absence of you using them as Int they would be defaulted to Integer
22:13:53 <nooodl_> also, nah, some of them are ugly and terse. also some of them are blank!!
22:14:05 <elliott> nooodl_: really I would just use Word32 or something for the Array
22:14:08 <elliott> and not have any explicit mods
22:14:16 <elliott> or what I'd have actually done is write Integer and have no wrapping
22:14:17 <Sgeo> elliott, have you seen my code?
22:14:20 <Sgeo> :/
22:14:21 <elliott> right now this implementation is sub-TC!
22:14:29 <elliott> is of a sub-TC language, rather
22:14:31 <elliott> Sgeo: no
22:14:51 <Sgeo> https://gist.github.com/Sgeo/fe54715fc61d1d98f4cc
22:15:20 <nooodl_> wouldn't Word32 mean a 2^32 by 2^32 array
22:15:43 <elliott> oh, I guess. you can use Map or HashMap for sparse storage
22:16:09 <elliott> this is what I did in my Befunge-98 implementation and it worked well enough, though I planned to switch to something much more complex for optimisation purposes
22:16:45 <elliott> Sgeo: not the nicest code ever yes
22:17:29 <Sgeo> Not the worst I hope?
22:18:56 <elliott> that would be esme
22:19:49 <Sgeo> So, I'm somewhere between perfection and actual blithering lack of meaning
22:19:57 <nooodl_> hmm how horrible is my code
22:37:23 -!- hagb4rd has joined.
22:37:40 -!- nooga has quit (Ping timeout: 256 seconds).
22:42:51 -!- Waffa has joined.
22:44:06 -!- Waffa has quit (Quit: Waffa).
22:46:52 -!- epicmonkey has quit (Ping timeout: 252 seconds).
22:47:01 -!- Taneb has quit (Quit: Leaving).
22:48:26 -!- carado has quit (Ping timeout: 256 seconds).
22:49:22 -!- sirdancealot has quit (Remote host closed the connection).
22:52:55 -!- sirdancealot7 has joined.
23:03:48 -!- fungot has quit (Ping timeout: 248 seconds).
23:03:50 -!- augur has quit (Remote host closed the connection).
23:05:02 -!- myndzi has quit (Ping timeout: 245 seconds).
23:08:18 -!- myndzi has joined.
23:12:07 -!- fizzie has quit (Ping timeout: 245 seconds).
23:18:46 <kmc> http://i.imgur.com/r396dsr.jpg
23:22:18 <Phantom_Hoover> reposting from the front page of /r/math?
23:23:56 -!- fizzie has joined.
23:24:16 <elliott> Phantom_Hoover: how dare he
23:24:35 <Phantom_Hoover> he's turning into ion!
23:24:45 <elliott> turnion
23:40:38 <kmc> oh noes
23:40:55 <kmc> onion / scallion
23:41:03 <kmc> onion / scallion union
23:41:05 <shachaf> @arrrr /math
23:41:06 <lambdabot> Drink up, me 'earties
23:41:31 <kmc> ℝ math
23:43:27 <shachaf> kmc doesn't appreciate the comonad hiding in every monad.
23:44:11 <kmc> where does it hide
23:44:35 -!- sivoais has joined.
23:45:36 <shachaf> in the other category
23:47:10 <elliott> shachaf: extract :: Monad m => Kleisli m (m a) a; duplicate :: Monad m => Kleisli m (m a) (m (m a))
23:47:50 <shachaf> elliott: Right.
23:48:17 <shachaf> I like how extract is id.
23:48:33 <elliott> return :: Comonad w => Cokleisli w a (w a); join :: Comonad w => Cokleisli w (w (w a)) (w a) -- whoa, man
23:48:46 <elliott> I like how duplicate = return, join = extract
23:48:57 <shachaf> duplicate = return?
23:49:04 <shachaf> But duplicate :: m a -> m (m (m a))
23:49:05 <elliott> Well, return . return and extract . extract
23:49:10 <elliott> For Kleisli/Cokleisli respectively.
23:49:13 <shachaf> Are those the correct implementations?
23:49:22 <shachaf> I mean, are you sure how of those returns isn't fmapped or something?
23:49:29 <elliott> Dunno. Ask adj.hs
23:49:31 <shachaf> s/how //
23:49:37 <elliott> Are you sure of those returns?
23:50:00 <shachaf> s#.$#one /#
23:51:53 <shachaf> elliott: Anyway Kleisli comonads are boring.
23:52:10 <shachaf> The Haskop comonad is kind of silly.
23:52:27 <shachaf> Because extract literally = return
23:53:57 <shachaf> contReturn x f = f x
23:54:05 <shachaf> contJoin = (. contReturn)
23:54:11 <shachaf> contFmap f = (. (. f))
23:58:45 <FreeFull> @pl \f -> (. (. f))
23:58:45 <lambdabot> flip (.) . flip (.)
23:59:06 <FreeFull> :t (flip (.) . flip (.))
23:59:08 <lambdabot> Functor f => f a -> (f b1 -> b) -> (a -> b1) -> b
2013-02-15
00:18:30 -!- noam_ has joined.
00:22:04 -!- noam has quit (Ping timeout: 276 seconds).
00:27:15 <Phantom_Hoover> http://en.wikipedia.org/wiki/Vasa_(ship)
00:27:17 <Phantom_Hoover> AHA
00:27:22 <Phantom_Hoover> typical swedish engineering
00:27:45 <Phantom_Hoover> "Vasa has since its recovery become a widely recognized symbol of the Swedish "great power period"."
00:27:53 <Phantom_Hoover> yes sweden this is a true symbol of your golden age
00:41:11 <elliott> did you only just learn about vasa
00:42:16 -!- zzo38 has joined.
00:43:01 -!- zzo38 has set topic: TO PUSH START BUTTON IS ENOUGH | http://codu.org/logs/_esoteric/.
00:47:24 -!- Phantom_Hoover has set topic: TO PUSH IS ENOUGH | http://codu.org/logs/_esoteric/.
00:47:26 <Phantom_Hoover> no zzo38
00:50:26 -!- shachaf has set topic: PUSHKIN IS ENOUGH | http://codu.org/logs/_esoteric/.
01:01:20 <shachaf> http://slbkbs.org/dontclickthis.txt
01:06:13 -!- monqy has joined.
01:16:52 -!- impomatic has quit (Ping timeout: 248 seconds).
01:17:33 <kmc> what if i do
01:18:05 <elliott> you die
01:18:19 <shachaf> dont do it kmc
01:18:55 <hagb4rd> you guys are so wrong
01:18:58 <nooodl_> im going to do it
01:19:02 <hagb4rd> how cac you say this
01:19:10 <shachaf> noooooooooooooooooooooooooooooooooooooo dl_
01:19:17 <monqy> hi what are you doing
01:19:26 <nooodl_> <shachaf> http://slbkbs.org/dontclickthis.txt
01:19:43 <nooodl_> monqy: click it...!!!
01:19:53 <shachaf> no monqy
01:19:58 <shachaf> dontdoit.txt
01:20:16 <monqy> it's a 404 noodle
01:20:56 <shachaf> 404 noodles: the best kind of noodles??
01:21:16 <nooodl_> that sounds like a kingdom of loathing food
01:21:26 <zzo38> When download it with netcat, it is seen to be a 404 error; clicking it won't do anything
01:21:39 <hagb4rd> it must be the one awaking strong expectations
01:21:49 <hagb4rd> followed by disappointment
01:21:58 <nooodl_> i like the solution of downloading it with netcat. "i didn't click it!!"
01:22:14 <kmc> i was going to curl it but 'o wait'
01:22:30 <kmc> hm sandbox
01:22:31 <kmc> `curl http://slbkbs.org/dontclickthis.txt
01:22:34 <HackEgo> ​ % Total % Received % Xferd Average Speed Time Time Time Current \ Dload Upload Total Spent Left Speed \
01:22:40 <kmc> fuckerz
01:22:45 <nooodl_> nice HackEgo line
01:22:46 <kmc> `cat dontclickthis.txt
01:22:47 <HackEgo> cat: dontclickthis.txt: No such file or directory
01:22:55 <kmc> `curl http://slbkbs.org/dontclickthis.txt -o -
01:22:57 <HackEgo> ​ \ curl: (18) transfer closed with 182 bytes remaining to read \ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ERROR: The requested URL could not be retrieved</title> <style type="text/css"><!-- %l body :lang(fa)
01:23:17 <shachaf> wow my error messages aren't html5
01:23:27 <kmc> YOU'RE HOLDING BACK THE WEB
01:23:49 <shachaf> :'(
01:24:22 <ion> What does slbkbs mean?
01:24:22 <zzo38> They don't have to be HTML5.
01:24:55 <zzo38> You don't even need that many HTML tags in the error message.
01:25:53 <shachaf> <hi addressee="monqy"/>
01:25:59 <nooodl_> "<h1>404"
01:26:48 <ion> <404>
01:28:32 <kmc> how does HTTP/0.9 indicate not found (if at all)
01:28:34 <zzo38> Simply <HTML><BODY><P><B>404 ERROR FILE NOT FOUND</B></P></BODY></HTML> might be good; perhaps add a second paragraph with a short explanation and links to relevant information if it seems necessary.
01:28:49 <zzo38> kmc: It doesn't indicate.
01:29:02 <ion> <b> is teh evil.
01:29:41 <elliott> zzo38: does it have to be in uppercase
01:29:44 <zzo38> You can use STRONG or H1 or something else instead
01:29:48 <ion> ELLIOTT: YES
01:30:01 <zzo38> elliott: No, you can be lowercase too if you want.
01:30:15 <ion> *implies b, strong and h1 are semantically similar*
01:32:58 <shachaf> imo <error><error-category>4</error-category><error-details>04</error-details></error>
01:33:53 <zzo38> You can also make it a plain text file if you do not need any HTML on the error message
01:35:39 <hagb4rd> why do you care about html? HTTP/5.1 401 punch line is corrupted or missing CRLF
01:38:03 <zzo38> It can be HTML but it does not have to be such a complicated one. (You might still want to use HTML if you want to contain a title, and possibly a link; it is unlikely that the error message needs a lot of fancy formatting)
01:39:54 <hagb4rd> hm. by default the webserve/browser have some templates to catch the HTTP status code and put it in sth liek html
01:41:34 <hagb4rd> i have never touched those.. mostly because it's hard to make it look good when things just do not work
01:42:23 <monqy> if you say so
01:43:41 <hagb4rd> not really
01:44:17 <monqy> ok
01:44:25 <hagb4rd> i say a lot of bullshit when the day is long
01:44:47 <hagb4rd> the best way to find out is just not to shut up
01:45:12 <monqy> alright
01:45:25 <shachaf> monqy don't say "alright"
01:45:28 <shachaf> say "all right"
01:45:33 <shachaf> it's "the right thing to do"
01:45:34 <hagb4rd> all right
01:46:01 <ion> alright
01:46:06 <monqy> alrite
01:46:17 <ion> alrighty
01:46:39 <shachaf> monqy: that's alwrong
01:46:45 <monqy> ok
02:09:06 -!- Slereah has joined.
02:11:17 -!- Slereah_ has quit (Ping timeout: 255 seconds).
02:17:51 -!- Phantom_Hoover has quit (Remote host closed the connection).
02:34:54 -!- augur has joined.
02:35:28 -!- Arc_Koen has quit (Quit: Arc_Koen).
02:43:21 -!- oerjan has joined.
02:43:38 -!- azaq23 has quit (Quit: Leaving.).
02:51:32 <oerjan> `ls
02:51:34 <HackEgo> bin \ brainfuck.fu \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ fueue.c \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ sudo \ %sudo \ test \ wisdom \ zalgo.hs
02:51:48 -!- fizzie has quit (Ping timeout: 264 seconds).
02:53:34 <oerjan> `run curl http://oerjan.nvg.org/esoteric -o - #I'm wondering if kmc actually got out of the sandbox at all, so trying my own site
02:53:36 <HackEgo> ​ % Total % Received % Xferd Average Speed Time Time Time Current \ Dload Upload Total Spent Left Speed \
02:53:41 <oerjan> oops
02:54:00 <oerjan> `ks
02:54:02 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ks: not found
02:54:03 <oerjan> `ls
02:54:05 <HackEgo> bin \ brainfuck.fu \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ fueue.c \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ sudo \ %sudo \ test \ wisdom \ zalgo.hs
02:54:21 <oerjan> `run curl http://oerjan.nvg.org/esoteric | tail -1 #I'm wondering if kmc actually got out of the sandbox at all, so trying my own site
02:54:22 <HackEgo> ​ \ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ERROR: The requested URL could not be retrieved</title> <style type="text/css"><!-- %l body :lang(fa) { direction: rtl; font-size: 100%; font-family: Tahoma, Roya,
02:54:34 <oerjan> right he didn't
02:56:10 <kmc> why does it start with a declaration that farsi is a right to left language
02:56:15 -!- fizzie has joined.
03:00:19 <elliott> well ain't it
03:00:26 <oerjan> fizzie: fungot deficiency!
03:05:29 <kmc> elliott: true enough
03:05:45 <kmc> shouldn't it just include some css straight from the govt of iran regarding the properties of farsi
03:05:48 <kmc> what could go wrong
03:13:58 -!- oerjan has quit (Quit: Argh).
03:15:54 -!- oerjan has joined.
03:19:43 -!- sebbu2 has joined.
03:19:43 -!- sebbu2 has quit (Changing host).
03:19:43 -!- sebbu2 has joined.
03:20:30 -!- sebbu has quit (Ping timeout: 264 seconds).
03:22:10 -!- augur has quit (Remote host closed the connection).
03:50:11 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
03:50:11 <zzo38> Well, such things are useful to include in the 404 error message result if you want the error message to be displayed in Farsi.
03:53:33 <oerjan> > "ø"
03:53:33 <lambdabot> mueval: recoverEncode: invalid argument (invalid character)
03:54:08 -!- augur has joined.
03:54:51 <zzo38> Maybe lambdabot expects to be working with only ASCII codes?
04:12:08 -!- monqy has quit (Quit: hello).
04:13:16 <oerjan> Hm...
04:14:18 <oerjan> Hm...
04:14:30 <FreeFull> lambdabot doesn't do unicode
04:14:34 <FreeFull> At all
04:14:36 <FreeFull> Is lame
04:14:47 <oerjan> it used too, something broke in an update
04:14:51 <oerjan> *to
04:14:56 <elliott> FreeFull: not really true
04:14:58 <kmc> yeah :(
04:15:09 <FreeFull> elliott: Prove it
04:15:09 <kmc> :t ø
04:15:09 <lambdabot> fd:9: commitBuffer: invalid argument (invalid character)
04:15:13 <oerjan> *upgrade
04:15:16 <elliott> @echo ø
04:15:17 <lambdabot> echo; msg:IrcMessage {msgServer = "freenode", msgLBName = "lambdabot", msgPrefix = "elliott!elliott@unaffiliated/elliott", msgCommand = "PRIVMSG", msgParams = ["#esoteric",":@echo \195\184"]} rest:"\
04:15:17 <lambdabot> 195\184"
04:15:20 <kmc> i know one of @run and @type used to work
04:15:40 <oerjan> @let ø = 42; the_answer = ø
04:15:42 <lambdabot> Defined.
04:15:48 <oerjan> > the_answer
04:15:50 <shachaf> kmc: They both did at one point, didn't they?
04:15:50 <lambdabot> 42
04:15:56 <shachaf> This broke when Cale upgraded to GHC 7.4.
04:16:00 <kmc> :/
04:16:05 <kmc> :\
04:16:20 <shachaf> If I remember correctly, lambdabot both uses String to represent sequences of bytes and ByteString to represent Strings.
04:16:26 <shachaf> In different places.
04:16:29 <shachaf> I might be misremembering, though.
04:16:42 <kmc> bluh
04:16:58 <FreeFull> And it's bytestring encode doesn't do unicode?
04:17:06 <shachaf> I blame dons.
04:19:22 <kmc> every programmer should be required to change his or her name to include at least one non-ASCII character
04:19:35 <FreeFull> kmc: Mine already has ń
04:19:49 <elliott> kmč
04:20:02 <FreeFull> elliott: Gives him that Czech feel
04:20:11 <shachaf> kmc already has LATIN LIGATURE NN in his name.
04:20:14 <shachaf> That's not in ASCII.
04:20:15 <kmc> sounds good to me
04:20:31 <shachaf> Or is that RN?
04:21:08 <FreeFull> kmc isn't his actual name though
04:21:08 <kmc> čipi čips
04:21:34 <FreeFull> He's actually McAl the Kegson
04:22:09 <FreeFull> > [1‥10]
04:22:10 <lambdabot> mueval: recoverEncode: invalid argument (invalid character)
04:22:15 <FreeFull> That's valid haskell
04:22:20 <FreeFull> That lambdabot is chocking on
04:22:57 <kmc> i have a ligature?
04:23:09 <elliott> FreeFull: I think you'll find that's not valid Haskell 2010.
04:23:18 <kmc> every time people talk about ligatures it reminds me of CSI
04:23:18 <elliott> Or maybe it's a valid operator?
04:23:28 <kmc> > generalCategory '…'
04:23:28 <lambdabot> mueval: recoverEncode: invalid argument (invalid character)
04:23:32 <kmc> SEE THAT USED TO WORK
04:23:43 <kmc> anyway it's OtherPunctuation
04:23:49 <FreeFull> ‥ is a valid operator (although not defined by default outside of JHC)
04:27:57 <FreeFull> Haskell 98 says Haskell uses unicode. No idea about 2010
04:28:27 <oerjan> ghc uses utf-8 for parsing code
04:28:31 <kmc> i don't remember, does it specify a character encoding for input files
04:28:41 <kmc> or is that an implementation concern
04:28:44 <oerjan> (With lenient comments)
04:28:45 <FreeFull> 2010 says the exact same thing
04:28:45 <shachaf> kmc: Maybe if we had your voice in #haskell advocating for equality and other Unicodey things, it would still work!
04:28:51 <kmc> oh well
04:29:05 <FreeFull> "Haskell uses the Unicode [2] character set. However, source programs are currently biased toward the ASCII character set used in earlier versions of Haskell. "
04:30:20 <kmc> maybe the implication is that your encoding must agree with ASCII, at least as far as Haskell syntax is concerned
04:30:58 <shachaf> But UTF-16 is the only encoding.
04:31:08 <kmc> are haskell programs specified as sequences of bytes, or are they sequences of characters (with the encoding as bytes left up to the implementation, like e.g. directory layout or compiler flags)
04:31:18 <shachaf> (Little-endian, it goes without saying.)
04:31:23 <shachaf> Characters, I'm pretty sure.
04:32:02 <FreeFull> UTF-16 is only useful if you're using lots of characters that would be multiple bytes in UTF-8, and not many single-byte ones
04:32:37 <pikhq> And with gzip in the picture it's not a *big* win anyways.
04:35:32 <zzo38> I think GD3 tags in VGM format are UTF-16 encoding, although it doesn't say UTF-16 it just says 16-bits characters; therefore, VGMCK will convert UTF-8 to UTF-16 for GD3 tags (everything else in VGMCK is ASCII, except for comments, for which it doesn't care).
04:35:35 <zzo38> It does say: unsigned short *MyString=L"Track name";
04:35:46 <zzo38> Is that writing UTF-16 in Visual C++?
04:36:08 <pikhq> In Visual C++, yeah.
04:36:09 <kmc> UTF-16 is a pretty terrible encoding
04:36:17 <pikhq> I think that'd break horribly elsewhere.
04:36:28 <pikhq> Yeah. UTF-16 is a legacy-only encoding in my book.
04:36:45 <kmc> yet depressingly common :(
04:37:05 <pikhq> Hell, the notion that Unicode is 16-bit is common.
04:37:14 <kmc> yep
04:37:21 <zzo38> Well, I am not using any Unicode characters in my program; they are only read from the input file, only in GD3 tags, and those are in UTF-8 and are then converted to UTF-16 since that is what the VGM format requires.
04:37:27 <kmc> i'm embarassed to think back on how ignorant i was about all this stuff a few years ago
04:37:53 <zzo38> Therefore I am not using the L"..." syntax for anything.
04:38:19 <kmc> i'm increasingly of the opinion that CS curricula need to have a few classes that are like "look, we know most of you will become professional programmers, so here's some shit you need to know even though it's not computer science"
04:38:35 <pikhq> Yeah...
04:38:38 <kmc> don't think i felt this way in college
04:38:43 <kmc> because i thought you could learn all that on your own
04:38:46 <kmc> and you can... eventually
04:38:58 <kmc> but you'll labor under various misconceptions for years
04:39:05 <pikhq> "Here, all you need to know about build systems. Here, all you need to know about character encodings. etc."
04:39:06 <zzo38> kmc: Yes, that is probably true, you should learn stuff relating to programming computer even if not directly related to CS.
04:39:19 <zzo38> pikhq: Yes, those are some examples.
04:39:23 <shachaf> pikhq: What do I need to know about build systems?
04:39:29 -!- sebbu has joined.
04:39:29 -!- sebbu has quit (Changing host).
04:39:29 -!- sebbu has joined.
04:39:38 <kmc> Ludovico technique to teach the students why to use version control
04:39:38 <shachaf> All I know is that they're all horrible.
04:39:48 <pikhq> shachaf: How to fucking write a sane makefile for one.
04:39:58 <elliott> kmc: well it doesn't help that CS can't decide whether it wants to be engineering or mathematics
04:40:01 <shachaf> pikhq: I've never seen such a thing.
04:40:04 <pikhq> They're horrible, but the only thing worse than common buildsystems is incompetent people *using* them.
04:40:17 <kmc> shachaf: build.sh is great! for small projects
04:40:19 <kmc> elliott: yeah
04:40:33 <pikhq> shachaf: This is because you've never seen me crack out make by hand. :P
04:40:43 <pikhq> And, yes, version control.
04:40:50 <pikhq> Probably git, but definitely version control in general.
04:40:55 -!- sebbu2 has quit (Ping timeout: 260 seconds).
04:41:04 <kmc> elliott: i think the faculty skew theoretical (because everyone who does applied stuff left to make megabucks) but they need to attract undergrads so they teach the industrially useful thing, programming, and do it poorly
04:41:07 <zzo38> Computer science doesn't have to do with computers any more than astronomy with telescopes. Computer science is not really science.
04:41:29 -!- monqy has joined.
04:41:37 <pikhq> zzo38: Yes, but computer science curricula in practice are voc ed that doesn't realize it.
04:41:48 <shachaf> `run quote zzo38 | shuf
04:41:50 <HackEgo> 189) <zzo38> Invent the game called "Sandwich - The Card Game" and "Professional Octopus of the World" (these names are just generated by randomly) \ 749) <zzo38> A lot of things happened; not only me, but also you \ 306) <zzo38> <elliott> <quintopia> i know it's unusual, but i agree with you both to some extent \ 868) <zzo38> What is portabl
04:42:08 <shachaf> Oh, man, I forgot about Professional Octopus of the World.
04:42:11 <kmc> there's a tradeoff of course, theory and compilers and systems is good and people should learn that too
04:42:15 <oerjan> zzo38: 749 is quote poetic
04:42:16 <kmc> and it's maybe harder to learn on your own
04:42:20 <oerjan> *quite
04:42:23 <shachaf> kmc: a tradeoff of course
04:42:24 <shachaf> i get it
04:42:28 <oerjan> also quote, naturally
04:43:40 <oerjan> are control characters 14-26 used for anything of consequence nowadays?
04:43:45 <shachaf> @wn course
04:43:45 <lambdabot> *** "course" wn "WordNet (r) 3.0 (2006)"
04:43:46 <lambdabot> course
04:43:46 <lambdabot> adv 1: as might be expected; "naturally, the lawyer sent us a
04:43:46 <lambdabot> huge bill" [syn: {naturally}, {of course}, {course}]
04:43:46 <lambdabot> [ant: {unnaturally}]
04:43:47 <lambdabot> [34 @more lines]
04:43:48 <shachaf> @more
04:43:49 <lambdabot> n 1: education imparted in a series of lessons or meetings; "he
04:43:51 <lambdabot> took a course in basket weaving"; "flirting is not unknown
04:43:53 <lambdabot> in college classes" [syn: {course}, {course of study},
04:43:55 <lambdabot> {course of instruction}, {class}]
04:43:57 <lambdabot> 2: a connected series of events or actions or developments; "the
04:43:59 <lambdabot> [29 @more lines]
04:44:00 <zzo38> oerjan: It depends on the program, I think
04:44:16 <shachaf> oerjan: zzo38 uses them extensively, I'm sure.
04:44:22 <zzo38> For example, you might use shift out and shift in to switch character sets.
04:45:24 <oerjan> *sigh*
04:46:34 -!- quintopia has quit (Ping timeout: 256 seconds).
04:47:53 <elliott> oerjan: hello
04:48:15 <shachaf> hello œrjan
04:50:00 <kmc> linux console will interpret SO / SI to switch to alternate graphic mode (line drawin' and such)
04:50:07 <kmc> but this doesn't work in xterm so i doubt it's used much
04:50:19 <shachaf> cat /dev/urandom
04:50:38 <kmc> i think there should be a trend of using these characters
04:50:46 <kmc> it's like REST but moreso
04:51:30 <zzo38> kmc: I use it when working with Linux. If it doesn't work with xterm then xterm needs to be fixed.
04:51:34 <kmc> oh DC1 and DC3 are used for XON / XOFF software flow control
04:51:45 <kmc> on serial links
04:51:52 * shachaf always confuses "flow control" and "control flow"
04:51:56 <kmc> heh
04:52:02 <kmc> flow control based control flow
04:52:25 <kmc> maybe http://www.linusakesson.net/programming/pipelogic/index.php is a little like that?
04:53:22 <shachaf> Oh, I remember that.
04:57:20 -!- quintopia has joined.
05:01:53 -!- quintopia has quit (Ping timeout: 248 seconds).
05:03:19 -!- quintopia has joined.
05:12:06 -!- Frooxius has quit (Ping timeout: 245 seconds).
05:33:18 -!- Sgeo_ has joined.
05:33:53 -!- Sgeo has quit (Read error: Connection reset by peer).
05:58:51 -!- sebbu2 has joined.
05:59:32 -!- sebbu has quit (Ping timeout: 248 seconds).
06:12:48 <ais523> kmc: DC1 and DC3 still have that effect in some terminals / terminal emulators noadays
06:12:50 <ais523> *nowadays
06:13:01 <ais523> if you forget to tell the kernel off, pressing control-S will freeze the output
06:13:07 <ais523> and you need to control-Q to start it again
06:13:14 <ais523> err, tell the kernel to turn it off
06:13:27 <ais523> kmc: are you sure SI/SO doesn't work in xterm?
06:13:29 <Sgeo_> lolol
06:13:30 <Sgeo_> "This is a great opportunity for you!
06:13:31 <Sgeo_> I saw you have Javascript on your resume and thought you'd be a great fit for this company that is looking for someone to join their QA team to test Java apps!
06:13:31 <Sgeo_> "
06:13:39 <ais523> Sgeo_: didn't you quote this already?
06:13:42 <Sgeo_> (not actual thing I received, just some thing on some website)
06:13:42 <ais523> or is this someone else?
06:13:56 <kmc> ais523: not positive, i think i tested it a while ago
06:14:20 <Sgeo_> Some website claiming to be a recruiter-free way to connect with companies. Regardless of that, that snippit seems so... accurate
06:14:38 <ais523> Sgeo_: email is also a recruiter-free way to contact companies
06:15:04 <monqy> but is email a way to connect with them?
06:15:27 <shachaf> @wn snippit
06:15:28 <lambdabot> No match for "snippit".
06:15:47 <shachaf> monqy: do you understand "string diagrams"
06:15:58 <ais523> hmm… printf '\x0e' turns to DEC line drawing in the Linux console, but not in gnome-terminal
06:16:06 <monqy> shachaf: i think i'v seen them once? what's to know about them
06:16:09 <ais523> and not in xterm
06:16:19 <shachaf> monqy: well you know the proof that an adjunction gives you a monad
06:16:25 <ais523> so this is why NetHack does it the long way around :)
06:18:03 <ais523> printf '\x1b)0' seems to be the portable way to get into DEC line drawing mode
06:18:09 <ais523> not sure if that works in screen, though
06:18:52 <ais523> indeed, it doesn't
06:19:11 <ais523> conclusion: screen and gnome-terminal support a disjoint set of characters for going into DECgraphics mode
06:19:55 <ais523> further conclusion: the portable way to enter DECgraphics mode is to combine the codes, '\x0e\x1b)0' (and '\x0f\x1b)0' to leave it)
06:20:20 <Sgeo_> Russia was hit by meteors
06:21:58 <kmc> ais523: '\e(0' does it for me in screen, xterm, and gnome-terminal
06:22:29 <kmc> designate G0 character set
06:23:00 <kmc> whereas \e) is for G1... perhaps xterm interprets it also as "switch to G1"
06:24:06 <ais523> kmc: my gnome-terminal seemed to be in G1 not G0, though
06:24:11 <kmc> hm
06:24:24 <ais523> hmm… perhaps SI and SO /do/ work in gnome-terminal, it just has the character sets the same by default
06:24:46 <kmc> yeah i think that's the case in xterm as well
06:24:48 <ais523> yeah, that seems to be it
06:25:12 <kmc> if you do \e)0 then \x0e will switch into line drawing
06:25:38 <ais523> works in screen too
06:26:00 <ais523> so yeah, conclusions: first you have to configure G0 and G1, because they don't have consistent defaults
06:26:07 <ais523> then you can SI and SO back and forth as much as you like
06:29:26 <kmc> there's another layer of indirection even: http://en.wikipedia.org/wiki/ISO/IEC_2022#Code_structure
06:29:51 <kmc> you can decide which of G0,G1,G2,G3 is represented by 0x20-0x7F, and separately which is represente dby 0xA0-0xFF
06:30:01 <kmc> in a true 8-bit ISO-2022 terminal anyway
06:30:10 <kmc> not sure how to test this because all my stuff is configured for UTF-8 thankfully
06:32:23 <kmc> maybe that's not an extra layer just an extra degree of freedom
06:32:31 <kmc> my head hurts thinking about ISO 2022
06:35:45 <oerjan> !help languages
06:35:46 <EgoBot> ​languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
06:36:07 <oerjan> !help userinterps
06:36:08 <EgoBot> ​userinterps: Users can add interpreters written in any of the languages in !help languages. See !help addinterp, delinterp, show | !userinterps. List interpreters added with !addinterp.
06:36:16 <oerjan> !userinterps
06:36:17 <EgoBot> ​Installed user interpreters: about acro aol austro bc bct bf2c bfbignum brit brooklyn bypass_ignore bytes cat chaos chiqrsx9p choo cmd cpick ctcp dc decide drawl drome dubya echo ehird elmer fudd glogbot_ignore google graph hello helloworld id inc insanetemp jethro kraut lg lperl lsh map monqy num numberwang ook pansy pi pikhq ping pirate plot postmodern postmodern_aoler prefixes python python2 redneck reverse rimshot rot13 rot47 ruby_ sadbf sanetemp sfedeesh sf
06:36:49 <monqy> does anyone remember what monqy does
06:36:58 <oerjan> !show monqy
06:36:59 <EgoBot> That is not a user interpreter!
06:37:09 <shachaf> monqy: mostly makes up bad puns..........
06:37:15 <monqy> mhm
06:37:15 <oerjan> not even EgoBot it seems
06:37:25 <oerjan> !show monqy
06:37:26 <EgoBot> haskell import Data.Char; main = mapM_ (putChar . toLower) getContents
06:37:27 <shachaf> monqy: can i have a pun
06:37:41 <shachaf> !monqy Hi Monqy
06:37:51 <shachaf> how do you use EgoBot!!!!
06:37:53 <shachaf> !help
06:37:54 <EgoBot> ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
06:37:54 <EgoBot> ​\ /tmp/runghcXXXX3979.hs:1:52: \ Couldn't match expected type `[Char]' with actual type `IO String' \ In the second argument of `mapM_', namely `getContents' \ In the expression: mapM_ (putChar . toLower) getContents \ In an equation for `main': \ main = mapM_ (putChar . toLower) getContents
06:38:16 <oerjan> !delinterp monqy
06:38:17 <EgoBot> ​Interpreter monqy deleted.
06:38:17 <shachaf> wow monqy you don't even typecheck
06:38:51 <oerjan> !addinterp monqy haskell import Data.Char; main = interact (map toLower)
06:38:51 <EgoBot> ​Interpreter monqy installed.
06:39:00 <oerjan> !monqy Hi Monqy
06:39:06 <EgoBot> runghcXXXX4253.hs: <stdin>: hGetContents: invalid argument (Invalid argument) \ runghcXXXX4253.hs: epollWait: invalid argument (Bad file descriptor) \ runghcXXXX4253.hs: ioManagerDie: write: Bad file descriptor
06:39:19 -!- fungot has joined.
06:39:21 <oerjan> fantastic
06:39:37 <oerjan> Gregor: you've managed to break even _EgoBot_ !haskell?
06:40:15 <fizzie> fungot: You're not doing anything special most of the time, how about you write yourself a Haskell implementation?
06:40:15 <fungot> fizzie: we can make our own way back machine to archive esoteric pages.... i think
06:40:33 <oerjan> @tell Gregor you've managed to break EgoBot !haskell?
06:40:33 <lambdabot> Consider it noted.
06:40:35 <fizzie> fungot: I'm sure that's theoretically possible, but is it wise?
06:40:35 <fungot> fizzie: compiling s48 right now :) it'd very easy to define
06:41:43 -!- nooodl_ has quit (Read error: Connection reset by peer).
06:42:43 <oerjan> `run ghc -e 'putStrLn "Is HackEgo's haskell working now?"'
06:42:45 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `"' \ bash: -c: line 1: syntax error: unexpected end of file
06:42:56 <oerjan> wat
06:43:17 <oerjan> `run ghc -e 'putStrLn "Is HackEgo'\''s haskell working now?"'
06:43:24 <HackEgo> Is HackEgo's haskell working now?
06:43:27 <oerjan> yay
06:43:58 <oerjan> `fetch https://raw.github.com/catseye/Emmental/master/src/emmental.hs
06:44:01 <HackEgo> 2013-02-15 06:44:00 URL:https://raw.github.com/catseye/Emmental/master/src/emmental.hs [11866/11866] -> "emmental.hs" [1]
06:44:14 <oerjan> `run ghc --make emmental.hs
06:44:20 <HackEgo> ​[1 of 1] Compiling Main ( emmental.hs, emmental.o ) \ \ emmental.hs:1:1: \ The function `main' is not defined in module `Main'
06:44:25 <oerjan> oh right hm
06:44:29 <oerjan> needs work
06:52:50 -!- impomatic has joined.
07:16:12 <oerjan> `rm emmental.hs
07:16:16 <HackEgo> No output.
07:16:29 <oerjan> `fetch http://oerjan.nvg.org/esoteric/emmental.hs
07:16:34 <HackEgo> 2013-02-15 07:16:33 URL:http://oerjan.nvg.org/esoteric/emmental.hs [12310/12310] -> "emmental.hs" [1]
07:16:39 -!- epicmonkey has joined.
07:16:39 <oerjan> `run ghc --make emmental.hs
07:16:40 <shachaf> `echo ø
07:16:41 <HackEgo> ​ø
07:17:08 <HackEgo> ​[1 of 1] Compiling Main ( emmental.hs, emmental.o ) \ Linking emmental ...
07:17:15 <oerjan> `ls
07:17:16 <HackEgo> bin \ brainfuck.fu \ canary \ dbg.out \ egobot.tar.xz \ emmental \ emmental.hi \ emmental.hs \ emmental.o \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ fueue.c \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ sudo \ %sudo \ test \ wisdom \ zalgo.hs
07:17:25 <oerjan> `run mv emmental bin
07:17:29 <HackEgo> No output.
07:17:31 <oerjan> `emmental #65.
07:17:33 <HackEgo> A
07:17:52 <oerjan> `run mkdir src
07:17:54 <HackEgo> No output.
07:18:05 <oerjan> `run mv fueue.c emmental.hs src
07:18:08 <HackEgo> No output.
07:18:18 <oerjan> `run rm emmental.*
07:18:21 <HackEgo> No output.
07:18:23 <oerjan> `ls
07:18:25 <HackEgo> bin \ brainfuck.fu \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ src \ sudo \ %sudo \ test \ wisdom \ zalgo.hs
07:18:39 <oerjan> `ls quines
07:18:41 <HackEgo> cat \ perl \ python \ ruby
07:18:59 <oerjan> `file factor
07:19:01 <HackEgo> factor: directory
07:19:18 <oerjan> `run mv factor-* src
07:19:26 <HackEgo> No output.
07:19:55 <oerjan> `run diff quotes quotese
07:19:57 <HackEgo> 1d0 \ < <Aftran> I used computational linguistics to kill her. \ 3,4c2,3 \ < <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ < <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ --- \ > <Quas_NaArt> Hmmm... My fing
07:20:18 <oerjan> `run head -1 quotese
07:20:20 <HackEgo> ​<Slereah> EgoBot just opened a chat session with me to say "bork bork bork"
07:20:24 <oerjan> `rm quotese
07:20:26 -!- Halite has joined.
07:20:27 <HackEgo> No output.
07:20:31 <Halite> esoterica
07:20:44 <shachaf> `?hh esoteric
07:20:46 <HackEgo> Thihs chahnnehl ihs ahbouht prohgrahmmihng -- fohr the ohthehr kihnd ohf ehsohtehrihca, try #ehsohtehrihc ohn ihrc.dahl.neht.
07:20:58 <shachaf> good old dahl.net
07:21:04 <Halite> `run mkdir /home/hackbot/sudo
07:21:05 <HackEgo> mkdir: cannot create directory `/home/hackbot/sudo': Permission denied
07:21:20 <Halite> `run install sudo /home/hackbot/sudo
07:21:21 <HackEgo> install: omitting directory `sudo'
07:22:16 <Halite> :o
07:22:16 <Halite> `run exit
07:22:17 <HackEgo> No output.
07:22:24 <Halite> `hh
07:22:26 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: hh: not found
07:22:35 <Halite> `run estorica
07:22:36 <HackEgo> bash: estorica: command not found
07:22:38 <oerjan> `run emmental -d '#65.'
07:22:39 <HackEgo> State "\NUL" "" \ State "\ACK" "" \ State "A" "" \ AState "" ""
07:23:10 <Halite> `run sudo logout
07:23:11 <HackEgo> bash: sudo: command not found
07:24:30 <shachaf> Are you Hafydd? Or whoever that o=was.
07:24:42 <Halite> `run shutdown
07:24:44 <HackEgo> bash: shutdown: command not found
07:25:07 <Halite> `run rm /home/hackbot/hackbot.hg/
07:25:09 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/': Is a directory
07:25:38 <oerjan> @tell Gregor mind you, HackEgo's haskell seems to be working great.
07:25:39 <lambdabot> Consider it noted.
07:26:28 <Halite> `run echo "error"
07:26:30 <HackEgo> error
07:26:38 <Halite> `run echo "No output."
07:26:40 <HackEgo> No output.
07:26:46 <Halite> `run error
07:26:48 <HackEgo> bash: error: command not found
07:26:50 <shachaf> `ghc -e 'putStrLn "oerjan: can you stick a comonad between the F and G of the comonad you get from an adjunction?"`
07:26:53 <HackEgo> ghc: unrecognised flags: -e 'putStrLn "oerjan: can you stick a comonad between the F and G of the comonad you get from an adjunction?"` \ Usage: For basic information, try the `--help' option.
07:26:54 <Halite> `run throe "error"
07:26:54 <shachaf> oopse
07:26:56 <HackEgo> bash: throe: command not found
07:27:12 <shachaf> oerjan: Anyway, can you?
07:27:25 <oerjan> shachaf: HOW SHOULD I KNOW
07:27:28 <Halite> `run while (true); do echo "hi"
07:27:30 <HackEgo> bash: -c: line 1: syntax error: unexpected end of file
07:27:50 <shachaf> oerjan: Well, you know about adjunctions, right?
07:27:57 <oerjan> yes, somewhat
07:28:13 <shachaf> You know how when F -| G and M is a monad, GMF is a monad?
07:28:51 <oerjan> i didn't know that, but i guess it makes sense if there's a category of adjunctions so you can compose things
07:29:46 <shachaf> Well, when F -| G, GF is a monad and FG is a comonad, right?
07:30:04 <oerjan> as in, i assume it's because M = G'F' and you can split it into GG' and F'F being another adjunction
07:30:34 <shachaf> Hmm, can you compose adjunctions like that when they go all over the place into different categories?
07:30:47 <oerjan> so, if FG and F'G' are comonads, i assume it would work the other way
07:31:05 <oerjan> i don't know if adjunctions compose, but it would be the easiest way to make what you say true
07:31:25 <shachaf> Hrm.
07:31:40 <Halite> `run while (true); do echo "hi"; done;
07:31:47 <oerjan> the categories would fit in the right place, i think
07:31:57 <shachaf> So then you take it as an adjunction into Kleisli D, or something.
07:31:57 <HackEgo> hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \ hi \
07:32:01 <Halite> omg
07:32:24 <Halite> LOLFAIL
07:32:34 <Halite> `run echo "I survived!"
07:32:35 <HackEgo> I survived!
07:32:40 <Halite> :o
07:32:42 <shachaf> HackEgo: You should stop that.
07:32:48 <shachaf> You're spamming the channel. It's annoying.
07:33:05 <monqy> mistab of funpun, shachaf?
07:33:07 <monqy> er
07:33:10 <monqy> or funpun
07:33:25 <shachaf> monqy: ?
07:33:29 <shachaf> Oh.
07:33:37 <shachaf> Halite: You should stop making HackEgo spam the channel.
07:33:49 <shachaf> monqy: they were both doing it......
07:33:54 <zzo38> Filter out HackEgo's messages if you don't want it
07:34:04 <shachaf> zzo38: I meant Halite.
07:34:07 <Halite> `run while (true); do echo "HackEgo is awesome"; done;
07:34:11 <HackEgo> HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awesome \ HackEgo is awe
07:34:14 <zzo38> Filter out Halite's messages if you don't want it.
07:34:42 <Halite> `run echo "Halite says 'Please don't filter out my messages!'";
07:34:43 <HackEgo> Halite says 'Please don't filter out my messages!'
07:34:52 <zzo38> Halite: I think you can make HackEgo by private messages too.
07:35:01 <shachaf> oerjan: Hmm, it seems that they do compose so what you said works out.
07:35:16 <oerjan> suspected so
07:35:22 <Halite> `run echo "Halite says 'NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO DON'T";
07:35:24 <HackEgo> Halite says 'NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO DON'T
07:35:38 <oerjan> food ->
07:35:43 <shachaf> So I guess everything works the same way with comonad.
07:35:50 <monqy> does hackego have an “ignore list„
07:36:09 <shachaf> monqy: Gregor said so, I think.
07:36:42 <shachaf> oerjan: Does this mean you can't have an adjunction between Hask and Haskop one way?
07:36:48 <shachaf> Nontrivial adjunction, I mean.
07:37:09 <Halite> `run echo "Halite says 'Please don't filter out my messages!'";
07:37:10 <HackEgo> Halite says 'Please don't filter out my messages!'
07:37:22 <monqy> halite please stop
07:37:40 -!- epicmonkey has quit (Ping timeout: 248 seconds).
07:38:31 <Halite> `run echo "Halite says 'Please don't filter out my messages then!'";
07:38:32 <HackEgo> Halite says 'Please don't filter out my messages then!'
07:38:45 <monqy> please
07:38:59 <Halite> `run echo "Halite says 'Please don't filter out my messages then!'";
07:39:00 <HackEgo> Halite says 'Please don't filter out my messages then!'
07:39:24 <monqy> i'm not ignoring you oh my god stop being a child about this
07:39:41 <shachaf> monqy: do you "hate children"
07:39:44 <monqy> yes
07:39:50 <Halite> `echo I hate children haters
07:39:51 <HackEgo> I hate children haters
07:39:58 <shachaf> most of them aren't as annoying as Halite though................
07:40:03 <shachaf> also don't be ageist plz
07:40:06 <monqy> shachaf: good point
07:40:13 <Halite> shachaf, I don't mean to be annoying
07:40:33 <monqy> i don't actually hate children
07:40:40 <monqy> just hate it when children act childish!!!
07:40:48 <monqy> and also adults act childish
07:40:58 <shachaf> does childish mean "like a child"
07:41:01 <monqy> does this make me "childishist"
07:41:16 <monqy> like a stereotypical child i guess
07:41:25 <monqy> immature, whiny, yada yada
07:41:29 <shachaf> wow stereotypist
07:41:34 <fizzie> monqy: I think it makes you a "cichlid".
07:41:41 <shachaf> "immature" "stereotypical child" more ageism!!
07:43:10 <monqy> shachaf: are you saying that all children are whiny and immature??? maybe it is you who are the ageist
07:43:33 <Halite> monqy, no. You're just ageist.
07:43:42 <shachaf> monqy: are you putting words into my mouth
07:43:57 <Halite> `echo `ban monqy
07:43:58 <HackEgo> ​`ban monqy
07:43:59 <Halite> `echo ban monqy
07:44:00 <HackEgo> ban monqy
07:44:10 <shachaf> Halite: It would be best for everyone involved if you just stopped.
07:44:46 <Halite> `echo shachaf: Be nice. That is ageist.
07:44:47 <HackEgo> shachaf: Be nice. That is ageist.
07:45:05 -!- ChanServ has set channel mode: +o oerjan.
07:45:09 <oerjan> Halite: Stop.
07:45:32 <Halite> oerjan: I'm being myself.
07:45:39 <fizzie> Stop being yourself, then.
07:45:49 <fizzie> (If that's what it's like.)
07:46:19 <Halite> fizzie, I can't. Everyone says 'be yourself'.
07:46:44 <zzo38> Halite: Send messages by private to HackEgo.
07:47:05 <elliott> Hey guys I'm back.
07:47:08 <monqy> hi elliott
07:47:20 <shachaf> welqome baq
07:47:23 <elliott> Halite: Shut the fuck up and stop annoying everyone and stop being difficult when people repeatedly tell you to stop.
07:47:37 <elliott> If you define yourself by way of being an irritating shit then you'll get treated as one.
07:59:51 -!- Halite has changed nick to Halite[Sad].
08:00:04 <Halite[Sad]> stop swearing
08:00:10 <Halite[Sad]> it makes me sad
08:00:15 -!- Halite[Sad] has changed nick to Halite.
08:01:04 <Halite> I'm a little child who is just interested in programming.
08:01:18 <Halite> However annoying I may seem, I don't mean to be annoying.
08:01:35 <Halite> By the way, I do have a social disability.
08:01:37 <elliott> I think if you want to not be sad you should perhaps consider everyone else in the channel who sees a couple of pages of pointless HackEgo spam and asks you to stop.
08:01:41 <elliott> I take back what I said, though.
08:01:58 <monqy> Halite: if you don't mean to be annoying could you please put some effort into it then
08:02:07 <Halite> monqy, I'll try.
08:13:03 <Halite> monqy, btw, do you prefer that I use a logic table boolean operation or a NAND
08:13:10 <Halite> for my programming language
08:13:40 <monqy> uhh
08:13:45 <monqy> ??
08:14:04 <monqy> what are you talking about?
08:14:14 <Halite> monqy, my programming language will have one boolean operation only. What should this operation be
08:14:49 -!- nooga has joined.
08:14:52 <monqy> what sort of programming language are you going for?
08:15:42 <Halite> gtg
08:15:46 <monqy> ok
08:17:07 <Deewiant> If you have only one it can only be NAND or NOR if you want all Boolean operations to be possible
08:17:48 <shachaf> imo the best boolean operation is XOR
08:18:23 <Deewiant> Unfortunately it's not functionally complete
08:18:43 <shachaf> That's part of being the best.
08:18:54 <Deewiant> OK
08:18:57 <shachaf> I mean that the required properties for being the best are incompatible with being functionally complete.
08:19:52 -!- Bike has joined.
08:21:43 <fizzie> But they told us in school that all the 16 binary Boolean functions are equally worthy of love and affection, and none of them is in any way "wrong" or "bad". :/
08:22:10 <Deewiant> They didn't tell us that.
08:22:15 <zzo38> fizzie: Perhaps not of themself, but they can be worse/better for certain circumstances.
08:22:32 -!- aloril has quit (Ping timeout: 276 seconds).
08:22:50 <elliott> `welcome Bike
08:22:56 <HackEgo> Bike: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
08:23:09 -!- carado has joined.
08:23:57 <oerjan> <shachaf> That's part of being the best. <-- in that case i recommend ternary majority voting
08:23:59 <Bike> I should check out the dal channel sometime, if only to see if they mention "the other kind of esoterica" and link to here.
08:24:19 <shachaf> hi Bike
08:24:33 <elliott> Bike: actually I scouted them out
08:24:40 <Bike> hi shachaf
08:24:43 <elliott> as in the nth person came in and I literally searched several networks for an active channel about esoterica
08:24:48 <elliott> and asked them if we could point people their way
08:24:54 <Bike> nice
08:24:59 <elliott> they were sort of confused
08:25:08 <elliott> in both the local and global sense
08:25:43 <Deewiant> Local and global sense?
08:26:01 <monqy> confused as a pun
08:29:27 <elliott> Deewiant: they were confused about me asking if I could point people their way
08:29:30 <elliott> Deewiant: they were also confused.
08:29:42 <Deewiant> I see.
08:29:50 <Bike> man i hope there are kabbalists or some shit
08:30:53 <shachaf> #haskell has cabalists
08:31:01 <shachaf> "next best thing??"
08:31:03 <Bike> it's just not the same
08:31:14 <Bike> ever since the lumber cabal fell i..... i've just felt so empty
08:35:14 -!- aloril has joined.
08:40:36 -!- epicmonkey has joined.
08:48:46 -!- sivoais has quit (Ping timeout: 245 seconds).
08:51:31 -!- sivoais has joined.
09:09:58 -!- Taneb has joined.
09:17:24 -!- sebbu2 has quit (Ping timeout: 248 seconds).
09:18:14 -!- sebbu has joined.
09:18:14 -!- sebbu has quit (Changing host).
09:18:14 -!- sebbu has joined.
09:25:40 <Taneb> oerjan more like OPerjan
09:25:54 -!- oerjan has set channel mode: -o oerjan.
09:27:16 <elliott> Taneb: pun of the century
09:27:43 <shachaf> wait why did Taneb get pun of the century
09:27:48 <shachaf> not fair!!
09:27:54 <shachaf> the century isn't even over yet
09:27:58 <shachaf> what if monqy makes a really good pun
09:28:04 <shachaf> monqy: hi monqy
09:28:08 <monqy> hi
09:28:11 <shachaf> start making puns
09:28:25 <shachaf> so elliott will regret his folly
09:29:14 <Bike> Maybe elliott meant the century ending precisely after Taneb said that.
09:29:33 <shachaf> It's possible.
09:29:43 <shachaf> Still, some pretty good puns have been made in the last 100 years.
09:29:56 <shachaf> Bike: Do you know what adjunctions are?
09:30:16 <Bike> Probably not.
09:30:20 <Taneb> shachaf, I know what adjunctions are, should I be worried?
09:30:27 <shachaf> Taneb: That depends.
09:30:31 <shachaf> how much do you know
09:30:41 <Taneb> not that much
09:30:57 <shachaf> Can you give me an adjunction : Hask -> Hask^op?
09:33:45 <Taneb> No!
09:33:46 <Taneb> Because I never learnt the notation!
09:39:00 -!- Halite has quit (Remote host closed the connection).
09:39:01 <shachaf> Taneb: OK, can you give me an adjunction between Hask and Hask^op?
09:39:27 <Taneb> (what does Hask^op mean?)
09:39:42 <monqy> have you ever heard of "opposite category"
09:39:48 <Taneb> I have not
09:40:47 -!- Taneb has quit (Quit: DUNGEONS OF DREDMOR TIME).
09:41:05 <shachaf> monqy: you know how bicategories can have three duals??
09:41:13 <shachaf> C, C^op, C^co, C^coop
09:41:15 <oerjan> shachaf: isn't the adjunction between (-> r) and itself from Hask to Hask^op (or is it the other way around) what gives the Cont monad?
09:41:30 <shachaf> oerjan: Right. I mean one the other way around from that.
09:41:37 <Bike> three duals <-- words, meaning things
09:41:41 <oerjan> aha
09:42:10 <shachaf> There's the obvious adjunction (-> r) -| (-> r), where you have (a -> r) <- b === a -> (r -> b)
09:42:21 <shachaf> Which gives you Cont.
09:42:36 <shachaf> But I think there isn't a (nontrivial) adjunction the other way around?
09:42:43 <oerjan> okay
09:43:01 -!- Bike has quit (Quit: leaving).
09:44:04 <oerjan> i assume you've thought much more about this than me, anyway.
09:44:48 <shachaf> oerjan: edwardk's argument was along the lines of:
09:45:02 <shachaf> If F -| G, F : Hask^op -> Hask, G : Hask -> Hask^op
09:45:25 <shachaf> Then GF is a monad in Hask^op, i.e. a comonad in Hask
09:45:39 <oerjan> right
09:45:51 <shachaf> And GMF is a monad in Hask^op too, where M is a monad in Hask
09:46:12 <shachaf> And therefore you'd get a comonad with a Haskell monad sandwiched in the middle.
09:46:14 <oerjan> if you say so
09:46:23 <shachaf> oerjan: By your own argument...
09:46:43 <shachaf> Composing adjunctions and all that.
09:46:52 <oerjan> right
09:47:51 <shachaf> And this would let you e.g. write something like m a -> a?
09:48:14 <oerjan> okay
09:48:56 <oerjan> sounds reasonable, unless the G and F manage to neutralize the monad somehow
09:49:09 <shachaf> Right.
09:49:17 <shachaf> So you can make Const Void or something.
09:49:32 <shachaf> Which is a pretty boring functor but gives you a comonad.
09:49:42 <shachaf> Can you make anything more interesting?
09:50:06 <oerjan> well _i_ dunno
09:50:33 <shachaf> if not you then who?
09:50:52 <oerjan> i'd have bet edwardk, naturally :P
09:53:33 -!- Phantom_Hoover has joined.
09:54:07 -!- monqy has quit (Quit: hello).
09:59:45 <ais523> hmm… does Void have one possible value, or no possible values?
09:59:52 <ais523> I'm guessing none, because () already exists
10:00:28 <shachaf> It has one value. () has two.
10:00:46 <oerjan> in a terminating language, none, but haskell is lazy and has bottom values
10:08:35 <zzo38> Const Void gives you the Initialize comonad for Haskell (there is a Initialize comonad for every initial object in any category)
10:09:41 <shachaf> Initiate, zzo38
10:09:43 <shachaf> it's Initiate
10:10:12 <zzo38> OK, maybe it should be Initiate?
10:56:28 -!- zzo38 has quit (Remote host closed the connection).
11:24:34 -!- oerjan has quit (Quit: leaving).
11:26:18 -!- ais523 has quit.
11:51:03 <elliott> so russia today literally reported "Urals meteorite shot down by Russian air defense — military source."
11:51:06 <elliott> Phantom_Hoover: appreciate this with me
11:51:17 <elliott> "it's ok guys... we shot the fucking meteorite"
11:51:21 <Phantom_Hoover> ok
11:51:26 <Phantom_Hoover> in russia's defence
11:51:29 <Phantom_Hoover> actually
11:51:30 <Phantom_Hoover> no
11:51:41 <Phantom_Hoover> shooting a meteorite in the air is idiotic
11:51:51 <elliott> in russia's defence, they have a multitude of forces
11:51:58 <elliott> such as meteorite-shooting guns
11:52:02 <Phantom_Hoover> missiles, elliott
11:52:03 <elliott> that they use to defend russia
11:52:04 <Phantom_Hoover> not guns
11:52:05 <elliott> Phantom_Hoover: no
11:52:07 <elliott> guns
11:52:10 <elliott> WHERE DOES IT SAY MISSILES
11:52:15 <Phantom_Hoover> guns that shoot missiles?
11:52:24 <elliott> no they just shot it with a bullet and it died
11:52:27 <elliott> thank god for putin
11:53:23 <elliott> Phantom_Hoover: i'm just trying to imagine what they're trying to get their readers to envision
11:53:25 <elliott> like
11:53:30 <elliott> ok you guys shot a meteorite
11:53:35 <elliott> what... did that achieve
11:53:37 <elliott> what happened???
11:53:43 <shachaf> elliott: well otherwise it would just keep flying around wouldn't it
11:53:49 <shachaf> terrorizing the population
11:53:52 <shachaf> disturbing the peace
11:53:52 <elliott> no shachaf that's called a planet
11:53:54 <Phantom_Hoover> well
11:53:54 <Phantom_Hoover> ok
11:54:04 <Phantom_Hoover> if a meteor starts fragmenting it burns up faster
11:54:09 -!- azaq23 has joined.
11:54:29 -!- azaq23 has quit (Max SendQ exceeded).
11:54:41 <Phantom_Hoover> but the thing is that when that happens, you end up with an airburst in the atmosphere which i suspect could easily end up being more destructive
11:55:12 <elliott> maybe they just saw an opportunity to cause a really big explosion
11:55:16 <elliott> a meteorite-shaped opportunity
11:55:24 <elliott> and they took it (took, v. to shoot at and hence blow up)
11:55:34 -!- azaq23 has joined.
11:55:41 <Phantom_Hoover> it must've been hard on them in the long years since the nuclear test ban
11:55:53 -!- azaq23 has quit (Max SendQ exceeded).
11:56:24 <elliott> Phantom_Hoover: here is a really big boom for you http://www.youtube.com/watch?v=b0cRHsApzt8
11:56:29 -!- azaq23 has joined.
11:56:46 <Phantom_Hoover> i think that's actually the sonic boom, not it blowing up
11:57:07 <Phantom_Hoover> reports were inconclusive when last i checked
11:57:18 <elliott> I said it is a boom Phantom_Hoover
11:57:20 <elliott> what more do you fucking want
11:57:23 <elliott> :(
11:58:50 <Phantom_Hoover> according to north korea their nuclear test was carried out "in a safe and perfect manner"
11:59:11 <Phantom_Hoover> and posed no impact on the surrounding ecological environment
11:59:36 <fizzie> http://www.youtube.com/watch?v=JPC8W672mXc <- Sonic Boom.
11:59:38 <Phantom_Hoover> obviously this is the week of boom
12:00:04 <elliott> fizzie: did you just google "sonic boom"
12:00:19 <Phantom_Hoover> no, fizzie is a top fan of sonic
12:01:17 <fizzie> No, I youtube'd "sonic boom", to find that particular video.
12:15:38 -!- hagb4rd has joined.
12:20:00 -!- sebbu has quit (Ping timeout: 260 seconds).
12:26:55 -!- copumpkin has quit (Ping timeout: 252 seconds).
12:27:32 -!- copumpkin has joined.
12:31:49 -!- sebbu has joined.
12:31:49 -!- sebbu has quit (Changing host).
12:31:49 -!- sebbu has joined.
12:39:32 -!- sebbu has quit (Ping timeout: 248 seconds).
12:52:26 -!- sebbu has joined.
12:52:26 -!- sebbu has quit (Changing host).
12:52:26 -!- sebbu has joined.
13:02:28 -!- sebbu has quit (Ping timeout: 248 seconds).
13:10:48 -!- sebbu has joined.
13:10:48 -!- sebbu has quit (Changing host).
13:10:48 -!- sebbu has joined.
13:40:46 -!- augur has quit (Remote host closed the connection).
13:50:21 -!- glogbackup has joined.
14:14:27 -!- sebbu has quit (Ping timeout: 248 seconds).
14:21:05 -!- Phantom_Hoover has quit (Quit: Leaving).
14:21:38 -!- Phantom_Hoover has joined.
14:21:55 -!- Arc_Koen has joined.
14:22:09 -!- sebbu has joined.
14:22:41 -!- augur has joined.
14:31:27 -!- boily has joined.
14:59:38 -!- sebbu2 has joined.
15:00:20 -!- sebbu has quit (Ping timeout: 248 seconds).
15:24:44 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
15:24:58 -!- sebbu2 has changed nick to sebbu.
15:55:31 -!- Taneb has joined.
15:59:00 -!- sebbu has quit (Ping timeout: 248 seconds).
16:28:30 -!- Taneb has quit (Quit: Leaving).
16:32:18 -!- Phantom_Hoover has joined.
16:39:35 <Sgeo_> wtf is this word "transcompiles"
16:39:59 <kmc> i think it just means "compile" when the target language is not super low level
16:40:02 <kmc> pretty arbitrary
16:41:36 <Slereah> I think it's a surgery to change your compiler
16:44:44 <boily> it's a compiler that's bad for your health, by opposition to unsaturated ones.
16:45:40 -!- carado has quit (Ping timeout: 256 seconds).
16:46:07 <kmc> now i want to know what a cispiler is
16:51:35 -!- Frooxius has joined.
16:55:12 -!- sebbu has joined.
16:55:12 -!- sebbu has quit (Changing host).
16:55:12 -!- sebbu has joined.
16:57:02 -!- Halite has joined.
16:57:06 <Halite> I am bored.
17:04:44 -!- kallisti has joined.
17:04:45 -!- kallisti has quit (Changing host).
17:04:45 -!- kallisti has joined.
17:05:29 <Phantom_Hoover> <kmc> now i want to know what a cispiler is
17:06:03 <Phantom_Hoover> a compiler with the same source and target languages, duh
17:15:49 <Halite> SaltScript
17:16:34 <Halite> what should I add to SaltScript
17:18:59 <Halite> ok, I'll make another BF-like language if you don't listen to those developing better languages
17:20:04 -!- Halite has quit (Changing host).
17:20:04 -!- Halite has joined.
17:23:06 -!- oerjan has joined.
17:23:12 <Arc_Koen> hey guys
17:23:13 -!- hagb4rd has quit (Ping timeout: 248 seconds).
17:23:26 <Arc_Koen> do you think C++ would be adapted to write an engine for interactive fiction?
17:23:32 <Arc_Koen> I thought maybe Ocaml would be better
17:24:00 <Phantom_Hoover> Halite, are you just trying to be a laughing stock...
17:24:21 <Phantom_Hoover> really, your enthusiasm is ok but jesus, have some humility
17:24:37 <Halite> Phantom_Hoover, not again. I just enter the channel and you go off.
17:24:52 <Phantom_Hoover> well you also said some things
17:25:03 <Halite> Phantom_Hoover, nothing to go off on
17:25:47 <Phantom_Hoover> other than demanding we all listen to you about your fantastic language
17:26:37 <Halite> Phantom_Hoover, I am just asking what I should add to my language. I'm not showing off or demanding at all.
17:28:13 <Phantom_Hoover> a good starting point would be actually giving any details about it first
17:29:47 <Halite> ok, then, Phantom_Hoover.
17:31:21 <Halite> Commands: set(varname,value) rvar(name) ifthen(test,func) ifelse(test,func,other) oper(table,x,y) tfToBinary(tf) binaryToTf(bin) print(text,nl)
17:32:30 <Halite> If you want, ask about a command. When you want, tell me a suggestion.
17:32:39 <Phantom_Hoover> so which of those is the interesting one
17:32:53 <Halite> I find oper() interesting.
17:33:40 <Phantom_Hoover> what does it do
17:33:50 <Halite> oper(table,x,y) is the only boolean operation existant in SaltScript. It takes in a logic table, x, and y, and returns a true or false value.
17:34:21 <Halite> Table is an integer, x is a boolean value, and y is also a boolean value.
17:34:59 <Arc_Koen> so the integer should be between 0 and 15?
17:35:07 <Halite> Arc_Koen, correct.
17:35:20 <Phantom_Hoover> 0 and 7 surely
17:36:00 <Arc_Koen> Phantom_Hoover: please don't contradict me when I utter random numbers
17:36:17 <Halite> Phantom_Hoover, wrong. It's in between 0 and 15.
17:36:22 <Phantom_Hoover> er
17:36:47 <Halite> table is in between 0 and 15. 8 would make the function act as an AND gate.
17:36:54 <Phantom_Hoover> there are only 7 2-argument boolean functions
17:37:07 * oerjan swats Phantom_Hoover -----###
17:37:15 <Halite> Phantom_Hoover, it's a 3-argument function I made up. It is functionally complete.
17:37:29 <Arc_Koen> Phantom_Hoover: are you assuming some kind of commutativity?
17:37:38 <Phantom_Hoover> no
17:37:41 <Phantom_Hoover> i'm just an idiot
17:37:49 <Arc_Koen> also that would make it 8
17:38:15 <Halite> The language has the 3-arg function and recursion, making it Turing complete
17:38:15 <Sgeo_> ) 1 (15 b.) 0
17:38:16 <jconn> Sgeo_: 1
17:38:19 <Sgeo_> ) 1 (16 b.) 0
17:38:19 <jconn> Sgeo_: 0
17:38:30 <Sgeo_> hm
17:38:36 <Arc_Koen> Halite: I'm don't believe that's enough of a proof
17:38:53 <Halite> Arc_Koen, someone said it could be Turing complete
17:39:06 <Phantom_Hoover> pretty sure it's not in its present state
17:39:09 <Arc_Koen> Halite: I don't believe that's enough of a proof, either!
17:39:26 <Phantom_Hoover> no unbounded integer manipulation, no arrays, no functions
17:39:49 <Arc_Koen> for instance someone once said I could go to the ENS (which is, basically, the best school in france)
17:40:30 <oerjan> it's even in the name, it's superior
17:40:55 <Arc_Koen> as it turned out saying it wasn't enough
17:41:22 <Arc_Koen> Halite: to be turing-complete you need some kind of unbounded memory
17:41:23 <Halite> *Update* New function proc(name,func) creates a new function!
17:41:29 <Phantom_Hoover> wat
17:41:42 <Phantom_Hoover> what's func
17:41:52 <Arc_Koen> so it takes a function as an argument and returns a function?
17:42:40 <Halite> Arc_Koen, proc(name,func) doesn't return a function. It sets SaltScript[name] to func and then end of function occurs.
17:42:50 <Phantom_Hoover> so what's func
17:43:06 <Arc_Koen> yeah, what the func?
17:43:08 <Halite> Phantom_Hoover, the code of the custom function
17:43:40 <Phantom_Hoover> suggest you read up on anonymous functions
17:43:54 <Halite> for example, proc('AND',function (x,y) { return SaltScript.oper(8,x,y); });
17:43:54 <Arc_Koen> hint: they're functions, without a name
17:44:20 <Sgeo_> I find the whole "with/without a name" thing to be icky
17:44:33 <Halite> Phantom_Hoover, my programming language is an object with anonymous functions being assigned to property named and turning into named functions
17:44:47 <Sgeo_> fix (\f x -> if x == 0 then 1 else x * f (x - 1))
17:44:49 <Halite> names*
17:44:52 <Arc_Koen> that's too many complicated words for me
17:44:56 <Sgeo_> Does that function have a name (f)?
17:45:44 <Halite> Sgeo_, no. But you can't multiply x by a function unless you multiply x by a function's return value.
17:45:58 <oerjan> Halite: can functions be arguments of functions?
17:46:14 <Halite> oerjan, yes. Functions can be arguments of functions.
17:46:18 <Phantom_Hoover> Halite, revision of earlier advice: learn haskell
17:46:37 <Sgeo_> Halite, the precedence rules of Haskell mean that I am multiplying by the return value
17:46:41 <Sgeo_> > fix (\f x -> if x == 0 then 1 else x * f (x - 1)) 5
17:46:43 <lambdabot> 120
17:47:12 <Halite> `
17:47:15 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found
17:47:57 <Halite> `echo "; echo "it work";
17:47:59 <HackEgo> ​"; echo "it work";
17:48:10 <Halite> `echo;
17:48:11 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: echo;: not found
17:48:41 <Sgeo_> Hmm, lambdabot doesn't have that numbers are functions thing anymore, right?
17:48:42 <Phantom_Hoover> motion: halite be banned from all the bots
17:48:47 <Sgeo_> > (cos + sin) 5
17:48:48 <lambdabot> No instance for (GHC.Num.Num (a0 -> a0))
17:48:48 <lambdabot> arising from a use of `e_15'
17:48:48 <lambdabot> P...
17:49:00 <Phantom_Hoover> e_15?
17:49:19 <Phantom_Hoover> @type 7
17:49:21 <lambdabot> Num a => a
17:49:31 <oerjan> Sgeo_: that instance was removed from lambdabot
17:49:32 <Sgeo_> > ((+) <$> cos <*> sin) 5
17:49:34 <lambdabot> -0.6752620891999122
17:50:37 <oerjan> Halite: if your functions are also closures, then that's probably enough to make it turing complete. i'm not sure about if they're not closures (like C functions)
17:50:41 <Sgeo_> ) ((1&o.)+(2&o.)) 5
17:50:42 <jconn> Sgeo_: _0.675262
17:50:56 <Sgeo_> I'm sure there's a simpler way to do that, without &
17:51:08 <Phantom_Hoover> is jconn botloop-proof?
17:51:18 <Sgeo_> Probably not?
17:51:28 <Halite> oerjan, what are closures
17:51:34 <oerjan> Phantom_Hoover: i think fungot was immunized against it
17:51:34 <fungot> oerjan: but i have huge connection latency on it right now
17:51:44 <Phantom_Hoover> Halite, <Phantom_Hoover> Halite, revision of earlier advice: learn haskell
17:51:52 <Phantom_Hoover> trust me
17:51:56 <Phantom_Hoover> it'll pay off
17:52:25 <Sgeo_> > (let y = 5 in let f x = x+y) 6
17:52:27 <lambdabot> <hint>:1:28: parse error on input `)'
17:52:32 <oerjan> Halite: it means that you can define functions inside functions and have them refer to the variables of the outside function
17:52:45 <Sgeo_> > (let y = 5 in \x -> x+y) 6
17:52:47 <lambdabot> 11
17:52:50 <Halite> oerjan, sadly not.
17:53:08 <Halite> oerjan, unless JS has closures
17:53:29 <Sgeo_> \x -> x+y is a function, that takes an argument, x, and returns x+y. It gets y from the lexical environment, which states that y=5
17:53:39 <Sgeo_> Halite, it does, but you might not have used that capacity
17:53:51 <Sgeo_> (I think)
17:54:13 <Halite> Sgeo_, probably did. My language is an object with functions being properties.
17:54:44 <Sgeo_> var x=5; var y=function(z){return x+z;};
17:54:44 <Sgeo_> undefined
17:54:44 <Sgeo_> y(6)
17:54:44 <Sgeo_> 11
17:55:22 <Halite> yep
17:55:24 <Sgeo_> Hmm, possibly bad example, looks too much like globals
17:55:36 <Phantom_Hoover> Halite, i'm going to go out on a limb here but is your language javascript restricted to a few custom functions
17:55:46 <Halite> Phantom_Hoover, what
17:56:11 <kmc> those who do not understand functional programming are doomed to reinvent it
17:56:25 <Sgeo_> function make_closure(x) {return (function(y) {return x+y;});}
17:56:25 <Sgeo_> undefined
17:56:25 <Sgeo_> make_closure(10)(11)
17:56:25 <Sgeo_> 21
17:56:43 <Halite> function test() { var x=5; var y=function(a){return x+a;};} test()
17:56:45 <Sgeo_> Halite, does the above make sense to you?
17:57:05 <Halite> Sgeo_, not much
17:57:19 <Halite> Sgeo_, wait, it makes sense now
17:57:28 <Halite> make_closure(x) returns a function
17:57:32 <Sgeo_> yes
17:57:43 <Halite> and to evaluate it, use make_closure(x)(y)
17:58:00 <Sgeo_> Well, I could store make_closure(5) somewhere, and call that later if I wish
17:58:08 <Halite> it returns the correct value of 21, so
17:58:11 <Halite> Sgeo_, yes
17:59:12 <Phantom_Hoover> Halite, also in languages with mutable variables like js the variables inside the closure are persistent
18:00:34 <Sgeo_> function make_incrementor() {var curval = 0; return (function () {curval += 1; return curval;});}
18:00:34 <Sgeo_> undefined
18:00:34 <Sgeo_> var some_inc = make_incrementor();
18:00:34 <Sgeo_> undefined
18:00:34 <Sgeo_> some_inc()
18:00:35 <Sgeo_> 1
18:00:36 <Sgeo_> some_inc()
18:00:38 <Phantom_Hoover> like, if you have function(start) { count = start; return function() { count += 1; return count} } then each call to the returned function will increment the count
18:00:38 <Sgeo_> 2
18:00:47 <Phantom_Hoover> dammit Sgeo_
18:01:51 <kmc> damigeo_
18:08:04 <Halite> Well, what should I add then
18:08:22 <Halite> Nobody's actually suggested me anything yet
18:08:37 <Vorpal> I just watched a bit from a speedrun of mario 64, and I begin to understand ais interest in them. All the crazy ideas and glitches exploited the person came up with in order to cut down the time. I do think you have to had played the game to fully appreciate all of it though.
18:09:07 <Halite> someone make an esolang based on Mario please
18:09:47 <Halite> lol
18:09:58 <Halite> right...
18:09:59 <Vorpal> Here is the start of a bad bf clone: It's a me! = [, Here we go! = ]
18:10:09 <Vorpal> and now I ran out of catch phrases that I know
18:11:45 <boily> there are 95 printable ASCII chars, 32 of which are punctuation marks, with '/' reserved for IRC. therefore, there can be a maximum of 31 one-char-prefix interactive bots in a channel.
18:11:47 -!- cuttlefish has joined.
18:11:58 <Phantom_Hoover> finally, an excuse to murder Vorpal
18:12:09 <Vorpal> Phantom_Hoover, oh?
18:12:20 <Phantom_Hoover> Halite, there's no point in building an esolang by piling features on piecemeal
18:12:20 <Vorpal> Phantom_Hoover, it was a joke
18:12:50 <Phantom_Hoover> good ones take a single concept and focus on exploring it
18:12:56 <Vorpal> indeed
18:13:48 <Halite> Phantom_Hoover, in SaltScript I took the concept of one custom boolean operation and focused on it
18:14:07 <Phantom_Hoover> so for brainfuck it's having a minimal instruction set, for befunge it's 2d program code and self-modification, in intercal it's humorously defying convention
18:14:12 <Sgeo_> Did ais523 or ... anyone other than me look at Trustfuck yet?
18:14:22 <Phantom_Hoover> Halite, and if you've done that then why do you need to add more
18:14:42 <oerjan> i think he wants it to be turing complete
18:14:55 <Halite> Phantom_Hoover, because I plan it to be Turing-complete & you need IF for booleans to be useful
18:15:07 <Sgeo_> There is an if operation on booleans
18:15:19 <Halite> Sgeo_, and an if-else operation
18:15:32 -!- epicmonkey has quit (Ping timeout: 248 seconds).
18:16:11 <Sgeo_> 0->0 = 1; 0->1 = 1; 1->0 = 0; 1->1 = 1
18:17:01 <boily> > mapM_ (putStrLn . (: "echo hello")) . filter (not . ((||) <$> isDigit <*> isAlpha)) $ ['!'..'~']
18:17:03 <lambdabot> No instance for (GHC.Show.Show (GHC.Types.IO ()))
18:17:04 <lambdabot> arising from a use of ...
18:17:09 <boily> darn.
18:17:17 <boily> ~eval mapM_ (putStrLn . (: "echo hello")) . filter (not . ((||) <$> isDigit <*> isAlpha)) $ ['!'..'~']
18:17:20 <cuttlefish> Error (1): Ambiguous occurrence `mapM_'
18:17:20 <cuttlefish> It could refer to either `Control.Monad.mapM_',
18:17:20 <cuttlefish> imported from `Control.Monad.Logic' at Imports.hs:25:1-26
18:17:20 <cuttlefish> (and originally defined in `base:Control.Monad')
18:17:20 <cuttlefish> or `Data.Foldable.mapM_',
18:17:20 <cuttlefish> imported from `Data.Foldable' at Imports.hs:13:1-20
18:17:36 <boily> ~eval Control.Monad.mapM_ (putStrLn . (: "echo hello")) . filter (not . ((||) <$> isDigit <*> isAlpha)) $ ['!'..'~']
18:17:37 <cuttlefish> Error (1): No instance for (GHC.Show.Show (GHC.Types.IO ()))
18:17:37 <cuttlefish> arising from a use of `M2838642979873148902.show_M2838642979873148902'
18:17:37 <cuttlefish> Possible fix:
18:17:37 <cuttlefish> add an instance declaration for (GHC.Show.Show (GHC.Types.IO ()))
18:17:49 <Sgeo_> ) 'fungot')
18:17:50 <jconn> Sgeo_: |syntax error
18:17:50 <jconn> Sgeo_: | 'fungot')
18:17:50 <fungot> Sgeo_: http://www.schemers.org/ documents/ fnord) is pure shoujo, and has been tested with the darcs version of chicken is that all you have is pretty rare
18:17:53 <Sgeo_> ) 'fungot'
18:17:53 <jconn> Sgeo_: fungot
18:17:54 <fungot> Sgeo_: or about 1,000/ year? :p) but makes no different. lambda calculus can be a godsend. still i left the fnord chapter out of the function
18:18:07 <Halite> )
18:18:15 <Sgeo_> ) '`echo hi'
18:18:16 <jconn> Sgeo_: `echo hi
18:18:20 <Sgeo_> blah
18:18:30 <Sgeo_> ) '\n`echo hi'
18:18:31 <jconn> Sgeo_: \n`echo hi
18:18:32 <Halite> ) 'omg'
18:18:32 <jconn> Halite: omg
18:18:35 <boily> the schemers' fnord documentation is shoujo? that disturbs me.
18:18:47 <Sgeo_> ) 'Hi';'Halite'
18:18:48 <jconn> Sgeo_: +--+------+
18:18:48 <Halite> ) 'Your programming language is horrible!'
18:18:48 <jconn> Sgeo_: |Hi|Halite|
18:18:48 <jconn> Sgeo_: +--+------+
18:18:48 <jconn> Halite: Your programming language is horrible!
18:19:05 <Halite> ) 'Hello';'Sgeo_'
18:19:05 <jconn> Halite: +-----+-----+
18:19:06 <jconn> Halite: |Hello|Sgeo_|
18:19:06 <jconn> Halite: +-----+-----+
18:19:10 <Sgeo_> Wait, does Halite think that I created jconn and it's running an esolang of my design?
18:19:37 <Halite> Sgeo_, no, I said 'your programming language is horrible' to myself :P
18:19:39 * Phantom_Hoover wonders what it'd be like if you only had oper and you could only map it over an infinite list of booleans
18:19:42 <Sgeo_> Oh, derp
18:20:02 <Sgeo_> ) <'Sgeo is a derp'
18:20:03 <jconn> Sgeo_: +--------------+
18:20:03 <jconn> Sgeo_: |Sgeo is a derp|
18:20:03 <jconn> Sgeo_: +--------------+
18:20:15 <Halite> ) 'Error';'Hey'<'hi'
18:20:16 <jconn> Halite: |domain error
18:20:16 <jconn> Halite: | 'Error';'Hey' <'hi'
18:20:20 <Halite> ) 'Error';'Hey';;'hi'
18:20:20 <jconn> Halite: +-----+---+--+
18:20:20 <jconn> Halite: |Error|Hey|hi|
18:20:20 <jconn> Halite: +-----+---+--+
18:20:26 <Halite> ) 'Error';'Hey';'';
18:20:26 <jconn> Halite: |syntax error
18:20:26 <jconn> Halite: | 'Error' ;'Hey';'';
18:20:45 <Halite> ) 'Error';'Sgeo_ does not exist'
18:20:46 <jconn> Halite: +-----+--------------------+
18:20:46 <jconn> Halite: |Error|Sgeo_ does not exist|
18:20:46 <jconn> Halite: +-----+--------------------+
18:21:02 <Halite> ) 'Error ';'X'
18:21:03 <jconn> Halite: +----------------------------+-+
18:21:03 <jconn> Halite: |Error |X|
18:21:03 <jconn> Halite: +----------------------------+-+
18:21:05 <Sgeo_> ) (<^:5) 'Honk'
18:21:05 <jconn> Sgeo_: +------------+
18:21:05 <jconn> Sgeo_: |+----------+|
18:21:05 <jconn> Sgeo_: ||+--------+||
18:21:05 <jconn> Sgeo_: |||+------+|||
18:21:05 <jconn> Sgeo_: ||||+----+||||
18:21:06 <jconn> Sgeo_: ...
18:21:10 <Sgeo_> ) (<^:3) 'Honk'
18:21:10 <jconn> Sgeo_: +--------+
18:21:10 <jconn> Sgeo_: |+------+|
18:21:10 <jconn> Sgeo_: ||+----+||
18:21:10 <jconn> Sgeo_: |||Honk|||
18:21:10 <jconn> Sgeo_: ||+----+||
18:21:10 <jconn> Sgeo_: ...
18:21:19 <Phantom_Hoover> i think you could even do some reasonable computation with that
18:21:31 <Sgeo_> ) (<^:2) 'Honk'
18:21:31 <jconn> Sgeo_: +------+
18:21:32 <jconn> Sgeo_: |+----+|
18:21:32 <jconn> Sgeo_: ||Honk||
18:21:32 <jconn> Sgeo_: |+----+|
18:21:32 <jconn> Sgeo_: +------+
18:21:35 <Sgeo_> Hah
18:21:59 <Sgeo_> Although I guess that is more verbose than <<
18:22:09 <Halite> ) 'Error ';'X' (<^:1) 'An error has occured. Oh Brain****!'
18:22:10 <jconn> Halite: |domain error
18:22:10 <jconn> Halite: | 'Error ';'X' (<^:1)'An error has occured. Oh Brain****!'
18:22:18 <Halite> ) 'Error ';'X' 'An error has occured. Oh Brain****!'
18:22:18 <jconn> Halite: |syntax error
18:22:19 <jconn> Halite: | 'Error ' ;'X''An error has occured. Oh Brain****!'
18:22:20 <Phantom_Hoover> brainfuck, Halite
18:22:27 <Phantom_Hoover> you can say fuck here
18:22:56 <coppro> oerjan: !
18:23:08 <coppro> wait is jconn a bot?
18:23:12 <Sgeo_> ) (<'This'),(<'is'),(<<'Sparta')
18:23:13 <jconn> Sgeo_: +----+--+--------+
18:23:13 <jconn> Sgeo_: |This|is|+------+|
18:23:13 <jconn> Sgeo_: | | ||Sparta||
18:23:13 <jconn> Sgeo_: | | |+------+|
18:23:13 <jconn> Sgeo_: +----+--+--------+
18:23:16 <Halite> ) 'Error ';'X';\nAn error has occured. Oh chicken!'
18:23:17 <jconn> Halite: |open quote
18:23:17 <jconn> Halite: | 'Error ';'X';\nAn error has occured. Oh chicken!'
18:23:17 <jconn> Halite: | ^
18:23:20 <coppro> Sgeo_: shut the fuck your bot up
18:23:28 <Halite> ) 'Error ';'X';'\nAn error has occured. Oh chicken!'
18:23:29 <jconn> Halite: +----------------------------+-+-----------------------------------+
18:23:29 <jconn> Halite: |Error |X|\nAn error has occured. Oh chicken!|
18:23:29 <jconn> Halite: +----------------------------+-+-----------------------------------+
18:23:33 * Sgeo_ will stop using it abusively
18:23:57 <Halite> why won't it do multiple rows
18:24:34 <Halite> ) (<<'Error ';'X';'An error has occured. Oh chicken!')
18:24:34 <jconn> Halite: +--------------------------------------------------------------------+
18:24:35 <jconn> Halite: |+------------------------------------------------------------------+|
18:24:35 <jconn> Halite: ||+----------------------------+-+---------------------------------+||
18:24:35 <jconn> Halite: |||Error |X|An error has occured. Oh chicken!|||
18:24:35 <jconn> Halite: ||+----------------------------+-+---------------------------------+||
18:24:35 <jconn> Halite: ...
18:25:17 <tromp_> An chicken has occured. Oh error!
18:25:17 <Halite> ) 'This...';'is...;(<<<'SPARRRRRRRRRRRTA!');
18:25:17 <jconn> Halite: |open quote
18:25:18 <jconn> Halite: | 'This...';'is...;(<<<'SPARRRRRRRRRRRTA!');
18:25:18 <jconn> Halite: | ^
18:25:31 <Halite> -
18:25:46 <Sgeo_> I love how Halite is trying to follow my example without knowing the language at all
18:25:47 <Halite> ) 'This...','is...;(<<<'SPARRRRRRRRRRRTA!');
18:25:47 <jconn> Halite: |open quote
18:25:47 <jconn> Halite: | 'This...','is...;(<<<'SPARRRRRRRRRRRTA!');
18:25:47 <jconn> Halite: | ^
18:26:05 <Sgeo_> Oh, I see the problem
18:26:11 <Sgeo_> Don't really feel like revealing it though
18:26:27 <Halite> -
18:26:34 <Halite> ) 'This...','is...';(<<<'SPARRRRRRRRRRRTA!');
18:26:34 <jconn> Halite: |domain error
18:26:35 <jconn> Halite: | 'This...' ,'is...';(<<<'SPARRRRRRRRRRRTA!');
18:26:42 <Halite> ) 'This...','is...',(<<<'SPARRRRRRRRRRRTA!');
18:26:43 <jconn> Halite: |domain error
18:26:43 <jconn> Halite: | 'This...','is...' ,(<<<'SPARRRRRRRRRRRTA!');
18:26:55 <Sgeo_> This is entirely hilarious.
18:27:01 <quintopia> Sgeo_: you are a curmudgeon
18:27:14 <Halite> ) (<'This...'),(<'is...');(<<<'SPARRRRRRRRRRRTA!');
18:27:15 <jconn> Halite: |syntax error
18:27:15 <jconn> Halite: | (<'This...') ,(<'is...');(<<<'SPARRRRRRRRRRRTA!');
18:27:20 <Halite> ) (<'This...'),(<'is...'),(<<<'SPARRRRRRRRRRRTA!');
18:27:20 <jconn> Halite: |syntax error
18:27:21 <jconn> Halite: | (<'This...') ,(<'is...'),(<<<'SPARRRRRRRRRRRTA!');
18:27:34 <Halite> ) (<'This...'),(<'is...');(<<<'SPARRRRRRRRRRRTA!');
18:27:35 <jconn> Halite: |syntax error
18:27:35 <jconn> Halite: | (<'This...') ,(<'is...');(<<<'SPARRRRRRRRRRRTA!');
18:27:43 <Halite> -
18:27:45 <Sgeo_> Halite, you are incredibly unobservant
18:27:51 <boily> quintopia: TIL what a curmudgeon is.
18:27:57 <Phantom_Hoover> jesus christ
18:28:03 <Phantom_Hoover> Halite
18:28:11 <Halite> ) (<'This...'),(<'is...'),(<<<'SPARRRRRRRRRRRTA!')
18:28:12 <jconn> Halite: +-------+-----+---------------------+
18:28:12 <jconn> Halite: |This...|is...|+-------------------+|
18:28:12 <jconn> Halite: | | ||+-----------------+||
18:28:12 <jconn> Halite: | | |||SPARRRRRRRRRRRTA!|||
18:28:12 <jconn> Halite: | | ||+-----------------+||
18:28:12 <jconn> Halite: ...
18:28:13 <Phantom_Hoover> did you not get the message last time
18:28:18 <fizzie> Re fungot and jconn, it's on the list.
18:28:18 <fungot> fizzie: i refuse to use openssl for ssl because openssl has a bsd-style license. i think i heard erlang got some traces of prolog in it's style too
18:28:29 <boily> Sgeo_: I appreciate your curmudgeonitude.
18:28:32 <Halite> ) (<'This...'),(<'is...'),(<<'SPARRRRRRRRRRRTA!')
18:28:32 <jconn> Halite: +-------+-----+-------------------+
18:28:33 <jconn> Halite: |This...|is...|+-----------------+|
18:28:33 <jconn> Halite: | | ||SPARRRRRRRRRRRTA!||
18:28:33 <jconn> Halite: | | |+-----------------+|
18:28:33 <jconn> Halite: +-------+-----+-------------------+
18:28:45 <Halite> ) (<'This...'),(<'is...'),(<<'a...','SPARRRRRRRRRRRTA!')
18:28:45 <jconn> Halite: +-------+-----+-----------------------+
18:28:46 <jconn> Halite: |This...|is...|+---------------------+|
18:28:46 <jconn> Halite: | | ||a...SPARRRRRRRRRRRTA!||
18:28:46 <jconn> Halite: | | |+---------------------+|
18:28:46 <jconn> Halite: +-------+-----+-----------------------+
18:28:54 <Halite> ) (<'This...'),(<'is...'),(<<'a...';'SPARRRRRRRRRRRTA!')
18:28:54 <jconn> Halite: +-------+-----+--------------------------+
18:28:54 <jconn> Halite: |This...|is...|+------------------------+|
18:28:54 <jconn> Halite: | | ||+----+-----------------+||
18:28:54 <jconn> Halite: | | |||a...|SPARRRRRRRRRRRTA!|||
18:28:54 <jconn> Halite: | | ||+----+-----------------+||
18:28:55 <jconn> Halite: ...
18:29:02 <Halite> lool
18:29:04 <Sgeo_> This is my fault, isn't it
18:29:09 <Halite> Sgeo_, it very i
18:29:14 <Halite> is*
18:29:18 <fizzie> Also, that diagram thing is very noisy.
18:29:31 <Halite> I can't do multiple rows
18:29:54 <Halite> ) (<'Error '),('X')
18:29:54 <jconn> Halite: |domain error
18:29:54 <jconn> Halite: | (<'Error ') ,('X')
18:30:05 <Halite> ) (<'Error '),(<'X')
18:30:05 <jconn> Halite: +------------------------------------+-+
18:30:06 <jconn> Halite: |Error |X|
18:30:06 <jconn> Halite: +------------------------------------+-+
18:30:16 <oerjan> ) 1;2
18:30:16 <jconn> oerjan: +-+-+
18:30:16 <jconn> oerjan: |1|2|
18:30:16 <jconn> oerjan: +-+-+
18:30:19 <Halite> ) (<'Error '),(<' X ')
18:30:20 <jconn> Halite: +------------------------------------+---+
18:30:20 <jconn> Halite: |Error | X |
18:30:20 <jconn> Halite: +------------------------------------+---+
18:30:24 <Sgeo_> ) 2 1 $ 1 2
18:30:25 <jconn> Sgeo_: 1
18:30:25 <jconn> Sgeo_: 2
18:31:25 <oerjan> ) (2 2 $ 1 0 0 1)
18:31:25 <jconn> oerjan: 1 0
18:31:25 <jconn> oerjan: 0 1
18:31:32 <Halite> ) (<'Error '),(<' X ');(<'Sparta has taken over your computer!;')
18:31:32 <jconn> Halite: +------------------------------------+-----+-------------------------------------+
18:31:33 <jconn> Halite: |Error |+---+|Sparta has taken over your computer!;|
18:31:33 <jconn> Halite: | || X || |
18:31:33 <jconn> Halite: | |+---+| |
18:31:33 <jconn> Halite: +------------------------------------+-----+-------------------------------------+
18:31:38 <Halite> ) (<'Error '),(<' X ');(<'Sparta has taken over your computer!;')
18:31:38 <jconn> Halite: +------------------------------------+-----+-------------------------------------+
18:31:39 <jconn> Halite: |Error |+---+|Sparta has taken over your computer!;|
18:31:39 <jconn> Halite: | || X || |
18:31:39 <jconn> Halite: | |+---+| |
18:31:39 <jconn> Halite: +------------------------------------+-----+-------------------------------------+
18:31:44 <Halite> ) (<'Error '),(<' X ');(<'Sparta has taken over your computer!')
18:31:45 <jconn> Halite: +------------------------------------+-----+------------------------------------+
18:31:48 <jconn> Halite: |Error |+---+|Sparta has taken over your computer!|
18:31:49 <Halite> omg
18:31:50 <oerjan> ) (2 2 $ 1 0 1 1) * (2 2 $ 1 0 1 1)
18:31:53 <jconn> Halite: | || X || |
18:31:53 <Halite> too slow
18:31:56 <jconn> Halite: | |+---+| |
18:32:01 <jconn> Halite: +------------------------------------+-----+------------------------------------+
18:32:01 <Halite> sooo slow
18:32:04 <jconn> oerjan: 1 0
18:32:05 <jconn> oerjan: 1 1
18:32:12 <Halite> I think I could have crashed it
18:32:25 <Sgeo_> I have crashed it before
18:32:29 <Halite> ) (<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<'aah shi')
18:32:30 <jconn> Halite: +---------------------------------------------------------------------------------------------------------------------------+
18:32:30 <jconn> Halite: |+-------------------------------------------------------------------------------------------------------------------------+|
18:32:30 <jconn> Halite: ||+-----------------------------------------------------------------------------------------------------------------------+||
18:32:30 <jconn> Halite: |||+---------------------------------------------------------------------------------------------------------------------+|||
18:32:36 <jconn> Halite: ||||+-------------------------------------------------------------------------------------------------------------------+||||
18:32:37 <jconn> Halite: ...
18:32:44 <Halite> LOS
18:32:47 <Halite> LOLS
18:32:59 * Sgeo_ boxes Halite
18:33:00 <Halite> ) (<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<'crash now')
18:33:00 <jconn> Halite: +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
18:33:00 <jconn> Halite: |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
18:33:02 <Halite> ) (<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<'crash now')
18:33:05 <jconn> Halite: ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
18:33:12 <jconn> Halite: |||+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|||
18:33:15 <Halite> omg. it's crashing
18:33:20 <Halite> or beginning to crash
18:33:24 <jconn> Halite: ||||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||||
18:33:25 <jconn> Halite: ...
18:33:32 <jconn> Halite: +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
18:33:40 <jconn> Halite: |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
18:33:43 <Halite> see
18:33:44 <fizzie> Most likely there's a flood-protection thing.
18:33:46 <Halite> so sloooooooooow
18:33:52 <jconn> Halite: ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
18:33:56 <Halite> fizzie, not rlly
18:34:00 <jconn> Halite: |||+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|||
18:34:09 <jconn> Halite: ||||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||||
18:34:12 <fizzie> I mean, the speed thing.
18:34:12 <jconn> Halite: ...
18:34:18 <Halite> ) 'YOU CRASH ME :c'
18:34:18 <jconn> Halite: YOU CRASH ME :c
18:34:22 <quintopia> /kick jconn
18:34:24 <fizzie> IRC networks tend to disconnect you if you spew out too much stuff.
18:34:37 <Halite> /kill jconn
18:34:57 <Halite> I'm not the one spewing out. It's jconn.
18:35:11 <Halite> ) error noaw
18:35:11 <jconn> Halite: error noaw
18:35:19 <Halite> ) ;
18:35:20 <jconn> Halite: ;
18:35:22 <fizzie> Yes, but I mean, it most likely has a thing that makes it slow down automatically.
18:35:25 <Halite> ) ;'#sde(
18:35:26 <jconn> Halite: |open quote
18:35:26 <jconn> Halite: | ;'#sde(
18:35:26 <jconn> Halite: | ^
18:35:29 <fizzie> Intentionally, that is.
18:35:38 <fizzie> In order to avoid getting sponked out.
18:35:55 <Sgeo_> ) (>:^:_) 0
18:35:56 <Halite> ) jconn: SCAREDYCAT
18:35:57 <jconn> Halite: |spelling error
18:35:57 <jconn> Halite: | jconn: SCAREDYCAT
18:35:57 <jconn> Halite: | ^
18:36:04 <Sgeo_> hm
18:36:12 <jconn> Sgeo_: |timeout
18:36:35 <Sgeo_> Aww, didn't reach _
18:36:36 <Halite> ) ()
18:36:37 <jconn> Halite: |syntax error
18:36:37 <jconn> Halite: | ()
18:36:37 <Sgeo_> ) (>:^:_) _
18:36:38 <jconn> Sgeo_: _
18:36:44 <Sgeo_> ) (>:^:_) __
18:36:44 <jconn> Sgeo_: __
18:37:00 <Halite> ) (>:^:_) 1
18:37:16 <jconn> Halite: |timeout
18:37:28 <Halite> ) (>:^:_) __________________________________________________________________________________________________________________________________________
18:37:28 <jconn> Halite: |ill-formed number
18:37:38 <Halite> l0lwart
18:37:41 <Sgeo_> Halite, _ is a number, as is __
18:37:52 <Halite> ) (>:^:_) __________________________________________________________________________________________________________________________________________
18:37:53 <jconn> Halite: |ill-formed number
18:38:04 <Halite> ) (>:^:_) ______
18:38:04 <jconn> Halite: |ill-formed number
18:38:09 <Halite> ) (>:^:_) __
18:38:09 <jconn> Halite: __
18:38:16 <Halite> ) (>:^:_) ___
18:38:16 <jconn> Halite: |ill-formed number
18:38:23 <Halite> ddddddddddddddd
18:38:42 <Halite> aaaaaayswkdect'hhhhhhyuuuuuuuik
18:38:48 <Halite> cat on the keyboard
18:39:08 <Halite> invisible cat on the vkjsierkeybodaieadrrd
18:39:30 <Halite> ttbtbbbttbbtbbtrtyhfbvtgvb
18:39:34 <Halite> jumping cat -.-
18:40:53 <Sgeo_> ) ;: 'Halite you are completely insane'
18:40:54 <jconn> Sgeo_: +------+---+---+----------+------+
18:40:54 <jconn> Sgeo_: |Halite|you|are|completely|insane|
18:40:54 <jconn> Sgeo_: +------+---+---+----------+------+
18:41:29 -!- Bike has joined.
18:41:49 <Sgeo_> oerjan, fffw is offering to blacklist the nicks of abusers. So, that option is available.
18:42:25 <oerjan> ...who's fffw
18:42:37 <Sgeo_> Someone in #jsoftware
18:42:42 <Sgeo_> Bot operator I think
18:43:09 <coppro> just kick the bot
18:43:13 <coppro> this is ridiculous
18:43:46 <fizzie> fungot: Are you a BOT ABUSER?
18:43:46 <fungot> fizzie: gödel proved that!
18:43:54 <fizzie> Yes. Yes he did.
18:44:01 <boily> btw, who's this channel's op and/or entity nearest to godhood?
18:44:14 <oerjan> every sufficiently advanced bot contains an abusive command
18:44:14 <Phantom_Hoover> fizzie, ais and oerjan.
18:44:36 <Phantom_Hoover> Although this is based largely on hearsay.
18:44:54 <fizzie> "chanserv access list" is kind of definitive.
18:45:10 <fizzie> I don't know if I count, I tend to weasel out of any obligations, except very rarely.
18:45:22 -!- jconn has quit (Remote host closed the connection).
18:45:30 <oerjan> fancy
18:45:30 <Phantom_Hoover> That's what I mean.
18:45:32 -!- jconn has joined.
18:45:42 -!- fftw has joined.
18:46:17 <fftw> ) /:~ ~ 'test'
18:46:17 <jconn> fftw: estt
18:46:52 <Sgeo_> Wait, what does ~ by itself do?
18:47:09 <Sgeo_> ) /:~ 'test'
18:47:10 <jconn> Sgeo_: estt
18:47:17 <oerjan> ) /:~ ~ 'the quick brown fox jumps over the lazy dog'
18:47:18 <jconn> oerjan: abcdeeefghhijklmnoooopqrrsttuuvwxyz
18:47:42 <Sgeo_> ) ~/:~ 'the quick brown fox jumps over the lazy dog'
18:47:42 <jconn> Sgeo_: |syntax error
18:47:43 <jconn> Sgeo_: | ~/:~'the quick brown fox jumps over the lazy dog'
18:47:51 <Sgeo_> ) ~. /:~ 'the quick brown fox jumps over the lazy dog'
18:47:52 <jconn> Sgeo_: abcdefghijklmnopqrstuvwxyz
18:48:05 <upgrayeddd> ) a.
18:48:05 <jconn> upgrayeddd:
18:48:06 <jconn> upgrayeddd:
18:48:06 <jconn> upgrayeddd: ┌┬┐├┼┤└┴┘│─ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
18:48:13 <upgrayeddd> :3
18:48:15 <Sgeo_> fftw, I don't get it, why the ~
18:48:53 <oerjan> Sgeo_: it's much easier if you just accept that J is more insane than most of our on topic languages
18:48:59 <fftw> should be ~.
18:49:00 <Sgeo_> ) 65{a.
18:49:00 <jconn> Sgeo_: A
18:49:04 <fftw> ) /:~ ~. 'test'
18:49:05 <jconn> fftw: est
18:49:19 <fftw> upgrayeddd: so it's just non-repeated chars
18:49:45 <fftw> ) ~ 3
18:49:46 <jconn> fftw: |syntax error
18:49:46 <jconn> fftw: | ~3
18:49:49 <fftw> ) 2 ~ 3
18:49:49 <jconn> fftw: |domain error
18:49:49 <jconn> fftw: | 2~3
18:49:58 <oerjan> ) i 1,10
18:49:59 <jconn> oerjan: |value error: i
18:49:59 <jconn> oerjan: | i 1,10
18:50:05 <boily> given morphisms A :: X -> Y and B :: Y -> Y, what's the morphism A⁻¹BA called? I can't remember for the life of me.
18:50:05 <fftw> oerjan: we accept it :)
18:50:15 <oerjan> excellent
18:50:46 <oerjan> boily: i'd expect "conjugate" based on group theory
18:50:48 <Sgeo_> ) 'A' i.~ a.
18:50:48 <jconn> Sgeo_: 65
18:51:29 <boily> oerjan: ah! thanks!
18:51:30 <fftw> ) I. 'A' E. a.
18:51:31 <jconn> fftw: 65
18:52:39 <oerjan> conjugate of B by A, more precisely. or possibly by A⁻¹, i don't think the sign convention is entirely consistent
18:53:33 <coppro> oh god my unicode is fucked up again
18:54:10 <oerjan> coppro: it's ok i couldn't see the char between A and ¹ myself, just copy it
18:54:32 <oerjan> i assume there's some superscript - there
18:54:40 <boily> it's a superscript minus.
18:54:52 -!- coppro_ has joined.
18:54:59 -!- coppro_ has quit (Client Quit).
18:55:00 <oerjan> ) 1 i 10
18:55:01 <jconn> oerjan: |value error: i
18:55:01 <jconn> oerjan: | 1 i 10
18:55:41 <oerjan> wild J guesses are disturbingly tempting
18:56:12 <fftw> ) 2 i. 10
18:56:13 <jconn> fftw: 1
18:56:56 -!- coppro has quit (Quit: leaving).
18:57:05 <oerjan> ) i. 1,10
18:57:05 <jconn> oerjan: 0 1 2 3 4 5 6 7 8 9
18:57:12 <oerjan> yay!
18:57:15 -!- coppro has joined.
18:57:24 <oerjan> except, why does it start at 0
18:57:26 -!- augur has quit (Read error: Connection reset by peer).
18:57:35 <oerjan> ) i. 3,12
18:57:36 <jconn> oerjan: 0 1 2 3 4 5 6 7 8 9 10 11
18:57:36 <jconn> oerjan: 12 13 14 15 16 17 18 19 20 21 22 23
18:57:36 <jconn> oerjan: 24 25 26 27 28 29 30 31 32 33 34 35
18:57:44 <oerjan> wat
18:57:45 -!- augur has joined.
18:58:03 <oerjan> ) i. 10
18:58:03 <jconn> oerjan: 0 1 2 3 4 5 6 7 8 9
18:58:21 <fftw> ) i. 2 3
18:58:22 <jconn> fftw: 0 1 2
18:58:22 <jconn> fftw: 3 4 5
18:58:26 <oerjan> ) 1 + i. 10
18:58:26 <jconn> oerjan: 1 2 3 4 5 6 7 8 9 10
18:58:29 <oerjan> yay!
18:58:48 <oerjan> ) (65 + i. 10) a.
18:58:48 <jconn> oerjan: |syntax error
18:58:48 <jconn> oerjan: | (65+i.10)a.
18:58:52 <oerjan> darn
18:58:59 <fftw> ) ? 4 5 $ 2
18:59:00 <jconn> fftw: 0 1 0 1 0
18:59:00 <jconn> fftw: 0 1 1 1 1
18:59:00 <jconn> fftw: 0 0 0 1 1
18:59:00 <jconn> fftw: 0 0 0 0 0
18:59:09 <fftw> ) 65 + ? 4 5 $ 2
18:59:10 <jconn> fftw: 66 65 66 66 65
18:59:10 <jconn> fftw: 65 66 65 66 66
18:59:10 <jconn> fftw: 66 65 66 65 66
18:59:10 <jconn> fftw: 66 66 66 65 66
18:59:11 <oerjan> ) (65 + i. 10) { a.
18:59:11 <jconn> oerjan: ABCDEFGHIJ
18:59:14 <oerjan> yay!
18:59:30 <fftw> ) (65 + ? 4 5 $ 2) { a.
18:59:30 <jconn> fftw: AABAB
18:59:31 <jconn> fftw: BBBBA
18:59:31 <jconn> fftw: BBAAB
18:59:31 <jconn> fftw: AABBA
18:59:36 <fftw> ) (65 + ? 4 5 $ 2) { a.
18:59:37 <jconn> fftw: BBBAB
18:59:37 <jconn> fftw: BBABB
18:59:37 <jconn> fftw: BABAB
18:59:37 <jconn> fftw: BABBA
19:00:03 <coppro> can someone please type something in utf-8?
19:00:12 <fftw> пожалуйста
19:00:24 <fftw> should be utf-8 cyrillic
19:00:40 <coppro> some of the cyrillic comes through, but some is �
19:00:47 <boily> 私のホバークラフトは鰻で一杯です, as usual.
19:00:53 <coppro> and that's just weird
19:00:56 <fftw> boily: ok to me
19:01:12 <coppro> ok that fucked my client
19:01:16 <coppro> whatever that was
19:01:24 <coppro> what was that last line?
19:01:26 <boily> japanese for an eel-y hovercraft.
19:01:27 <coppro> (don't repeat it please)
19:01:29 <coppro> :/
19:01:32 <coppro> fuck screen
19:01:48 <boily> I run weechat in screen in urxvt, and it works.
19:02:03 <fftw> boily: same for weechat in gnome-terminal
19:02:26 <oerjan> ) +/ i. 10
19:02:27 <jconn> oerjan: 45
19:02:41 <oerjan> ) */ 1 + i. 10
19:02:41 <jconn> oerjan: 3628800
19:03:00 <coppro> boily: over ssh though
19:03:04 <coppro> that's where screen fucks up
19:03:13 <boily> no good, that.
19:03:25 <fftw> does anyone remember the maze generator from / and \?
19:03:27 <fftw> ) ( + ? 4 15 $ 3) { ' /\'
19:03:28 <jconn> fftw: \\/\ \\/ /\ /\
19:03:28 <jconn> fftw: \\/ \/\\/ \/\
19:03:28 <jconn> fftw: \/// \ / \\/
19:03:28 <jconn> fftw: \\//\ \///\/\
19:03:32 <fftw> ) ( + ? 4 15 $ 3) { ' /\'
19:03:32 <jconn> fftw: / // \\/ /
19:03:32 <jconn> fftw: / / \ \// \/\\
19:03:32 <jconn> fftw: //\ / // / \\\
19:03:32 <jconn> fftw: \/\\\// // \\\
19:03:41 <fftw> should be new maze each time
19:03:51 <boily> fftw: http://www.brainbashers.com/slant.asp ?
19:04:53 <fftw> no, I wanted to make http://developers.slashdot.org/story/12/12/01/1847244/how-does-a-single-line-of-basic-make-an-intricate-maze
19:05:05 <boily> coppro: looks like it's probably a terminfo problem: https://bbs.archlinux.org/viewtopic.php?id=139216
19:05:08 <coppro> someone please try the cyrillic again
19:05:20 <boily> пожалуйста
19:05:22 <coppro> damn
19:05:35 <fftw> ) ( + ? 4 15 $ 2) { '/\'
19:05:35 <jconn> fftw: ////\\/\\\/\\/\
19:05:35 <jconn> fftw: \\/\\\\\\/\//\\
19:05:35 <jconn> fftw: \\\\\\\/\\/\/\/
19:05:35 <jconn> fftw: \/\\\\\\\\\\\//
19:05:54 <fftw> oh, that's better, but not in all fonts
19:06:13 <boily> coppro: another test: Dès Noël où un zéphyr haï me vêt de glaçons würmiens, je dîne d'exquis rôtis de bœuf à l'aÿ et au kir d'âge mûr & cætera.
19:06:30 <coppro> I see most of that
19:06:37 <coppro> except the oe ligature
19:06:47 * coppro kicks screen
19:06:48 <fftw> coppro: do you see the umlauts etc?
19:06:52 <coppro> fftw: yes
19:07:16 <boily> so, only œ doesn't get through. very, very weird.
19:07:43 -!- coppro has quit (Quit: leaving).
19:07:51 <fftw> coppro: perhaps the problem is the font itself?
19:08:02 -!- coppro has joined.
19:08:34 -!- monqy has joined.
19:08:39 -!- coppro has quit (Client Quit).
19:08:48 -!- coppro has joined.
19:09:22 -!- augur has quit (Read error: Connection reset by peer).
19:09:25 -!- augur_ has joined.
19:10:10 <coppro> please try the ligature again?
19:10:14 <boily> œ
19:10:19 <coppro> fuck
19:11:01 <coppro> oh there we go
19:11:04 <boily> plutôt embêtant. à cause de ça, on peut pas discuter d'œufs, ni de bœufs, sans parler des sœurs, coœurs, mœurs et œuvres.
19:11:15 <coppro> there we go
19:11:22 <coppro> needed ^a :utf8 on
19:11:24 <coppro> why the fuck
19:11:30 <boily> ^a?
19:11:31 <coppro> fuck all of screen
19:11:34 <coppro> control a
19:11:35 <boily> ah. control. sorry.
19:12:07 <boily> btw, there's my terminfo line: «terminfo rxvt-unicode 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
19:12:25 <boily> and termcapinfo: « termcapinfo rxvt* 'hs:ts=\E]2;:fs=\007:ds=\E]2;\007' »
19:13:14 <boily> no idea if it has anything related to utf8.
19:13:42 <Sgeo_> Why does it bother me that J is mathematically inaccurate?
19:14:12 <Sgeo_> ) '_-_';(_-_);'0*_';(0*_)
19:14:13 <jconn> Sgeo_: |NaN error
19:14:13 <jconn> Sgeo_: | '_-_';(_ -_);'0*_';(0*_)
19:14:26 <Sgeo_> Wow, that was derptastic
19:14:29 <Sgeo_> ) _-_
19:14:30 <jconn> Sgeo_: |NaN error
19:14:30 <jconn> Sgeo_: | _ -_
19:14:33 <Sgeo_> ) 0*_
19:14:34 <jconn> Sgeo_: 0
19:18:02 <coppro> boily: can you try the japanese again?
19:18:57 <fftw> のホバークラフトは鰻で一杯です
19:19:07 <coppro> awesome, it actually works
19:20:27 <Halite> ) 1*2
19:31:49 -!- epicmonkey has joined.
19:39:31 <FreeFull> Ͼ
19:41:37 -!- ogrom has joined.
19:42:08 <boily> ǽǣ¿
19:42:35 <FreeFull> ǻ
19:43:00 <FreeFull> ) 1 2 *
19:43:01 <jconn> FreeFull: |syntax error
19:43:01 <jconn> FreeFull: | 1 2*
19:43:07 <FreeFull> ) 1 * 2
19:43:08 <jconn> FreeFull: 2
19:43:12 <fftw> ) * / 1 2
19:43:12 <jconn> fftw: 2
19:46:02 <boily> ) *. / 1 2
19:46:02 <jconn> boily: 2
19:50:16 <Sgeo_> Incidentally, J has a built-in pl operator
19:50:32 <Sgeo_> ) 13 : 'y+(2*y)-(3*x)'
19:50:33 <jconn> Sgeo_: ] + (2 * ]) - 3 * [
19:51:12 <Sgeo_> That.... is scarily analogous
19:51:44 -!- Nisstyre-laptop has joined.
19:52:02 <Sgeo_> ) 0 (] + (2 * ]) - 3 * [) 1
19:52:03 <jconn> Sgeo_: 3
19:53:49 -!- kallisti has quit (Quit: Lost terminal).
19:55:37 <Sgeo_> ) 13 : '(^:y)+(^:y)'
19:55:38 <jconn> Sgeo_: 3 : '(^:y)+(^:y)'
19:55:44 <Sgeo_> :(
19:56:06 <Sgeo_> erm, oops
19:56:12 <Sgeo_> ) 13 : '(>:y)+(>:y)'
19:56:12 <jconn> Sgeo_: >: + >:
19:56:37 <Sgeo_> I think I could write that shorter
19:56:47 <Sgeo_> As [:+~>:
19:57:10 <Sgeo_> ...ok, that's not shorter
19:57:19 <oerjan> but then it would be indistinguishable from fueue
19:57:59 <boily> a J/fueue polyglot. careful, you're toying with powerful forces here.
19:58:07 <FreeFull> juejue
19:58:12 <FreeFull> Pronounced huehue
19:59:45 <boily> last time someone huehued me, that was because their ghost killed me in DCSS.
20:01:03 <Sgeo_> It's been a while since I played
20:01:09 <Sgeo_> I think last time I played, it was on 0.8
20:01:11 <Sgeo_> What is it now?
20:01:41 -!- kallisti has joined.
20:01:45 -!- kallisti has quit (Changing host).
20:01:45 -!- kallisti has joined.
20:03:57 <boily> Sgeo_: around 0.11. lots of differences between them (xp system, branches, uniques, usual race shuffle).
20:04:13 <Vorpal> Sgeo_, DCSS=
20:04:15 <Vorpal> what is that
20:04:38 <Sgeo_> Googlable, among other thingds
20:04:41 <Sgeo_> !google DCSS
20:04:41 -!- oerjan has quit (Quit: Good night).
20:04:43 <EgoBot> http://google.com/search?q=DCSS
20:04:51 <Sgeo_> @google DCSS
20:04:52 <lambdabot> http://www.childsup.ca.gov/
20:04:53 <Vorpal> California Department of Child Support Services > Home
20:04:55 <Sgeo_> not that
20:04:56 <Vorpal> yep :P
20:05:00 <Vorpal> okay so second hit
20:05:02 <boily> ~duck dcss
20:05:03 <cuttlefish> --- No relevant information
20:05:07 <boily> ~duck DCSS
20:05:07 <cuttlefish> --- No relevant information
20:05:09 <Vorpal> really?
20:05:13 <boily> ~duck dungeon crawl stone soup
20:05:13 <cuttlefish> Dungeon Crawl Stone Soup is an open source roguelike computer game, which is the actively community-developed successor of the 1997 roguelike game Linley's Dungeon Crawl, originally programmed by Linley Henzell.
20:05:26 <Sgeo_> yay!
20:05:38 <Sgeo_> It only takes an entire channel co-operating to search the web
20:07:10 <boily> by our power combined, we can achieve any search!
20:11:53 -!- Halite has quit (Remote host closed the connection).
20:14:43 -!- augur_ has quit (Remote host closed the connection).
20:31:27 <boily> ) <.@o. 10x^50
20:31:27 <jconn> boily: 314159265358979323846264338327950288419716939937510
20:33:15 -!- Taneb has joined.
20:39:08 * Sgeo_ forgot what <. does
20:39:12 <Sgeo_> ) <. 5
20:39:13 <jconn> Sgeo_: 5
20:39:19 <Vorpal> which language is that
20:39:21 <Bike> j
20:39:22 <Sgeo_> J
20:39:25 <Vorpal> oh
20:39:25 <Bike> ) <. .5
20:39:25 <jconn> Bike: |domain error
20:39:26 <jconn> Bike: | <. .5
20:39:26 <monqy> J
20:39:37 <Bike> ĵ
20:39:46 <monqy> Ĵ
20:39:53 <Sgeo_> Oh, it's floor
20:39:58 <Sgeo_> ) <. 0.9
20:39:58 <jconn> Sgeo_: 0
20:40:57 <boily> Sgeo_: I shamelessly ripped that from wikipedia.
20:45:55 -!- augur has joined.
21:35:52 -!- zzo38 has joined.
22:01:03 -!- augur has quit (Remote host closed the connection).
22:01:13 -!- epicmonkey has quit (Ping timeout: 240 seconds).
22:04:02 -!- DHeadshot has joined.
22:09:30 <quintopia> boily: hi
22:12:48 <boily> quintopia: hi!
22:12:57 <quintopia> boily: do you need a hug?
22:13:39 <boily> quintopia: always, but you need to ask my girlfriend first, she's my hug manager.
22:13:48 <kmc> :(
22:14:38 <boily> you can always hug kmc in the meantime.
22:15:15 -!- monqy has quit (Quit: hello).
22:16:16 <quintopia> boily: your girlfriend was just here last night
22:16:24 <quintopia> we negotiated a contract
22:16:27 <quintopia> all night long
22:21:12 <kmc> yes i like to hug people
22:21:39 <fizzie> Hug people, mug people: what's the difference.
22:22:55 <boily> quintopia: eh?
22:23:15 * coppro hugs quintopia
22:23:24 * quintopia hugs boily
22:23:26 <boily> fizzie: one involves a nasal occlusive.
22:23:27 * quintopia hugs coppro
22:23:35 * boily woggles and wiggles
22:23:38 <Taneb> Today I saw Wreck-it Ralph
22:24:13 <Taneb> 'Twas a good film
22:26:57 <zzo38> Can you program that game for Vs Unisystem?
22:28:08 <Taneb> Personally, no
22:29:31 <Taneb> However, I know no reason why it isn't possible
22:31:03 <Taneb> To my mind, the biggest technical challenge would be perhaps the speech "I'm gonna wreck it!" at the start
22:32:07 -!- nooodl has joined.
22:33:15 <zzo38> I would think the DPCM channel could be used though? Either playing the DPCM sample, or using software PCM. (I think Vs Unisystem is basically a RGB Famicom with different inputs, such as coins and switches)
22:40:20 -!- boily has quit (Quit: Poulet!).
22:40:23 -!- cuttlefish has quit (Remote host closed the connection).
22:48:27 -!- carado has joined.
23:06:12 -!- DHeadshot has quit (Read error: Connection reset by peer).
23:06:20 -!- DH____ has joined.
23:09:51 -!- FreeFull has quit (Ping timeout: 256 seconds).
23:12:55 -!- nooodl has quit (Ping timeout: 244 seconds).
23:21:13 -!- FreeFull has joined.
23:38:20 <quintopia> i'm gonna go see wreck-it ralph in an hour. my mom's never seen it so i'm escorting.
23:38:51 <kmc> JavaScript: where undefined * undefined === NaN
23:38:54 <kmc> but null * null === 0?
23:39:47 <Bike> zero divisors, hiss
23:39:52 <shachaf> undefined=null
23:39:54 <shachaf> problem solved
23:42:22 -!- Taneb has quit (Quit: Leaving).
23:55:15 <zzo38> Is the picture big enough?
2013-02-16
00:00:13 <shachaf> Which picture?
00:01:31 <zzo38> Picture for Vs Unisystem display to fit the Wreck-it Ralph on
00:22:18 <fizzie> "undefined * undefined === NaN" is false in the two (2) JavaScripts I tried.
00:22:31 <fizzie> null * null does === 0, though.
00:23:15 <shachaf> fizzie++
00:23:28 <fizzie> And the former is probably only because NaN === NaN is false too.
00:23:38 <shachaf> kmc: you gotta be careful with your ===s
00:24:10 <shachaf> Time to learn about pullbacks?!
00:25:12 <fizzie> (It's also all because ToNumber of Undefined is NaN, and ToNumber of Null is +0.)
00:26:19 <shachaf> do we have a js bot in here......
00:27:36 <fizzie> Odds are not good.
00:27:42 <fizzie> `js
00:28:08 <Lumpio-> aw.
00:28:13 <HackEgo> Rhino 1.7 release 2 2010 02 06 \ js>
00:28:14 <fizzie> It's still working, I think.
00:28:16 <fizzie> Well, won't you look at that.
00:28:23 <fizzie> HackEgo: Feeling a bit slow today?
00:28:28 <Sgeo_> kmc, have you seen wat?
00:29:01 <Sgeo_> http://www.youtube.com/watch?v=THERgYM8gBM
00:29:50 <shachaf> `js 1
00:29:55 <HackEgo> js: Couldn't read source file "1: 1 (No such file or directory)".
00:30:00 <shachaf> `run echo 1 | js
00:30:06 <HackEgo> Rhino 1.7 release 2 2010 02 06 \ js> 1 \ 1 \ js>
00:30:53 <fizzie> I don't know why that's being so nasty.
00:30:56 <fizzie> `run js -e 'print([undefined*undefined, null*null]);'
00:31:00 <HackEgo> js: "<command>", line 1: Unexpected end of file \ js: print([undefined*undefined, \ js: ..........................^ \ js: Couldn't read source file "null*null]);: null*null]); (No such file or directory)".
00:31:10 <fizzie> Compare: http://sprunge.us/QMTL
00:31:13 <Bike> good program
00:32:05 <fizzie> Okay, there is a bit of a version difference.
00:32:24 <fizzie> `run js -e 'print([undefined*undefined,null*null]);'
00:32:29 <HackEgo> NaN,0
00:32:48 <fizzie> But it almost seems like a quotation problem, that the -e argument gets word-splitted one extra time.
00:33:15 <Sgeo_> `run js -e 'Array(16).join("wat" -1)'
00:33:19 <HackEgo> js: "<command>", line 1: missing ) after argument list \ js: Array(16).join("wat" \ js: ...................^ \ Invalid option "-1)" \ Usage: java org.mozilla.javascript.tools.shell.Main [options...] [files] \ Valid options are: \ -?, -help Displays help messages. \ -w Enable warnings. \ -version 100|110|120|130|
00:33:26 <fizzie> Yeah, it's because of this:
00:33:27 <fizzie> `run tail -n 1 $(which js)
00:33:28 <HackEgo> ​$JAVA_CMD $JAVA_OPTS -classpath $JAVA_CLASSPATH $JAVA_MAIN $@
00:33:39 <fizzie> In current versions, it has "$@" instead of plain $@ there.
00:36:00 <fizzie> `run sed -i -e 's/$@/"$@"/' $(which js) # what do you mean permissions?
00:36:01 <HackEgo> sed: couldn't open temporary file /usr/bin/sedimAGpB: Read-only file system
00:36:19 <fizzie> I did my best.
00:37:42 <fizzie> `js print([undefined * undefined, null * null]); /* bin/js saves the day */
00:37:46 <HackEgo> NaN,0
00:38:20 <Sgeo_> `js Array(16).join("wat" -1) + " Batman"
00:38:24 <HackEgo> No output.
00:38:27 <Sgeo_> :(
00:38:28 -!- sebbu has quit (Ping timeout: 248 seconds).
00:39:09 <fizzie> `js print(Array(16).join("wat" -1) + " Batman")
00:39:13 <HackEgo> NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN Batman
00:39:33 <fizzie> It does still have the Rhino thing of not printing out the result implicitly.
00:39:44 <fizzie> (If it's in -e.)
00:46:42 <Lumpio-> oh, JS time?
00:49:00 <Lumpio-> `js ([]+[][[]])[++[+[]][+[]]]
00:49:05 <HackEgo> No output.
00:49:11 <Lumpio-> `js print(([]+[][[]])[++[+[]][+[]]])
00:49:16 <HackEgo> n
00:49:28 <Bike> Very nice.
00:50:29 <shachaf> Well, you could get away without the print()
00:50:50 <Lumpio-> I'm still not completely sure if +()[] is the minimal charset for writing any program in JS
00:50:53 <Lumpio-> You might need !
00:52:59 -!- hagb4rd has joined.
00:55:31 -!- sebbu has joined.
00:55:31 -!- sebbu has quit (Changing host).
00:55:31 -!- sebbu has joined.
00:58:47 <Phantom_Hoover> so apparently mcbridge doesn't wear shoes
00:58:51 <Phantom_Hoover> *mcbride
01:00:02 <Phantom_Hoover> i hope this information is useful to someone
01:03:05 <shachaf> How do you know?
01:05:04 <Phantom_Hoover> i know a cs student at strathclyde
01:05:24 -!- WeThePeople has joined.
01:17:21 -!- ogrom has quit (Quit: Left).
01:23:36 -!- carado has quit (Ping timeout: 256 seconds).
01:35:32 -!- Frooxius has quit (Ping timeout: 248 seconds).
01:42:34 <Sgeo_> Hey Phantom_Hoover
01:42:42 <Sgeo_> We need a brick stat
01:42:46 <Sgeo_> http://esolangs.org/wiki/Triforce
01:43:09 <Sgeo_> Hmm, ok, so it's easier to do some things in that language
01:44:00 <Bike> "The language and name is inspired by the Triforce of the Legend of Zelda series."
01:56:48 -!- nooga has quit (Ping timeout: 252 seconds).
02:11:57 <Lumpio-> "It is not yet possible to input and store a character."
02:12:03 <Lumpio-> "⧏ Input a character and store it in the cell at the pointer"
02:12:06 <Lumpio-> eh
02:30:05 -!- WeThePeople has quit (Quit: Leaving).
02:31:58 -!- madbr has joined.
02:32:24 <madbr> designing a cpu architecture is hard :o
02:32:25 <madbr> sup
02:33:25 <madbr> it's like
02:33:29 <zzo38> madbr: What CPU architecture were you trying to design?
02:33:51 <Bike> that's an odd question. what are you supposed to say, ARM?
02:33:53 <Phantom_Hoover> ARCHIPELAGO
02:33:54 <madbr> I'm giving up on trying to do a 32bit follow up to the 65816
02:34:12 <Bike> a cpu archipelago sounds like fun.
02:34:17 <madbr> that architecture is butts
02:34:41 <madbr> it's essentially impossible to do a fast pipelined version
02:35:02 <madbr> without turning it into an out of order monstruosity
02:35:09 <zzo38> I do also want to design a computer architecture for audio/video processing using explicitly parallel computing, which can be made efficient both on FPGA and on ASIC.
02:35:48 <fftw> zzo38: why not check colorforth computer?
02:36:14 <fftw> afaik it's business ready
02:36:15 <zzo38> fftw: ColorForth is an operating system (for PC), not a computer, I think? Isn't it?
02:36:38 <pikhq> http://sprunge.us/BLQC zcat, wheeee
02:36:40 <fftw> yeah, but moore made a computer specially for it
02:36:47 <madbr> zzo: I think you should start with a RISC
02:37:01 <fftw> p144 or something
02:37:14 <madbr> and bolt-on the extra parallel stuff
02:37:49 <zzo38> Actually in this computer design I will have more than one component; the CPU will be ARM2 without a coprocessor, but I want to make up the audio/video unit too.
02:37:52 <fftw> GA144. sorry
02:38:51 <fftw> and it's not colorforth but arrayforth. Hmm, big news!
02:39:20 <madbr> zzo: maybe you should do it as an ultra configurable DMA transfer chip
02:39:21 <zzo38> I do know of ArrayForth. It is not quite what I am looking for either.
02:39:30 <zzo38> madbr: How would that work?
02:40:07 <madbr> like, you have something like a set of "instruction registers" on the dma chip
02:40:27 <madbr> you fill those registers with your "program"
02:40:45 <madbr> then you "start the transfer"
02:41:30 <madbr> the chip churns until it's done with its load
02:42:51 <zzo38> To give examples of what I intend to do, includes: emulating the Famicom PPU and APU, decoding Ogg Vorbis/Theora and other open source codecs (and placing overlays), and doing all of these things simultaneously; but have it programmable rather than fixed to any of these purposes.
02:43:35 <madbr> ogg vorbis is like super complicated :O
02:43:36 <zzo38> (I mean both the NTSC Famicom and the RGB Famicom)
02:43:52 -!- Nisstyre-laptop has quit (Quit: Leaving).
02:44:05 <zzo38> madbr: How powerful would it have to be to decode them?
02:44:53 <madbr> I'd target adpcm
02:45:03 <madbr> vorbis is like
02:45:10 <madbr> a huge ass MDCT
02:45:32 <madbr> plus some weird channel coupling and base spectrum stuff
02:45:43 <madbr> plus a mountain of huffman decrunching
02:46:35 <madbr> huffman decrunching is hard to parallelize
02:47:20 <madbr> the whole thing is super complex and multistep
02:47:43 <zzo38> Well, the decoding does not entirely have to be done on the audio/video processor; the ARM2 CPU can be used partially too, if it is not busy with other things.
02:49:07 <madbr> as for the nes apu, depends if you want a cycle by cycle emulation
02:49:18 <madbr> or scanline per scanline is good enough
02:49:29 <madbr> most emulators are per scanline I think
02:49:30 <zzo38> Yes, to do want a cycle by cycle emulation.
02:49:40 <madbr> oh god
02:50:30 <madbr> that's not going to be pretty
02:51:22 <zzo38> For NTSC PPU, including each half-clock (there are eight per pixel), which goes through a D->A and then just output directly; for RGB PPU it is a bit different; it is selected from a palette and then send to digital RGB output port. (It is not needed to support NTSC and RGB mode simultaneously)
02:51:55 <madbr> I think in that case the best way is either NES emulator running on the ARM2
02:52:05 <madbr> or nes emulation on the FPGA
02:52:34 <madbr> the PPU has insane memory access patterns that only make sense for 8 bit and ultra slow ram
02:52:48 <madbr> same thing for the 6502 cpu
02:52:49 <zzo38> Of course it will have much of emulation running on the ARM2, but video and audio should be emulated separately.
02:52:55 <madbr> dude
02:53:09 <madbr> how fast is the arm
02:53:26 <zzo38> This computer is not meant to only emulate the NES/Famicom; it is meant to run other programs too!
02:53:57 <zzo38> They said this ARM2 clone runs at 40 MHz on the Xilinx Spartan 6. But maybe it can be upgrated to work with newer models too
02:54:12 <zzo38> (The newest Xilinx FPGA model is 7, not 6)
02:54:15 <madbr> hm
02:54:42 <zzo38> 40 MHz is not enough for the audio/video.
02:54:55 <madbr> gba was, what, 16mhz?
02:55:32 <zzo38> 40 MHz is more than enough to emulate the 6502 CPU core though.
02:55:50 <madbr> the audio was a bit rough (not too many channels, games made by retards only used GB channels) but it could handle that
02:55:51 <zzo38> Yes, GBA is 16.8 MHz
02:56:14 <madbr> I think you should at least downgrade the video emulation from cycle-wise to scanline-wise
02:57:45 <madbr> at those speeds I'm not sure you're going to get ogg playing
03:02:31 <zzo38> Whichever way is done is done by software anyways; but the hardware should be design to work with all of it. It would need to be almost 43 MHz at maximum speed, if there is enough parallel that it could do all the things at once (for RGB mode that is probably also good enough, since palette lookup could also be data parallel).
03:03:37 <zzo38> NTSC Master clock is 21.47727273 MHz, but the output voltage can change every half clock, so it need to be twice as fast.
03:03:39 <madbr> what's more important, developing new games or emulating existing ones?
03:04:10 <madbr> also is ogg for playing background music in games or as a media player with nothing else running at the same time?
03:05:32 <madbr> ie is the specific ogg format important, or the format can be changed? :D
03:06:11 <zzo38> The format could be changed if running as a background in games, but it should be capable to play Ogg audio and video simultaneously when not doing anything else.
03:06:31 <zzo38> And I intend that it can both make new games and emulate old ones.
03:07:21 <madbr> ok then I'd check if it's possible to do the huffman decrunching and channel decorrelation stuff in software
03:07:27 -!- monqy has joined.
03:07:38 <madbr> and only use the large throughput unit for doing the MDCT transform
03:07:55 <madbr> http://en.wikipedia.org/wiki/Modified_discrete_cosine_transform <- mdct
03:08:19 <madbr> video?
03:08:20 <zzo38> Yes, doing much of it in software is OK. Ogg audio/video is not needed for games; only for standalone. Games can have different programming on it.
03:10:14 <madbr> that means theora?
03:10:39 <madbr> or whatever the name of their video codec is
03:12:05 <madbr> still sounds hard to me
03:12:46 <zzo38> Yes, it is called Theora
03:13:04 <madbr> usually that kind of decoding is done on crazy systems with instruction cache data cache FPU 2-way issue etc
03:13:36 <madbr> that run in the hundreads of hz
03:15:08 <madbr> ogg is probably possible I guess
03:16:21 <zzo38> Yes, OK, but I only need to decode standard definition, not high definition, and not at the same time as any game or anything. If it cannot play those video formats with the first version of the hardware that might be OK, if later version might have faster speed and so on might be improve, if it is also backward-compatible.
03:17:09 <zzo38> Ogg audio, too, needs not run at the same time as a game.
03:18:22 <madbr> standard definition is still 640x480
03:18:31 <madbr> that's murder on a 40mhz system
03:18:57 <madbr> I wonder what sort of DCT theora uses
03:20:33 <madbr> you're looking at at least hardware chroma subsampling
03:20:51 <madbr> (ie video modes geared only towards video playback, yeech)
03:21:04 <madbr> and at least hardware DCT block decoding
03:21:13 <madbr> well, "hardware" (accelerated)
03:23:01 <pikhq> You could maybe pull MPEG-1 on that.
03:23:33 <zzo38> I have read the Xilinx FPGA datasheets, and they do have multiple clock signals so it may be possible that different parts can run at different speeds. I also don't know what speed improvement would be gained by upgrading to 7 series FPGAs, or by taking out the coprocessor and instead hard-coding the things that would be controlled by the coprocessor (such as memory protection and caching regions).
03:24:19 -!- Phantom_Hoover has quit (Remote host closed the connection).
03:25:15 <madbr> I'm pretty sure you'll have to downgrade the video codec to something less hungry
03:25:50 <zzo38> If the first version won't do Theora real time, I suppose that is OK, since a later hardware version might make more speed and other things, especially if a ASIC is made (which it probably won't be unless enough people request it).
03:26:50 <madbr> what's the video playback for anyways?
03:28:04 <zzo38> To watch a movie. Yes, it could be any video codec which it is possible to make the software to play it. If some features have to be omitted from the first hardware version that will be OK, I guess.
03:28:05 -!- DH____ has quit (Read error: Connection reset by peer).
03:28:17 -!- DHeadshot has joined.
03:28:52 -!- azaq23 has quit (Quit: Leaving.).
03:45:39 <zzo38> Do you know of .VGM format of musics?
03:46:08 <zzo38> I am making a program to make .VGM musics, I intend to have support of all of the chips, eventually.
03:47:20 <zzo38> (Existing software (XPMCK, VGM Music Maker, Deflemask, MIDI to VGM, etc) only support some chips.)
03:51:09 <madbr> you know the NDS?
03:51:21 <madbr> that's about the range of power you're going to get
03:51:40 <madbr> possibly something psx - n64 - pentium I- ish
03:51:48 <zzo38> I do have Nintendo DS and have programmed it in the past
03:52:27 <tswett> What classes of programs are capable of solving their own halting problems?
03:53:03 <Bike> I think none of them? That's a Turing degree thing...
03:53:13 <Bike> Maybe there's a degree omega in there?
03:53:17 <tswett> None of the ones that are Turing-complete or better.
03:53:30 <tswett> But ones that are less than Turing-complete might be able to do it.
03:53:45 <tswett> In particular, this set of programs can do it: {Output "The program halts." and halt.}
03:54:20 <zzo38> madbr: Yes, OK, like I said the first one may not be that much more powerful but later ones may get improvement.
03:54:58 <madbr> ogg is realistic you don't do other stuff at the same time
03:55:03 <madbr> but theora?
03:55:25 <tswett> I think that given a finite state machine with n states, you can construct a finite state machine with, like, O(n^3 log n) states that solves its halting problem.
03:55:48 <zzo38> If I try and find out it cannot be done with this system, then I won't have Theora in the first version. But, yes, it could do Vorbis, it needs not do other things at the same time.
03:56:34 <tswett> Run it for n steps; if it loops, it must have looped by now. Record its state. Run it for n! steps; if it loops, then running it for that long must cause it to loop an integer number of times.
03:56:53 <tswett> No, all this isn't necessary at all.
03:57:04 <tswett> Simply run it for n steps. If it hasn't halted by then, it never will.
03:57:22 <tswett> So the new FSM only needs to have O(n log n) states.
03:58:01 <zzo38> Do you have the program to make it embed?
03:58:24 <tswett> Come again?
04:02:43 <zzo38> Which C compilers support the __attribute__((constructor)) command which is supported in GCC?
04:09:53 <Gregor> At this point, probably most that aren't Visual Studio.
04:09:54 <lambdabot> Gregor: You have 2 new messages. '/msg lambdabot @messages' to read them.
04:12:09 <madbr> zzo : 3d games?
04:14:00 <madbr> zzo38 : the stuff that's useful for games is kinda different than the ones for media decoding
04:14:09 <madbr> at least, for sound
04:15:07 <madbr> sound stuff useful for games: sample mixing! (like s3m/mod/xm/it) adpcm decoding, good sounding reverb
04:15:40 <zzo38> madbr: Many games that don't need 3D graphics tend to have it. I don't really need really fancy 3D graphics anyways; but it should be good at 2D graphics, and capable of 3D graphics (not necessarily really good one though). Well, what is done for the sound, whether game or media or whatever, can be done by using different programs.
04:16:47 <zzo38> But yes I can understand, good for S3M/MOD/XM/IT, ADPCM, reverb, I do hope to have such things possible to do! Is why, I intend having a parallel processor which is programmed by explicitly parallel it can do it; I can think of things and try think see what works.
04:17:03 <tswett> Is there any good reason for making your game itself create good sounding reverb, rather than just using samples that already have good sounding reverb?
04:17:31 <zzo38> tswett: The sample may be played at different speeds, I think?
04:18:00 <tswett> Hm. Yeah, that would necessitate recalculating the reverb.
04:18:07 <madbr> stuff useful for media decoding (mp3, ogg): MDCT/subband filtering, huffman/arithmetic encoding
04:18:13 <madbr> tswett: sequenced music
04:18:43 <madbr> also it saves on the sample data (you don't have to add in tails) and it generally sounds good
04:19:01 <zzo38> But, also such thing as synthesizer with square wave, saw wave, simple FM synthesizer, can be used too, possibly.
04:19:20 <tswett> Imagine a function omegaTimes :: (Ordinal -> Ordinal) -> Ordinal, such that omegaTimes f is the smallest ordinal number greater than all of 0, f 0, f (f 0), f (f (f 0)), and so on.
04:19:32 <madbr> zzo: not much point in doing FM if you can mix samples
04:19:48 <tswett> What's the smallest ordinal larger than all ordinals you can express using omegaTimes? Presumably it's the Church–Kleene ordinal.
04:19:54 <zzo38> With a general enough system it may be able to do game audio by themself, and doing some media decoding with help from the CPU.
04:20:34 <madbr> it's not very hard to play s3m on a 40mhz ARM
04:20:46 <madbr> and s3m is easy to compose (for me :3 )
04:22:47 -!- Jafet has quit (Quit: Leaving.).
04:25:28 <madbr> same for gfx, there are like 3 pretty different things to go for
04:26:13 <madbr> ¸1) 2d gfx (drawn by scanline which saves a lot of bandwidth)
04:26:29 <madbr> 2) 3d gfx (using framebuffer, also applicable to 2d gfx)
04:27:44 <madbr> 3) video decoding
04:28:00 <tswett> That would mean that every ordinal number less than the Church–Kleene ordinal can be bounded above by an ordinal number written using omegaTimes, and yet there is no computable sequence of omegaTimes expressions that approaches the Church–Kleene ordinal.
04:28:16 <tswett> So creating larger and larger ordinal numbers using omegaTimes must require more and more ingenuity.
04:31:16 -!- Nisstyre has quit (Ping timeout: 245 seconds).
04:32:37 <madbr> might be cool to have pixel sprites over chroma subsampled background maybe
04:32:38 -!- Arc_Koen has quit (Quit: Arc_Koen).
04:33:34 <zzo38> madbr: Maybe
04:35:35 <zzo38> Nevertheless much of this is must be done in a separate processor which is very parallel, separate from CPU, one that I have to design, having high enough maximum speed and maximum threads.
04:36:44 <madbr> you might have memory bandwidth problems
04:37:26 <zzo38> I was thinking of that too.
04:37:40 <madbr> ok first this is it gonna have cache
04:37:54 <madbr> also what's the ram going to be?
04:37:59 -!- Jafet has joined.
04:38:30 <zzo38> madbr: The ARM2 clone does have cache; it is an existing Verilog program. The other parts, I don't know.
04:40:42 <zzo38> Possibly it would have something like 1GB or 2GB main RAM, but possibly having separate cache RAM for different component if it would help.
04:42:52 -!- augur has joined.
04:44:09 <madbr> yeah but I mean is the ram going to be sdram?
04:46:01 -!- Nisstyre has joined.
04:47:23 <kmc> disappointing fact of the day: HTML/CSS can't represent a color as green as a green laser pointer
04:47:26 <kmc> not nearly
04:49:29 <zzo38> I don't know everything about it yet. What RAM do you think should be used? I don't know a lot about that. It is why, I don't do entirely by myself; there are other people I know too, who can help with it too.
04:49:49 <tswett> For good reason, no? You want every color representable with CSS to be displayable on a computer monitor, and you don't want the color of a green laser pointer to be displayable on a computer monitor.
04:50:06 <madbr> static ram is expensive and comes in small sizes (like 256k and such)
04:50:18 <madbr> but the timing is consistent and it doesn't have to be refreshed
04:50:20 <pikhq> tswett: Why wouldn't you want the *color* representable?
04:50:25 <kmc> well "colors representable on a computer monitor" is a moving target
04:50:41 <pikhq> Note that the color is not the dangerous aspect of lasers at all.
04:50:52 <madbr> DRAM is cheap and comes in huge amounts
04:50:53 <zzo38> madbr: I know that mich of RAM; probably the main RAM would be dynamic, but there may be smaller RAM which is static. I don't know exactly everything about that.
04:50:53 <kmc> and software is harder to upgrade than hardware, paradoxically
04:50:55 <tswett> You mean "displayable"?
04:51:02 <kmc> sure yeah
04:51:02 <pikhq> Sure, whatever.
04:51:04 <tswett> Because that would make the monitor really expensive.
04:51:21 <pikhq> I fail to see your point.
04:51:23 <kmc> laser projectors are a consumer product you can buy
04:51:27 <kmc> i don't know what their color gamut is
04:51:33 <madbr> zzo: well, if you use cache you can pretty much ignore RAM in your design
04:51:43 <kmc> Adobe RGB comes much closer to being able to represent a green laser
04:51:43 <pikhq> Probably a function of the lasers used.
04:51:45 <kmc> fwiw
04:51:46 <Bike> Now I kind of want my computer screen to be a class 4, except then I'd go blind so probably not.
04:51:56 <madbr> your cpu interacts with cache, cache interacts with DRAM
04:52:14 <Sgeo_> Are most unrepresentable colors somewhere between two easily representable colors?
04:52:48 <Sgeo_> If someone only ever looks at images on a screen, how much are they really missing out on? Just some colors in the cracks, or some vibrant hues that the screen can't show?
04:52:53 <kmc> Sgeo_: CSS uses sRGB colors
04:52:55 <tswett> Sgeo_: well, I suppose so, in the sense that colors such as (1/pi, 0, 0) are unrepresentable.
04:53:00 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
04:53:02 <kmc> here's its color chart: http://en.wikipedia.org/wiki/File:Cie_Chart_with_sRGB_gamut_by_spigget.png
04:53:12 <tswett> But we're talking about "vibrant hues that the screen can't show".
04:53:18 <kmc> the triangle are colors representable by sRGB
04:53:33 <kmc> monochromatic things like lasers lie on that outside parabola-ish shape
04:53:38 <zzo38> Sgeo_: You could make up a color representation scheme which include all range, including infrared and ultraviolet, with intensity per frequency?
04:53:40 <pikhq> Technically there's also some colors missing because of quantization, but you can't really notice those.
04:53:45 <tswett> What I'd really like to see is a *teal* laser pointer.
04:53:46 <kmc> (the colors in this image itself are obviously 'not to scale')
04:54:00 <zzo38> (You also need high dynamic range too, if you want to do this!)
04:54:27 <Sgeo_> So, 0,255,0 on my monitor is not the greenest green I can see?
04:54:32 <kmc> correct
04:54:39 <kmc> a green laser is much greener
04:54:49 <shachaf> this one goes to 0,256,0
04:54:52 <madbr> zzo: does the fpga have onboard multipliers?
04:55:19 <kmc> in fact you're able to perceive a green color which is greener than any color you can directly see
04:55:22 <kmc> http://en.wikipedia.org/wiki/Imaginary_color#Perception_of_imaginary_colors
04:55:33 <zzo38> madbr: Actually I looked at the datasheet and it does have "DSP blocks" for multiplication.
04:55:51 <pikhq> 0,255,0 is only as green as the Rec. 709 green primary.
04:55:55 <madbr> are they like 18x18bit multipliers or something like that
04:56:03 <shachaf> All colors are imaginary.
04:56:13 <pikhq> (that is, it is a color of green emitted by a particular phosphor, which is much less green than a green laser)
04:56:15 <Bike> nice job, kodak.
04:56:24 <kmc> when i was young i thought of color as a physical property of the world, and i continually find it trippy as hell to learn more and more about how it's actually a property of the human visual system
04:56:26 <Bike> shachaf: QUALIA
04:56:26 <madbr> my guess is that you're going to design around those DSP blocks and the memory IO architecture :D
04:56:49 <Sgeo_> This is the best classroom ever.
04:56:52 <kmc> ours is but a single arbitrary and awkward 3-dimensional projection of the infinite-dimensional space of emission spectra
04:56:53 <Bike> kmc: i'm continually more and more amazeed by how complicated the damn thing is
04:56:57 <zzo38> (However, I intend not to lock it to one FPGA only, even if, it may have conditional compiling commands to make it efficient for certain FPGA models.)
04:57:24 <kmc> there's an extension to sRGB called scRGB... "The cost of maintaining compatibility with sRGB is that approximately 80% of the scRGB color space consists of imaginary colors."
04:57:33 <Bike> http://en.wikipedia.org/wiki/Complex_cell <-- Like I can't even believe these things exist.
04:57:37 <madbr> zzo: oh god
04:57:42 <kmc> anyway this lets you have RGB components outside [0,1] to represent points outside the sRGB gamut
04:57:57 <pikhq> That is hilarious.
04:58:19 <zzo38> I don't want any "vendor lock" on the design. This might require a few changes, such as adding conditional compiling commands, though.
04:58:47 <kmc> where are the colorspaces for tetrachromats?
04:59:05 <pikhq> What about colorspaces for dichromats?
04:59:07 <Bike> Maybe they've designed some for experiments with birds.
04:59:17 <madbr> zzo: well, no, but you need some kind of spec to design to<
05:00:19 <kmc> pikhq: fair enough
05:00:51 <zzo38> madbr: Do you know if Verilog has commands for conditional compiling? Perhaps that can be used.
05:00:58 <madbr> no idea
05:01:28 <zzo38> If it doesn't have, then a preprocessor could be made up which can add such things on.
05:02:08 <kmc> Sgeo_: my friend wants to do this project where he'll photograph great artworks in world museums, both with a normal camera and with a spectrophotometer
05:02:33 <Sgeo_> kmc, hmm, interesting
05:02:38 <kmc> the former only samples three points on the emission spectrum (red, green, blue) but the latter captures many more
05:02:58 <kmc> then you can make an image which is, say, a picture of the mona lisa, except that every pixel which can't be faithfully reproduced by your computer screen is just black
05:03:04 <kmc> and then you would know exactly how much you're missing out on
05:03:20 <pikhq> God, if we run into alien intelligence all our visual stuff will be so, so useless.
05:03:28 <kmc> mona lisa is kind of bland
05:03:41 <Bike> Isn't that how they do analysis of paintings? Seeing what was erased and shit.
05:03:42 <kmc> van gogh museum?
05:03:49 <kmc> yeah
05:04:13 <Bike> pikhq: http://www.scp-wiki.net/scp-163
05:04:51 <madbr> zzo: there's also a latency-vs-number of gates tradeoff
05:06:21 <madbr> the more latency you build into operations, the higher you can clock stuff and the less gates it takes
05:06:28 <madbr> but the harder to program :D
05:07:34 <tswett> Surely the best thing about the SCP wiki is the fact that the objects' containment procedures are listed before their descriptions.
05:08:43 <Bike> priorities!
05:09:26 <Sgeo_> kmc, oh, sorry, wasn't looking at IRC. That is very interesting.
05:09:34 <tswett> Well, in the real world, you'd probably want at least a brief description of the object right at the top.
05:09:59 <madbr> zzo: another possibility is adding some kind of SIMD unit to the arm
05:10:03 <tswett> "SCP-1234-1 must at all times be closer to SCP-1234-2 than to SCP-1234-3" is a useless instruction if you don't know what the three things look like.
05:10:43 <pikhq> tswett: I assume they're labelled.
05:10:44 -!- DHeadshot has quit (Read error: Connection reset by peer).
05:11:03 <tswett> What if they're really delicate or slippery or something?
05:11:07 -!- DHeadshot has joined.
05:11:14 <Bike> I think it's kind of nice narratively. Gives you some idea of what it is before the description, like an ad or something, completely divorced of extra info.
05:11:18 <Sgeo_> http://www.scp-wiki.net/scp-1960-j
05:11:41 <Bike> pikhq: a lot of them aren't really things you can label. like a two kilometer wide pumpkin, a virus strain, or a star or something.
05:11:43 <Sgeo_> ^^favorite SCP
05:11:55 * copumpkin is only one kilometer wide :(
05:12:23 <tswett> But yeah, narratively, it does a really good job of creating suspense.
05:12:35 <tswett> copumpkin is half a millimeter wide.
05:12:41 <pikhq> Yeah. From a narrative standpoint it's quite clever.
05:12:46 <zzo38> madbr: Maybe that is a possibility, but I intended, having the ARM core programmable by GCC and then, a separate parallel processor, designed to be faster and more parallel (even if that makes it difficult to program).
05:13:04 <Bike> Sgeo_: wow that's great
05:13:24 <Bike> "as if exhibiting a compulsive effect"
05:13:26 <kmc> if a pumpkin is two kilometers wide then maybe a copumpkin is two millimeters wide?
05:13:32 <copumpkin> :(
05:13:40 <kmc> zzo38: like cell
05:13:43 <zzo38> I am OK even if that makes it difficult; why did you think, I am on esolang wiki?
05:13:46 <Bike> copumpkin: Presumably you're 2 km tall to make up for it?
05:13:50 <copumpkin> oh yup
05:14:07 <kmc> carbon nanopumpkin
05:15:30 <tswett> Two millimeters wide and two kilometers tall. Hm.
05:16:16 <tswett> English really has an excess of words for dimensions of things. Length, width, depth, thickness. That's clearly too many.
05:16:19 <tswett> Not to mention height.
05:17:40 <madbr> zzo: yeah that's fine
05:18:47 <madbr> zzo : I guess it's essentially some kind of DSP
05:19:07 <copumpkin> breadth!
05:19:21 <copumpkin> girth
05:19:29 <zzo38> madbr: I guess so.
05:19:43 <tswett> I don't think girth counts as a dimension, since it's not measured linearly.
05:19:52 <tswett> Breadth, yeah, that's another one.
05:20:20 <Bike> Girth just makes me think of the one guy in Paper Mario.
05:20:28 <copumpkin> tswett: bigot.
05:20:38 <copumpkin> always discriminating against things that aren't linear
05:20:49 <madbr> zzo: how about something like 8 ALUs
05:21:02 <madbr> each alu has 2 input ports
05:21:16 <tswett> I wonder why "thickness" is the only one of those not ending in -th.
05:21:30 <copumpkin> thickth
05:21:35 <copumpkin> warmth? coldth
05:22:25 <zzo38> tswett: Because they begin with "th" instead.
05:22:37 <zzo38> In the Dungeons&Dragons game we generally assume even non-humans characters see the same colors, unless it is only grayscale; maybe should Icosahedral RPG rules mentioned differently, or what?
05:22:55 <madbr> and each input port can read the result from the previous 4 cycles or something like that
05:23:10 <zzo38> madbr: I was thinking of something which is a little bit like that actually.
05:23:22 * copumpkin goes to sleep
05:23:37 <tswett> Maybe you'd have to alter the word "thick" in the same way that "long" becomes "leng", "wide" becomes "wid", "deep" becomes "dep", and "high" becomes "heigh".
05:23:46 <madbr> thickth
05:23:54 <pikhq> Thuckth.
05:24:56 <madbr> or maybe 8 units
05:24:58 <tswett> Oh boy. They were distinct in Old English, it appears; you have to go back to Proto-Germanic to see where they were identical.
05:25:06 <madbr> every unit has something like 4 registers
05:25:23 <tswett> PG "langgaz" became OE "lang", but PG "langito" became OE "lengðu".
05:25:48 <tswett> "Width" is from the 1620s.
05:25:55 <zzo38> madbr: They were similar to the kinds of things I was thinking of.
05:26:08 <madbr> and on each cycle the unit reads from one of the 32 registers and writes to one of its 4 registers
05:26:16 <madbr> or maybe inversely
05:26:34 <pikhq> Damn, it'd be inaccurate for me to spell it "widþ".
05:26:39 <madbr> like, you have a bunch of ALUs that read from 2 fixed registers
05:26:42 <tswett> "Breadth" is ultimately an "alteration" of OE "brædu", from "bræd", "probably by analogy of long/length".
05:26:53 <madbr> but can write to any of any of the 32/64/etc registers
05:27:21 <pikhq> Not þat þat ſhall ſtop me in my Efforts to uſe Engliſh in ſilly Ways.
05:27:23 <zzo38> madbr: Yes, that is also some idea. I can consider all of these things.
05:28:15 <tswett> "Depth" is likewise by analogy. "Height", however, actually has a good etymology.
05:28:24 <tswett> pikhq: dōn't forget your macrons!
05:28:50 -!- hagb4rd has joined.
05:28:57 <madbr> zzo: one idea I had was "trace execution"
05:29:03 <pikhq> I don't recall where those go. :(
05:29:08 <madbr> you have a normal RISC style program
05:29:15 <madbr> and it "runs" it
05:29:26 <madbr> but each cycle isn't one operation it does
05:29:34 <pikhq> Demo, rōmaji de nihongo wo kaitara, zenbu oboeteru.
05:29:34 <madbr> rather, it's one unit that it assigns
05:30:42 <kmc> p.s. send pocky
05:31:09 <Bike> i thought they just went on long vowels.
05:31:21 <pikhq> Iya, pokkii hoshikunai.
05:31:40 <tswett> I know the words "rōmaji", "nihongo", and "wo", and I know that I've heard "demo" and "zenbu" in the second opening theme and the first closing theme of Fullmetal Alchemist: Brotherhood, respectively.
05:32:03 <pikhq> "But, when writing Japanese, I remember them all."
05:32:13 <pikhq> Erm.
05:32:22 <pikhq> "But, when writing Japanese with the Roman alphabet, I remember them all."
05:32:34 <shachaf> You should tell me about diagonal functors!
05:32:47 <tswett> Oh right, "kaitara" is the same verb as "kaite".
05:32:56 <tswett> Is there a rule for getting the citation form from the -te form?
05:33:03 <madbr> how large are register files in terms of gates anyways
05:33:20 <pikhq> I'unno. All the rules are from "-u" anyways.
05:33:42 <pikhq> And I'm not too good at remembering the rules in an easily expressable way, the verbs just come out conjugated.
05:34:03 <zzo38> madbr: I don't know
05:34:15 <tswett> How is "kaitara" formed?
05:34:55 <shachaf> «My question is: How do I convert the output from (CurlCode, String) to String?»
05:35:06 <tswett> "Kaita" (the perfective) with "-ra"?
05:35:22 <pikhq> Yes.
05:35:52 <pikhq> It's a bit more literally "But, if I write [...]"
05:36:26 <zzo38> madbr: Have you seen the latest of my Dungeons&Dragons game recordings, yet, however?
05:36:29 <pikhq> But who translates literally? :)
05:36:31 <zzo38> (Just curious)
05:36:45 <zzo38> pikhq: Do you?
05:36:51 <pikhq> No.
05:36:52 <zzo38> pikhq: Do you translates literally?
05:36:57 <pikhq> I do not.
05:37:00 <zzo38> OK
05:37:15 <tswett> I wonder if that's the same "-ra" that appears in a certain place in the first opening theme...
05:37:26 <pikhq> Probably.
05:37:46 <pikhq> That conditional is fairly common.
05:38:08 <madbr> nops
05:38:47 <madbr> zzo: I'd start by looking at how much data you can load in per sample
05:39:06 <madbr> er per cycle
05:39:58 <zzo38> madbr: OK. I will try.
05:40:13 <tswett> Aha, here's the line: "Yarinokoshiteru koto yarinaoshite mitai kara"
05:40:32 <pikhq> Oh, no.
05:40:37 <pikhq> That's not the same "-ra".
05:40:44 <pikhq> "kara" is a single unit.
05:40:46 <pikhq> "Because".
05:40:47 <tswett> Which is translated as... "Tengo cosas por hacer ya que anhelo rehacerlos todos."
05:40:48 <madbr> If it's 32bits load per cycle then for audio mixing you're going to need 2 cycles sample data (if using linear interpolation) plus 1 for mixing buffer input (plus 1 for mixing buffer output)
05:40:56 <madbr> though I guess you can mix multiple channels
05:41:02 <tswett> Let me find the English subtitled version...
05:41:57 <madbr> so there's no point in pipelining/vectorizing/paralellizing the rest of the algo so much that it fits in less than 4 cycles
05:44:06 <tswett> Apparently "I want to try doing over the things I've left undone" is the translation used in the English version of FMA:B.
05:44:18 <kmc> "The name D65 suggests that the correlated color temperature (CCT) should be 6500 K, while in truth it is closer to 6504 K. This discrepancy is due to the scientific community's revision of the constants in Planck's law after the definition of the illuminant."
05:44:31 <pikhq> That's a decent translation.
05:44:39 <Bike> the illuminant
05:44:47 <tswett> How would you translate it?
05:45:19 <pikhq> "I want to retry the things I left undone" maybe?
05:45:28 <pikhq> Or maybe unfinished.
05:45:39 * tswett nods.
05:46:27 <zzo38> madbr: Thank you for information.
05:47:37 <pikhq> やり残してる事やり直して見たいから Also, the sentence is a *lot* clearer with kanji.
05:48:40 <zzo38> pikhq: Japanese is working like that in general.
05:49:01 <pikhq> This is true.
05:52:20 <tswett> Here's a lyric I've seen translated two very different ways, in kanji why not: "だから 気づかぬふリ 再生を選ぶ"
05:52:39 <tswett> I assume those are official kanji, not fan kanji. *shrug*
05:54:04 <pikhq> Well, that's a very strange sentence.
05:54:18 <tswett> I guess that "ri" is, in fact, in hiragana, not katakana.
05:54:37 <pikhq> It's katakana "ri" in what you pasted there.
05:54:52 <tswett> Right, but it's actually a hiragana "ri" which I mistook for a katakana "ri".
05:55:05 <pikhq> Ah.
05:55:51 -!- dessos has quit (Quit: leaving).
05:57:11 <tswett> One translation was "So pretending not to notice, I choose rebirth"; the other was "So I choose to replay the imperceptible pretense".
05:57:29 <tswett> More or less the same content words in each case, but related in completely different ways.
05:57:51 <pikhq> Oh, right, -ふり is to pretend. Duh.
05:57:56 <tswett> Also the romaji for what it's worth: "Dakara kizukanu furi saisei wo erabu".
05:58:29 <pikhq> "So, pretending not to notice, I choose rebirth" is much more close to what the sentence *says*.
05:58:44 <pikhq> Though context may justify the latter.
06:00:36 -!- dessos has joined.
06:00:53 <tswett> So what's "kidzukanu"?
06:03:02 <pikhq> Negation of "kidzuku", to notice.
06:03:50 <pikhq> You'd normally do "kidzukanai", but -nu instead of -nai is perfectly acceptable.
06:04:12 <pikhq> I don't quite know what the difference is, aside from -nu sounding more... poetic?
06:06:15 <zzo38> Do you have any interests in the Dungeons&Dragons game I have recorded, though?
06:06:34 <pikhq> Formed from "気" and "付く", "spirit" and "attach".
06:06:49 <pikhq> No I don't know how that quite works either, but that's the etymology.
06:06:58 <zzo38> Do you have any interests in a program to print out file of Internet Quiz Engine?
06:08:27 <Sgeo_> `slist
06:08:29 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
06:08:37 <madbr> I'm looking up some pdf file for the "DSP block" in the FPGA
06:08:54 <Bike> slist?
06:09:06 <tswett> So it definitely sounds like "So pretending not to notice, I choose rebirth" is pretty much a literal translation.
06:09:23 <shachaf> Bike: That's the old `list.
06:09:28 <shachaf> Bike: Do not run the new one.
06:09:38 <pikhq> `list
06:09:42 <pikhq> I have not been so ordered.
06:09:44 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy
06:09:48 <shachaf> Great.
06:10:02 <madbr> zzo38 you can probably come up with like half the design with the specs of the DSP slice and the memory IO specs
06:10:06 <shachaf> It's for your own good that you don't want to run it.
06:10:23 <pikhq> tswett: Yeah.
06:10:26 <shachaf> monqy: hello mister monqy
06:10:33 <pikhq> tswett: Context would determine what you'd want to do with it.
06:10:35 <zzo38> madbr: OK, it can be considered.
06:10:41 <monqy> hi shachaf
06:10:46 <pikhq> tswett: Out of context that's pretty much what you'd have to do though.
06:10:56 <shachaf> A race conditon in ptrace can lead to kernel stack corruption and arbitrary kernel-mode code execution.
06:11:03 * tswett nods.
06:11:12 <shachaf> good old ptrace
06:11:22 <Bike> `run cat $(which list)
06:11:22 <tswett> It's likely, I suppose, that that lyric wasn't intended to mean anything in particular anyway.
06:11:23 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq
06:11:30 <kmc> shachaf: yeah
06:11:38 <Bike> This looks like a good program.
06:11:38 <kmc> i don't understand the exploit yet
06:11:41 <kmc> it's p. complicated
06:11:48 <kmc> http://seclists.org/oss-sec/2013/q1/326
06:12:18 <madbr> zzo: like, once you have that just put multiplexers and registers to route the signals from the memory to the DSP blocks back to the memory
06:13:20 <madbr> and then some mechanism for storing the multiplexer and register and DSP slice OPs and memory in OPs and memory out OPs for each processing cycle
06:13:30 <kmc> shachaf: i don't think you can even build a linux kernel without ptrace unless you patch :(
06:13:56 <shachaf> ptrace condition
06:13:58 <kmc> though i would probably jump off a bridge if i had to maintain a server without strace available
06:14:17 <kmc> cause it's like the only tool i know for figuring out why shit is broke
06:14:18 <zzo38> madbr: Well, it is OK, but still I intend not to make it vendor-locked; it should be non-vendor-locked Verilog codes (although it might includes conditional compile command for different FPGA with different features).
06:14:35 <shachaf> kmc: Well, given strace, who needs any other tools?
06:15:15 <zzo38> (I might consider relying on vendor-locked features once that vendor makes open-source FPGAs.)
06:15:41 <shachaf> monqy: why do people write limits with an integral sign.........
06:15:42 <zzo38> (Actually, once they do that, I may even do such things as dynamic hardware programming and so on.)
06:15:53 <Sgeo_> `list
06:16:00 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq
06:16:06 <Bike> Sgeo, that's just redundant.
06:16:14 <monqy> shachaf: good question
06:16:19 <Sgeo_> No it's not. pikhq needs to observe the effect
06:16:32 <Sgeo_> Oh, I guess he saw what it does
06:16:32 <shachaf> monqy: do you understand limits
06:16:34 <Sgeo_> derp
06:16:55 <shachaf> monqy: i understood them and then i saw the "'formal' 'definition'" and now maybe i don't understand them again
06:17:17 <monqy> shachaf: i havent gotten around to them yet
06:17:51 -!- fgrep has joined.
06:17:55 <fgrep> `list
06:17:58 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_
06:18:00 <fgrep> `list
06:18:03 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_
06:18:11 -!- fgrep has quit (Client Quit).
06:18:27 <kmc> heh i like any code of the form while (1) { ... exit(0); }
06:19:05 <monqy> shachaf: hi shachaf
06:19:57 <shachaf> kmc: Does it have a continue?
06:20:16 <madbr> zzo : it might be interesting to have a separate unit for gfx and sound
06:20:31 <Bike> are you talking about calculus limits or some cat theory nuttiness
06:20:33 <shachaf> monqy: did you just disapproval hi me
06:20:46 <madbr> the gfx unit would presumably look like the multi-unit shader stuff in gfx cards
06:20:49 <monqy> :-)????
06:21:19 <madbr> the sound unit could be something like the sb live where you get 512 cycles for each sound output samples
06:23:16 <madbr> so if you want to mix 64 channels you have to do it in 8 cycles :D
06:34:16 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
06:42:17 <tswett> repeat halt(0) until true;
06:42:42 <tswett> So how strong is the calculus of constructions, anyway?
06:42:54 <madbr> hmm
06:42:56 <shachaf> i love the calculus of constructions
06:42:58 <shachaf> it is so easy
06:42:59 <tswett> If ZFC can show that a Turing machine halts, can the CoC prove the same?
06:43:35 <shachaf> tswett: You should explain limits to me.
06:43:43 <shachaf> As natural transformations from the diagonal functor.
06:43:43 <madbr> it would be possible to make a very simple RISC cpu that doesn't even need cache and can directly work with DRAM...
06:44:04 <madbr> but a write/read instruction would take something like 7 cycles
06:44:15 <tswett> ZFC proves that the CoC is consistent, doesn't it? So I guess there must be a Turing machine that halts that the CoC can't prove halts.
06:44:23 <madbr> other instructions (math, jumps) would take 1 cycle though
06:44:43 <shachaf> I guess tswett doesn't like diagonal functors.
06:44:58 <tswett> shachaf: yeah, I can do that.
06:45:08 <tswett> shachaf: but first, what's the diagonal functor?
06:45:13 <madbr> multiple reads/writes from a single instruction would take only 1 extra cycle per extra operation tho
06:45:14 <kmc> CoC SMASH!
06:45:38 <shachaf> tswett: It's the boring one that maps to a constant.
06:46:00 <tswett> All right.
06:46:01 <madbr> also it would have a branch delay slot
06:46:04 <madbr> like MIPS :D
06:46:06 <tswett> And what are limits?
06:46:17 <shachaf> tswett: Wait, I don't mean to a constant.
06:46:29 <shachaf> Never mind.
06:46:36 <tswett> ^_^
06:46:37 <shachaf> tswett: Limits are universal cones over a diagram.
06:46:51 <tswett> Oh, of course.
06:47:32 <tswett> Now excuse me for a moment while I try to figure out what the Chicago category theory is all about.
06:47:54 <shachaf> tell me when you find out thx
06:48:05 <tswett> Will do.
06:48:09 <shachaf> tswett: Do you know terminal objects?
06:48:11 <shachaf> And products?
06:48:18 <tswett> Yeah.
06:48:28 <shachaf> Products as in https://upload.wikimedia.org/wikipedia/commons/b/b2/CategoricalProduct-03.png
06:48:40 <tswett> Yup.
06:48:52 <shachaf> How about pullbacks?
06:48:58 <tswett> Nope.
06:49:16 <shachaf> OK, so start with pullbacks.
06:49:25 <shachaf> They're sort of like products.
06:49:50 <shachaf> In fact they're called "fibered products" sometimes.
06:50:03 <shachaf> Here's the diagram in this case: https://upload.wikimedia.org/wikipedia/commons/thumb/e/eb/Categorical_pullback_%28expanded%29.svg/225px-Categorical_pullback_%28expanded%29.svg.png
06:50:25 <shachaf> Er, https://upload.wikimedia.org/wikipedia/commons/thumb/e/eb/Categorical_pullback_%28expanded%29.svg/500px-Categorical_pullback_%28expanded%29.svg.png
06:50:55 <shachaf> So you have X --f--> Z <--g-- Y
06:52:40 <shachaf> OK, well, first, https://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Categorical_pullback.svg/500px-Categorical_pullback.svg.png has to commute.
06:52:46 <shachaf> Then you can add the rest of the diagram on.
06:52:48 <tswett> Mm. Let me find a simple example of a pullback.
06:53:18 <shachaf> Sets have a simple example!
06:53:21 <tswett> In the category of sets, a pullback of f and g is... the set of all pairs (x, y) such that f(x) = g(y).
06:53:25 <tswett> Right?
06:53:27 <shachaf> Yes.
06:53:49 <tswett> Whew. I correctly parroted Wikipedia.
06:55:19 <shachaf> That's the what's-it-called.
06:55:32 <shachaf> So clearly the what's-it-called works with this diagram, right? https://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Categorical_pullback.svg/500px-Categorical_pullback.svg.png
06:55:44 <tswett> Yeah.
06:55:46 <shachaf> Where p1 = fst; p2 = snd
06:55:49 <tswett> Now...
06:56:12 <shachaf> P is X ×_Z Y in this case.
06:56:38 <tswett> Suppose that X is the ring of integers modulo 2, Y is the ring of integers modulo 3, Z is the ring of integers modulo 1 (the trivial ring, aye?), and f and g are, y'know, the only thing they can possibly be.
06:57:07 <tswett> Would P be the ring of integers modulo 6?
06:58:18 <shachaf> Well, P can be lots of things at this point, since we haven't finished the thing. :-)
06:58:26 <shachaf> But let me see.
06:58:36 <shachaf> Now I need to figure out how ring homomorphisms work.
06:59:18 <kmc> i wonder if there's a good, reasonably simple model for the perceived contrast between two colors
06:59:21 <shachaf> Well, I guess they're straightforward.
06:59:27 <kmc> i guess CIE ΔE is almost that, but not quite?
07:00:08 <Bike> kmc: Doesn't it depend on context?
07:00:36 <kmc> probably
07:00:52 <Bike> like the ol' http://en.wikipedia.org/wiki/File:Grey_square_optical_illusion.PNG
07:01:44 <kmc> yeah
07:01:48 <kmc> that's so fucked
07:02:14 <shachaf> like a monoid?
07:02:23 <kmc> do y'all know about the McCollough effect
07:02:32 <Bike> I think a lot of objective sorts of measures sort of fail when you try to connect them to subjective processing.
07:02:33 <shachaf> yes
07:02:40 * shachaf speaks for all of this channel
07:02:51 <Bike> shachaf speaks for me.
07:02:53 <kmc> so fucked
07:03:06 <tswett> What about the category of types in the simply typed lambda calculus...
07:03:20 <shachaf> kmc: what about that other thing
07:03:31 <shachaf> the shepard scale
07:03:33 <Bike> I think it makes sense when you remember that in four billion years of evolution stimuli like McCollough bars didn't come up much.
07:03:35 <shachaf> that's good too
07:04:12 <tswett> X, Y, and Z are statements. f and g are functions X -> Z and Y -> Z. And... hmm.
07:04:12 <kmc> Bike: eventually the cuttlefish will learn how to do them
07:04:20 <Bike> I still don't honestly understand why pitch perception is logarithmic in frequency.
07:04:37 <tswett> Bike: well, why not?
07:04:45 <Bike> ...heh
07:05:07 <Bike> kmc: iirc chromataphore operation is a lot less centralizing than visual perception? like each point kind of does its own thing?
07:05:30 <kmc> i don't know
07:05:33 <tswett> Now, why are we capable of distinguishing notes played on different instruments at the same time...
07:05:41 <kmc> re pitch perception "i have no point, i'm just saying": http://www.erowid.org/library/books_online/tihkal/tihkal04.shtml
07:05:48 <Bike> erowid, for real
07:05:51 <kmc> (scroll down to "qualitative comments" unless you really love organic chemistry)
07:06:19 <Bike> "Everything was auditory" i need to get my hands on this stuff
07:07:23 <shachaf> auditorium? i 'ardly know 'em!
07:07:29 <kmc> ._.
07:07:53 <kmc> rectangle? damn near killtangle!
07:08:28 <kmc> Bike: i have taken it
07:08:43 <Bike> Anything exciting?
07:08:45 <tswett> All right, how about we let f be the function \(x,y) -> x : (A,B) -> A and g be the function \(x,y) -> y : (B,A) -> A, why don't we.
07:09:04 <kmc> basically as described there
07:09:09 -!- Mathnerd314 has quit (Remote host closed the connection).
07:09:26 <kmc> some flanging for sure
07:10:54 <madbr> damn it
07:11:05 -!- Mathnerd314 has joined.
07:11:28 <madbr> what do you do with a cpu where all the instructions are 1 cycle except memory accesses are 6 cycles
07:11:39 <kmc> waste electricity
07:11:58 <tswett> Use registers.
07:11:59 <zzo38> Or run other instructions in the time of those other cycles?
07:12:02 <kmc> make the memory bus really wide and do SIMD?
07:12:19 -!- FreeFull has quit (Ping timeout: 260 seconds).
07:12:20 <madbr> no the point is that it only takes a 32bit bus
07:12:43 <madbr> dram access is like 1 cycle if it's on the same page
07:12:52 <madbr> but 3+ cycles if you're in a different page
07:13:06 -!- FreeFull has joined.
07:13:08 <madbr> a page is 1k~4k depending on your ram size
07:13:10 <tswett> So, the pullback of f and g.
07:13:11 <zzo38> Then make page-alignment.
07:13:36 <madbr> the catch is that it doesn't have instruction cache
07:13:48 <madbr> so instructions that don't access ram are fine
07:14:11 <madbr> since they're probably on the same page as the previous instructions
07:14:18 <tswett> P is (A,B), p1 is the identity function (A,B) -> (A,B), and p2 is the swapping function (A,B) -> (B,A)?
07:14:43 <madbr> so you can read in your next instruction at the same time as you execute the current one
07:15:05 <madbr> but once you have to read/write to RAM you have to change page
07:15:16 <madbr> bang 3 cycle read
07:15:17 <shachaf> Wait, what's going on?
07:15:25 <shachaf> What category are you talking about?
07:15:36 <madbr> then you need to pull in the next instruction which is also a page change
07:15:43 <madbr> so bang another 3 cycle read
07:15:46 <tswett> The category of types in the simply typed lambda calculus, where morphisms are functions with the appropriate types.
07:16:15 <shachaf> OK.
07:17:03 <madbr> I guess you could make an instruction that reads to like 8 contiguous registers
07:17:22 <shachaf> So you have X -> Z <- Y here.
07:17:25 <madbr> and that would take, uh, 13 cycles
07:17:51 <shachaf> X = (A,B), Y = (B,A)?
07:18:10 <tswett> Yup.
07:18:14 <madbr> (5 cycles + number of memory accesses you're doing)
07:18:58 <kmc> ARM has that instruction doesn't it
07:19:16 <madbr> it has ldm and stm yeah
07:19:21 <zzo38> kmc: What version of ARM, and in what instruction set?
07:19:22 <madbr> dunno if it was added for that reason
07:19:51 <madbr> it's not that interesting if you're on a modern ARM actually because those have cache
07:20:29 <madbr> and also it can't pair the memory accesses but it can pair other ALU instructions so you want to do the reverse, mix your loads with ALU ops
07:21:05 <kmc> yeah i don't think it's added for this reason
07:21:59 <madbr> http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/ch02s08s01.html
07:22:01 <kmc> http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/ch02s08s01.html
07:22:06 <kmc> haha yeah
07:22:13 <madbr> it's like a mass stack push/pop
07:22:56 <tswett> Mm, maybe P is (B,A,B), p1 is the function that drops the first element, and p2 is the function that drops the last element.
07:23:16 -!- WeThePeople has joined.
07:23:23 <kmc> yeah, although you don't have to write back to the stack pointer register (and it can be any register)
07:23:29 <tswett> In all of these cases, it seems like P is X "times" Y "divided by" Z.
07:23:47 <kmc> (since ARM doesn't really have a hardware stack pointer)
07:23:51 -!- WeThePeople has quit (Read error: Connection reset by peer).
07:25:07 <tswett> Suppose we're in the category of topological spaces, and Z is the plane, and X and Y are open discs in the plane, and f and g are the inclusion morphisms.
07:25:13 <kmc> so it's useful for saving registers around function calls, but also for general block copies
07:25:49 <tswett> Nah, let's be smaller. Z is the real line, X and Y are open intervals.
07:25:59 <madbr> it's max twice as fast as unrolled normal copy I think
07:26:28 <madbr> due to the size of the datapath on whichever modern ARMs
07:27:08 <tswett> So... P is the intersection of X and Y, and p1 and p2 are both inclusion morphisms?
07:32:27 <madbr> I guess it's also possible to load in multiple load/store instructions when you encounter one
07:32:43 <madbr> ie make a very small instruction cache :D
07:37:15 <kmc> happy megasecond 1361
07:38:30 <shachaf> i never megasecond i didn't like
07:39:38 <tswett> jaspers:~ tswett$ date -r 100000000000000000
07:39:39 <tswett> Segmentation fault
07:39:49 <zzo38> How can I get out of this trap in Dungeons&Dragons game?
07:39:56 <tswett> That seems kinda wrong.
07:40:16 <zzo38> tswett: Why is it a segmentation fault?
07:41:09 <tswett> Because date attempted to access a memory location that it was not allowed to access, or attempted to access a memory location in a way that was not allowed.
07:42:43 <shachaf> zzo38: Cast a spell of remove trap.
07:43:03 <zzo38> shachaf: I don't have that one, and I don't want to waste all of my spells
07:43:20 <zzo38> tswett: Yes, but why would it cause that? (Or is "Segmentation fault" the answer?)
07:43:25 <shachaf> zzo38: as kmc says, they have to tell you if they're a cop
07:43:40 <tswett> I don't know.
07:45:13 <tswett> Presumably, it was because the year was too big to fit in a signed 32-bit variable.
07:45:19 <zzo38> shachaf: They aren't a cop, they are a demon and a bunch of human guys, and a few gray render and vampire.
07:45:36 <Bike> gray render?
07:45:55 <zzo38> tswett: Shouldn't it overflow if it does like that though? I thought that isn't a segmentation fault?
07:46:37 <tswett> Apparently, it was written in a way such that it's a segmentation fault instead of an overflow.
07:47:10 <zzo38> What version of the system "date" program is it? If you know what it is, then maybe you can look at it, and fix it.
07:48:05 <shachaf> let's not play the segmentation blame game, zzo38
07:48:33 <zzo38> shachaf: OK, let's play the Dungeons&Dragons game instead.
07:49:05 <shachaf> Let's play the pun game instead!
07:49:30 <zzo38> OK
07:49:54 <shachaf> Who goes first?
07:49:57 <tswett> Hm. Can every morphism be written as the composition of an epimorphism and a monomorphism in either direction...
07:50:36 <tswett> Something tells me yes in Set, but not in every concrete category.
07:51:55 <zzo38> shachaf: Whoever's square-root of their telephone number, minus the right ascension of the moon at the time they turned on their computer, plus 4d6 drop lowest, is the high number, goes first.
07:52:03 -!- oerjan has joined.
07:52:10 <tswett> Which computer?
07:52:14 <zzo38> Unless you can speak ancient Egyptian language, in which case it is done in reverse.
07:52:31 <zzo38> tswett: Whoever's own computer, who is using the IRC on.
07:52:54 <tswett> What if the computer you're physically at is not the computer that the IRC client is running on?
07:53:03 <tswett> 'Cause I turned on the latter computer...
07:53:19 <tswett> August 4, give or take a day.
07:53:33 <zzo38> tswett: Then you use the computer that the IRC client is running on, if you turned that one on; otherwise it is the computer you are physically at.
07:54:11 <tswett> Does giving an instruction to an automated system to turn that computer on count as turning it on?
07:54:34 <tswett> What if it's a virtual machine (as, in fact, it is)? Do I use the time the VM was turned on, or the time its host was turned on?
07:54:49 <zzo38> Toss a coin to figure it out. If the coin gets lost, then the answer is yes.
07:55:03 <zzo38> If it comes up on its side, then the answer is no.
07:57:26 <zzo38> If it comes up heads or tails then try again.
07:57:53 <tswett> A potentially expensive way of resolving the question.
07:59:23 <tswett> So for my telephone number, I use the international form, right?
08:00:26 <zzo38> Yes, if you have ever been outside of your country (or whatever area is having the same form of telephone numbers); otherwise no.
08:00:57 <tswett> Hm. I live in the United States, and I've been to Canada, but I haven't been outside of the NANP area.
08:01:11 <shachaf> canada isn't a real country......
08:01:14 <zzo38> Then you don't use the international form.
08:03:00 <tswett> Do I use the 10-digit form, then?
08:03:05 <zzo38> Yes
08:30:08 <shachaf> kmc: The best airport for me would be LGA, right?
08:30:32 <elliott> Least Good Airport
08:30:44 <shachaf> oh no
08:32:40 <oerjan> `cat bin/js
08:32:45 <HackEgo> ​#!/bin/sh \ \ JAVA_CMD="/usr/bin/java" \ JAVA_OPTS="" \ JAVA_CLASSPATH="/usr/share/java/js.jar:/usr/share/java/jline.jar" \ JAVA_MAIN="org.mozilla.javascript.tools.shell.Main" \ \ ## Fix for #512498 \ ## Change Bootclasspath when using OpenJDK because OpenJDK6 \ ## bundle his own release of Rhino. \ ## References: \ ## <https://bugs.launchpad.
08:38:30 -!- jconn has quit (Ping timeout: 264 seconds).
08:39:52 <kmc> javascript in my java? it's more likely than you think
08:39:56 -!- fftw has quit (Ping timeout: 256 seconds).
08:39:58 -!- ogrom has joined.
08:40:03 <kmc> shachaf: for what
08:40:46 <shachaf> kmc: Going to the Bronx.
08:40:55 <kmc> i guess so
08:41:05 <kmc> it depends on how you feel about buses
08:42:11 <shachaf> ?
08:44:20 -!- DHeadshot has quit (Read error: Connection reset by peer).
08:44:41 <shachaf> If I don't/do mind buses how does that affect it?
08:44:55 <kmc> there is no train to LGA
08:45:01 <kmc> or from LGA for that matter
08:45:22 <kmc> you could take a bus or a taxi
08:45:35 -!- EgoBot has quit (Remote host closed the connection).
08:45:46 -!- EgoBot has joined.
08:45:51 <shachaf> Ah.
08:46:31 -!- madbr has quit (Quit: Radiateur).
08:46:32 <kmc> it has reasonable bus service though
08:46:42 <kmc> there's one that goes straight across to Harlem on 125th St
08:47:19 <kmc> from which you can get to the 456, Metro North, the 23, the ABCD, or the 1
08:48:21 <oerjan> @tell tswett <tswett> I think that given a finite state machine with n states, you can construct a finite state machine with, like, O(n^3 log n) states that solves its halting problem. <-- you seem close to reinventing hierarchy theorems...
08:48:22 <lambdabot> Consider it noted.
08:48:39 <tswett> Hierarchy theorems, eh?
08:48:39 <lambdabot> tswett: You have 1 new message. '/msg lambdabot @messages' to read it.
08:48:45 <tswett> OH BOY I WONDER WHAT IT IS
08:48:49 <shachaf> @arrrr chy
08:48:49 <lambdabot> I'll keel haul ya fer that!
08:48:51 <shachaf> I don't mind buses in particular.
08:49:09 <shachaf> It seems like the trip will be long, though.
08:49:27 <kmc> probably shorter than from EWR or JFK
08:50:25 <oerjan> http://en.wikipedia.org/wiki/Time_hierarchy_theorem and http://en.wikipedia.org/wiki/Space_hierarchy_theorem
08:53:35 -!- fftw has joined.
09:02:47 <oerjan> <tswett> Imagine a function omegaTimes :: (Ordinal -> Ordinal) -> Ordinal, such that omegaTimes f is the smallest ordinal number greater than all of 0, f 0, f (f 0), f (f (f 0)), and so on.
09:02:57 <oerjan> seems related to http://en.wikipedia.org/wiki/Veblen_function
09:07:52 <oerjan> tswett: http://en.wikipedia.org/wiki/Feferman%E2%80%93Sch%C3%BCtte_ordinal looks relevant
09:08:51 <zzo38> In VGM format, waits 735, 882, and numbers 1 to 16 take up 1 byte each, while all other waits 17 to 65535 take up 3 bytes. I am making a program to make the short number of bytes for the given amount.
09:09:48 <zzo38> if((dur>=735 && dur<=751) || dur==1470 || dur==1617) 735; if((dur>=882 && dur<=898) || dur==1764) 882; if(dur<=16) dur; if(dur<=32) 16; if(dur<=65535) dur; else 65535. This is not quite complete, yet.
09:11:08 <zzo38> I know it is not complete but I am trying to think of it
09:16:26 <oerjan> @tell tswett http://en.wikipedia.org/wiki/Large_countable_ordinals
09:16:26 <lambdabot> Consider it noted.
09:16:41 <shachaf> @thank oerjan
09:16:41 <lambdabot> Maybe you meant: thank you thanks
09:16:45 <shachaf> @thankyou oerjan
09:16:45 <lambdabot> you are welcome
09:17:25 <shachaf> The purchaser's last name, "Ben-Kiki", contains the invalid character(s): '-'.
09:17:36 <shachaf> kmc: It's almost like having non-ASCII characters in your name!
09:19:03 <oklopol> anyone use gimp?
09:19:46 <oerjan> not in more than a decade
09:20:42 <oklopol> i would like to have two layers with 50 alpha and have the colors really blended 50-50 (now the top layer is much more opaque).
09:20:50 <zzo38> I just use ImageMagick.
09:21:23 <Jafet> imagemagick is merely bad, you should use it instead.
09:21:31 <tswett> Why do you want each of the two layers to have 50 alpha?
09:21:31 <lambdabot> tswett: You have 2 new messages. '/msg lambdabot @messages' to read them.
09:22:25 <zzo38> Jafet: Merely bad? I think it is much better.
09:22:28 <tswett> If you don't want the result to be transparent at all, make the bottom layer totally opaque.
09:22:38 <Jafet> Yes, it is.
09:22:53 <oklopol> tswett: i want some kind of equal sum of two images.
09:23:22 -!- Jafet has quit (Quit: Leaving.).
09:23:28 <oklopol> so err like background 100% opaque, top layer 50% opaque?
09:23:35 <tswett> Yeah.
09:23:44 <oklopol> i hope i tried that because that makes way more sense...
09:24:08 <zzo38> oklopol: Yes that is what makes sense to me at least
09:24:20 <zzo38> Make the back 100% opaque and the top 50% and then compose them
09:26:07 <oklopol> the thing is i seem to recall that some things do as follows: you draw things in their natural pecking order, and as you draw something with 30% alpha, 30% more of the alpha channel of that pixel fills up. when you run out of alpha, you stop drawing things.
09:26:43 <oklopol> this way if you put 50% and 50%, you get an equal blend and the image is fully opaque.
09:27:01 <oklopol> but perhaps it's not very intuitive
09:28:26 <oerjan> @tell pikhq <pikhq> Technically there's also some colors missing because of quantization, but you can't really notice those. <-- i think you can get around that with the doppler effect, assuming speed isn't quantized
09:28:26 <lambdabot> Consider it noted.
09:29:12 <oerjan> @tell pikhq (and we _really_ cannot notice any level at which speed is quantized.)
09:29:12 <lambdabot> Consider it noted.
09:30:50 * elliott wonders the context
09:31:26 <oerjan> it's in the logs.
09:33:12 -!- impomatic has quit (Quit: impomatic).
09:34:54 <oerjan> the context _did_ prompt <Sgeo_> This is the best classroom ever.
09:35:34 <oerjan> or so i assume.
09:36:41 <kmc> shachaf: srsly?
09:37:00 <kmc> rather a lot of people have hyphens in their last name
09:37:29 <kmc> also arguably the hyphen is a non-ASCII character
09:37:36 <kmc> but the character you pasted is ASCII
09:39:06 <elliott> good old HYPHEN-MINUS
09:39:34 <elliott> HYPHEN‐MINUS
09:39:47 <elliott> HYPHEN−MINUS
09:40:23 <shachaf> isn't it funny how they put a dash between HYPHEN and MINUS
09:41:30 <olsner> HYPHEN-DASH-MINUS
09:41:51 <tswett> Is it an en dash?
09:42:12 <tswett> I like en dashes. {:3
09:42:31 <tswett> (The Alphonse Elric emoticon.)
09:43:23 <Bike> are the names of unicode characters in any particular character set
09:43:33 <kmc> UPPER-CASE ASCII
09:43:46 <tswett> There are plenty of Unicode characters whose names include lowercase letters.
09:43:54 <kmc> :(
09:43:57 <shachaf> There are?
09:44:19 <shachaf> Oh, there are-ish.
09:44:35 <shachaf> whoa, dude, less is smart and finds ß when I search for [a-z] and so on.
09:44:44 <tswett> U+732B is "cat".
09:44:45 <shachaf> Maybe that's why its search is so slow.
09:44:59 <tswett> Not "CAT", but "cat".
09:45:07 <shachaf> Oh, I don't have that in my Unicode file. :-(
09:45:47 <Bike> shachaf: you know how chromium's ctrl-f has ß and ss as equivalent, right?
09:45:49 <shachaf> Not even in my "complete" Unicode file! What's going on here?
09:46:02 <tswett> Hm, I guess I'm not quite right.
09:46:04 <shachaf> Bike: Right. So does less.
09:46:12 <olsner> apparently it's pronounced miao in some chinese
09:46:16 <tswett> U+732B is "CJK UNIFIED IDEOGRAPH-732B".
09:46:32 <elliott> shachaf: That's probably not as smart as you want.
09:46:43 <elliott> I suspect it's finding the "s" in "ß" but wouldn't necessarily find every letter.
09:47:06 <shachaf> I searched for [a-z] and it found all sorts of things.
09:47:35 <shachaf> Like ø and ỹ
09:48:00 <tswett> "cat" appears to be its "kDefinition".
09:52:33 <elliott> shachaf: Those are still "Latin-ish".
09:52:41 <elliott> You could argue for o matching ø and y matching ỹ
09:52:47 <shachaf> Right.
09:52:54 <shachaf> Isn't that what I want?
09:53:07 <elliott> Well, I expect by [a-z] you actually just mean "letter"?
09:53:54 -!- Bike has quit (Ping timeout: 252 seconds).
09:53:54 <shachaf> 01:43 <tswett> There are plenty of Unicode characters whose names include lowercase letters.
09:56:40 -!- oerjan has quit (Quit: Lost terminal).
10:06:00 <oklopol> why on earth would you have ø match o
10:07:14 <oklopol> having e and i match o would make more sense, as there is at least a language on earth where they sometimes denote the same sound
10:07:34 <zzo38> Why should any of them match anything other than themself?
10:07:49 <oklopol> because you want to have a convenient notation for certain families of letters
10:07:49 <shachaf> Because it's the same as ̷o, of course.
10:07:53 <shachaf> Or is that o̷?
10:07:55 <zzo38> (That is, by default. You could have settings to make them match other things, such as uppercase/lowercase, but should not be the deafult setting.)
10:08:39 <shachaf> Skolem ø
10:08:44 <shachaf> Skølem
10:10:38 -!- oerjan has joined.
10:18:04 -!- oerjan_ has joined.
10:18:09 * oerjan_ hopes this isn't going to be regular
10:18:30 <shachaf> What, people saying ø?
10:18:59 <monqy> two oerjans???
10:19:14 <monqy> poll: wasn't one enough
10:19:21 <shachaf> vote: no
10:21:25 -!- oerjan_ has quit (Client Quit).
10:22:21 -!- oerjan has quit (Quit: Lost terminal).
10:22:33 <elliott> i think you upset oerjan monqy
10:22:45 <monqy> rip
10:23:04 <shachaf> oh no
10:23:10 <shachaf> monqy you should feel bad now
10:23:29 <shachaf> you need at least 24 seconds of bad feeling
10:23:42 <monqy> can you start the timer i need a timer
10:23:55 <monqy> i dont have one and i sort of cant count
10:24:02 -!- jconn has joined.
10:24:13 <shachaf> monqy: ok
10:24:23 <shachaf> tell me when you start feeling bad and ill tell you when to stop
10:25:40 -!- nooga has joined.
10:25:47 <tswett> let c f n=t n f w in(c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c)(t w s)w
10:25:54 <monqy> hi
10:26:55 <shachaf> monqy: btw i sort of cant count either
10:26:56 <shachaf> oops
10:29:13 -!- Jafet has joined.
10:35:31 -!- monqy has quit (Quit: hello).
10:51:16 -!- Halite has joined.
10:51:59 <Halite> I bored
10:56:47 <zzo38> Do you like the "arithmetic IF" that exists in some programming languages?
10:57:18 <olsner> arithmetic if?
10:57:19 <zzo38> Do you have a list of programming languages which have such things?
10:58:01 <Halite> what arithmetic IF
10:58:12 <Halite> arithmetic IF is horrible
10:58:13 <zzo38> olsner: Meaning, that it checks if the number is negative/zero/positive, and branches to a different line depending on the result (or, in some programming languages, just returns one of the three results specified).
10:58:37 <zzo38> Halite: I don't really think so.
10:58:44 <Halite> so, f(p,q,r) = if p then q else r
10:59:29 <oklopol> zzo38: that sounds a bit meaningless.
10:59:29 <Halite> so f(true,true,false) = if true then true else false = true
10:59:32 <zzo38> No, like: f(p,q,r,s) = if p<0 then q else if p=0 then r else if p>0 then s
10:59:50 -!- Phantom_Hoover has joined.
10:59:59 <zzo38> Is like arithmetic IF (although usually, the q,r,s here would be used as branch targets rather than values)
11:00:30 <oklopol> might be useful in an obfuscation contest
11:01:24 <zzo38> FORTRAN has the arithmetic IF with IF (expression) negative,zero,positive where the negative,zero,positive means the line numbers to go to based on the value of the expression in parentheses.
11:01:27 <Halite> so f(0,function () { return 'no'; }, function () { return 'good'; }, function () { return 'worse'}) would return a function
11:01:35 <zzo38> FOCAL also has arithmetic IF.
11:01:50 <oklopol> you do realize fortran is a crappy language
11:02:09 <zzo38> I actually think dc would be better with arithmetic IF rather than the conditionals it has now.
11:02:20 <oklopol> that i can believe
11:02:21 <Halite> and do you realise that p isn't a conditional and the function isn't related with IF at all
11:02:46 <Halite> if p was a conditional then it could be OK
11:03:08 <Halite> conditional = boolean
11:04:24 <oklopol> i imagine that if you're into writing crappy code, you could use arithmetic if pretty conveniently for branching based on order by having a compare function that returns integers like java's compareTo
11:04:56 <oklopol> of course that's pretty ridiculous in a high level language
11:05:11 <zzo38> Sure, C and so on don't need arithmetic IF, but I think it would be good in dc, though.
11:05:34 <Halite> if you have addresses of each command (line numbers), then you could make a function f(p,q,r) = if p then goto q else goto r
11:05:52 <oklopol> isn't dc a stack language where you play around with numbers and such
11:06:04 <Halite> along with a return(s)
11:06:11 <zzo38> oklopol: Yes
11:06:19 <Halite> function f(q
11:06:28 <oklopol> then yeah i imagine it would be useful
11:06:52 <Halite> function f(p,q,r) = if p then goto q else goto r; return previous line number
11:08:31 <Halite> or f(p,q,r) = if p then eval(q) else eval(r);
11:09:19 <zzo38> Actually the only conditional operator in TeXnicard is arithmetic IF without branching (if you want to make it doing something, you can put the codes to execute and then put x afterward) (if you want to compare you use subtraction command; using - on strings is strcmp so that works too)
11:10:42 <zzo38> Halite: Sure you can have that but I like to put eval outside instead of including it in the definition
11:12:20 <Halite> f(p,q,r) = if p then return q else return r
11:15:52 <Halite> I have a function that could be used in a programming language too.
11:16:25 <Halite> It requires some features of my programming language at the moment, though.
11:16:38 <zzo38> What features? What functions?
11:17:07 <Halite> return function (a,b) { var x = SaltScript.tfToBinary(a); var y = SaltScript.tfToBinary(b); return SaltScript.binaryToTf((table >> ((x<<1)|y)) & 1); };
11:17:27 <Halite> ^^ this is my function coded in Javascript ^^
11:17:50 <Halite> f(table) = return function (a,b) { var x = SaltScript.tfToBinary(a); var y = SaltScript.tfToBinary(b); return SaltScript.binaryToTf((table >> ((x<<1)|y)) & 1); };
11:17:57 <Halite> included f(table)
11:18:37 <Halite> tfToBinary is basically if in1 = true then 1 else 0
11:18:48 <Halite> and binaryToTf is if in1 = 1 then true else false
11:24:14 <zzo38> <[th]s0[st]s1[nd]s2[rd]s3dBr100%d10%r10/1-1 0 1i*d3-1d0i*`0+L+> The "i" is the arithmetic IF. If you know the commands, then it is not difficult. (Isn't it?)
11:24:50 <Halite> CONFUSE
11:24:52 <Halite> CONFUSE
11:24:55 <Halite> CONFUSE
11:25:01 <Halite> :P
11:25:47 <zzo38> Confuse what?
11:47:57 -!- carado has joined.
11:50:21 -!- nooga has quit (Ping timeout: 244 seconds).
11:56:01 -!- azaq23 has joined.
11:56:11 -!- azaq23 has quit (Max SendQ exceeded).
11:58:31 -!- azaq23 has joined.
12:18:14 -!- ogrom has quit (Quit: Left).
12:27:48 -!- nooga has joined.
12:54:54 -!- Arc_Koen has joined.
12:56:37 -!- nooodl has joined.
12:58:55 <zzo38> Is it possible for the program to detect whether or not is allow to rewind stdin?
13:00:11 <shachaf> @let allowToRewindStdin = return False
13:00:14 <lambdabot> Defined.
13:00:56 <zzo38> Is it allowed if it is a tape?
13:01:10 -!- Jafet has quit (Ping timeout: 256 seconds).
13:11:43 -!- Jafet has joined.
13:15:27 <shachaf> Let's check the program.
13:15:42 <shachaf> > runIdentity $ allowToRewindStdIn "a tape"
13:15:45 <lambdabot> Not in scope: `allowToRewindStdIn'
13:15:45 <lambdabot> Perhaps you meant `allowToRewindStdin' ...
13:15:50 <shachaf> > runIdentity $ allowToRewindStdin "a tape"
13:15:52 <lambdabot> Couldn't match expected type `Data.Functor.Identity.Identity a0'
13:15:52 <lambdabot> ...
13:21:49 -!- ogrom has joined.
13:25:32 <Jafet> @remember lambdabot ...
13:25:33 <lambdabot> Done.
13:38:11 <ion> http://unigine.com/products/valley/download/
13:38:13 -!- ogrom has quit (Quit: Left).
13:40:20 -!- ogrom has joined.
13:44:09 <FreeFull> :t allowToRewindStdin "a tape"
13:44:10 <lambdabot> Bool
13:44:22 <FreeFull> > allowToRewindStdin "a tape"
13:44:25 <lambdabot> False
13:44:36 <Halite> > help
13:44:37 <lambdabot> Not in scope: `help'
13:44:50 <Halite> > echo "hi"
13:44:52 <lambdabot> Not in scope: `echo'
13:44:56 <Halite> lol
13:45:14 <FreeFull> @let help = " http://learnyouahaskell.com/ "
13:45:16 <lambdabot> Defined.
13:45:19 <FreeFull> > help
13:45:22 <lambdabot> " http://learnyouahaskell.com/ "
13:45:37 <mroman> @let echo = id
13:45:40 <lambdabot> Defined.
13:45:46 <mroman> echo "hi"
13:45:54 <mroman> > echo "hi"
13:45:56 <lambdabot> "hi"
13:46:26 <Halite> @let testHaskell = " http://tryhaskell.org/ "
13:46:28 <lambdabot> Defined.
13:47:27 <Halite> > testHaskell
13:47:28 <lambdabot> " http://tryhaskell.org/ "
13:47:32 <Halite> > id "hi"
13:47:33 <lambdabot> "hi"
13:47:42 <Halite> > echo "Hello"
13:47:43 <lambdabot> "Hello"
13:47:55 <Halite> @let say = echo
13:47:56 <lambdabot> Defined.
13:48:01 <Halite> > say "Hello!"
13:48:03 <lambdabot> "Hello!"
13:48:28 <Halite> > let say = echo
13:48:29 <lambdabot> not an expression: `let say = echo'
13:48:39 <shachaf> are you doing it again......................
13:49:48 <mroman> Halite: Do you know Haskell?
13:53:36 <Phantom_Hoover> no
13:58:54 <Phantom_Hoover> he does not
14:02:45 <mroman> then he should.
14:03:50 <Phantom_Hoover> attempts have been made to communicate this to him
14:03:56 <Phantom_Hoover> he does not appear to have picked up on them
14:04:39 -!- Taneb has joined.
14:04:52 <Taneb> What's that word that means "is not bad anymore"?
14:05:37 <Phantom_Hoover> irthen bad?
14:05:47 <Phantom_Hoover> what's a word that means 'to be bad'
14:07:59 <Phantom_Hoover> my attempts to find one have brought me here: http://www.noswearing.com/dictionary
14:08:00 <mroman> Taneb: fixed
14:08:19 <Taneb> Really, I want the event of becoming not bad
14:08:46 <Phantom_Hoover> irthening bad
14:08:55 <Taneb> Right
14:09:21 <Taneb> I'll trust Phantom_Hoover, because it's for his tumblr
14:09:38 <Phantom_Hoover> excellente
14:10:00 <Phantom_Hoover> although it would be better if i knew an actual word for being bad
14:10:26 <Phantom_Hoover> these bad words are amazing
14:10:40 <Phantom_Hoover> "cocksmoker - homosexual"
14:10:50 <Taneb> "offend"?
14:11:05 <Phantom_Hoover> "cockmongler - homosexual"
14:11:23 <Phantom_Hoover> "cockmaster - homosexual"
14:11:32 <Phantom_Hoover> "cockfucker - idiot"
14:11:44 <Phantom_Hoover> i guess cockfucker would be too obvious?
14:12:06 <Taneb> And also includes, eg, heterosexual and bisexual women
14:12:36 <Phantom_Hoover> but only a man could truly mongle a cock
14:12:44 <Taneb> Precisely
14:13:18 -!- ogrom has quit (Quit: Left).
14:13:43 <Taneb> Hang on
14:13:54 <Taneb> I thought that the -irth form could take nouns?
14:13:59 <Taneb> As in "Perth"
14:14:00 <Phantom_Hoover> erm
14:14:07 <Phantom_Hoover> no that's a false cognate
14:14:14 <Taneb> Ah
14:14:15 <Taneb> Damn
14:14:24 <Phantom_Hoover> also bad is an adjective anyway!
14:14:32 <Taneb> Pier isn't
14:14:35 <Halite> > let say = echo in ''
14:14:37 <lambdabot> <hint>:1:21: parse error (possibly incorrect indentation)
14:14:41 <Halite> > let say = echo in '.'
14:14:42 <lambdabot> '.'
14:14:48 <Halite> > say "hi"
14:14:50 <lambdabot> "hi"
14:14:53 <Phantom_Hoover> Taneb, so are you suggesting perth is called that because it stopped being a pier
14:15:04 <Halite> aha
14:15:13 <Halite> I think I know Haskell now
14:15:19 <Taneb> Yeah, it was originally just a pier, but then became two cities across the world
14:15:21 <Taneb> :t say
14:15:23 <lambdabot> a -> a
14:15:29 <Taneb> @src say
14:15:29 <lambdabot> Source not found. BOB says: You seem to have forgotten your passwd, enter another!
14:15:32 <Halite> but whay do @let x = y if you don't want to be forced the in keyword
14:15:36 <Taneb> :t echo
14:15:37 <lambdabot> a -> a
14:15:38 <mroman> -irth form?
14:15:42 -!- carado has quit (Ping timeout: 264 seconds).
14:16:01 <Halite> Received a CTCP VERSION from Phantom_Hoover
14:16:06 <Phantom_Hoover> Halite, sudo apt-get install ghc
14:16:08 <Phantom_Hoover> ghci
14:16:09 <Phantom_Hoover> there
14:16:13 <Phantom_Hoover> no need to spam the channel
14:16:23 <Halite> Wrong channel, Phantom_Hoover
14:16:35 <Halite> You want #ubuntu
14:16:47 <mroman> /o\
14:17:31 <Taneb> Halite, he was talking to you, so you would stop spamming #esoteric with lambdabot
14:17:55 <Phantom_Hoover> mroman, the -irth form, indicating the cessation of something
14:18:10 <Halite> well, I'm not installing ghci
14:18:15 <Phantom_Hoover> for instance, to forget is to nirth
14:18:16 <Halite> Wait, what is ghci
14:18:25 <Halite> @ghci
14:18:25 <lambdabot> ghc says: rts/sm/Sanity.h:24:0: error: conflicting types for 'checkSanity'
14:18:27 <Phantom_Hoover> the thing you're spamming the channel with
14:18:35 <Taneb> `? ghci
14:18:40 <HackEgo> ghci? ¯\(°_o)/¯
14:18:54 <Taneb> `learn GHCi is a local version of lambdabot. Cool, huh?
14:18:58 <HackEgo> I knew that.
14:19:16 <mroman> Phantom_Hoover: What kind of english is that?
14:19:19 <Taneb> mroman, and when a woman stops bearing her child, it's called a birth
14:19:35 <mroman> I know birth :)
14:19:45 <Phantom_Hoover> that should've been 'knirth', fwiw
14:20:58 -!- zzo38 has quit (Remote host closed the connection).
14:21:15 <Halite> Installing GHC
14:21:20 <Halite> `help
14:21:20 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
14:22:47 <olsner> hmm, so 'birth' is the irthative of 'be'?
14:23:38 <Phantom_Hoover> no
14:23:46 <Phantom_Hoover> the irthative of 'be' is irthen
14:25:52 -!- Taneb has quit (Ping timeout: 256 seconds).
14:26:02 <Phantom_Hoover> Halite, would you please botspamirth
14:26:03 <Halite> Hirth
14:26:23 <Halite> Phantom_Hoover, sure. *botspamirths*
14:27:51 <Halite> Which file extension do you keep Haskell code in
14:28:01 <mroman> .hs
14:28:08 <olsner> or .lhs
14:28:19 <Halite> ok
14:28:31 <Halite> thanks
14:28:43 <Phantom_Hoover> http://learnyouahaskell.com/
14:28:57 <mroman> learnth
14:29:13 <Halite> I already leaned, I can't learnirth
14:29:16 <Halite> learned*
14:29:28 <Halite> Phantom_Hoover, yesirth!
14:29:32 <olsner> -irnth could be the unirthative
14:29:54 <Halite> I already know atleast basic Haskell
14:29:59 <Halite> `welcome
14:30:01 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
14:30:26 <Halite> it's esoteric programming language development
14:30:35 <Halite> not esoteric speak language
14:30:42 <Halite> btw. I used http://tryhaskell.org/ to learn
14:31:13 <mroman> I used Haskell to learn Haskell.
14:31:59 <Halite> mroman, clever man
14:32:09 <Halite> I used http://tryhaskell.org/ to learn Haskell
14:32:33 <Phantom_Hoover> are they paying you or something
14:33:54 <Halite> I still don't know how to use LET without the IN keyword
14:35:41 <shachaf> That's expert-level.
14:36:08 <Halite> shachaf, well
14:36:35 <Halite> shachaf, example
14:36:36 <Halite> @help
14:36:36 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
14:36:42 <Halite> @help let
14:36:42 <lambdabot> let <x> = <e>. Add a binding
14:36:48 <Phantom_Hoover> Halite, think about it
14:36:57 <Phantom_Hoover> if you don't have an in then what does the let even do
14:37:52 <Halite> Phantom_Hoover, you could > let add x = x+1 < and then > add 1 <
14:38:27 <Phantom_Hoover> ok
14:38:29 <Halite> Phantom_Hoover, it's simply a variable binding
14:38:31 <Phantom_Hoover> you have learnt haskell wrong
14:38:41 <Halite> wait, what
14:38:46 <Halite> I'VE JUST LEARNT IT
14:38:48 <Phantom_Hoover> i have provided a link by which you might learn it righter
14:38:48 <Halite> WRONG
14:39:04 <Halite> > (28,"Chris")
14:39:06 <lambdabot> (28,"Chris")
14:39:14 <Halite> > sort (28,"Chris")
14:39:15 <lambdabot> Couldn't match expected type `[a0]' with actual type `(t0, t1)'
14:39:29 <Halite> > sort "Chris"
14:39:30 <lambdabot> "Chirs"
14:39:50 <Halite> > sort "Halite"
14:39:51 <lambdabot> "Haeilt"
14:40:05 <Halite> > id
14:40:07 <lambdabot> No instance for (GHC.Show.Show (a0 -> a0))
14:40:07 <lambdabot> arising from a use of `M37046...
14:40:12 <Halite> > id ""
14:40:14 <lambdabot> ""
14:40:41 <Halite> `haskell
14:40:43 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: haskell: not found
14:40:47 <Phantom_Hoover> `? haskell
14:40:49 <HackEgo> Unbound implicit parameter (?haskell::Wisdom) \ arising from a use of implicit parameter `?haskell'
14:40:54 <Halite> @help
14:40:54 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
14:41:01 <Phantom_Hoover> jesus
14:41:02 <Phantom_Hoover> fucking
14:41:05 <Phantom_Hoover> christ
14:41:10 <Halite> @list
14:41:10 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
14:41:18 <Halite> @help let
14:41:18 <lambdabot> let <x> = <e>. Add a binding
14:41:22 <Phantom_Hoover> you could do this all in a /query
14:41:22 <Halite> @help let in
14:41:23 <lambdabot> let <x> = <e>. Add a binding
14:41:26 <Halite> @help in
14:41:26 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
14:41:31 <Phantom_Hoover> you could do this all in the comfort of your own terminal
14:41:33 <Phantom_Hoover> but no
14:41:58 <Halite> because I want to show you that I have learnt Haskell righter than you think, Phantom_Hoover
14:42:43 <Phantom_Hoover> you've learnt haskell irc bots
14:43:13 <Halite> I've learnt haskell from tryhaskell.org
14:43:18 <Phantom_Hoover> and have managed to get confused about definitions, scope and mutability
14:43:21 <Halite> Not from IRC bots
14:44:48 <Halite> aha!
14:44:48 <Phantom_Hoover> look seriously just fucking read lyah already
14:45:02 <Halite> look
14:45:45 <Halite> let is used to use a certain formula such as 2 * 165 multiple times without rewriting it
14:45:58 <Halite> Not to define functions
14:47:36 <Halite> Look at step 15 of tryhaskell.org tutorial - it says you use let to define functions
14:47:46 <Halite> This is the confusing part
14:50:11 <mroman> What the heck?
14:50:13 <Phantom_Hoover> look, seriously
14:50:31 <Phantom_Hoover> lyah will give you a much more comprehensive understanding of haskell than tryhaskell
14:51:11 <Phantom_Hoover> please read it
14:51:11 <Halite> where is lyah
14:51:17 <Phantom_Hoover> http://learnyouahaskell.com/chapters
15:08:52 <Sgeo_> Halite, let can be used to define functions used after in. But TryHaskell is distorted enough that it's the only way to write something equivalent to top level functions. And yes, read LYAH
15:09:08 <Sgeo_> > let f x = x * 10 in f 20
15:09:09 <elliott> "Functions" isn't accurate.
15:09:09 <lambdabot> 200
15:09:28 <Sgeo_> elliott, they can be but don't have to be functions
15:09:37 <Sgeo_> Didn't mean to imply that functions were the only things that let can define
15:10:13 <elliott> right
15:23:36 <FreeFull> Halite: Look at this
15:23:45 <FreeFull> > map (^2) [1..]
15:23:47 <lambdabot> [1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,48...
15:24:25 <Phantom_Hoover> Halite, the salient point is that in haskell you don't 'assign' or 'set' variables, you /define/ them in a given scope
15:24:55 <FreeFull> @let help = " http://learnyouahaskell.com/chapters "
15:24:56 <lambdabot> <local>:11:1:
15:24:57 <lambdabot> Multiple declarations of `help'
15:24:57 <lambdabot> Declared at: <local>...
15:25:07 <FreeFull> @unlet help
15:25:07 <lambdabot> TemplateHaskell is not enabled
15:25:33 <FreeFull> @help
15:25:33 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
15:25:36 <FreeFull> @list
15:25:37 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
15:25:52 <FreeFull> @undefine help
15:25:59 <FreeFull> @let help = " http://learnyouahaskell.com/chapters "
15:26:02 <lambdabot> Defined.
15:26:10 <Phantom_Hoover> FreeFull, don't you start
15:26:19 * FreeFull whistles
15:37:59 <nooodl> > do let { x = 5 }; x
15:38:01 <lambdabot> 5
15:38:01 <lambdabot> nooodl: You have 1 new message. '/msg lambdabot @messages' to read it.
15:38:09 <nooodl> "that's how you use let"
15:38:29 <nooodl> "monqy asked 1m 3d 12h 47m 24s ago:" oops
15:41:12 -!- WeThePeople has joined.
15:44:55 <shachaf> @ask monqy oops
15:44:55 <lambdabot> Consider it noted.
15:54:51 <Halite> > do let { double x = x+x }; x
15:54:53 <lambdabot> x
15:55:00 <Halite> > do let { double x = x+x }; ''
15:55:02 <lambdabot> <hint>:1:30: parse error (possibly incorrect indentation)
15:55:10 <Halite> > double 3
15:55:12 <lambdabot> 3.0
15:55:21 <Halite> > do let { double x = x+x }; x+x
15:55:23 <lambdabot> x + x
15:55:32 <Halite> > double 3
15:55:33 <lambdabot> 3.0
15:58:04 <Phantom_Hoover> > let 2 + 2 = 5 in 2 + 2
15:58:06 <lambdabot> 5
16:00:14 <Halite> @let dopplegangerOf x = sort x
16:00:18 <lambdabot> Defined.
16:00:24 <Halite> > doppleGanger of "Phantom_Hoover"
16:00:26 <lambdabot> <hint>:1:14: parse error on input `of'
16:00:35 <Halite> -
16:00:40 <Halite> > doppleGangerOf "Phantom_Hoover"
16:00:42 <lambdabot> Not in scope: `doppleGangerOf'
16:00:42 <lambdabot> Perhaps you meant `dopplegangerOf' (line 2)
16:00:51 <Halite> -
16:00:54 <Halite> > dopplegangerOf "Phantom_Hoover"
16:00:57 <lambdabot> "HP_aehmnooortv"
16:01:07 <Halite> LOL
16:01:48 <Halite> @let dopplegangerOf' "" = ""
16:01:49 <lambdabot> Defined.
16:02:50 <Halite> @let dopplegangerOf' x = head x ++ dopplegangerOf' tail x
16:02:51 <lambdabot> <local>:4:26:
16:02:52 <lambdabot> Couldn't match expected type `[Char]' with actual type `C...
16:03:17 <Halite> > :t dopplegangerOf'
16:03:19 <lambdabot> <hint>:1:1: parse error on input `:'
16:03:35 <Halite> grr
16:03:43 <Halite> I should msg lambdabot
16:05:42 <Phantom_Hoover> you probably should
16:06:58 <Phantom_Hoover> btw your problem is that you're using list concatenation (++) to concatenate something that isn't a list
16:08:06 <Halite> @:t ""
16:08:07 <lambdabot> Done.
16:08:10 <Halite> @:t "list"
16:08:11 <lambdabot> Done.
16:08:24 <Halite> it is a list
16:08:48 <Halite> remember, that syntactic sugar
16:09:15 <Halite> > "string" == ['s','t','r','i','n','g']
16:09:17 <lambdabot> True
16:09:31 <Halite> see
16:09:41 <Phantom_Hoover> > head "string"
16:09:42 <lambdabot> 's'
16:09:48 <Phantom_Hoover> that's not a string
16:09:49 <Halite> > tail "string"
16:09:50 <lambdabot> "tring"
16:10:07 <Halite> it's a chararray
16:10:24 <Halite> the chararray is what I was using
16:11:40 <Phantom_Hoover> 's' ++ "tring" results in a type error because one of the arguments is a char and the other is a list of chars
16:12:17 <Halite> @let dopplegangerOf' x = [head x] ++ dopplegangerOf' tail x
16:12:18 <lambdabot> <local>:5:1:
16:12:18 <lambdabot> Multiple declarations of dopplegangerOf'
16:12:18 <lambdabot> Declared at:...
16:12:40 <Halite> > dopplegangerOf' "Halite"
16:12:42 <lambdabot> "*Exception: <local>:3:1-23: Non-exhaustive patterns in function dopplegang...
16:12:54 <Halite> @let dopplegangerOf' "" = ""
16:12:54 <lambdabot> <local>:5:1:
16:12:55 <lambdabot> Multiple declarations of dopplegangerOf'
16:12:55 <lambdabot> Declared at:...
16:12:57 <Halite> > dopplegangerOf' "Halite"
16:12:58 <lambdabot> "*Exception: <local>:3:1-23: Non-exhaustive patterns in function dopplegang...
16:13:17 <Halite> it's messed up because of multiple declarations of dopplegangerOf'
16:16:43 <Halite> I'd like to make a good programming language that is esoteric but I don't want to make it another BF.
16:36:20 -!- Taneb has joined.
16:36:42 <Taneb> I wrote a long Phantom_Hoover-y tumblr post then lost it...
16:41:35 <Vorpal> you use tumblr? Huh
16:41:44 -!- yhojeyisaac has joined.
16:42:05 <Taneb> Yes
16:42:27 <Taneb> At least three people in this channel do
16:45:33 <mroman> citation needed.
16:46:05 <Taneb> taneb.tumblr.com sgeo.tumblr.com phantom-hoover.tumblr.com
16:46:26 <shachaf> shachaf.tumblr.com
16:47:03 <shachaf> Taneb......................................................................................................
16:47:36 <Taneb> I need some people not reblogging Homestuck showing up on my dashboard
16:47:47 <Taneb> Anyway, I just recieved the private message:
16:47:48 <Taneb> <yhojeyisaac> hello as you lamas
16:50:15 -!- yhojeyisaac has quit (Ping timeout: 252 seconds).
16:51:34 -!- yhojeyisaac has joined.
17:00:27 <Vorpal> Taneb, nice one
17:01:18 <Taneb> :(
17:02:03 -!- yhojeyisaac has quit (Read error: Connection reset by peer).
17:02:29 -!- yhojeyisaac has joined.
17:03:02 <Sgeo_> Taneb, I'm not reblogging Homestuck
17:03:07 <Sgeo_> Shockingly
17:03:28 <Taneb> Sgeo_, I follow 70 blogs
17:03:41 <Taneb> About 65 of them reblog homestuck
17:03:48 <Sgeo_> I shoulg get back to work on my blog post
17:05:53 <Phantom_Hoover> <Taneb> I wrote a long Phantom_Hoover-y tumblr post then lost it...
17:05:54 <Phantom_Hoover> nooooooooooo
17:26:28 <Halite> I don't believe Haskell is Turing complete, but it is interesting!
17:26:42 <Sgeo_> It is turing complete
17:27:18 <Halite> How does it present data to the end-user then
17:27:39 <Sgeo_> Presenting data to the end-user is an entirely separate concern from turing-completeness.
17:27:48 <Phantom_Hoover> a) that doesn't matter for turing completeness, b) it has a method of doing io
17:27:58 <Halite> what is the method of io
17:28:20 <Sgeo_> Things like printing to the screen are actions. Things you can pass around to functions, create, etc.
17:28:35 <Sgeo_> When a Haskell program runs, it will execute the action called main
17:28:57 <Halite> What is the Haskell code to print to the screen
17:29:03 <Phantom_Hoover> printLn
17:29:03 <Sgeo_> main = putStrLn "Hello"
17:29:07 <Phantom_Hoover> or that
17:29:14 <Phantom_Hoover> same difference
17:29:25 <kmc> putStrLn "Read a Haskell tutorial!"
17:29:28 <Sgeo_> putStrLn "Hello" is an IO (), that is, an action that, when executed, does something
17:29:32 <ion> phantom_hoover: Huh? Where’s that defined?
17:29:36 <Phantom_Hoover> it's not
17:29:45 <Halite> > putStrLn "I did read a Haskell tutorial!"
17:29:47 <lambdabot> No instance for (GHC.Show.Show (GHC.Types.IO ()))
17:29:48 <lambdabot> arising from a use of ...
17:29:51 <Phantom_Hoover> look there are so many damn names for that in different languages
17:29:55 <Phantom_Hoover> Halite, yes. a bad one
17:29:56 <Sgeo_> Halite, IO isn't done in LYAH until chapter 9
17:30:09 <kmc> you can also ask these questions in #haskell
17:30:11 <Halite> Sgeo_, oh. I haven't reached chap. 9 yet.
17:30:35 <kmc> Halite: when you're just starting out, you're better off playing with values in GHCi and not worrying about IO
17:30:50 <mroman> Yeah.
17:30:52 <Halite> kmc, thanks for the advice.
17:30:57 <kmc> IO in Haskell isn't hard but it's just different enough to confuse the fuck out of anyone who doesn't have the background knowledge
17:31:28 <Sgeo_> I really, really like Haskell's IO stuff
17:31:48 <kmc> it's all right
17:32:21 <kmc> Haskell's IO is missing a lot of things an imperative language should have, but GHC adds most of them as libraries
17:32:34 <kmc> (concurrency, extensible exception handling with async exceptions, etc)
17:33:18 <kmc> standard Haskell doesn't even have a nice way to do binary IO does it?
17:33:35 <kmc> as i recall, you can set binary mode on a handle but you still get a list of characters which is just... wrong
17:33:45 <Sgeo_> I remember in one of my C# classes we were doing threading, so I imagined what it would look like with Haskell and forkIO and managed to translate that to C#, and so wrote something typesafe with a lambda, rather than the type-unsafe thing the processor was doing
17:33:49 <Sgeo_> professor, not processor
17:33:55 <Taneb> Is withBinaryFile in the report?
17:34:00 <FreeFull> Wouldn't be wrong if Haskell chars didn't go above 255
17:34:03 <FreeFull> But they do
17:34:13 <kmc> FreeFull: there is still a semantic difference between a character and a byte
17:34:24 <Taneb> Okay, it isn't
17:34:32 <kmc> C can burn in hell for leading decades of programmers astray in this regard
17:34:44 <kmc> with the result that computers don't work right if you use any language other than English
17:34:47 <kmc> fuck that
17:35:10 <Taneb> What if you use lojban
17:35:11 <FreeFull> @hoogle TextEncoding
17:35:12 <lambdabot> System.IO data TextEncoding
17:35:12 <lambdabot> GHC.IO.Encoding.Types data TextEncoding
17:35:12 <lambdabot> GHC.IO.Encoding data TextEncoding
17:35:44 <FreeFull> Nope, not useful
17:35:54 <kmc> Taneb: hm, I guess lojban is mostly ASCII
17:35:59 <kmc> except for embedded spans of other languages
17:36:07 <kmc> English is /mostly/ ASCII but some stuff isn't
17:36:23 <FreeFull> It would be nice if haskell had binary IO that returned a list or blocks of word8
17:36:41 <kmc> résumé, coöperate, names of course, currency symbols (of English-speaking countries even), all kinds of typographical marks
17:36:50 <yhojeyisaac> hello
17:37:08 -!- yhojeyisaac has left.
17:37:13 <kmc> goodbye
17:37:21 <mroman> FreeFull: There is?
17:37:32 <FreeFull> mroman: Which is?
17:37:52 <kmc> for serious programs both [Char] and [Word8] are woefully inefficient though
17:37:56 <kmc> most of the time
17:38:15 <mroman> Isn't ByteString up for that task?
17:38:19 <kmc> fortunately Data.ByteString and Data.Text are both in the Platform
17:38:21 <kmc> yes
17:38:27 <kmc> but ByteString isn't part of standard Haskell
17:38:31 <mroman> which can then neatly be parsed using the Monads in Data.Binary
17:38:36 -!- DHeadshot has joined.
17:38:36 <FreeFull> Depends on what you're doing
17:38:43 <kmc> in the language lawyer sense
17:38:49 <kmc> it's part of standard Haskell in the "what everyone uses" sense
17:38:59 <elliott> kmc: I think Lojban is 100% ASCII
17:39:47 <elliott> String is actually a bit underrated, in that just replacing it with Text would be terrible for all the incremental uses of it (list-as-control-structure)
17:39:51 <elliott> also Text isn't very good :(
17:39:58 <kmc> yeah
17:40:06 <kmc> i disapprove of UTF-16 :(
17:40:18 <kmc> but shachaf tells me it was faster than UTF-8 for Text
17:40:41 <FreeFull> getContents >>= putStr . map toUpper is easier than writing a recursive IO function for the same thing
17:40:52 <FreeFull> And this depends on the laziness of IO
17:40:59 <kmc> lazy IO sucks :(
17:41:10 <FreeFull> kmc: Then use strict IO
17:41:15 <kmc> it's brittle, doesn't handle errors, and confuses the hell out of people
17:41:43 <kmc> it should be a crime to teach lazy IO to beginners because it violates (through hacks) the main principle they need to understand evaluation vs. execution
17:42:41 <elliott> well lazy IO isn't really strictly impure
17:43:00 <Sgeo_> I remember being disappointed that lazy I/O, which seemed like a selling point of Haskell, was recommended against
17:43:09 <kmc> it depends on how you define 'pure' of course
17:43:11 <elliott> I don't think categorically rejecting it wholesale is necessarily a good idea, but it is very annoying that there is no standard strict getContents etc.
17:43:45 <FreeFull> Is there any definition of pure other than "always returns the same output for the same input"?
17:44:00 <elliott> there are many definitions of RT/purity
17:44:00 <kmc> FreeFull: it also has to not have effects on the outside world
17:44:04 <kmc> and that's the fuzzy part
17:44:09 <elliott> it is a very tricky thing to define
17:44:11 <kmc> does making your CPU heat up count as an effect?
17:44:13 <elliott> @quote roconnor pure
17:44:14 <lambdabot> roconnor says: If one wants to go swimming with sharks, or program in a non-pure language, I suppose that is one's choice
17:44:15 <elliott> @quote roconnor pure
17:44:16 <lambdabot> roconnor says: If one wants to go swimming with sharks, or program in a non-pure language, I suppose that is one's choice
17:44:20 <elliott> @quote roconnor RT
17:44:21 <lambdabot> roconnor says: gez, you write one paper explaining how a lens is really a higher order monoidal natural transformation, and suddenly everyone thinks you are an expert on lenses.
17:44:22 <elliott> @quote roconnor RT
17:44:23 <lambdabot> roconnor says: I started the colour library because I need "yellow" ... and it sort of grew from there.
17:44:25 <elliott> hmm
17:44:31 <FreeFull> @quote lazy
17:44:31 <lambdabot> shachaf says: In order to get the last element of a list, you have to traverse the whole list. This can be an expensive, inefficient, unlazy operation, so you should develop a distaste for it like
17:44:32 <lambdabot> the rest of us.
17:44:41 <elliott> @quote arrow.*pure
17:44:41 <lambdabot> roconnor says: An arrow (category) is pure if (f &&& f) = f >>> (id &&& id). When people say Haskell is pure they mean that (->) is pure. When people say IO isn't pure they mean that (Kleisli IO)
17:44:41 <lambdabot> isn't pure.
17:44:43 <elliott> there
17:44:47 <FreeFull> Why did lambdabot split so early
17:45:01 <FreeFull> There is a way to calculate the perfect split place
17:45:03 <kmc> with Haskell's lazy IO you have this problem where the result can depend on when in time a particular value was evaluated
17:45:04 <FreeFull> That's way too early
17:45:09 <elliott> have you seen lambdabot's code
17:45:10 <kmc> say, if the file changes as your program was running
17:45:33 <kmc> conceptually it should only depend on when things are /executed/ and order/time of evaluation should not be observable
17:45:39 <kmc> but this is violated
17:45:46 <FreeFull> kmc: Most programs don't deal well with that, although I suppose with most it affects you right now instead of later
17:45:54 <kmc> yeah
17:46:04 * elliott doesn't think it is as clear-cut as kmc thinks, but thankfully there are practical reasons to dislike lazy IO
17:46:06 <kmc> and it breaks the #1 property you can use to reason about Haskell programs
17:46:08 <FreeFull> Usually people assume they are the only ones changing the file
17:46:32 <kmc> `flock
17:46:33 <HackEgo> flock (util-linux-ng 2.17.2) \ Usage: flock [-sxun][-w #] fd# \ flock [-sxon][-w #] file [-c] command... \ flock [-sxon][-w #] directory [-c] command... \ -s --shared Get a shared lock \ -x --exclusive Get an exclusive lock \ -u --unlock Remove a lock \ -n --nonblock Fail rather than wait \ -w --timeout Wa
17:46:34 <elliott> I don't think lazy IO breaks the #1 property, or even the #3 property; maybe the #24 property.
17:47:14 * elliott thinks "purity" is more of a slogan than a property people actually use in practice.
17:47:26 <elliott> People use properties like let x = y in e --> e[x := y]
17:47:39 <elliott> And (\y -> e) x --> e[y := x]
17:47:50 <elliott> Whereby --> I actually mean <-->.
17:48:13 <olsner> purity is like anything that is nice to assume when reading a program and figuring out what it does
17:50:13 <FreeFull> purity is why the ST monad exists
17:50:15 -!- Nisstyre-laptop has joined.
18:00:19 -!- oerjan has joined.
18:03:26 <Taneb> oerjan, how would you, given a 16-bit unsigned integer, construct a second 16-bit unsigned integer such that the bit representation of the two integers are eachother's reverse?
18:04:05 <oerjan> <<, >> and &
18:05:00 <olsner> I'd take 65535-x
18:05:43 <Taneb> olsner, I don't think that works
18:06:01 <oerjan> olsner: that's reversing each bit, not their order
18:06:04 <Taneb> oerjan, that sounds scary
18:06:09 <olsner> oerjan: right
18:07:14 <Taneb> (the language I'm working in is Haskell)
18:07:56 <oerjan> Taneb: ((x & 1) <<15) | ((x & 2) <<14) | ... ((x & 128) << 1) | ((x & 256) >> 1) | ... ((x & 32768) >> 15)
18:08:11 <oerjan> oh hm
18:08:20 <oerjan> in that case...
18:08:39 <kmc> yeah "purity" is mostly about community norms rgarding what kinds of APIs are acceptable
18:11:45 <elliott> note to self COQC theories/Numbers/Cyclic/DoubleCyclic/DoubleDiv.v
18:13:48 <oerjan> > let rev n = foldl1' (.&.) [if testBit n i then 0 else bit (sz-i) | i <- [0..sz]] where sz = bitSize n in rev (5 :: Int)
18:13:50 <lambdabot> 0
18:13:55 <oerjan> oops
18:14:03 <oerjan> > let rev n = foldl1' (.|.) [if testBit n i then 0 else bit (sz-i) | i <- [0..sz]] where sz = bitSize n in rev (5 :: Int)
18:14:04 <lambdabot> 13835058055282163711
18:14:16 <elliott> oh good it did continue
18:14:20 <elliott> so it is just being very slow
18:14:22 <Taneb> > let rev n = foldl1' (.|.) [if testBit n i then 0 else bit (sz-i) | i <- [0..sz]] where sz = bitSize n in rev (5 :: Word16)
18:14:23 <lambdabot> 49151
18:14:34 <Taneb> > let rev n = foldl1' (.|.) [if testBit n i then 0 else bit (sz-i) | i <- [0..sz]] where sz = bitSize n in rev (7 :: Word16)
18:14:36 <lambdabot> 16383
18:14:58 <oerjan> hm that seems ... oh
18:15:00 <oerjan> sorry
18:15:07 <elliott> :t bits
18:15:09 <lambdabot> (Applicative f, Bits b, Indexable Int p) => p Bool (f Bool) -> b -> f b
18:15:18 <elliott> :t partsOf
18:15:19 <lambdabot> Functor f => Traversing (->) f s t a a -> LensLike f s t [a] [a]
18:15:21 <oerjan> > let rev n = foldl1' (.|.) [if testBit n i then bit (sz-i) else 0 | i <- [0..sz]] where sz = bitSize n in rev (1 :: Word16)
18:15:23 <lambdabot> 65536
18:15:25 <elliott> :t partsOf bits %~ reverse
18:15:27 <lambdabot> Bits t => t -> t
18:15:33 <elliott> > (1 :: Word16) & partsOf bits %~ reverse
18:15:35 <lambdabot> 32768
18:15:48 <elliott> HTH(?)
18:15:50 <mroman> :t (%~)
18:15:51 <oerjan> oh darn
18:15:51 <lambdabot> Profunctor p => Setting p s t a b -> p a b -> s -> t
18:15:58 <oerjan> > let rev n = foldl1' (.|.) [if testBit n i then bit (sz-i) else 0 | i <- [0..sz]] where sz = bitSize n - 1 in rev (1 :: Word16)
18:16:00 <lambdabot> 32768
18:16:10 <oerjan> Taneb: try this instead :P
18:16:19 <elliott> I bet Taneb is already depending on lens!
18:16:25 <Taneb> I am already depending on lens
18:16:37 <oerjan> wow
18:16:52 <elliott> not only do I write shorter code than oerjan but I am _also_ better at precognition.
18:17:07 <Taneb> I keep forgetting about partsOf
18:17:10 <Taneb> It feels so wrong
18:17:55 <Taneb> elliott, oerjan, even olsner, thanks
18:19:11 <oerjan> lens, the library that makes you long back to when you failed at understanding monads
18:19:18 <elliott> admittedly you can do slightly nicer than partsOf here.
18:19:22 <elliott> since reversing is always well-defined
18:19:26 * oerjan never actually did that, but it seemed appropriate
18:20:19 <oerjan> :t (&)
18:20:21 <lambdabot> a -> (a -> b) -> b
18:21:00 <oerjan> :t partsOf
18:21:02 <lambdabot> Functor f => Traversing (->) f s t a a -> LensLike f s t [a] [a]
18:21:19 <elliott> oerjan: it may be more helpful to look at the hackage docs, which contain helpful restricted signatures for every function
18:21:36 <elliott> (and don't expand out type synonyms like GHC has a habit to)
18:22:10 <oerjan> except there are so many modules, how do i even find partsOf
18:22:18 <oerjan> > (0$0 `partsOf`)
18:22:20 <lambdabot> The operator `Control.Lens.Traversal.partsOf' [infixl 9] of a section
18:22:20 <lambdabot> ...
18:22:26 <oerjan> except that way
18:23:26 <oerjan> > (0 & 0 %~)
18:23:28 <lambdabot> The operator `Control.Lens.Setter.%~' [infixr 4] of a section
18:23:28 <lambdabot> must hav...
18:24:01 <elliott> oerjan: you can use the haddock index
18:24:16 <olsner> hmm, for some reason I thought oerjan was shachaf for the last couple of minutes
18:24:17 <elliott> http://hackage.haskell.org/packages/archive/lens/3.8.7.3/doc/html/doc-index.html
18:24:23 <olsner> but that he'd somehow forgotten all about lenses
18:28:08 <oerjan> > over (partsOf bits) reverse (1 :: Word16)
18:28:10 <lambdabot> 32768
18:28:28 <nooodl> @src over
18:28:29 <lambdabot> Source not found. Take a stress pill and think things over.
18:28:32 <nooodl> :t over
18:28:34 <lambdabot> Profunctor p => Setting p s t a b -> p a b -> s -> t
18:29:07 <oerjan> it's a synonym for (%~), i think lens really overdone the operator thing
18:29:35 <elliott> the operators follow a consistent pattern
18:29:37 <oerjan> although %~ isn't so bad
18:29:43 <nooodl> aaargh. time to read about lenses
18:29:48 <elliott> you can derive the vast majority of them from a few first principles
18:29:56 <elliott> nooodl: http://lens.github.com/
18:29:57 <oerjan> > (0$0 &)
18:29:59 <lambdabot> The operator `Control.Lens.Combinators.&' [infixl 1] of a section
18:29:59 <lambdabot> must...
18:30:02 <olsner> the other purpose of lens is to make haskell into perl
18:30:47 <nooodl> i'll watch that video you told me about, elliott
18:30:52 <mroman> I should stop procrastinating looking into lens
18:30:56 <oerjan> :t (><>)
18:30:58 <lambdabot> Not in scope: `><>'
18:30:58 <lambdabot> Perhaps you meant one of these:
18:30:58 <lambdabot> `>>' (imported from Control.Monad.Writer),
18:31:07 <mroman> on the other hand, Ishould stop procrastinating on a lot of things
18:31:08 <oerjan> i'm pretty sure i saw fishes in there
18:31:26 <oerjan> :t (<%~>>)
18:31:28 <lambdabot> Not in scope: `<%~>>'
18:31:39 <oerjan> :t (<%>~)
18:31:40 <lambdabot> Not in scope: `<%>~'
18:31:40 <lambdabot> Perhaps you meant one of these:
18:31:40 <lambdabot> `<%@~' (imported from Control.Lens),
18:31:46 <Taneb> :t (<<%~)
18:31:48 <lambdabot> Data.Profunctor.Strong p => Overloading p q ((,) a) s t a b -> p a b -> q s (a, t)
18:32:05 <elliott> < prefix = also returns b. << prefix = also returns a. (latter exists because someone requested it, IIRC)
18:32:13 <elliott> % = "mod"ifies with a function
18:32:17 <Taneb> (I use it)
18:32:18 <elliott> ~ = functional setting
18:32:25 <Taneb> (but did not request it)
18:33:09 <kmc> until yesterday I hadn't really thought about the fact that #00ff00 is so much brighter than #0000ff — almost ten times as bright!
18:33:14 <kmc> (photometrically)
18:33:31 -!- Bike has joined.
18:33:46 <elliott> wooooo coq finished compiling
18:34:18 <oerjan> > _1 <<%~ succ $ (10,20)
18:34:20 <lambdabot> (10,(11,20))
18:34:25 -!- Nisstyre-laptop has quit (Quit: Leaving).
18:34:39 <Taneb> > ("hello", "world") ^. both
18:34:41 <lambdabot> "helloworld"
18:34:44 <Taneb> EXPLAIN THAT
18:35:21 <oerjan> i understand that, i think
18:35:26 <oerjan> :t (^.)
18:35:28 <lambdabot> s -> Getting a s t a b -> a
18:35:45 -!- Nisstyre-laptop has joined.
18:35:49 <oerjan> > (Sum 1, Sum 2) ^. both
18:35:51 <lambdabot> Sum {getSum = 3}
18:36:26 <oerjan> > _1 <%~ succ $ (10,20)
18:36:28 <lambdabot> (11,(11,20))
18:36:47 <elliott> I think probably one of the < or << schemes could go
18:36:51 <oerjan> elliott: hm i don't think the difference between < and << is quite what you said
18:36:51 <elliott> but eh
18:37:05 <Taneb> (actually I use (<<%=) rather than (<<%~))
18:37:11 <elliott> oerjan: it is. note that "a" is intrinsically the old value and "b" intrinsically the new
18:37:21 <oerjan> oh wait you meant a, not both a and b
18:37:28 <elliott> as in, the generic operators simply cannot use the old value as an "b" or the new value as an "a"
18:37:32 <elliott> right
18:37:41 <oerjan> i sort of thought << would accumulate even more stuff :P
18:37:47 <elliott> (<<<%~)
18:38:03 <oerjan> > _1 <<<%~ succ $ (10,20)
18:38:05 <lambdabot> Not in scope: `<<<%~'
18:38:06 <lambdabot> Perhaps you meant `<<%~' (imported from Control.Lens)
18:38:08 <oerjan> OKAY
18:38:40 <oerjan> i did look a bit, i found zoom which seems great
18:39:49 <oerjan> > flip runState (0,0) $ do zoom _1 (modify (+2); zoom _2 (modify (+3))
18:39:51 <lambdabot> <hint>:1:46: parse error on input `;'
18:39:54 <oerjan> oops
18:39:58 <elliott> oerjan: the cool/scary thing about zoom is what happens when you use it on a *traversal* rather than just a lens
18:39:58 <oerjan> > flip runState (0,0) $ do zoom _1 (modify (+2)); zoom _2 (modify (+3))
18:40:01 <lambdabot> ((),(2,3))
18:40:04 <elliott> ...you get a loop
18:40:05 <coppro> http://fullcomment.nationalpost.com/2013/02/16/david-frum-canadas-government-must-reach-out-to-the-undead/
18:40:24 <oerjan> oh...
18:40:28 <elliott> > flip runState (0,0) $ zoom both (modify (+2))
18:40:30 <lambdabot> ((),(2,2))
18:40:37 <oerjan> i was just going to try that :P
18:41:06 <elliott> > flip State.runState [(a,b),(c,d)] $ zoom traverse $ _2 <%= f
18:41:07 <elliott> (from the docs)
18:41:07 <lambdabot> Not in scope: `State.runState'
18:41:10 <elliott> > flip runState [(a,b),(c,d)] $ zoom traverse $ _2 <%= f
18:41:12 <lambdabot> No instance for (Debug.SimpleReflect.Expr.FromExpr
18:41:12 <lambdabot> (p0 ...
18:41:16 <elliott> ugh.
18:41:24 <elliott> > flip runState [(a,b),(c,d)] $ zoom traverse $ _2 <%= f :: (Expr,[(Expr,Expr)])
18:41:26 <lambdabot> No instance for (Debug.SimpleReflect.Expr.FromExpr
18:41:26 <lambdabot> (p0 ...
18:41:29 <elliott> fuck
18:41:34 <elliott> >>> flip State.runState [(a,b),(c,d)] $ zoom traverse $ _2 <%= f
18:41:34 <elliott> (f b <> f d <> mempty,[(a,f b),(c,f d)])
18:41:35 <elliott> HTH
18:42:41 <nooodl> ugh. i don't understand the costate comonad coalgebra thing he explains as an aside in the first five minutes
18:42:47 <oerjan> Expr has a monoid instance? :P
18:42:58 <elliott> nooodl: you don't need to care about what costate comonad algebra means
18:43:06 <elliott> only what s -> (a, a -> s) means
18:43:39 <nooodl> nice
18:46:35 <olsner> costate comonad coalgebra? is that a joke?
18:47:02 <Taneb> Yes
18:47:31 <Taneb> It's also magic of category theory
18:47:57 <elliott> it doesn't really have all that much to do with category theory
18:48:14 <Taneb> It's magic of something
18:48:18 <Taneb> Haskell probably
18:52:16 <nooodl> man, this guy is really great at explaining this stuff
18:53:23 <elliott> edward "this guy" kmett
18:53:36 * elliott remembers the days edwardk was in #esoteric!
18:55:25 -!- carado has joined.
18:55:37 <oerjan> :t iforOf
18:55:39 <lambdabot> (Indexed i a (f b) -> s -> f t) -> s -> (i -> a -> f b) -> f t
18:56:36 <oerjan> > iforOf traversed "abcd" replicate
18:56:38 <lambdabot> []
18:56:41 <oerjan> darn
18:57:20 -!- epicmonkey has joined.
18:57:23 <Taneb> > iforof traverse "abcd" replicate
18:57:25 <lambdabot> Not in scope: `iforof'
18:57:26 <lambdabot> Perhaps you meant one of these:
18:57:26 <lambdabot> `iforOf' (import...
18:57:30 <Taneb> > iforOf traverse "abcd" replicate
18:57:31 <lambdabot> Couldn't match expected type `Control.Lens.Internal.Indexed.Indexed
18:57:32 <lambdabot> ...
18:57:40 <Taneb> > iforOf traverse "abcd" (index replicate)
18:57:42 <lambdabot> Couldn't match expected type `Control.Lens.Internal.Indexed.Indexed
18:57:42 <lambdabot> ...
18:57:50 <Taneb> I can never remember how to do this
18:57:51 <oerjan> i wasn't sure what that first argument should be
18:57:57 <Taneb> traversed == id
18:58:03 <Taneb> Which happens to be a lens
18:58:03 <oerjan> ok
18:58:20 <oerjan> so why doesn't it give what i expected :(
18:59:02 <Taneb> Hmm
18:59:25 <Taneb> > iforOf itraverse "abcd" replicate
18:59:26 <lambdabot> Couldn't match expected type `Control.Lens.Internal.Indexed.Indexed
18:59:27 <lambdabot> ...
18:59:40 <oerjan> oh hm
18:59:53 <oerjan> > iforOf traversed "abcd" (replicate.succ)
18:59:55 <lambdabot> ["abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abc...
19:00:03 <oerjan> ok that helped in some way...
19:00:21 <Taneb> > iforOf itraversed "abcd" replicate
19:00:23 <lambdabot> []
19:00:26 <Taneb> > iforOf traversed "abcd" replicate
19:00:29 <lambdabot> []
19:00:36 <Taneb> HOW MYSTERIOUS
19:00:56 <oerjan> the index is 0, presumably
19:01:11 <oerjan> oh hm
19:01:21 <Taneb> > iforOf traverse "abcd" (replicate.succ)
19:01:23 <lambdabot> Couldn't match expected type `Control.Lens.Internal.Indexed.Indexed
19:01:23 <lambdabot> ...
19:01:29 <Taneb> > iforOf itraverse "abcd" (replicate.succ)
19:01:31 <lambdabot> Couldn't match expected type `Control.Lens.Internal.Indexed.Indexed
19:01:31 <lambdabot> ...
19:01:36 <Taneb> > iforOf itraversed "abcd" (replicate.succ)
19:01:38 <lambdabot> ["abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abc...
19:01:54 <Taneb> > transpose $ iforOf itraversed "abcd" (replicate.succ)
19:01:56 <lambdabot> ["aaaaaaaaaaaaaaaaaaaaaaaa","bbbbbbbbbbbbbbbbbbbbbbbb","ccccccccccccccccccc...
19:02:07 <oerjan> wat
19:02:15 <Taneb> That's... surprisingly finite
19:02:20 <Taneb> > transpose $ iforOf traversed "abcd" (replicate.succ)
19:02:20 <oerjan> heh
19:02:22 <lambdabot> ["aaaaaaaaaaaaaaaaaaaaaaaa","bbbbbbbbbbbbbbbbbbbbbbbb","ccccccccccccccccccc...
19:02:42 -!- DHeadshot has quit (Ping timeout: 256 seconds).
19:02:55 <oerjan> > length "aaaaaaaaaaaaaaaaaaaaaaaa"
19:02:57 <lambdabot> 24
19:03:07 <Taneb> Aha
19:03:08 <oerjan> ah. _all_ the indices are replicated
19:03:13 <Taneb> > 1 * 2 * 3 * 4
19:03:15 <lambdabot> 24
19:03:18 <Taneb> > it
19:03:20 <lambdabot> Not in scope: `it'
19:03:20 <lambdabot> Perhaps you meant one of these:
19:03:20 <lambdabot> `id' (imported from ...
19:03:20 <Taneb> :(
19:03:24 <Taneb> :/
19:03:27 <Taneb> :something
19:03:59 <oerjan> > iforOf itraversed "abcd" id
19:04:01 <lambdabot> Couldn't match type `GHC.Types.Int' with `GHC.Types.Char -> f0 b0'
19:04:07 <oerjan> > iforOf itraversed "abcd" (:[])
19:04:09 <lambdabot> Couldn't match expected type `GHC.Types.Char -> f0 b0'
19:04:09 <lambdabot> with ac...
19:04:13 <oerjan> shees
19:04:15 <oerjan> h
19:04:20 <Taneb> > forOf itraversed "abcd" pure
19:04:22 <lambdabot> No instance for (GHC.Show.Show (f0 [GHC.Types.Char]))
19:04:22 <lambdabot> arising from a use...
19:04:28 <Taneb> > forOf traversed "abcd" pure
19:04:29 <lambdabot> can't find file: L.hs
19:04:35 <Taneb> :t forOf traversed "abcd" pure
19:04:37 <lambdabot> Applicative f => f [Char]
19:04:46 <Taneb> > forOf traversed "abcd" pure :: [String]
19:04:49 <lambdabot> ["abcd"]
19:04:53 -!- DHeadshot has joined.
19:05:02 <Taneb> > forOf itraversed "abcd" (const pure) :: [String]
19:05:07 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
19:05:07 <lambdabot> with actual ty...
19:05:14 <oerjan> :t iforOf traversed "abcd"
19:05:17 <lambdabot> Applicative f => (Int -> Char -> f b) -> f [b]
19:05:43 <oerjan> oh right of course
19:05:53 <oerjan> needs a fold, not a traversal
19:06:27 <Taneb> :t iforOf_
19:06:28 <lambdabot> Functor f => IndexedGetting i (Traversed r f) s t a b -> s -> (i -> a -> f r) -> f ()
19:09:24 -!- DHeadshot has quit (Ping timeout: 248 seconds).
19:10:23 <oerjan> > ifoldMapOf traverse replicate "abcd"
19:10:23 -!- DHeadshot has joined.
19:10:25 <lambdabot> Couldn't match expected type `Control.Lens.Internal.Indexed.Indexed
19:10:25 <lambdabot> ...
19:10:49 <oerjan> > ifoldMapOf traversed replicate "abcd"
19:10:53 <lambdabot> "bccddd"
19:10:59 <oerjan> yay!
19:11:17 -!- WeThePeople has quit (Quit: Leaving).
19:13:13 <oerjan> > uncurry replicate =<< zip [0..] "abcd" -- maybe not _that_ big an improvement
19:13:15 <lambdabot> "bccddd"
19:17:46 -!- Taneb has quit (Quit: Leaving).
19:18:36 -!- hagb4rd has joined.
19:36:00 -!- augur has quit (Remote host closed the connection).
19:43:40 -!- WeThePeople has joined.
19:48:54 -!- ogrom has joined.
20:08:28 -!- augur has joined.
20:22:24 -!- Halite has quit (Remote host closed the connection).
20:27:22 -!- AnotherTest has joined.
20:37:54 -!- epicmonkey has quit (Ping timeout: 264 seconds).
20:46:17 -!- WeThePeople has quit (Ping timeout: 255 seconds).
20:47:04 -!- AnotherTest has quit (Quit: Leaving.).
20:47:16 -!- AnotherTest has joined.
21:02:27 -!- Mathnerd314 has quit (Read error: Connection reset by peer).
21:11:55 -!- oerjan has quit (Quit: leaving).
21:17:33 -!- WeThePeople has joined.
21:18:07 -!- Mathnerd314 has joined.
21:19:32 -!- sebbu has quit (Ping timeout: 248 seconds).
21:41:23 -!- zzo38 has joined.
21:41:37 -!- monqy has joined.
21:44:20 -!- AnotherTest has quit (Quit: Leaving.).
21:49:05 <Vorpal> so according to the google dashboard thingy I'm using "Cloud Print", with one connected printer. That printer being my phone. What.
21:50:54 <Vorpal> Seems like that is a thing, but what does it do with the printed document? I have no idea... https://support.google.com/cloudprint/?hl=en#2541911
21:52:35 <coppro> Vorpal: it sends the doc to your phone
21:52:46 <Vorpal> coppro, hm okay, and put it on the sd card?
21:53:33 <Vorpal> not sure why this would be useful, but okay. The "save to google drive" pseudo printer that is also listed (but not counted in the "connected printers" count!) seems much more useful and general then.
21:54:19 <coppro> because cluter
21:54:22 <coppro> *clutter
21:54:28 <Vorpal> hah
21:58:58 <Vorpal> coppro, hmm, the google dashboard is scary. They know so much about you...
22:03:07 <Gregor> The nice thing about making soup is you basically can't screw it up. Just throw stuff in a pot.
22:03:12 <Gregor> Discovery: No!
22:03:17 <Gregor> Jaaaaaaalapeños X-D
22:10:08 <Vorpal> Gregor, almost correct. As long as you don't throw in too much salt the soup will end up at least passable.
22:10:18 <Vorpal> salt is the one thing you have to be a bit careful with
22:11:25 <kmc> fortunately you can leave it to the end
22:11:40 <kmc> and just put it in your bowl as you eat
22:11:48 <kmc> same with many forms of spicy
22:11:58 <kmc> or soy sauce
22:12:12 <kmc> or even glutamate taste if you aren't squeamish about having a shaker of MSG on your table
22:12:14 <elliott> what's this idea of "too salty"
22:12:21 <elliott> a ridiculous notion
22:15:43 <Vorpal> kmc, hah
22:16:00 <Vorpal> elliott, well, it is also supposedly bad for your health
22:18:01 <monqy> too salty is absolutely awful
22:18:09 <Vorpal> yeah
22:18:26 <elliott> whats a health
22:19:01 <Gregor> Sometimes I eat blocks of salt just to pass the time.
22:19:14 <Vorpal> the only spice you truly can't get too much of is of course garlic
22:19:55 <Vorpal> though I guess technically it is not a spice, since you can it it as the main part of the dish
22:21:00 <Gregor> Sometimes I eat raw cloves of salt just to pass the time.
22:21:06 <Vorpal> :D
22:23:17 <Vorpal> put some young garlics soaked in olive oil on a salt bed (in order to prevent burning them) in the oven for a number of minutes that I forgot but have written down somewhere. Eat together with baguette with butter on it.
22:23:24 <Vorpal> tastes really nice
22:23:38 <Vorpal> doesn't work on more mature cloves
22:24:09 <Vorpal> so best if you take some early ones (I assume you grow your own garlic, so this shouldn't be hard)
22:24:54 <olsner> who wouldn't grow their own garlic
22:25:00 <Vorpal> exactly
22:32:13 <fizzie> I saw something about "cloud print" too, recently.
22:32:22 <fizzie> Couldn't quite make out what it was all about.
22:33:09 <kmc> Vorpal: yeah those are really good
22:33:44 <Vorpal> fizzie, I think it is so that you can make your printer spew out paper when you aren't at home and thus cause a mess?
22:33:52 <Vorpal> I certainly can't see any other point of it
22:34:02 <kmc> deep fried garlic is good too
22:34:03 <fizzie> I was hoping it'd make paper come out of the Android device somehow.
22:34:07 <Vorpal> kmc, hm
22:34:11 <nooga> i love garlic
22:34:14 <Vorpal> fizzie, that would have been nice
22:34:26 <kmc> hm i have an android eInk ebook reader
22:34:30 <kmc> print to that would be pretty useful
22:34:34 <Vorpal> hm
22:34:42 <Vorpal> I guess so
22:34:53 <Vorpal> kmc, it is bloody useless for me to print to my Galaxy S3 though
22:35:12 <Vorpal> I'd much rather use dropbox
22:37:09 <fizzie> Also apropos nothing, someone at work told me things about what kind of pruning parameters I *should* be passing to variKN for fungot-babble-model-training.
22:37:10 <fungot> fizzie: no on fnord nor dictionary.com: n. pl." is a much better idea. three times as much code.
22:37:28 <Vorpal> fizzie, oh?
22:37:35 <Vorpal> were you using the wrong ones?
22:37:40 <fizzie> Apparently one of them is supposed to be two times the other one.
22:37:58 <fizzie> For reasons that were not exactly explained, but anyhow.
22:38:07 <Vorpal> fizzie, then why is both parameters
22:38:15 <Vorpal> couldn't one just be calculated from the other one?
22:38:51 <fizzie> I suppose it's just a rule-of-thumb and maybe not applicable in every single circumstance.
22:39:19 <fizzie> But it still might be a better than my own Stetson-Harrison estimates.
22:40:31 <Vorpal> heh
22:43:56 <Vorpal> fizzie, is this used for all the models? Like the chrono trigger one?
22:44:29 -!- SDr has joined.
22:44:38 <Sgeo_> `welcome SDr
22:44:41 <HackEgo> SDr: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:44:56 <fizzie> Vorpal: Some of the older ones aren't trained with variKN at all, but I think the CT one is.
22:46:47 -!- efm has joined.
22:47:45 <Vorpal> fizzie, so what are the older ones trained with?
22:48:03 <Sgeo_> `welcome efm
22:48:05 <HackEgo> efm: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:48:12 <efm> hi Sgeo_
22:49:01 * efm is probably in the wrong place, thinking that programming needs to be easier to comprehend, not harder :)
22:49:27 <fizzie> Vorpal: With a messy program that just does full fixed-order models.
22:49:46 <Sgeo_> efm, our interest in esoteric languages does not imply a collective desire to make programming harder
22:49:55 <elliott> yes it does
22:49:55 <Vorpal> fizzie, so the IRC model is like that?
22:50:08 <Vorpal> or has that been updated
22:50:15 <Vorpal> fizzie, also what do you mean with a fixed order model
22:50:21 <Vorpal> this area is not my forte
22:51:36 -!- sebbu has joined.
22:53:20 <fizzie> Vorpal: The IRC one is like that, yes. And fixed order just means it has frequencies for all (existing) word-sequences of length K (where K is 3 or 4 or so), whereas the variKN one makes pruned models where there can be longer sequences if they're important enough.
22:53:41 <Vorpal> I see
22:53:52 <Vorpal> fizzie, what do you mean with "important enough"?
22:53:56 <zzo38> Sgeo_: Yes, true, it is not the desire to make programming harder. It is the desire to try different things with programming, even if it is not sensible.
22:54:30 <zzo38> Are you in agreement?
22:54:48 <Sgeo_> Yes, that seems like a good way to put it
22:55:42 <Vorpal> [1143473.197870] Did not find alt setting 1 for intf 0, config 1
22:55:45 <Vorpal> hnuh
22:55:48 <Vorpal> a lot of that in dmesg
22:56:57 <fizzie> Vorpal: Well, the criteria is related to how much difference it makes for the probabilities given by the model whether a particular sequence is included or not. For details, see Siivola, V., Hirsimäki, T. and Virpioja, S., "On Growing and Pruning Kneser-Ney Smoothed N-Gram Models", IEEE Transactions on Audio, Speech, and Language Processing, vol. 15, no. 5, pp. 1617-1624, July 2007.
22:59:09 <elliott> fizzie: You just did that so you could inline a fancy citation on IRC.
22:59:21 <Vorpal> heh
22:59:52 <fizzie> At least it wasn't in BibTeX.
23:01:11 * efm does believe in a flourishing of experiments, to better discover the domain of possible solutions
23:01:55 <Bike> And that's why we try to get Brainfuck running on specially constructed bundles of sticks.
23:02:12 <Vorpal> Bike, oh? Got a link to that?
23:03:21 <Bike> Joke.
23:03:32 <Vorpal> hm, I wonder if it would be possible
23:04:10 <fizzie> Some kind of mechanical computer, perhaps.
23:04:10 <Vorpal> possibly some sort of electro magnetic stick could be used for a computer with moving components
23:04:20 <Vorpal> fizzie, indeed
23:04:43 <Bike> Psh, electromagnets. That's some pointlessly easy shit right there.
23:05:02 -!- augur has quit (Remote host closed the connection).
23:05:07 <Vorpal> I'm not sure how else I would get a lose bundle of sticks moving
23:05:10 <kmc> i do want to build a relay computer
23:05:16 <Vorpal> in a meaningful way that is
23:05:17 <kmc> but i don't know of a cheap enough source of relays
23:05:31 <kmc> it would be very slow and very loud
23:05:38 <Vorpal> kmc, relays only? Surely you need some other components
23:05:46 <Vorpal> or hm
23:05:58 <Vorpal> can you implement NAND with only relays?
23:06:03 <Vorpal> or NOR
23:06:17 <kmc> i think relays are good enough
23:06:17 <Vorpal> NOT you can obviously do
23:06:30 <Bike> vorpal, there's gravity, woodland creatures, hitting it with other sticks...
23:06:36 <Vorpal> OR is possible. So is AND
23:06:43 <olsner> pretty sure relay computers have been done already, proving that it is possible
23:06:50 <Vorpal> kmc, not sure about how you would implement something like a latch though
23:06:51 <kmc> i think a normally-open relay is a lot like a N-channel MOSFET and a normally-closed relay is like a P-channel MOSFET
23:06:56 <fizzie> Isn't the Z3 mostly relays?
23:07:07 <Vorpal> kmc, yeah
23:07:09 <olsner> Vorpal: AND and NOT is NAND
23:07:12 <kmc> so you could build an equivalent of CMOS logic, though I'm sure it's not the most efficient way
23:07:14 <Vorpal> olsner, exactly
23:07:30 <kmc> http://upload.wikimedia.org/wikipedia/commons/3/31/SRAM_Cell_%286_Transistors%29.svg
23:07:30 <Vorpal> olsner, <Vorpal> OR is possible. So is AND
23:07:38 <Vorpal> olsner, and thus obviously is NAND
23:07:42 <fizzie> http://en.wikipedia.org/wiki/Z3_(computer) "The Z1 was wholly mechanical and only worked for a few minutes at a time at most. Helmut Schreyer advised Zuse to use a different technology."
23:07:49 <Vorpal> olsner, I didn't think I would have to spell that out
23:08:05 <kmc> of course old school computers didn't build main memories out of tubes or relays arranged thus
23:08:08 <olsner> Vorpal: it looked like you were struggling with the last connection there, so I assumed the worst
23:08:11 <kmc> would have been insanely expensive
23:08:20 <Vorpal> olsner, don't worry, I'm not stupid
23:08:57 <kmc> instead they developed things like williams tubes, mercury delay line memory, drum memory, core memory
23:09:07 <Bike> drum memory remains the best
23:09:21 <kmc> i guess my fantasy relay computer would probably use core memory
23:09:33 <nortti> kmc: why not delay line
23:09:35 <Vorpal> right
23:09:38 <Bike> maybe i should just try rebuilding MONIAC or some stupid shit
23:09:52 <kmc> nortti: i suck at anything vaguely mechanical
23:09:54 <Vorpal> nortti, delay line does not allow random access, so it would be a bit annoying
23:10:00 <kmc> i think dealing with toxic liquid metal in tubes is well beyond me
23:10:05 <nortti> ok
23:10:08 <kmc> a BIT annoying ahahahaha
23:10:22 <Vorpal> I would like a ternary computer
23:10:27 <olsner> you could use another medium, air or water or something
23:10:37 <kmc> kilometers of copper wire in a drum
23:11:08 <olsner> PAL decoders use these quartz crystal delay lines
23:11:09 <fizzie> A line of people repeating what the previous guy said.
23:11:16 <kmc> olsner: woah, really?
23:11:54 <Vorpal> brb
23:12:00 <kmc> fizzie: i'd need to introduce error correcting codes then
23:12:28 <olsner> yep, there's something in PAL that needs you to have a copy of the previous scan line
23:12:39 <kmc> i also like the core rope ROM used in e.g. the apollo guidance computer
23:13:18 <kmc> the contents of the ROM are determined by how you weave wires in and out of little metal donuts
23:13:28 <kmc> so you literally sew your program into the computer
23:13:28 <olsner> http://en.wikipedia.org/wiki/Delay_line_memory#Piezoelectric_delay_lines
23:14:03 <kmc> olsner: huh wow
23:14:05 <olsner> there are copper wire delay lines too
23:14:20 <kmc> i think mercury delay lines were first developed for radar
23:14:57 -!- friesk has joined.
23:15:05 <kmc> i wonder how much data you can store in this 64 μs PAL delay line
23:15:12 <kmc> what the maximum frequency is
23:15:25 <nortti> `welcome friesk
23:15:26 -!- carado has quit (Ping timeout: 256 seconds).
23:15:28 <HackEgo> friesk: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
23:16:27 <Sgeo_> I wonder what the maximum capacity of newbies is
23:16:38 -!- DHeadshot has quit (Read error: Connection reset by peer).
23:16:55 <friesk> o thanks
23:17:01 <Sgeo_> Hi friesk
23:17:05 <friesk> hi
23:17:05 <Sgeo_> Didn't mean to offend
23:17:17 <Sgeo_> Just that there are several new people in here today, not sure why
23:17:23 <kmc> "Alan Turing proposed the use of gin as an ultrasonic delay medium, claiming that it had the necessary acoustic properties."
23:17:26 <kmc> ok
23:17:26 <kmc> i need to do this
23:17:29 <friesk> you'd have to ask :)
23:17:36 <olsner> kmc: I approve
23:17:40 <Sgeo_> friesk, anything in particular bring you here today?
23:17:55 <friesk> but I am just getting my feet wet in freenode
23:18:02 <nortti> Sgeo_: #esoteric-en
23:18:19 <Bike> turing: mathematician. codebreaker. genius. drinker.
23:18:45 <kmc> disadvantage: bored computer operators will crack open and drink the memory
23:18:58 <Phantom_Hoover> kmc, isn't gin... expensive?
23:19:11 <Bike> it's worth the price for good memory
23:19:48 <kmc> as allegedly happened with the ethanol-cooled MiG-25
23:19:53 <fizzie> Does that mean that drinking gin will help your memory?
23:20:14 <Bike> "yes"
23:20:39 <Bike> kmc: is there a point to drinking flat ethanol? i thought half the point of alcoholic beverages was flavor
23:20:57 <fizzie> The other half, then.
23:20:58 <kmc> uh
23:21:14 <Bike> the drunken half
23:21:28 <kmc> yes
23:21:29 -!- ogrom has quit (Quit: Left).
23:21:38 <kmc> vodka is basically ethanol + water
23:21:42 * Sgeo_ nostalgias over http://www.youtube.com/watch?v=xM4uKJsI0yM
23:21:55 <kmc> and drinking vodka straight is a popular passtime in the russian air force
23:22:42 <olsner> maybe they should've used methanol for the cooling
23:23:01 <olsner> otoh, that might just give you blind pilots instead of drunk pilots
23:23:04 <kmc> it's better for military logistics if the men and the airplanes can drink the same stuff
23:23:07 <kmc> also that
23:23:25 <Phantom_Hoover> isn't gin essentially juniper-flavoured vodka
23:23:43 <kmc> a friend of mine went to remote siberia on a geology trip and they brought along a bottle of 195 proof "lens cleaner" which they would mix with snowmelt
23:24:28 <kmc> Phantom_Hoover: i think so yeah
23:24:31 <Bike> reminds me, apparently drinking snow regularly is really rare among animals (because of the metabolic cost)
23:24:32 <olsner> I think there are a bunch of assorted herbs and spices in there as well
23:24:37 <Bike> but a few animals do and they are some hardcore motherfuckers
23:25:12 <kmc> you re-distill neutral spirits with botanicals
23:25:22 <Phantom_Hoover> there's also that irish stuff which is basically ethanol with a bit of water left over
23:25:37 <kmc> the Bombay Sapphire label has their "10 exotic botanicals" etched onto the side
23:25:46 <kmc> er the bottle itself
23:25:48 <kmc> almond, lemon peel, liquorice, juniper berries, orris root, angelica, coriander, cassia, cubeb, and grains of paradise
23:25:57 <Phantom_Hoover> which i understand is drunk straight
23:26:17 <olsner> ooh, grains of paradise?
23:26:27 <fizzie> This reminds me of a Finnish parody radio show, where there was a fictional review of a "AA" ("Absolutists Anonymous") member, and the tragic story of he started by being sober every now and then, and then went on there to full-on days-long bouts of sobriety, once being sober an entire christmas.
23:26:32 <fizzie> Anyway, there was a bit of how they had this group of friends who just sat and drank all kinds of nonalcoholic stuff; water, milk, even diet coke, which you can make drinkable by draining it across an iron bar outside when it's freezing.
23:27:39 <fizzie> (I assume that last bit is based on some myth about how to make denatured ethanol drinkable.)
23:28:06 <Phantom_Hoover> well you'd make it more drinkable than diet coke, at least
23:28:21 <fizzie> (I coincidentally have a Bombay Sapphire bottle in the closet. It has those ten things you mention.)
23:28:51 <fizzie> (There was a discount.)
23:28:56 <olsner> renatured ethanol is the subject of many myths
23:30:39 <fizzie> Unnatural ethanol.
23:31:15 <Phantom_Hoover> good-natured ethanol
23:31:56 <fizzie> ^style darwin
23:31:56 <fungot> Selected style: darwin (Books by Charles Darwin -- you know, that evilution guy)
23:31:57 <fizzie> fungot: Tell us about natural ethanol selection.
23:31:58 <fungot> fizzie: thomas henry, lord " fnord) is fertilised. sir j.d. hooker. down, wednesday september, n.d..
23:32:11 <fizzie> fungot: Did Thomas Henry drink a lot?
23:32:27 <fizzie> Aw, no answer.
23:32:36 <Phantom_Hoover> fungot seems to have developed a... fetishistic streak
23:32:37 <fungot> Phantom_Hoover: comparative, :) female and male. also desmarest, ( on certain musical curculionidae,' ( modern classification :) insects,' pp. fnord also dr. herbert raised many seedlings, as soon as/ points to which you allude; but that it was his critique in/ ( field' may 6, 1859.
23:32:43 <olsner> fungot: how are your delay lines? ginned up and ready to go?
23:32:45 <fungot> olsner: but to have flowed beneath/ sea :)/ tropics are in themselves :) a pleasurable nature, excepting when this was indispensably necessary, yet, as we shall immediately see that they would always exceed in height/ self-fertilised plants cannot be fully trusted; and it would have held had they been capable :) containing a considerable number :) flowers which are very deep within, and a few fish. how very odd, and i myself no
23:32:52 -!- sebbu has quit (Ping timeout: 248 seconds).
23:32:53 <fungot> olsner: all other notes by charles darwin's editors appear in/ other cases, which may be produced either by/ state :)/ mind. from a drawing appended to/ names :) plants " rev. e.s. dixon ( ornamental and domestic poultry' page 260. in/ :( origin," sixth edition, :)/ black, squat tribes :)/ western coast as far as i could use, namely, :) a few hours/ tendril fnord itself, and your most interesting letter :) october 10th, has jus
23:33:11 -!- nooodl has quit (Ping timeout: 240 seconds).
23:33:12 <fungot> olsner: charles darwin to w.d. fox informs me that he has misunderstood this from/ height :)/ crossed plants is here 5.58 inches, and that/ difference in height and fertility between/ two forms; whilst/ ovarium, as described by an enthusiastic naturalist as curious and intricate a problem as :)/ great zygomatic muscles is fnord :)/ fnord
23:33:16 <fizzie> He just keeps going.
23:33:24 <fizzie> fungot: I think that's about enough?
23:33:25 <fungot> fizzie: in all four cases/ intercrossed plants in fertility,/ most pleasure. i cordially thank you for your kind and pleasant letter.
23:34:15 <kmc> so polite
23:34:15 <olsner> why are darwin's books so full of smileys?
23:34:43 <fizzie> olsner: He was such a happy guy. (Also, there's a bug.)
23:35:04 <fizzie> Well, there was a bug, and I haven't rerun the thing after fixing it.
23:35:32 <fizzie> fungot: Darwin is well-known to always have a smile on, right?
23:35:32 <fungot> fizzie: letter 286. to j.w. judd. down, april 11th 1859.) ready, in some manner more advantageous than fnord and to munich in 1857, i had an abundance :) capsules. column 5: weight :) seed.
23:39:37 <fizzie> Also, let's just try that one thing out.
23:39:54 <fizzie> ^raw QUIT
23:39:54 -!- fungot has quit (Quit: fungot).
23:40:24 -!- fungot has joined.
23:40:26 <Vorpal> fizzie, what one thing?
23:40:31 <fizzie> ^style enron
23:40:31 <fungot> Selected style: enron (subset of the Enron email dataset)
23:40:40 <fizzie> It's probably not very good.
23:40:41 <kmc> fungot: el oh el
23:40:41 <fungot> kmc: that the number of our current projections on their first, instead of the time we
23:40:47 <fizzie> I couldn't be bothered to do any more cleanups.
23:40:50 <Vorpal> also my PS3 controller on my desk random came to life and blinked the 4 LEDS a couple of times
23:40:52 <Vorpal> what
23:41:27 <shachaf> fungot: heegan
23:41:27 <fungot> shachaf: from the last ( 30) allowed excuse the error. dicarlo ena gas structuring phone: 713-345-4666 email: louis.dicarloenron.com
23:41:27 <Vorpal> fizzie, Enron?
23:41:42 <shachaf> afungotb
23:41:42 <fungot> shachaf: that will have you out on the " i
23:41:57 <Vorpal> fizzie, the electricity company?
23:41:58 <fizzie> Vorpal: ISTR that the "blink the leds a couple of times" is also what happens when you press the PS button and it does the Bluetooth "hello-anyone-there" thing.
23:42:10 <Vorpal> fizzie, except I pressed nothing
23:42:14 <fizzie> Vorpal: There's a famous dataset of their emails.
23:42:19 <fizzie> http://www.cs.cmu.edu/~enron/ <- that one.
23:42:34 <Vorpal> fizzie, in fact it lies on top of a stack of CDs, out of my reach atm
23:42:36 <fizzie> Half a million messages; I just took 10k so that the training runs fast.
23:42:52 <Vorpal> heh
23:42:58 <fizzie> Maybe it's a low-battery warning too? Or just a random glitch.
23:43:18 <Vorpal> let me try, if I connect it to my phone the app there tells me the battery status
23:43:29 <Vorpal> hm nope, says battery full
23:43:55 <Vorpal> I had it plugged in the other day anyway, so I doubt it would be battery issues
23:44:04 <fizzie> What are you using for that, the "Sixaxis Controller" app?
23:44:11 <Vorpal> yeah
23:44:30 <Vorpal> fizzie, during connection it prints the battery status amongst other things in the debug output of the main window
23:45:28 <Vorpal> fizzie, btw can you charge a controller using a phone USB wall charger?
23:45:38 <fizzie> From what I recall, no.
23:45:39 -!- sebbu has joined.
23:45:41 <Vorpal> fizzie, I'm going to go out of town for a couple of days
23:45:49 <Vorpal> and I won't have a computer with me
23:45:52 <kmc> hichaf
23:45:54 <fizzie> It won't start charging without doing a full USB handshake.
23:45:55 <Vorpal> fizzie, hm sucks
23:46:08 <fizzie> You can probably charge it from your phone over USB OTG, though.
23:46:10 <Vorpal> fizzie, and doing it with USB OTG sounds annoying
23:46:13 <Vorpal> hm
23:46:13 <fizzie> Yes.
23:46:24 <fizzie> Annoying, but possible.
23:46:30 <Vorpal> fizzie, doesn't that only give up to 100 mA?
23:47:22 <Vorpal> fizzie, how long does that battery last actually? I mostly used it with my desktop over USB (since it has no BT)
23:47:29 <Vorpal> I might be okay anyway
23:47:42 <fizzie> I don't really know. Does USB OTG have some extra limits? I mean, for regular USB you can get five units of power.
23:48:03 <Vorpal> I think it *can* have some extra power limits
23:48:14 <fizzie> It has never ran out on me, but I use it with USB most of the time too, so...
23:48:43 <fizzie> I would estimate that it's some tens of hours.
23:48:59 <fizzie> (Not many, but at least over one.)
23:49:30 <Vorpal> hm
23:50:13 <Vorpal> yeah I guess I'll bring a cable for USB OTG just in case. I doubt I will have all that many hours to play anyway
23:51:39 <fizzie> Haven't bought the Sixaxis Controller app yet; it seems nice (what with the possibility to do button->touch assignments and such for apps that don't support things natively), but it's still a bit of a shame that you can't just connect it like any other Bluetooth HID thing on Android four-point-whatever where the USB HID version works fine. (From what I've read, some ROMs do in fact include the ...
23:51:45 <fizzie> ... required tweaks for that to work.)
23:53:57 -!- augur has joined.
23:54:14 <Vorpal> hm
23:54:33 <Vorpal> fizzie, iirc the bluetooth used by the controller is not the normal bluetooth, it requires some quirks
23:54:47 <Vorpal> because you can't do normal BT and the controller at the same time
23:55:23 -!- hagb4rd has quit (Ping timeout: 256 seconds).
23:55:32 <Vorpal> night
23:59:23 <fizzie> You can do normal BT and the controller at the same time on real computers, though.
23:59:31 <fizzie> There's a Bluez tweak for it.
2013-02-17
00:00:28 <fizzie> (IIRC, Fedora includes it in their copy of bluez by default, in fact.)
00:01:02 <fizzie> I was about to mention that the Sixaxis Controller app does disable the normal Bluetooth as another negative thing about it, though.
00:12:54 -!- friesk has quit (Remote host closed the connection).
00:16:20 -!- WeThePeople has quit (Quit: Leaving).
00:37:32 <shachaf> monqy: do you know what limits are
00:37:47 <monqy> didn't you ask me that yesterday
00:37:56 <shachaf> maybe
00:38:01 <shachaf> im forgetful
00:38:03 <shachaf> like a functor
00:38:18 <shachaf> also you're basically elliott right?
00:38:38 <monqy> that depends
00:38:38 <shachaf> and elliott knows what limits are, which he didn't know yesterday
00:39:29 <shachaf> monqy: i'm trying to figure out what pullbacks are in a poset category?
00:39:39 <shachaf> do you know
00:39:39 <monqy> ok
00:39:50 <shachaf> i'm pretty sure they exist if it's a lattice
00:40:03 <shachaf> or maybe even just a semilattice....
00:40:22 <monqy> if i say ok enough will you figure it out? if i silently replace myself with eliza will you notice
00:41:26 <shachaf> probably
00:41:35 <shachaf> eventually
00:41:53 <Phantom_Hoover> i don't think monqy knows his limits
00:41:56 <Phantom_Hoover> perhaps he has none
00:42:31 <shachaf> oh no
00:49:09 -!- Taneb has joined.
00:49:28 <Taneb> Okay, in the end I did go to that UV rave
00:50:10 <kmc> YUV rave
00:50:15 <elliott> did you dream about LC
00:50:22 <Taneb> Nah
00:50:25 <Phantom_Hoover> LC?
00:50:26 <Taneb> Was too awake
00:50:32 <Taneb> Lambda calculus
00:50:38 <Taneb> `quote dream about
00:50:44 <HackEgo> No output.
00:50:47 <Taneb> `quote dreamt about
00:50:49 <HackEgo> No output.
00:50:54 <Taneb> `quote dream
00:50:56 <HackEgo> 154) <zzo38> catseye: Please wake up. Not recorded for this timezone. The big spider is not your dream \ 239) <nddrylliog> back to legal tender, that expression really makes me daydream. Like, there'd be black-market tender. Out-of-town hug shops where people exchange tenderness you've NEVER SEEN BEFORE. \ 249) <Phantom__Hoover> Gregor, yeah, but P
00:51:04 <elliott> Phantom_Hoover: its like brainfuck
00:51:51 <Phantom_Hoover> Taneb, was ian bell at the uv rave (this is all i know about uv raves)
00:52:01 <Taneb> Andrew Bell was
00:52:05 <Taneb> Is that close enough
00:52:34 <Phantom_Hoover> no
00:52:41 <shachaf> ultraviolent?
00:52:43 <Taneb> :(
00:52:44 <shachaf> that sounds dangerous
00:52:49 <Taneb> ULTRAVIOLENT RAVE
00:52:57 <Taneb> A sink was destroyed
00:53:29 <Phantom_Hoover> wow ian bell breeds cats too
00:53:48 <Phantom_Hoover> the man is full of surprises
00:54:35 <Taneb> Is there anything that man cannot do
00:54:55 <zzo38> Well, some things are impossible.
00:55:20 <Taneb> I've drank alcohol. Everything is possible.
00:55:57 <zzo38> Is it possible to have a universe where thirteen is not a prime number?
00:56:11 <shachaf> zzo38: Yes.
00:56:31 <Taneb> Yes. Simplest way is to redefine 13 to equal, for example, what we call six
00:57:39 <Phantom_Hoover> but what if six is a prime number too
00:58:06 <Taneb> Then your universe sucks
00:59:16 <Phantom_Hoover> i would posit that yours sucks more
00:59:32 <Phantom_Hoover> indeed i would strengthen that claim and propose that it sucks a big bag of cocks
01:02:00 <zzo38> Can there be the universe that time goes only sideways?
01:02:13 <Sgeo_> o.O kmc had a hand in this.... http://blog.ezyang.com/2011/11/how-to-read-haskell/
01:02:21 <Sgeo_> zzo38, have you read the Orthogonal series?
01:02:28 <zzo38> No
01:03:01 <kmc> yeah i offered feedback
01:03:17 <Sgeo_> zzo38, time acts geometrically in the universe of that series, so instead of x^2+y^2+z^2-t^2 = umimnotsureithinkaconstnat, it's x^2+y^2+z^2+t^2
01:03:51 <Phantom_Hoover> it's =s^2
01:04:17 <Phantom_Hoover> also er that pretty much automatically implies causality violation
01:04:50 <Phantom_Hoover> (s is proper time, i.e. time as observed by whatever's moving)
01:05:25 <Sgeo_> Well, there's no speed limit, some characters are trying to reach infinite velocity as determined by their home world
01:05:37 <Sgeo_> ^^some spoilers
01:05:52 <zzo38> I don't think causality is a fundamental rule of the universe, though.
01:05:58 <Phantom_Hoover> i'm... pretty sure what you're describing is just s^2 = t^2
01:06:25 <Bike> sounds like really dorky sci-fi, anyway.
01:06:28 <Sgeo_> Time in the Orthogonal series's universe is not fundamentally a distinct direction from space
01:06:43 <Sgeo_> Bike, the author has all these... charts. I am not joking
01:06:56 <Sgeo_> Stops the narrative to have characters either learn or explain the science they're discovering
01:07:06 <Phantom_Hoover> well that sounds great
01:07:07 <Bike> And you read this of your own volition.
01:07:22 <Sgeo_> I read the first book of the series, going to buy the second soon
01:07:31 <Sgeo_> (It's a trilogy, but third book isn't out yet)
01:07:47 <Sgeo_> I have to admit to skimming over the science stuff a bit
01:07:50 <elliott> Bike: dont tell me you dont enjoy super dorky super hard scifi
01:07:54 <elliott> everyone does whether they admit it or not
01:07:59 <Phantom_Hoover> elliott, that's not super dorky super hard scifi
01:08:04 <Sgeo_> I wish I understood it at a glance
01:08:04 <elliott> Phantom_Hoover: that was more a general statement
01:08:05 <Sgeo_> :(
01:08:06 <Phantom_Hoover> that's lazy scifi
01:08:08 <Bike> Well, I do, but it doesn't usually go as far as charts.
01:08:09 <elliott> i in fact barely looked at what sgeo said
01:08:17 <Bike> ...okay, so I did like Expedition.
01:08:26 <Sgeo_> Phantom_Hoover, uh. lazy?
01:08:40 <Sgeo_> http://gregegan.customer.netspace.net.au/ORTHOGONAL/00/PM.html
01:08:51 <Phantom_Hoover> "here are a bunch of cool concepts, i will make the most cursory attempt to attach them to the narrative"
01:08:58 <elliott> oh it's greg egan?
01:09:04 <elliott> going out on a limb and saying it's probably not lazy
01:09:06 <Bike> Haha of course it's Egan
01:09:24 <elliott> maybe i should actually read anything hes written beyond like the two short stories i have
01:09:28 <elliott> gotta have me some charts
01:09:42 <Sgeo_> elliott, I read The Clockwork Rocket
01:09:44 <Bike> I liked Schild's Ladder, though it probably warped my psyche some since I was like twelve.
01:10:31 -!- hagb4rd has joined.
01:10:53 <elliott> "Interstellar voyages taking longer for the travellers than for everyone else might just sound annoying"
01:11:09 <elliott> "dammit, I can't use this universe. it's just... annoying"
01:11:34 <Bike> http://tallcomics.com/?id=17 anyway this is my favorite sci-fi
01:11:36 <kmc> WONTFIX
01:11:41 <Sgeo_> Mind if I ROT13 some spoilers?
01:12:25 <shachaf> ROT26 it to be on the safe side.
01:12:48 <elliott> dont rot13 stuff in #esoteric
01:12:51 <elliott> unless you want me to read it
01:13:28 <Sgeo_> elliott, how much do you want to avoid spoilers for The Clockwork Rocket?
01:13:39 <zzo38> ROT(infinity) it if you know how.
01:13:47 <elliott> idk is it a good book
01:13:49 <shachaf> ==zzo38
01:13:53 <elliott> my caring is directly related to how good it is
01:13:57 <shachaf> `run quote zzo38 | shuf
01:14:00 <HackEgo> 263) <zzo38> Is anyone in here who knows cricket rules and has experience? <Slereah> What if I told you the baseball rules in a british accent? \ 328) <zzo38> Finally I found the wand of electric lightning now we can destroy any large object if it needs to be destroyed and is required to use a such a wand for that purpose. \ 439) <zzo38> elliott_:
01:14:02 <Sgeo_> elliott, I kind of liked it, but I'm a bad judge
01:14:26 <kmc> zzo38_ebooks
01:14:28 <shachaf> zzo38: Did you ever use the want of electric lightning?
01:14:41 * Sgeo_ decides not to paste the spoiler
01:14:44 <shachaf> kmc: I would follow that on Twitter!
01:14:47 <shachaf> `pastelogs zzo38
01:14:52 <zzo38> shachaf: No
01:15:00 <shachaf> zzo38: s/want/wand/
01:15:12 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3415
01:15:16 <zzo38> Same answer
01:16:14 <Sgeo_> `pastelogs Sgeo
01:16:21 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.21081
01:16:43 <shachaf> Oops.
01:16:46 <shachaf> I meant.
01:16:49 <shachaf> `pastequotes zzo38
01:16:54 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.24833
01:17:12 <Sgeo_> `pastelogs Sgep
01:17:19 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.2696
01:17:21 <Bike> `pastelogs `pastelogs
01:17:22 <zzo38> Can you make another kind of pastelogs command which allow to specify start date/time?
01:17:33 <shachaf> zzo38: Are you on the moon?
01:17:43 <zzo38> No, I am still on the Earth.
01:17:52 <HackEgo> No output.
01:18:29 <shachaf> `quote 467
01:18:31 <HackEgo> 467) <itidus20> well, you have bested me <zzo38> itidus20: Yes.
01:18:51 <Sgeo_> Oh god my first conversation in here was about stuff related to PSOX?
01:19:02 <Bike> So?
01:19:13 <Sgeo_> elliott, go tell Bike about PSOX
01:19:26 <Bike> Oh, I thought you said POSIX.
01:19:31 <Bike> Also "beerkills"
01:19:32 <shachaf> `? qdbformat
01:19:34 <HackEgo> qdbformat is: <nick> message; * nick action; two spaces between messages; all elisions marked with [...] other than irrelevant intervening messages; for messages separated by elision, one space on each side, not two
01:19:36 <Phantom_Hoover> istr that the first time i came in here i left about half an hour later because elliott yelled at me for spamming up the channel with HackEgo
01:19:43 <Phantom_Hoover> ...oh god WHAT HAVE I BECOME
01:19:48 <monqy> my first conversation was being asked what my business was in here. thanks elliott
01:19:58 <elliott> monqy: i still don't know what your business here is
01:20:03 <Bike> The first time I came in here was the first time that I came in here.
01:20:06 <Sgeo_> Bike, I was a very anti-alcohol person
01:20:09 <shachaf> wait monqy is here for business?
01:20:14 <Bike> Sgeo_: lol.
01:20:18 <Taneb> 677 is a CAD quote, I'm sure
01:20:19 <shachaf> i always thought it was pleasure........
01:20:38 <Sgeo_> Taneb, I'm sure it's a quote from something
01:20:40 <shachaf> monqy: what is your business here
01:21:01 <Taneb> Anyway, I need sleep
01:21:33 <shachaf> `quote 860
01:21:34 <HackEgo> 860) <kmc> i would subscribe to @zzo38_ebooks <zzo38> kmc: I have no ebooks which can subscribe to
01:21:35 <monqy> `quote 677
01:21:36 <HackEgo> 677) <zzo38> When you die in Canada, you die in real life.
01:21:53 <shachaf> imo 677 should be deleted
01:21:55 <elliott> thats an xkcd reference
01:21:59 <elliott> it stays because zzo38 said it
01:22:08 <shachaf> zzo38 said a lot of things
01:22:14 <Sgeo_> 2005-10-31.txt:23:58:29: <GregorR> And now, for an interpretive piece I like to call "Sgep"
01:22:14 <Sgeo_> 2005-10-31.txt:23:58:33: <GregorR> <Sgep> Hi!
01:22:14 <Sgeo_> 2005-10-31.txt:23:58:39: <GregorR> <Sgep> brb
01:22:14 <Sgeo_> 2005-10-31.txt:23:58:47: <GregorR> <Sgep> Back.
01:22:14 <Sgeo_> 2005-10-31.txt:23:58:57: <GregorR> <Sgep> Got to go, see you later.
01:22:16 <shachaf> we can't addquote every single thing zzo38 says
01:22:17 <Sgeo_> 2005-10-31.txt:23:59:02: <GregorR> * Sgep has left freenode ()
01:22:25 <zzo38> Are you sure it is xkcd? I read it elsewhere
01:22:38 <elliott> at least xkcd did it once
01:22:43 <elliott> maybe that was a reference but if it is i don't know what it was referencing
01:22:48 <zzo38> shachaf: Correct; that would make the quotation file too large; there are logs for that.
01:23:12 <elliott> http://xkcd.com/180/
01:23:21 <elliott> well i guess its a matrix reference
01:23:27 <zzo38> However, I don't want deleting from the quotation file (whether it is mine or elsewise) (other than ones just written in error and should be deleted due to that); one thing it mess up the numbering but there are other problem too
01:23:27 <elliott> but the matrix isn't canada (afaik)
01:23:31 <Taneb> In CAD, Ethan did go to Canada at one point
01:23:40 <monqy> did he die in canada
01:23:46 <elliott> taneb why do you know things about cad
01:23:47 <Taneb> I do not believe so
01:23:56 <Taneb> elliott, I have a dark and shady past
01:24:04 <elliott> agreed
01:24:13 <Phantom_Hoover> you can learn quite a lot about cad just from reading people mocking it
01:24:25 <monqy> i know things about cad for the reason Phantom_Hoover notes
01:24:25 <Taneb> I read quite a bit of CAD
01:24:38 <monqy> i've also watched the cad cartoons because they're awful
01:24:39 <Taneb> Up until the robot guy went on a quest to find something
01:24:41 <Bike> Will I learn things from watching people talk about learning about it from reading mockeries?
01:24:45 <elliott> tanebs knowledged seemed a bit `first hand'
01:24:46 <Taneb> A soul I think
01:24:48 <Phantom_Hoover> don't worry Taneb we all did dumb things in our past
01:24:48 <elliott> *knowledghdehek
01:24:55 <Phantom_Hoover> for instance elliott started programming with php
01:24:57 <elliott> Phantom_Hoover: did you ever make a bf derivative
01:25:07 <monqy> im happy to have never read cad
01:25:08 <elliott> thats not strictly true i started programming by copying basic programs from a book into a computer (badly)
01:25:10 <Phantom_Hoover> no but i wrote a godawful interpreter once
01:25:18 <elliott> then i forgot about programming until i was 8
01:25:21 <elliott> and then came the php
01:25:29 <zzo38> You add quote if, that is what you like it particularly enough to add. It is no point adding everything which result in being the same as the full logs; read the full log instead if you want!
01:25:42 <elliott> life tip: don't start programming in php at 8 yrs of age
01:26:02 <Taneb> Start in Visual Basic at 12
01:26:05 <Taneb> It worked for me
01:26:06 <Taneb> (tm)
01:26:20 <Bike> I wonder if that's actually trademarked...
01:26:50 <elliott> i found visual basic too complicated
01:26:50 <Phantom_Hoover> i started with pascal
01:26:57 <Phantom_Hoover> that counts as child abuse right
01:27:03 <zzo38> Actually I do not think such things really are such problem. Sure it may not be very good programming languages, but, you can write a good program, regardless what one, and then learn other programming languages maybe is you liked better
01:27:34 <Bike> "It Worked For Me: Life Lessons from Colin Powell"
01:28:03 <Sgeo_> Can I continue to blame my inability to write GUIs on having learned Visual Basic when I was young?
01:28:08 <elliott> monqy: when did you / what language did you start programming with
01:28:25 <shachaf> what's wrong with php
01:28:30 <Phantom_Hoover> incidentally, apparently colin powell's name is pronounced 'cohlan'
01:28:34 <Phantom_Hoover> this is stupid, why does he do that
01:28:40 <Taneb> shachaf, it's an acronym
01:28:58 <shachaf> does it stand for PHP: hi Phantom_Hoover
01:29:04 <zzo38> Phantom_Hoover: He doesn't want to be confused by other people having the same name, maybe
01:30:03 <Sgeo_> I wonder if my life would have taken a different path if I never shattered that ActiveX for Dummies CD when I was a kid...
01:30:18 <Sgeo_> (by accident)
01:30:19 <monqy> elliott: the details are kind of muddy but sometime around 8 with some combination of logo, calculator basic, and flowcharts (which were used to program the microcontrollers)
01:30:48 <Sgeo_> Would I have grown up to be a Windows lover, relied on IDEs for those... ID things that ActiveX uses?
01:30:59 <monqy> and also some other things like uhhhh
01:31:01 <Sgeo_> Would I be a better programmer because of more practice, even with horrible tools?
01:31:02 <monqy> some other things
01:31:14 <Bike> this is a really boring alternate history i must say
01:31:49 -!- Taneb has quit (Quit: Goodnight).
01:32:09 <kmc> i don't like the IDEs = horrible tools implication
01:32:20 <kmc> i'm sure whatever was included with ActiveX for Dummies was horrible though
01:32:29 <kmc> since ActiveX is
01:32:43 <Sgeo_> By horrible tools I meant VBScript. And reliance on a language+environment where I needed the IDE in order to give me opaque blobs of information that need to go in the code
01:33:10 <Sgeo_> (The CLSID thing I think)
01:38:21 -!- augur has quit (Remote host closed the connection).
01:39:34 <shachaf> whoa, dude, this web page uses VRML
01:41:04 <kmc> that's a blast from the past
01:41:44 <shachaf> http://www.j-paine.org/scratch/wc_2013_2_17_1_37_5_368.html
01:41:49 <shachaf> I guess it doesn't actually "use" it.
01:41:53 <shachaf> But it generates VRML files?
01:41:57 <copumpkin> whoa
01:42:02 <copumpkin> VRML is awesomesauce
01:42:39 <kmc> i remember a site that had a VRML model of a wienerschnitzel
01:42:54 <kmc> and when you clicked it would disappear and a voice would say "mmmm yummy schnitzel"
01:43:08 <copumpkin> lol
01:43:13 <copumpkin> kmc: what's the etymology of miuaf btw?
01:44:23 -!- DHeadshot has joined.
01:45:20 <kmc> initials of the name of my blog
01:45:23 <kmc> i'm bad at naming things
01:45:42 <kmc> copumpkin retweeted me, now a bunch of iPhone jailbreaking enthusiasts can see my halfbaked remarks :)
01:45:47 <copumpkin> lol
01:46:15 <copumpkin> need to get one of the real jailbreakers to retweet you
01:46:17 <copumpkin> so you can get way more
01:46:24 <elliott> them iphone jailbreaking people must be baffled by their celebrities' quirks
01:46:28 <elliott> "that haskell guy" "that nomic guy"
01:46:30 <copumpkin> a couple of them have more than 400k followers
01:46:32 <copumpkin> which is crazy
01:46:34 <shachaf> copumpkin retweeted me once
01:46:39 <elliott> comex: ps hi
01:46:44 <copumpkin> pfft
01:46:45 <shachaf> I didn't even tweet anything. :-(
01:46:51 <copumpkin> comex is small fish compared to pod2g and MuscleNerd
01:46:52 <shachaf> Doesn't stop copumpkin.
01:46:57 * copumpkin shakes his head at comex
01:47:05 <copumpkin> a measly 200k
01:47:21 <copumpkin> shachaf: muahahha
01:47:57 <kmc> what's saurik's quirk
01:50:10 <elliott> unfortunately we have exhausted the space of iphone jailbreaky people i know
01:50:18 <elliott> so you will just have to wonder
01:50:19 <elliott> forever
01:50:22 <elliott> i hope you can handle it
01:50:48 <copumpkin> saurik's pretty big
01:50:53 <copumpkin> still not as big as the other two
01:51:01 <copumpkin> fucking celebrities
01:51:38 <shachaf> I haven't heard of either of them.
01:51:42 <shachaf> I've heard of copumpkin, though!
01:52:12 <elliott> copumpkin is the celebrity of our hearts & that's all that matters
01:53:31 <shachaf> copumpkin: So Haskell doesn't have pullbacks?
01:53:37 <shachaf> Does Agda have them?
01:54:01 <copumpkin> yep
01:54:25 <shachaf> Yep to both?
01:55:05 <Sgeo_> Someone mentioned VRML and I wasn't paying attention?
01:55:07 * Sgeo_ sads
01:55:08 <copumpkin> yeah, haskell doesn't have pullbacks and agda does
01:55:10 <Sgeo_> Also, pullbacks?
01:55:32 <shachaf> OK, that makes sense.
01:55:42 <shachaf> Because you need a type that expresses things like f(a)=g(b)
01:55:46 <copumpkin> yeah
01:55:52 <Sgeo_> What's a pullback?
01:55:54 -!- nooga has quit (Ping timeout: 264 seconds).
01:55:55 <copumpkin> you can sort of do it at the type level
01:56:12 <copumpkin> but that doesn't really count
01:56:18 <copumpkin> Sgeo_: it's sort of like a fancier product
01:56:21 <shachaf> elliott: You're right, we should abandon Haskell for all the category things.
01:56:25 <shachaf> It doesn't even have pullbacks. :-(
01:56:37 <elliott> Sgeo_: it's the limit of the diagram X -> Z <- Y
01:56:49 <shachaf> I guess it doesn't have equalizers either.
01:56:53 <Sgeo_> ..that means nothing to me :(
01:57:06 <Sgeo_> To me product means tuple
01:57:10 <copumpkin> yeah, that's the one
01:57:15 <copumpkin> shachaf: and no, it doesn't
01:57:25 <coppro> Sgeo_: fail
01:57:29 <shachaf> Sgeo_: Don't worry, elliott is just trying to be intimidating.
01:57:33 <copumpkin> Sgeo_: do you know SQL joins?
01:57:40 <shachaf> Sgeo_: 24 hours ago he didn't know what limits were either!
01:57:56 <copumpkin> I think those are the most "down-to-earth" notion of pullbacks in common usage
01:58:02 <Sgeo_> shachaf, I know what a limit is, just not what a diagram is.
01:58:13 <shachaf> Sgeo_: It's a different sort of limit.
01:58:18 <elliott> this is probably a different kind of limit to the kind you're thinking of
01:58:19 <Sgeo_> Figured
01:58:26 <copumpkin> this is not the limit you are looking for
01:58:32 <shachaf> Hopefully http://flockdraw.com/upload/8kr07f6lb00s44k80c4.png will make things clearer!
01:58:46 <copumpkin> shachaf: beautiful
01:58:46 <shachaf> (It doesn't.)
01:59:09 <elliott> shachaf: imo show the other one that has my drawing talent too
01:59:14 <copumpkin> shachaf: who drew that?
01:59:16 <shachaf> Which other one?
01:59:24 <shachaf> copumpkin: Me, except for the black part.
01:59:25 <elliott> the other one
01:59:27 <coppro> bore
01:59:48 <elliott> shachaf: http://flockdraw.com/upload/11rq0ta2ee1c8cog8c.png that one
02:00:00 <shachaf> Oh, sure.
02:00:10 <shachaf> That's a product expressed as a limit.
02:00:37 <copumpkin> shachaf: there, 24k iphone fanboys saw your artwork
02:00:43 <copumpkin> well, maybe not
02:00:59 <shachaf> help
02:01:02 <elliott> copumpkin: wow I feel discriminated against
02:01:07 <copumpkin> why?
02:01:16 <elliott> my work is being unfairly overlooked!!
02:01:26 <copumpkin> you aren't on twitter! or are you?
02:01:29 <elliott> that is true
02:01:35 <elliott> but i do draw bad diagrams with shachaf
02:01:47 <Sgeo_> `slist
02:01:48 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
02:01:49 <elliott> it's ok he gets all the credit
02:02:00 <elliott> that is but the place I am in
02:02:02 <Sgeo_> uh, or not
02:02:15 <elliott> shachaf: I like how you can't tell the V is a V
02:02:22 <elliott> or the H is a H
02:02:29 <shachaf> elliott: As opposed to a U?
02:02:31 <Sgeo_> False alarm. Or maybe Hussie changed something
02:02:38 <shachaf> It's actually supposed to be U
02:03:20 <shachaf> Darin Morrison (@darinmorrison) is now following you on Twitter!
02:03:48 <elliott> I hope you're paying copumpkin for these valuable followers
02:04:01 <shachaf> copumpkin should pay me for making my email notification thing beep.
02:06:18 <shachaf> Anyway the explanation worked.
02:09:47 <Sgeo_> `slist for real
02:09:48 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
02:12:38 <copumpkin> lol
02:12:48 <coppro> professional
02:12:53 <coppro> why is it an s list?
02:13:37 <Bike> Becaue the `list is mysterious and fickle.
02:14:47 <shachaf> s is for stupid
02:16:43 <Phantom_Hoover> slist?
02:16:57 <Phantom_Hoover> it looks like the homestuck list but...
02:16:57 <monqy> the s is for stupid
02:17:01 <Sgeo_> Phantom_Hoover, it is
02:17:07 <Phantom_Hoover> `list
02:17:14 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett
02:17:17 <Bike> No you fool!
02:17:21 <Sgeo_> `list
02:17:22 <shachaf> `rm bin/list
02:17:27 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover
02:17:28 <Bike> You know not what you oh there it goes then.
02:17:29 <HackEgo> No output.
02:17:41 <Phantom_Hoover> `revert
02:17:44 <HackEgo> Done.
02:18:00 <Sgeo_> Maybe someone can do something that blocks shachaf from being added?
02:18:07 <shachaf> Sounds good to me.
02:18:16 <elliott> maybe shachaf can stop doing rm bin/list all the time
02:18:20 <monqy> why should shachaf get special treatment
02:18:21 <Bike> Or shachaf could just not run it?
02:18:26 <shachaf> Bike: I've never run it.
02:18:39 <Bike> It was rather rude for you to be put on the list then.
02:18:44 <shachaf> I agree.
02:18:45 <monqy> what if i want to be special too
02:18:54 <shachaf> monqy: you're already maximally special
02:18:54 <Bike> So just find that person and eat them.
02:18:57 <Bike> Problem solved.
02:18:57 <Sgeo_> `run sed -i s/ shachaf// bin/list
02:18:59 <HackEgo> sed: -e expression #1, char 2: unterminated `s' command
02:19:07 <shachaf> monqy: btw did that diagram clear things up
02:19:08 <elliott> shachaf is on the list according to the bin/list program
02:19:10 <Sgeo_> I don't actually know how to sed
02:19:14 <monqy> shachaf: clear what up
02:19:16 <elliott> by his own deliberate act
02:19:24 <shachaf> Sgeo_: I think this is a matter of not knowing how to bash.
02:19:28 <Phantom_Hoover> `run sed -ie "s/ shachaf//" bin/list
02:19:31 <HackEgo> No output.
02:19:34 <shachaf> thanks, Phantom_Hoover
02:19:39 <Sgeo_> `list
02:19:42 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover
02:19:52 <monqy> um im upset shachaf isnt on the list
02:19:59 <monqy> if i whine enough can shachaf get put back on it
02:20:05 <shachaf> no monqy
02:20:10 <shachaf> you're "too mature to whine"
02:20:13 <monqy> `rm bin/list
02:20:14 <elliott> ^echo `revert
02:20:14 <fungot> `revert `revert
02:20:15 <monqy> look at me go
02:20:16 <Bike> You're hypothetically very rude, Monqy.
02:20:17 <HackEgo> No output.
02:20:18 <HackEgo> abort: unknown revision '`revert'!
02:20:27 <Phantom_Hoover> `revert
02:20:29 <Phantom_Hoover> `list
02:20:29 <HackEgo> Done.
02:20:32 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover
02:20:58 <kmc> maybe presentation slides need to exist in two versions
02:21:06 <kmc> the version with all the internet meme shit to keep the audience's attention
02:21:12 <kmc> and the version you post online with just the content
02:21:23 <monqy> how about presentation slides just dont contain the internet meme shit at all
02:21:24 <Bike> Oh I thought you were going to say and the version with cuttlefish.
02:21:26 <elliott> `revert 2154
02:21:27 <HackEgo> Done.
02:21:30 <monqy> i hate it when that stuff happens
02:21:38 <kmc> i know i can't pay attention for more than 3 seconds without an advice animal of some kind
02:21:51 <Bike> Is there an advice cuttlefish?
02:22:04 <shachaf> `run cat bin/list
02:22:05 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover
02:22:10 <shachaf> elliott: Please stop being annoying.
02:22:14 <shachaf> `revert
02:22:16 <HackEgo> Done.
02:22:18 <monqy> imo you stop first
02:22:23 <elliott> `revert
02:22:25 <HackEgo> Done.
02:22:31 <elliott> maybe if you start doing your edits with less than a sledgehammer
02:22:41 <Bike> Is it possible that this channel exists for people to irritate each other over pointless things for no reason?
02:22:42 <Phantom_Hoover> would you people either stop bickering or fill me in on the juicy details
02:22:54 <elliott> kind of ridiculous that you just wipe out files because of a tantrum
02:23:02 <Phantom_Hoover> wait
02:23:08 <Phantom_Hoover> didn't elliott or monqy delete bin/list too
02:23:14 <monqy> Phantom_Hoover: there's a running joke where shachaf whines about this
02:23:16 <Sgeo_> monqy did as a joke
02:23:22 <Bike> http://www.quickmeme.com/meme/3pbhkr/ I suspect this is dumb.
02:23:27 * Sgeo_ sides with shachaf on this
02:23:46 <Bike> There are no sides. We are he as she is he and we are all together.
02:23:48 <Phantom_Hoover> and so the lines were drawn for the Shachaf War
02:24:02 <Bike> And when I say "she" I mean noone.
02:24:53 <Bike> None of the cuttlefish I'm seeing on this meme site (why is there such a thing?) are very funny, but they are cute.
02:26:20 <coppro> cuttlefish? why?
02:26:39 <Bike> Because they're cute. And at the head of the list.
02:27:37 <Phantom_Hoover> i feel like humanity should set cuttlefish up as our inheritors somehow
02:27:56 <Phantom_Hoover> with, idk, strategically-placed caches of cuttlefish-applicable technology
02:28:53 <Bike> They'd probably have to have significantly evolved morphology to use technology...
02:29:00 <Sgeo_> Hey, are Haskell records ever going to be fixed?
02:29:13 <coppro> no. you can only fix functions
02:30:44 <monqy> :-)
02:30:54 <elliott> Sgeo_: http://lens.github.com/
02:31:20 * Sgeo_ goes to watch video
02:31:33 <Sgeo_> Ok, it's long
02:31:33 <Sgeo_> hmm
02:31:35 <Phantom_Hoover> Bike, er that's why i said 'cuttlefish-applicable'
02:32:00 <Bike> I mean, we'd have to guess at what morphology they'd have in order to operate anything we gave them.
02:32:05 <elliott> its not that long
02:32:07 <kmc> Bike: i lolled
02:32:19 <Bike> These are important considerations kmc.
02:32:28 <Sgeo_> Maybe I'll read the tutorial instead
02:32:51 <Bike> Building something that could continue being usable milllions of years from now is also probably near impossible.
02:33:14 <Phantom_Hoover> i feel that designing technology for present cuttlefish is a task only the blinkeredly myopic would call 'impossible'
02:34:04 <elliott> can't we just evolve into cuttlefish
02:34:10 <Bike> That's a good word.
02:34:27 <elliott> which
02:34:31 <elliott> was it "we"
02:34:34 <Phantom_Hoover> elliott, no! we'd have to displace the cuttlefish then
02:34:48 <Phantom_Hoover> that wouldn't be fair unless we let them have something in return
02:35:19 <Bike> Blinkeredly.
02:35:53 <zzo38> Phantom_Hoover: I wouldn't call it 'impossible' but it might be difficult.
02:39:12 <Bike> All I'm saying is cuttlefish are notoriously handfree.
02:39:43 <zzo38> People sometimes use handsfree telephones too, though.
02:39:59 <Sgeo_> Why does everyone like cuttlefish so much?
02:40:29 <Phantom_Hoover> Bike, yes, an important challenge is overcoming handocentric human design
02:40:29 <Bike> They're cute, intelligent, and have interesting camouflage behavior, probably.
02:40:47 <Bike> Another good word.
02:41:04 <Bike> "manocentric" says my internal ignorant pedant, though.
02:41:26 <elliott> "manocentric" just sounds like a really silly term for sexism
02:41:46 <Bike> It does.
02:41:54 <Phantom_Hoover> that would be virocentric
02:42:05 <Bike> That, along with "centric" and "mano-" probably being from different languages, is why my internal pedant is such a dummy.
02:42:12 <Phantom_Hoover> which sounds like a criticism of
02:42:18 <Phantom_Hoover> something
02:42:25 <elliott> viros
02:42:40 <Bike> They can't perceive color, but do perceive polarization. That might have interesting implications.
02:43:08 <Phantom_Hoover> 3d movies are right out
02:43:33 <Phantom_Hoover> lcds are much easier though
02:43:40 <kmc> cuttlefish can't perceive color?
02:43:41 <quintopia> you can do a wire-crossing in the plane with three xors right? is there a small wire-crossing circuit that does not use xor? (by small i mean less than 10 gates)
02:43:59 <kmc> but their camoflauge is color-sensitive isn't it
02:44:14 <Phantom_Hoover> things that want to eat cuttlefish can, i guess
02:44:19 <kmc> not sure i know how we're deciding what they perceive
02:44:32 <Phantom_Hoover> ...but then how do they know what colour to become
02:44:40 <zzo38> It may be done using glasses which have a picture for each eye you can then make them not only separate colors but also separate polarization, and so on, just so you know
02:44:46 <Phantom_Hoover> kmc, well you can pick apart the eye itself i guess
02:44:49 <zzo38> Phantom_Hoover: By instinct, I guess?
02:44:58 <kmc> 'The statement about color blindness is due to a study in 'Sepia officinalis' that found no difference in camouflage in response to differences in color (see this paper). I think there are a number of holes that could be poked in the conclusions of that study, and it was only conducted on one species, so I think the statement that they are colorblind is rather premature.'
02:45:00 <quintopia> zzo38: help
02:45:26 <kmc> anyway they are smart enough to learn simple directional cues from their environment
02:45:30 <Phantom_Hoover> http://hermes.mbl.edu/mrc/hanlon/pdfs/mathger_et_al_visres_2006.pdf
02:45:40 <kmc> so you cuold test whether they can perceive color in a behavioral sense
02:46:04 <zzo38> quintopia: Help with what?
02:46:22 <Bike> I forget, can they be clasically conditioned? The usual protocol for pigeons involves colored lights
02:46:24 <quintopia> zzo38: the question i asked above
02:46:28 <Phantom_Hoover> so apparently they don't know what colour they're camoflaging themselves as
02:46:29 <kmc> hm
02:46:31 <Phantom_Hoover> they just sort of guess
02:46:43 <kmc> that says they have only one type of light receptor
02:46:47 <kmc> so i guess that's pretty definitive
02:46:52 <Phantom_Hoover> "They reported that cuttlefish
02:46:52 <Phantom_Hoover> produced a bold coarse mottled pattern when placed
02:46:52 <Phantom_Hoover> on red and white gravel, presumably in an attempt to
02:46:52 <Phantom_Hoover> match the coarse patterning of the gravel, whereas
02:46:52 <Phantom_Hoover> the animals showed an overall uniform pattern on
02:46:53 <Phantom_Hoover> blue and yellow gravel,"
02:47:53 <Phantom_Hoover> there are even pictures of it on page 1750
02:47:58 <kmc> how carefully did they establish that the two patterns were lightness equivalent to a cuttlefish
02:48:10 <zzo38> Now you have "fi" ligatures
02:48:18 <kmc> fuck i've been thinking about human colorspaces all day and i can't even begin to fit cuttlefish into that picture
02:48:21 <zzo38> quintopia: I don't know the answer
02:49:15 <Phantom_Hoover> kmc, well they demonstrated that it used the same patterns for blue and yellow squares, uniform blue and uniform yellow
02:49:32 <Bike> kmc: Do we even know much about nonhuman colorspaces? Like in something easier than cuttlefish, like vertebrates.
02:49:34 <Phantom_Hoover> and a different one for contrasting squares
02:49:55 <kmc> i don't know
02:50:47 <Phantom_Hoover> well i'm assuming someone's calculated colour spaces for the colourblind at some point so you can probably work it out for some mammals
02:51:09 <kmc> wikipedia says dogs have dichromatic color vision similar to deuteranopia in humans
02:52:27 <kmc> "Dogs have a temporal resolution of between 60 and 70 Hz, which explains why many dogs struggle to watch television"
02:53:02 <Phantom_Hoover> dogs struggling to watch television is an immensely entertaining concept for some reason
02:53:07 <kmc> yes
02:53:08 <Bike> yeah apparently a lot of animal experiments involve specially calibrated TVs
02:53:14 <kmc> i think this is my new favorite sentence on wikipedia
02:53:48 <Bike> What was the previous one?
02:54:04 <kmc> "Hagfish are usually not eaten owing to their repugnant looks, as well as their viscosity and unpleasant habits."
02:54:36 <Bike> pretty That's a sentence good.
02:54:37 <Phantom_Hoover> what about "Fukutsuru died in 2005, but his frozen sperm lived on for peoples benefit;"
02:54:45 <Bike> That's a clause.
02:54:50 <kmc> that's pretty solid [pun intended]
02:57:33 <kmc> "Due to the lack of required fare, the Staten Island Railway system is popular among destitute vagrants and heroin addicts."
02:57:42 <kmc> this is only funny because it was the caption on a totally normal photo of a SIR train
02:58:03 <Bike> That seems kind of weird, what was the article about, SIR?
02:58:19 <kmc> it was the file description on http://en.wikipedia.org/wiki/File:SIR_448_at_Great_Kills_Station.jpg
02:58:26 <kmc> basically just vandalism though
02:58:37 <kmc> it's a true enough statement but not descriptive of the photo
02:58:39 <Bike> figures
02:58:56 <kmc> hagfish are one of those weird not-quite-vertebrates
02:59:13 <kmc> "They are the only known living animals that have a skull but not a vertebral column."
02:59:32 <kmc> also they do incredible slimy tricks
02:59:49 <kmc> https://www.youtube.com/watch?v=RrPvMMkQkk0
03:00:14 <Jafet> Are there known undead animals with skulls but not vertebral columns
03:00:29 <Phantom_Hoover> "The hagfish is kept alive and irritated by rattling its container with a stick, prompting it to produce slime in large quantities. This slime is used in a similar manner as egg whites in various forms of cookery in the region."
03:00:30 <Phantom_Hoover> korea...
03:00:56 <kmc> produces a huge volume of slime, suffocating its enemies, then ties its body into a knot and pulls itself through the knot to clean the slime off itself
03:04:04 <Bike> Phantom_Hoover: Don't look up bile bears sometime.
03:05:11 <Phantom_Hoover> but bears are cute! so eating their bodily fluids isn't as weird
03:08:21 <Bike> Oh, I thought you were referring to the methods.
03:09:35 <Phantom_Hoover> i'm not especially outraged at people irritating a hagfish, no
03:12:54 -!- azaq23 has quit (Quit: Leaving.).
03:13:38 -!- Phantom_Hoover has quit (Remote host closed the connection).
03:16:29 <zzo38> Why?
03:25:41 -!- dessos has left.
03:25:47 -!- dessos has joined.
03:47:16 <hagb4rd> i have a special gift for you to make.. and i guess it is finally ready for it's first flight! an inertia-driven assembly of heartbreaking-space-pilot-adventure music i have collected over the years..please tell me if you feel sth is still missin in this great list..and enjoy hab4rds zauberschatzliste(tm)
03:47:19 <hagb4rd> --> http://www.youtube.com/user/zauberschatzkiste
03:47:23 <hagb4rd> <3e
03:48:48 <shachaf> So what's with the notation for a pullback?
03:55:03 <copumpkin> A x_C B
03:55:12 <copumpkin> that one?
03:55:14 <shachaf> Yes.
03:55:19 <shachaf> Why doesn't it mention f and g?
03:55:20 <copumpkin> it's what I was saying before
03:55:25 <copumpkin> think of it as a fancier product
03:55:49 <shachaf> Right, but f and g matter.
03:55:53 <shachaf> Where are they?
03:56:01 <shachaf> elliott was complaining about this yesterday.
03:56:33 <copumpkin> sure they matter
03:56:38 <copumpkin> not everything needs to exist in the "type" though
03:57:01 <shachaf> Then where does it exist?
03:57:03 <copumpkin> record Pullback (A B C : Set) : Set where field f : A -> C; g : B -> C
03:57:11 <kmc> nice, the UHDTV green primary is very close to a 532 nm green laser
03:57:18 <kmc> (ITU rec. 2020)
03:57:39 <kmc> resolution up to 7680 × 4320, framerate up to 120 fps
04:20:40 <zzo38> Do they need limits?
04:25:12 <kmc> well if you are designing equipment or software it's good to know what it will be expected to do
04:25:29 <kmc> consumers won't want to buy a "UHDTV" only to find out that all the stations broadcast in incompatible modes
04:26:41 <shachaf> kmc is an expert in ultra-high things
04:28:18 -!- augur_ has joined.
04:28:26 <zzo38> Well, that is true, that the equipment and station should specify what limit to use, but the protocol should not be limited in that way, and only limited in the cases of the two devices in this way that they should be *explicitly labeled* by what resolution/framerate is supported! I think that is better than just saying "UHDTV is up to" this and that.
04:28:45 <kmc> highchaf
04:29:52 <shachaf> trippingan
04:30:01 -!- TeruFSX has joined.
04:35:03 <zzo38> Actually this is first time which I use __attribute__((constructor)) and in this case it is useful
04:35:23 <shachaf> __attribute__((hi monqy))
04:35:46 <zzo38> Destructor does not seem as useful, but maybe in some case it is but I didn't know what it is.
04:36:25 <zzo38> Do you know?
04:36:33 <coppro> is hi monqy a running joke or something?
04:37:29 <shachaf> zzo38: What does it do?
04:38:04 <zzo38> shachaf: What does what do, the __attribute__((constructor)) command in C?
04:38:09 <zzo38> Is that what you meant?
04:38:15 <shachaf> I meant ((destructor)), but sure.
04:38:22 <shachaf> By C I guess you mean GCCC.
04:38:31 <zzo38> Yes I mean GCC
04:38:51 <zzo38> Constructor means the function is called when the program started, destructor is done in the opposite order when the program stopped.
04:39:16 <kmc> i used it for a return-to-libdl attack once
04:39:16 <Bike> coppro: I think most of this channel is running jokes.
04:39:56 <zzo38> I am using __attribute__((constructor)) to allow all of the modules that are compiled in to be identified to the main program.
04:41:31 <zzo38> The function can be declared static but it still requires a name.
04:43:08 <kmc> do destructors of dlopen'd things get called when main returns? what about on exit()?
04:43:25 <zzo38> kmc: I don't know.
04:48:02 * Sgeo_ vaguely remembers a suggestion that main in Haskell should be required to have a type of IO a, I think
04:48:16 <Sgeo_> That either it infinitely loops or explicitly quits
04:48:23 <shachaf> main :: Fix IO
04:48:32 <Sgeo_> I don't remember if the type to enforce that is IO a, or something similar
04:48:53 <Sgeo_> Although I guess it's really unenforcable, main = undefined
04:49:27 <shachaf> That counts as "infinitely loops".
04:50:32 <Jafet> Haskell computes that it is uncomputable
04:50:54 <Jafet> GСССР
04:52:05 <coppro> Sgeo_: what is the other option?
04:52:19 <coppro> besides terminating and not terminating
04:52:29 <Sgeo_> terminating without being explicit about it
04:52:36 <Sgeo_> main = putStrLn "Hello world"
04:52:50 <coppro> oh
04:52:53 <coppro> fuck that noise
04:53:17 <Sgeo_> Hello world would become main = putStrLn "Hello world" >> exitSuccess
04:53:18 <shachaf> Sgeo_: Sounds like the sort of thing Ada would do.
04:53:20 <Sgeo_> Or something like that
04:54:13 <Jafet> main = return undefined
05:01:07 <kmc> hm why have i not thought about Fix IO before
05:04:57 <tswett> Sgeo_: twelve hours ago, I repealed a rule in Agora.
05:05:08 <tswett> Loosely speaking.
05:05:26 <shachaf> Is Fix IO particularly interesting?
05:05:33 <shachaf> FreeT f IO is probably more useful, I think.
05:05:43 <shachaf> s/,.*/./
05:06:28 -!- tswett has set topic: PACZKI (pronounced like "punshki") IS ENOUGH | http://codu.org/logs/_esoteric/.
05:07:00 <shachaf> E.g. newtype Stream m a b = Stream { runStream :: m (Either b (a, Stream m a b)) }
05:07:08 <Sgeo_> tswett, wait, as in, got people to vote to repeal a rule, or as in did it unilaterally?
05:07:10 <shachaf> Well, if you used IO there, anyway.
05:08:06 <tswett> Murphy incorrectly resolved the proposal repealing it; he said that it had passed, but it had actually failed.
05:08:26 <tswett> I was aware of this, but I kept quiet. As far as I know, nobody else noticed.
05:08:39 <tswett> So the resolution self-ratified twelve hours ago.
05:08:58 <FreeFull> shachaf: I don't like the tuple there
05:09:04 <Sgeo_> Was it your proposal?
05:09:10 <tswett> No, I think Pavitra submitted it.
05:09:13 <Sgeo_> Was there a particular motive for you to keep quiet?
05:09:22 <tswett> It repealed Rule 2386 "Belligerence".
05:09:29 <Sgeo_> What was that rule about?
05:09:34 <Sgeo_> It's been a while since I Agoraed
05:09:50 <tswett> It described a little subgame that nobody but me (and woggle, a little bit) was playing.
05:10:01 <Sgeo_> Ah
05:10:13 * Sgeo_ is now curious as to what that subgame was like
05:10:13 <tswett> There was no particular motive for me to keep quiet about it; I just changed my mind and decided I'd rather it be repealed.
05:11:08 <coppro> but your argument appears correct
05:11:13 <tswett> Funny thing. The proposal said 'Repeal the rule titled "Belligerence"'. If it had said 'Repeal Rule 2386' instead, then the self-ratification would have been ineffective.
05:11:21 <coppro> which means that, indeed, the rule would never be repealed no matter what
05:12:00 <coppro> oh wait, never mind
05:12:04 <coppro> title, text, and/or power
05:12:04 <tswett> Ratification can't cause a rule change, unless the text, title, and/or power of the rule is mentioned in the document ratified.
05:12:05 <coppro> misread
05:13:57 <zzo38> Maybe what there should be in Haskell though would be to call a IO as if it is its own program so the program will continue after it exit and have its own exit code as the result
05:15:47 -!- SDr has quit (Ping timeout: 246 seconds).
05:17:40 -!- Arc_Koen has quit (Quit: Arc_Koen).
05:24:26 <tswett> Maybe what we ought to do is have a comonad for I/O (called OI, of course), and a type representing entire programs.
05:24:57 <tswett> The Prelude should then have a value universe :: OI Program, and then your program has to define a value main :: Program.
05:25:03 -!- ogrom has joined.
05:26:56 <Sgeo_> comonads still confuse me :(
05:27:04 <monqy> comonads are easy
05:27:17 <monqy> i love them so???????
05:27:22 <Sgeo_> Yes, I get they have an extract and no return
05:27:26 <tswett> Everything will work perfectly. getLine can have the type OI () -> String, and, uh...
05:27:49 <shachaf> monqy = cobeaky???????????????????????
05:27:58 <tswett> Sgeo_: you know how you can think of a monadic value as a computation running within a certain context?
05:28:06 <Sgeo_> Yes
05:28:11 <shachaf> oh boy it's bad comonad analogy time
05:28:16 <shachaf> a refreshing break from bad monad analogy time
05:28:17 <monqy> please dont
05:28:17 <tswett> A comonadic value is a computation *providing* a certain context.
05:28:58 <Sgeo_> So with a monadic value, you need to provide a context. With a comonadic value, there's a context built-in?
05:29:17 <tswett> Yeah, that sounds accurate.
05:29:49 <monqy> you know what's an easy comonad? env. you know reader? you know env.
05:30:09 <Sgeo_> I know reader.
05:30:22 <shachaf> monqy: you know Co? that's a good monad
05:30:27 <monqy> shachaf: ye
05:30:31 <shachaf> Co w a = forall r. w (a -> r) -> r
05:30:32 <tswett> Yeah, looks like Env e a is equivalent to (e, a).
05:30:34 <shachaf> Co Env = Reader
05:30:38 <zzo38> The environment comonad has the same Kleisli category as the reader monad.
05:30:40 <shachaf> Co Traced = Writer
05:30:42 <shachaf> Co Store = State
05:30:51 <zzo38> And those things with Co are working too.
05:30:55 <tswett> So the context here is just a value of type e.
05:31:26 <tswett> shachaf: don't tell me it's possible to write a constructor called Coco that works in the opposite direction.
05:31:30 <tswett> (I'm reasonably sure it's not.)
05:31:33 <Sgeo_> And extract pulls out a
05:31:35 <shachaf> I think it's not.
05:31:49 <shachaf> Hmm, tswett's monad and comonad analogies both don't make sense.
05:31:53 <kmc> cocoa-coated co-cones
05:32:04 <Sgeo_> Takes the value out of the context
05:32:09 <shachaf> kmc: There's such a thing as a cocone. :-(
05:32:13 <shachaf> Isn't it a bit ridiculous?
05:32:17 <Sgeo_> Hey, we should call taking quotes out of context extracting them!
05:32:25 <kmc> you mean they should call it a ne instead?
05:33:04 <zzo38> duplicate for trace comonad then means take two parameters which are combined using mappend, and extract for trace comonad means called the function with mempty, for one thing.
05:33:11 <Sgeo_> So, what's the co of bind, or whatever?
05:33:24 <zzo38> extend
05:33:25 <Sgeo_> I know there's an operation analogous to bind, but don't know what it is, or its type
05:33:32 <tswett> Unrelated stupid word game: take each important word and insert "amp" before the stressed vowel, and then stress the "amp".
05:33:52 <shachaf> • ⇄ • → •
05:33:54 <tswett> Hampaskell. Esotamperic. Mamponad.
05:33:55 <Sgeo_> vampowel?
05:33:56 <zzo38> With a monad you have return,bind,join, while with a comonad you have extract,extend,duplicate.
05:34:02 <kmc> &amp;
05:34:08 <zzo38> (fmap is the same for both, since they are both being functors)
05:34:10 <tswett> Ampampersand.
05:34:28 <monqy> Sgeo_:
05:34:30 <monqy> :t extend
05:34:31 <quintopia> extampend!
05:34:31 <lambdabot> Not in scope: `extend'
05:34:34 <monqy> what!!!!!
05:34:38 <shachaf> zzo38: What about a contravariant equivalent of Monad?
05:34:42 <tswett> Lampambdabot.
05:34:48 <monqy> does caleskell really not have comonad
05:34:52 <shachaf> zzo38: unjoin :: (p (p a) -> p a) -> p a
05:34:57 <zzo38> shachaf: That is difficult.
05:35:00 <monqy> :t (=>>)
05:35:01 <lambdabot> Not in scope: `=>>'
05:35:01 <lambdabot> Perhaps you meant one of these:
05:35:01 <lambdabot> `>>' (imported from Control.Monad.Writer),
05:35:03 <tswett> Sgampeo. Hampomestuck. Dampifficult.
05:35:06 <monqy> unbelievable
05:35:09 <shachaf> @ty Control.Comonad.extend
05:35:11 <lambdabot> Control.Comonad.Comonad w => (w a -> b) -> w a -> w b
05:35:12 * quintopia tries it with "vire"
05:35:13 <shachaf> hi
05:35:18 <monqy> shachaf: can you believe this
05:35:27 <shachaf> monqy: imo "unacceptable"
05:35:44 <Sgeo_> I think comonads also cannot have a universal-across-all-comonads operation that supplies a null context?
05:36:00 <Sgeo_> And that any such operation is specialized per comonad?
05:36:01 <tswett> Unacçampeptable.
05:36:15 <shachaf> I think tswett's analogies have confused Sgeo_ beyond redemption.
05:36:23 <tswett> Sgeo_: I think that sounds right.
05:36:27 <quintopia> redampemption
05:36:28 <shachaf> That's it. We'll have to throw you out and start with a new Sgeo.
05:36:29 <tswett> Given a value-with-context, you can remove the context.
05:36:46 <tswett> But given a plain old value, you can't generally create a context for it.
05:36:48 <Sgeo_> Ok, so can I get an explanation of extend?
05:37:06 <shachaf> extend f w = fmap f (duplicate w)
05:37:21 <Sgeo_> I said explanation not definition
05:37:35 <tswett> That's honestly a pretty decent way of "explaining" it.
05:37:39 <tswett> Then the question is just what duplicate does.
05:37:46 <tswett> It does not "create a copy of the context".
05:37:49 <zzo38> It is like a functor from the coKleisli category to the base category.
05:38:12 <zzo38> (Like how bind can be like a functor from the Kleisli category)
05:38:53 <tswett> duplicate x :: w (w a) is that value such that if you interact with the context, and then extract, and then interact with the context again, the result is the same as if you had just taken x and interacted with the context in both ways in sequence.
05:39:17 <shachaf> are you trying to be maximally confusing :'(
05:39:29 <tswett> So, you know that way of treating (->) Integer as a comonad?
05:39:36 <zzo38> Am I trying to be confusing?
05:39:40 <tswett> Where it's an infinite sequence that you're allowed to shift?
05:39:48 <zzo38> tswett: Maybe it should be ((->) (Sum Integer))?
05:40:05 <Sgeo_> Um, I'm somewhat aware of the view of a zipper as a comonad
05:40:27 <tswett> (shiftLeft 3 . extract . shiftRight 5 . duplicate) is equivalent to just (shiftLeft 2 . shiftRight 5). I think.
05:40:52 <shachaf> (e ->) is a comonad when e is a monoid.
05:41:01 <zzo38> Yes.
05:41:05 <tswett> Uhh. To (shiftLeft 3 . shiftRight 5).
05:41:25 <shachaf> monoids are equivalent to easy things in the category of love
05:41:30 <Sgeo_> So given a context you can wrap the whole thing in another context?
05:41:45 <tswett> Mm... not really.
05:42:03 <shachaf> Here, you should take this as your example of a comonad:
05:42:05 <tswett> I guess it's kinda like splitting the context into two pieces?
05:42:13 <shachaf> Store s a = (s, s -> a)
05:42:25 <tswett> All right.
05:42:46 <Sgeo_> I guess extract for that just feeds the s into s->a?
05:42:52 <tswett> Yup.
05:42:57 <zzo38> (The MonadPlus instance for Either should be define in that way too, using the monoid; either by (Free (Const x)) or by (CodensityAsk ((->) x)) gives you the MonadPlus instance for free, assuming the certain way which gives you MonadPlus of Free, and Plus of Const)
05:43:06 <tswett> So, a Store s a is... well, yeah. It's a (s, s -> a).
05:43:08 <zzo38> Sgeo_: Yes
05:43:17 <tswett> Store s (Store s a), then, is (s, s -> (s, s -> a)).
05:43:33 <Sgeo_> You could make a neutral context for that quite easily... but again, probably specific to Store
05:43:39 <shachaf> duplicate = fmap (return :: a -> State s a)
05:44:03 <tswett> I'm pretty sure that duplicate (c, f) = (c, \c' -> (c', f)).
05:44:15 <shachaf> That's what I said.
05:44:21 <tswett> Good.
05:44:29 * Sgeo_ finds tswett's easier to understand
05:44:39 <shachaf> tswett's has the problem that
05:44:46 <shachaf> duplicate (c, f) = (c, \c' -> (c, f))
05:44:49 <shachaf> Also type-checks
05:45:21 <shachaf> also adjunctions are the future????
05:45:57 <tswett> So if you have a Store s a, it's like it has an s, and it's about to apply a function to it, but you're allowed to play with the s and the function before it does so.
05:46:01 <tswett> (shachaf begins crying.)
05:46:27 <tswett> If you "duplicate" that, then you have the same thing, except now you're allowed to do that twice.
05:48:16 <zzo38> (Store x) is also being like (Density (Const x))
05:48:28 <shachaf> Yes.
05:52:50 <Sgeo_> Why wouldn't I be allowed to do it twice without duplicating it?
05:56:02 <shachaf> the comonad police Sgeo_
05:57:50 * Sgeo_ vaguely imagines a Squeak-like environment for Haskell
05:57:57 <Sgeo_> Seems... weird to think about, but
05:58:43 <Bike> late binding and static typing, what could possibly go wrong
06:00:09 <tswett> Sgeo_: you would be allowed to do that.
06:00:20 <tswett> But now if you have a function of the type (w a -> b), you can use it without losing access to the context.
06:00:53 <tswett> Or... something like that.
06:06:27 <Sgeo_> Is there a comonad corresponding to the Cont monad?
06:06:43 <shachaf> There's a comonad in Hask^op :-)
06:06:49 <tswett> If I remember correctly, the... yeah, that.
06:06:50 <Sgeo_> If the Cont monad is the mother of all monads, is the comonad for that the son of all comonads?
06:07:01 <shachaf> That would probably be Store
06:07:06 <tswett> There is such a comonad, but it's in the wrong category.
06:07:11 <shachaf> Store is related to Density in the same way that Cont is related to Codensity
06:07:22 <Sgeo_> I don't have the faintest idea what Density is
06:07:28 <shachaf> (As zzo38 pointed out.)
06:07:38 <shachaf> Density is the mother of all comonads. Or something.
06:07:44 <tswett> Hm. Is every monad in a category also a comonad in its opposite category?
06:07:53 <Sgeo_> AIEEEE
06:07:58 * Sgeo_ 's brain hurts\
06:08:07 <shachaf> tswett: I think that's the definition of a comonad. :-)
06:09:40 <tswett> Do the state comonads in Hask^op have anything in particular to do with the store monads in Hask?
06:11:36 -!- TeruFSX has quit (Ping timeout: 252 seconds).
06:18:13 -!- TeruFSX has joined.
06:38:49 -!- Nisstyre-laptop has quit (Quit: Leaving).
06:46:24 <monqy> !!!!!
06:46:28 <monqy> `smlist
06:46:33 <HackEgo> shachaf monqy elliott
06:46:40 <monqy> “important„
06:46:58 <shachaf> monqy: thx monqy++
06:48:39 <shachaf> monqy: can we put spoilers in here
06:48:58 <shachaf> because in the end it turns out
06:55:21 -!- Nisstyre-laptop has joined.
07:12:34 -!- TeruFSX has quit (Ping timeout: 256 seconds).
07:15:29 <Sgeo_> I should try to sleep some get
07:27:46 <monqy> ok
08:08:17 -!- epicmonkey has joined.
08:11:44 <zzo38> Cont monad is not really mother of all monads; there is Codensity monad, and (Codensity (Const x)) makes (Cont x).
08:15:35 <shachaf> Yes, Codensity is the true MOAM.
08:26:15 -!- augur_ has quit (Remote host closed the connection).
08:26:37 -!- augur has joined.
08:30:25 <Sgeo_> `slist
08:30:28 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
08:32:13 -!- oerjan has joined.
08:38:22 -!- Halite has joined.
08:39:23 <Halite> > let doppleganger x = reverse x;
08:39:25 <lambdabot> not an expression: `let doppleganger x = reverse x;'
08:39:39 <Halite> > let doppleganger x = reverse x in doppleganger "Halite"
08:39:41 <lambdabot> "etilaH"
08:40:21 <oerjan> despite what people lambdabot may have told you yesterday, lambdabot is not quite ghci. > only takes expressions, @let only takes a declaration
08:40:42 <oerjan> *-lambdabot
08:40:44 <Halite> I know that now, oerjan.
08:41:10 <Halite> I wish they added data, so I could make a Nickname type.
08:41:26 <oerjan> also :t and :k work like in ghci, but only in channel for some stupid reason (@type and @kind work in private to do the same)
08:41:34 <oerjan> yeah.
08:41:51 <oerjan> it's only recently that ghci itself got data working though
08:42:06 <Halite> I once attempted to make a Quantum Super-position type constructor.
08:42:41 <oerjan> (before you had to put that in a file)
08:45:09 <Halite> I'm still working on my Quantum type constructor. What I'd like is to be able to make SuperPosition x y and SuperPosition y x equivalent.
08:45:32 <Bike> does that actually have anything to do with quantum
08:47:10 <Halite> Bike, yes. A qubit (a Quantum Bit) can be 1 (true), 0 (false), or a super-position between 1 and 0 (SuperPosition x y).
08:47:32 <shachaf> hi Bike
08:47:34 <oerjan> i sense a disturbing lack of complex numbers hth
08:47:45 <Bike> Hi shachaf.
08:47:46 <shachaf> oerjan: did you see my diagram
08:47:53 <oerjan> shachaf: probably not
08:48:05 <Bike> Halite: qubits have more than three states.
08:48:16 <shachaf> oerjan: I guess you'll be logreading, though.
08:48:22 <Halite> Bike, what are them states
08:48:38 <Bike> the various possible superpositions of |0> and |1>.
08:48:45 <oerjan> i am, but slowly
08:48:53 <Halite> how many
08:49:06 <oerjan> uncountably many
08:49:55 <Bike> I'm a fan of (1/2)|0> + (sqrt(3)/2)|1>, myself. I think that's a pretty good state.
08:50:11 <zzo38> Did you consider the ones with complex numbers?
08:50:19 <oerjan> Bike: nah, not enough i's
08:50:39 <shachaf> oerjan: "i'm a fan of (1/2)|0> + (sqrt(3)/2)|1>, myself. i think that's a pretty good state." -- better?
08:50:53 * oerjan swats shachaf -----###
08:52:06 <zzo38> Did you consider entanglement?
08:52:10 <shachaf> 00:51 <hackagebot> hackage-proxy 0.1.0.0 - Provide a proxy for Hackage which modifies responses in some way. http://hackage.haskell.org/package/hackage-proxy-0.1.0.0 (MichaelSnoyman)
08:52:24 <Bike> What's a good one with i's?
08:52:35 <shachaf> kmc: You should submit a patch to insert malicious code on the fly.
08:53:08 <oerjan> hm
08:54:04 <Bike> Halite: also (1/2)|0> + (sqrt(3)/2)|1> isn't the same state as (sqrt(3)/2)|0> + (1/2)|1>, I'm not sure why you'd think that, and this has nothing to do with types.
08:54:14 <Bike> Night!
08:54:15 -!- Bike has quit (Quit: leaving).
08:54:39 <oerjan> (1/2)i|0> + (sqrt(2)i/2 - 1/2)|1> perhaps
08:55:34 <oerjan> @tell Bike (1/2)i|0> + (sqrt(2)i/2 - 1/2)|1> perhaps, also no fair leaving just after asking a question
08:55:34 <lambdabot> Consider it noted.
08:56:36 <zzo38> Maybe if you have multiple bits like sqrt(2)|0>|0> + sqrt(2)|1>|1> is that OK?
08:56:41 <Halite> everything computer-rendered (text, images, etc.) are all made of bits
08:57:14 <zzo38> Halite: I mean quantum bits
08:57:21 <Halite> if we change these bits to qubits, then we could have atleast one of the uncountably many superpositions
08:57:58 <zzo38> They will have to collapse once measured, though
08:58:17 <zzo38> (Although, you do not have to always measure in the same direction)
08:59:47 <Halite> of course, there are two superpositions in my type constructor relating to true-false booleans: true 0> and false 1>, then true 1> and false >0.
09:00:02 <Halite> s >0 0>
09:00:19 -!- nooodl has joined.
09:03:01 <zzo38> Do you even understand it? It just doesn't work that way.
09:06:24 <oerjan> @tell Phantom_Hoover sed -ie doesn't do what you think it does, the e is an argument to the -i
09:06:24 <lambdabot> Consider it noted.
09:06:41 <oerjan> `rm bin/liste
09:06:42 <HackEgo> rm: cannot remove `bin/liste': No such file or directory
09:07:38 <oerjan> `run which undo
09:07:40 <HackEgo> ​/hackenv/bin/undo
09:07:49 <oerjan> `cat bin/undo
09:07:50 <HackEgo> ​#!/bin/sh \ hg diff -c "$@" | patch -R
09:17:04 -!- carado has joined.
09:20:51 <mroman> If a FSM has access to another machine which produces completely random numbers
09:21:16 <FreeFull> flying spaghetti monster?
09:21:29 <mroman> That FSM is fed a program, that only terminates, if the random machine produces a certain sequence of numbers
09:21:35 <mroman> Finite state machine
09:21:58 <mroman> Is it a finite state machine if it has access to such a machine
09:21:59 <mroman> ?
09:23:36 <oerjan> @tell Vorpal <Vorpal> also my PS3 controller on my desk random came to life and blinked the 4 LEDS a couple of times <-- probably just the google cloud trying to print
09:23:36 <lambdabot> Consider it noted.
09:25:30 <oerjan> mroman: it would be nondeterministic, and nondeterministic FSMs are equivalent in power to deterministic ones. although that's not really a proof.
09:26:29 <oerjan> since it might not be the right sense of nondeterministic.
09:27:38 <mroman> But the FSM in combination with the random machine might as well have not finite state anymore?
09:28:02 <oerjan> but the random machine has _no_ state.
09:28:16 <mroman> Right.
09:28:24 <mroman> Not in the common sense.
09:28:26 <oerjan> what you get is a probabilistic FSM, i guess.
09:28:36 <mroman> (unless it were a PRNG machine)
09:28:54 <oerjan> which are pretty much what markov models use, right fungot?
09:28:54 <fungot> oerjan: that we told the power.
09:28:55 <mroman> but I'm going to assume that the random machine has no state other than the world it is in.
09:33:49 <mroman> That's a class of FSM where it is undecidable if it'll halt or not?
09:34:59 <oerjan> well given that it's probabilistic, you'd get a probability of it halting... but i would expect it's calculable
09:35:10 <mroman> Yes.
09:35:21 <mroman> Since it only has finite state it can't accept arbitarily large random numbers
09:35:26 <oerjan> so not really undecidable in a meaningful sense
09:35:32 <mroman> so there will be a calculable probabilty of halting.
09:36:17 <oerjan> in fact i'm pretty sure this can be calculated using eigenvalue methods based on perron-frobenius theory.
09:36:37 -!- carado has quit (Remote host closed the connection).
09:37:37 <oerjan> as in that new scoring method for bfjoust which i still don't think has been implemented.
09:37:56 <oerjan> hm or wait
09:38:15 <oerjan> it's a different problem. but still given by the same matrix.
09:38:53 -!- carado has joined.
09:39:38 <oerjan> oh hm no, it's really the same, it's just that the problem gives a state ("has found the substring") which you never leave once you enter it.
09:40:12 <oerjan> the only way you could avoid getting to that state is if the FSM has another set of states which you can never leave.
09:40:42 <oerjan> except that would not be a program to search for a substring. in fact if you search for a substring the probabiliy is obviously 1, really :P
09:41:36 <oerjan> but the more complicated problem of determining the probability of the FSM entering a given state for an arbitrary program would be solvable by such matrix methods.
09:42:47 <oerjan> now i just thought of this thing - what if you don't have _entirely_ random numbers, but instead get the output of a markov model encoded in another FSM (hi fungot)
09:42:47 <fungot> oerjan: the corporate and public. 10. from the " let the market will be best to wait. subject: power keeps on giving you a chance of the commission
09:42:59 <mroman> Fun thing is, that the probability of such a program to terminate can increase the longer it runs.
09:43:24 <oerjan> in that case you would have two FSM's interacting, which i think you could just merge into one.
09:44:00 <mroman> I think so.
09:44:35 <oerjan> mroman: hm... i was thinking this ran indefinitely. if it's a set number of steps, it gets a bit different. then you would calculate that power of the matrix, rather than looking for eigenvectors.
09:44:37 <mroman> If they are generated by a PRNG which is deterministic
09:44:58 <oerjan> in that case the PRNG itself is probably an FSM, no
09:45:37 <oerjan> i was assuming the markov model still had "true" randomness inside
09:45:44 -!- Taneb has joined.
09:45:53 <oerjan> just with variable probabilities dependent on state
09:46:32 <mroman> In the case of while(rnd() != 0); it's actually fairly easy to calculate the probability of it halting.
09:47:08 <mroman> (given that rnd() returns entirely random numbers in the range 0..n)
09:47:25 <mroman> (and all numbers are equally likely to occurr)
09:47:27 <oerjan> aka p=1
09:47:47 <mroman> Yeah.
09:48:09 <mroman> Obviously.
09:48:41 <mroman> how does that apply to programs that calculate infinite sums?
09:48:47 <mroman> like
09:49:01 <mroman> 1/3 + 1/9 + 1/27 + ...
09:49:17 <mroman> and it halts if the sum reaches 1/2
09:49:32 <oerjan> i would expect you cannot do that in finite state
09:49:55 <mroman> I think so too.
09:50:05 <mroman> I wouldn't now how to encode that
09:50:11 <oerjan> the sum of that is 3/2 iicc
09:50:32 <mroman> it converges to 1/2
09:50:33 <oerjan> (1/(1-1/3))
09:50:51 <oerjan> ...are you sure
09:50:51 <Taneb> x+1 = x*3; 2x = 1; x = 1/2
09:51:11 <Taneb> :)
09:51:15 <mroman> oerjan: The sart value is 1/3
09:51:16 <mroman> not 1
09:51:27 <oerjan> oh hm
09:51:34 <mroman> *start
09:51:38 <oerjan> so idncc then
09:52:11 <mroman> that calculation is done by another machine coupled to my fsm
09:52:18 <mroman> my fsm machine polls the sum machine
09:52:33 <mroman> which returns 1 if it has reached 1/2 and 0 if it is not there yet.
09:53:11 <oerjan> actually you _could_ do that in finite state if you get it as a sequence of ternary digits
09:53:19 <mroman> while(otherMachineDone()) { /* Nope, still waiting */ }
09:53:25 <mroman> *while(!
09:53:56 <mroman> Does my fsm terminate or does it not?
09:54:20 <oerjan> it doesn't terminate, naturally, since that sequence is precisely on the boundary
09:55:01 <oerjan> it never gets a 0 ternary digit, so it cannot say that the sum never reaches 1/2; it never gets a 2, so it cannot say that it does
09:55:53 <oerjan> and any rational number boundary can be tested with an FSM. which may not halt if it is precisely on the boundary.
09:56:24 <mroman> Ok.
09:56:36 <mroman> So an argument that it'll reach 1/2 in infinite steps is just plain wrong?
09:57:00 <oerjan> well "infinite steps" is pretty much the opposite of halting, no? :P
09:57:05 <mroman> Yes.
09:57:13 <mroman> it runs for ever
09:57:17 <mroman> but it'll terminate if it runs for ever
09:57:31 <mroman> (if one can say that it'll reach 1/2 in infinite steps)
09:58:13 <oerjan> you're going to need to redefine terminate for that. also get a supply of limits and transfinite ordinals.
09:58:56 <oerjan> also read up on Zeno.
09:59:44 <mroman> "It doesn't terminate unless it runs forever" sounds very confusing to me.
10:00:17 <mroman> Zeno of Elea?
10:00:34 <mroman> ah
10:00:44 <mroman> the guy who claimed there's no such thing as motion.
10:00:50 <oerjan> argh there's even more logs after midnight UTC :(
10:01:20 <oerjan> he would definitely have said you couldn't reach 1/2.
10:01:21 -!- zzo38 has quit (Quit: Is saying there is just one God like saying that all the water in the ocean is just one water?).
10:01:26 <olsner> ok, everybody shut up until oerjan catches up with the log reading
10:01:35 <oerjan> THANK YOU OLSNER
10:01:43 <Halite> microftedienpakseiks
10:01:58 <oerjan> Halite: if you say so.
10:03:08 <mroman> well
10:03:26 <mroman> If my FSM is infinetly fast (like math is)
10:03:53 <mroman> ah well.
10:03:55 <mroman> nvm.
10:04:43 <oerjan> <shachaf> monqy: i'm trying to figure out what pullbacks are in a poset category? <-- surely they're just meets?
10:07:36 <oerjan> i think the fact that a poset category has only one morphism between objects at most means that it's the same as the product of the two initial objects and the thirs is ignored.
10:07:41 <oerjan> *third
10:07:48 <Halite> In quantum data, does 1 ket 0 + 0 ket 1 equal 0.5*2 ket 0 + 0.5-0.5 ket 1
10:08:15 <oerjan> @ask shachaf <shachaf> monqy: i'm trying to figure out what pullbacks are in a poset category? <-- surely they're just meets?
10:08:15 <lambdabot> Consider it noted.
10:08:23 <oerjan> @tell shachaf i think the fact that a poset category has only one morphism between objects at most means that it's the same as the product of the two initial objects and the thirs is ignored.
10:08:24 <lambdabot> Consider it noted.
10:08:51 <oerjan> Halite: your syntax is hard to understand.
10:08:56 <Halite> (In my code I am replacing SuperPosition with my new Ket function.)
10:09:34 <oerjan> if i understand it, the answer is yes, anyway
10:10:01 <monqy> | and > are easy to type
10:10:04 <Halite> oerjan, what do you understand it as
10:10:21 <Halite> monqy, the pipe character doesn't work because my keyboard is horrible.
10:10:29 <oerjan> 1 |0> + 0 |1> = 0.5*2 |0> + (0.5-0.5) |1>
10:10:45 <monqy> keep it on your clipboard
10:10:47 <Halite> oerjan, that's what I meant. thank you for helping.
10:11:04 <Halite> monqy, it was already on my clipboard for some reason :o
10:11:28 <monqy> that's what happens when a common character doesn't work, it just ends up there somehow??
10:11:40 <Halite> monqy, but other keys don't work either such as the solidus (slash) and arrow keys, that's why I can't use question mark
10:13:01 <monqy> maybe you should get a new keyboard
10:13:41 <Halite> monqy, I have a laptop
10:14:27 <monqy> maybe you should get a new laptop
10:14:42 <Halite> monqy, but meh data and meh Ubuntu
10:14:58 <Halite> monqy, the laptops you get are Macintosh or Windows nowadays
10:14:59 <monqy> a usb keyboard and type on it
10:15:15 <Halite> how about a USB computer
10:15:27 <Halite> (the screen coming apart too)
10:15:28 <monqy> get a windows laptop and overwrite it; that's what i do
10:15:49 <Halite> laptops cost too much monet
10:15:51 <Halite> money*
10:18:02 <monqy> if your laptop isn't from “nowadays„ you might be able to find a cheap laptop that's better than whatever you're using
10:18:28 <Halite> my laptop is close to nowadays
10:18:37 <Halite> close enough
10:18:44 <Halite> too close
10:19:14 <Halite> I need the slash to join #haskell
10:19:20 <Halite> or not
10:19:21 <Halite> :P
10:20:06 <oerjan> haskell without | is going to be awkward.
10:39:07 <shachaf> @messages
10:39:08 <lambdabot> oerjan asked 30m 52s ago: <shachaf> monqy: i'm trying to figure out what pullbacks are in a poset category? <-- surely they're just meets?
10:39:08 <lambdabot> oerjan said 30m 45s ago: i think the fact that a poset category has only one morphism between objects at most means that it's the same as the product of the two initial objects and the thirs is
10:39:08 <lambdabot> ignored.
10:39:12 <shachaf> oerjan: Right.
10:39:25 <oerjan> mhm
10:39:26 <shachaf> Arrows in limit diagrams pretty much don't matter because commutativity is trivial.
10:39:36 <shachaf> (When you only have at most one arrow between objects.)
10:49:57 <oerjan> @tell Bike <Bike> "manocentric" says my internal ignorant pedant, though. <-- "manu-" hth
10:49:58 <lambdabot> Consider it noted.
10:53:41 -!- monqy has quit (Quit: hello).
10:57:48 <shachaf> hello to you too, dear monqy
10:58:25 <shachaf> Halite: Are you a troll?
10:58:29 <shachaf> You're acting a lot like a troll.
10:58:42 <shachaf> In #esoteric that's one thing, but #haskell and #agda are a different matter.
11:09:50 -!- Taneb has quit (Ping timeout: 252 seconds).
11:16:04 -!- Phantom_Hoover has joined.
11:29:16 -!- DHeadshot has quit (Ping timeout: 256 seconds).
11:31:13 -!- nooga has joined.
11:38:38 <shachaf> Halite: Would you stop wasting everyone's time?
11:42:03 <Jafet> Welcome to the international hub of #haskell pundits
11:42:21 <oerjan> yay finished the logs!
11:42:36 <shachaf> were they good
11:42:54 <oerjan> they were cogood
11:43:10 <shachaf> oh no
11:43:12 <shachaf> is that bad
11:43:24 <shachaf> or is it like open and closed sets
11:43:31 <shachaf> goobad logs
11:44:11 <oerjan> i think open and closed sets might be dual, so... i guess?
11:59:42 -!- Halite has quit (Remote host closed the connection).
12:13:10 <oerjan> ^ord ;~:!*()a^S
12:13:10 <fungot> 59 126 58 33 42 40 41 97 94 83
12:13:38 -!- hagb4rd has quit (Ping timeout: 252 seconds).
12:14:59 <oerjan> > sort [(ord x, x) | x <- ";~:!*()a^S"]
12:15:01 <lambdabot> [(33,'!'),(40,'('),(41,')'),(42,'*'),(58,':'),(59,';'),(83,'S'),(94,'^'),(9...
12:15:12 * oerjan swats lambdabot -----###
12:15:49 <Jafet> > sort ";~:!*()a^S"
12:15:51 <lambdabot> "!()*:;S^a~"
12:17:22 <shachaf> > unwords [show (ord x) ++ [x] | x <- sort ";~:!*()a^S"]
12:17:24 <lambdabot> "33! 40( 41) 42* 58: 59; 83S 94^ 97a 126~"
12:17:39 <oerjan> OKAY
12:18:20 <Jafet> > unzip $ sort [(ord x, x) | x <- ";~:!*()a^S"]
12:18:21 <lambdabot> ([33,40,41,42,58,59,83,94,97,126],"!()*:;S^a~")
12:18:42 <oerjan> shachaf: thanx
12:21:28 <shachaf> is thanx the dual of swatting
12:21:35 <shachaf> you need some ascii art for it
12:21:51 <oerjan> eek
12:22:18 <shachaf> oerjan: what category thing should i figure out next
12:22:25 <oerjan> topoi
12:22:43 * oerjan doesn't understand them, but is sure they are cool
12:22:46 <shachaf> sounds complicated
12:23:16 <shachaf> mr.hird thinks (∞,n)-categories are the answer to all of life's problems
12:23:16 <oerjan> cartesian closed categories, then?
12:23:45 <oerjan> maybe they are, but i don't know what they are
12:24:01 <shachaf> He doesn't either.
12:24:23 <oerjan> i suppose you could ask at the n-category café
12:24:29 <shachaf> I guess I should work out ends.
12:24:31 <shachaf> Are ends good?
12:24:51 <oerjan> all is good that ends well
12:25:29 <oerjan> also, i think you may have passed my CT knowledge level already
12:26:10 <shachaf> Unlikely.
12:26:14 <oerjan> unless you weer off into homology stuff, which requires algebra on top
12:26:36 <shachaf> I don't even know what homology is. :-(
12:26:40 <shachaf> What's it?
12:27:26 <oerjan> *veer
12:28:01 <shachaf> I bet those are pronounced the same way in Norwegian.
12:28:04 <shachaf> So it doesn't matter.
12:28:14 <shachaf> Norwegian is the best language.
12:28:25 <shachaf> I mean, it has the empty set in its alphabet.
12:28:30 <shachaf> How can you outdo that?
12:30:30 * shachaf vanishes in a puff of smoke
12:30:31 <oerjan> homology is basically a sequence of functors defined from topological spaces into groups. and then you generalize it to modules over rings, and stuff.
12:30:51 <shachaf> Oops, you had an answer.
12:31:06 <shachaf> Sounds complicated.
12:31:14 <shachaf> Is cohomology just mplicated?
12:31:18 <oerjan> and this tells you things about the topological space, or the rings.
12:31:38 <Phantom_Hoover> so why do you actually care about homology
12:31:39 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
12:31:55 <oerjan> well cohomology means you take the dual modules at one step of the construction
12:32:20 * shachaf needs to go to sleep. :-(
12:32:21 <oerjan> Phantom_Hoover: well for example it gives you proofs of things like the jordan-brouwer theorem
12:33:20 <oerjan> which includes the jordan curve theorem as a special case (which has other known proofs)
12:34:37 <oerjan> basically, if you deform a sphere arbitrarily but still continuously, it will still always separate a surrounding euclidean space (of one more dimension) into two pieces.
12:36:35 <oerjan> anyway ->
12:43:40 -!- epicmonkey has quit (Read error: Operation timed out).
12:58:37 -!- epicmonkey has joined.
13:23:10 -!- oerjan has quit (Quit: leaving).
13:37:29 <Phantom_Hoover> hey, i found another terrible swede http://www.reddit.com/r/math/comments/18mh1p/my_favorite_song_about_doing_calculus/c8gm0ii
13:41:32 -!- azaq23 has joined.
13:41:46 -!- azaq23 has quit (Max SendQ exceeded).
13:42:08 -!- azaq23 has joined.
14:11:16 <mroman> How is it that books containing "An introduction" are usually completely useless
14:11:38 -!- esomimic has joined.
14:11:39 <fizzie> esomimic: help
14:11:39 <esomimic> fizzie: say 'mimic X' to mimic X; 'who' for list; anything else for a reply
14:11:41 <fizzie> There you go.
14:11:52 <mroman> ok
14:11:57 <mroman> mimic fizzie
14:12:09 <mroman> esomimic: mimic fizzie
14:12:09 <esomimic> mroman: okay, mimicking fizzie
14:12:10 <fizzie> I forgot to mention you need to say it to im.
14:12:25 <mroman> esomimic: do your work
14:12:26 <esomimic> mroman: i've used a lot in gnu canything only included in the possibility.
14:12:49 <fizzie> Hm, I wonder if the "canything" is a bug.
14:13:06 <mroman> esomimic: mimic esomimic
14:13:06 <esomimic> mroman: sorry, don't know 'esomimic' well enough
14:13:16 <mroman> esomimic: mimic mroman
14:13:16 <esomimic> mroman: sorry, don't know 'mroman' well enough
14:13:22 <mroman> ic.
14:13:23 <fizzie> esomimic: who
14:13:23 <esomimic> fizzie: ais523 asiekierka augur bsmntbombdood CakeProphet coppro cpressey Deewiant elliott *fizzie fungot Gregor ihope itidus21 kallisti kmc lament monqy nooga oerjan oklopol olsner Phantom_Hoover pikhq quintopia Sgeo shachaf Taneb Vorpal zzo38
14:13:23 <fungot> esomimic: that will assume the first is the pulmonary injury by deal count by trader and product for the existing state plans of a message on the its board of directors on dec. 21.
14:13:24 <esomimic> fungot: it's following screens, sdsm for.
14:13:25 <fungot> esomimic: his and your management have been a few that could make the decision on the number of our best to keep the current state of the street. tullman, ( 888) 593-4771 or ( 212) 686-6808, email the new bond language has an offer.
14:13:26 <esomimic> fungot: box's in six.
14:13:26 <fungot> esomimic: 1. i in room eb1938 to formalize an already executed more than that of the market that would please be soooo busy lately. terminated 12.1 e prime, inc. on a thursday that the last two and a state of my and john
14:13:27 <esomimic> fungot: last year's details.
14:13:27 <fungot> esomimic: an internet exchange for chemicals that cause of the it central website. rick causey, buy and deal entry.
14:13:28 <esomimic> fungot: oh.
14:13:29 <fizzie> Oh no.
14:13:33 <fizzie> I forgot about that.
14:13:46 <mroman> :D
14:14:02 <fizzie> At least fungot has the loop protection.
14:14:02 <fungot> fizzie: he recalled the critics want. settlement.
14:14:12 <Phantom_Hoover> esomimic, mimic itidus21
14:14:12 <esomimic> Phantom_Hoover: okay, mimicking itidus21
14:14:22 <Phantom_Hoover> esomimic, share some of your thoughts
14:14:23 <esomimic> Phantom_Hoover:
14:14:34 <fizzie> I think that's an "ICE BURN".
14:14:41 <fizzie> esomimic: Really, now.
14:14:41 <esomimic> fizzie: areas of an encoding of an efficient potatoes it, and concentrate, and link
14:14:56 <Phantom_Hoover> esomimic, potatoes?
14:14:57 <esomimic> Phantom_Hoover: im not asking pretty cool
14:15:19 <mroman> esomimic: Gimme your lunch money or else...!
14:15:19 <esomimic> mroman: i think thats where
14:15:36 <mroman> esomimic: thats where you call the police? We'll see about that!
14:15:36 <esomimic> mroman: oops
14:16:04 <fizzie> I don't really know why it's so much more incoherent; it's done with SRILM, though.
14:17:11 <Phantom_Hoover> esomimic, mimic zzo38
14:17:11 <esomimic> Phantom_Hoover: okay, mimicking zzo38
14:17:23 <Phantom_Hoover> esomimic, what's your opinion of HTTP?
14:17:24 <esomimic> Phantom_Hoover: +one of a subroutine greater and you can refer that, also
14:17:25 <mroman> just give him an omegle backend
14:17:34 <mroman> it'll do shit.
14:20:59 <fizzie> esomimic: mimic ehird
14:20:59 <esomimic> fizzie: okay, mimicking elliott
14:21:05 <fizzie> esomimic: What would elliott do?
14:21:09 <esomimic> fizzie: enjoy
14:21:16 <fizzie> esomimic: Sounds vaguely dirty.
14:21:21 <esomimic> fizzie: i am not sure which wiki/functions how can i become a "game comes from the +or sth?"
14:21:28 <fizzie> (That model is a giant, it takes a while to load.)
14:21:41 -!- Taneb has joined.
14:21:48 <fizzie> esomimic: mimic Taneb
14:21:48 <esomimic> fizzie: okay, mimicking Taneb
14:21:56 <fizzie> esomimic: Greet your guy.
14:21:56 <esomimic> fizzie: yes
14:21:58 <Phantom_Hoover> hey Taneb, fizzie whipped us up a replacement elliott
14:22:02 <Taneb> Oh, sweet
14:22:05 <Taneb> esomimic, sup
14:22:05 <esomimic> Taneb: it's doing
14:22:15 <Taneb> esomimic, what's doing?
14:22:16 <esomimic> Taneb: i was on, let me, one
14:22:35 <Taneb> esomimic, seen anything cool lately?
14:22:35 <esomimic> Taneb: i am aware the don't have interesting
14:23:04 <mroman> He might need some tweaks.
14:23:12 <Taneb> esomimic: you're right! The don't do have interesting
14:23:13 <esomimic> Taneb: oh dear god
14:23:23 <Taneb> mroman, it's perfect
14:23:37 <fizzie> esomimic: mimic ais523
14:23:37 <esomimic> fizzie: okay, mimicking ais523
14:23:42 <fizzie> esomimic: Try to sound sensible for a while
14:23:43 <esomimic> fizzie: next time you are using clc-intercal
14:23:56 <fizzie> esomimic: ...then what?
14:23:57 <esomimic> fizzie: unfortunately i haven't submitted (i haven't modified well context is ridiculously slow for that sort of thing, they keep)
14:24:36 <Taneb> esomimic: source
14:24:38 <esomimic> Taneb: +it could be fun to shrink too, as i remember who it was? i guess it's a really bad puns is translated into but suboptimal but not the accumulator, it becomes whole shape drawing with a it with a stupid sure or +it isn't wikimedia-connected behaviour same as the form
14:24:55 <Taneb> esomimic: mimic itidus20
14:24:55 <esomimic> Taneb: okay, mimicking itidus21
14:25:01 <Taneb> esomimic, how's it going
14:25:02 <esomimic> Taneb: billion spend i have a mass c is fun to make. and ((s x i am already mentioned great deal be more of i saying "an image, and i thought human then it is better shot bastards"))
14:25:16 <Taneb> Hang on
14:25:20 <fizzie> All the +s are probably from the old freenode capab identify-msg thing.
14:25:21 <Taneb> Hang on hang on
14:25:25 <Taneb> <Taneb> esomimic: mimic itidus20
14:25:25 <Taneb> <esomimic> Taneb: okay, mimicking itidus21
14:25:29 <Taneb> What
14:25:36 <fizzie> It has a bit of nick-merging.
14:25:58 <Taneb> esomimic, mimic atriq
14:25:58 <esomimic> Taneb: okay, mimicking Taneb
14:26:02 <Taneb> esomimic, mimic AnMaster
14:26:03 <esomimic> Taneb: okay, mimicking Vorpal
14:26:07 <Taneb> esomimic, mimic kallisti
14:26:07 <esomimic> Taneb: okay, mimicking kallisti
14:26:11 <Taneb> esomimic, mimic CakeProphet
14:26:11 <esomimic> Taneb: okay, mimicking CakeProphet
14:26:17 <Taneb> esomimic, mimic RocketJSquirrel
14:26:17 <esomimic> Taneb: sorry, don't know 'RocketJSquirrel' well enough
14:26:24 <fizzie> It's somewhat limited.
14:26:26 <Taneb> esomimic, mimic cpressey
14:26:26 <esomimic> Taneb: okay, mimicking cpressey
14:26:30 <Taneb> esomimic, what
14:26:30 <esomimic> Taneb: posix!
14:26:34 <fizzie> POSIX!
14:26:40 <Phantom_Hoover> esomimic, have any new language ideas
14:26:40 <esomimic> Phantom_Hoover: an what i was thinking ah ha i'm out constructing extremely but see, hurd interesting at (which may be a word as a technical them probably seems very and english make the asylum.)
14:28:44 <fizzie> It might be less grammatik than fungot due to srilm actually using the backoffs when generating. Maybe.
14:28:44 <fungot> fizzie: at the time, on the same in the file that the modifications. light http://www.brookings.edu/ press/ review/ rev_des.htm book event: politics prose, 5015 connecticut ave., suite of energy
14:29:05 <fizzie> Well, that's not such a great showing either.
14:30:08 <Taneb> ^echo esomimic:
14:30:08 <fungot> esomimic: esomimic:
14:30:08 <esomimic> fungot: i complicated s i want i if your mediocre brainfuck many of the out
14:30:09 <fungot> esomimic: they do not have any authority on an urgency of the money.) bombay.
14:30:09 <esomimic> fungot: a kind of behaviour, it to entries. something. i got the normal mechanism something specify probably be friend i apologize that
14:30:09 <fungot> esomimic: see the attached. 99-14563 doing that." wagner rates enron " keep you in the loop on the below: index: gas daily, find.
14:30:09 <esomimic> fungot: no
14:30:10 <fungot> esomimic: to complete the form of the meeting.??
14:30:10 <esomimic> fungot: there's got a a dir, but we'll see languages was a significant "planets"
14:30:10 <fungot> esomimic: go to: http://www20.cera.com/ client/ company/ account what locations on 21 will not let
14:30:10 <esomimic> fungot: if i did, for example, if you ask... that's copying is (full!)
14:30:11 <Taneb> Sorry
14:30:14 <mroman> esomimic: who
14:30:14 <esomimic> mroman: ais523 asiekierka augur bsmntbombdood CakeProphet coppro *cpressey Deewiant elliott fizzie fungot Gregor ihope itidus21 kallisti kmc lament monqy nooga oerjan oklopol olsner Phantom_Hoover pikhq quintopia Sgeo shachaf Taneb Vorpal zzo38
14:30:22 <mroman> esomimic: mimic fungot
14:30:22 <esomimic> mroman: okay, mimicking fungot
14:30:22 <fungot> mroman: is the spot only the state alabama alaska arizona arkansas and lsu.
14:30:22 <fungot> esomimic: in that case you will put the issue of the talk" face="verdana, helvetica, arial, helvetica, arial, helvetica, sans-serif"bfont color="cc0000" size="3"br all sales employees.
14:30:22 <esomimic> fungot: begrudging pat
14:30:23 <fungot> esomimic: they pay the esp. to weather i've seen in a spread. commercial power representative and any representative of the price. +44 ( 20) the worst of california's/ utilities -2: not the first and will assume the first to the main source of the davis plan, giving the state
14:30:23 <esomimic> fungot: miizzzzaaaaaaaarrrrrrrrrrrrrrrrddddddddddddddddddddddddddddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx way to the ocean palace of irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
14:30:23 <fungot> esomimic: that is not on any of the questions on the espeak site urging the company's) plan."
14:30:24 <esomimic> fungot: ...out of stack!
14:30:24 <fungot> esomimic: what do we know the number of questions." granted the right of the as gets exercised and processed.
14:30:24 <esomimic> fungot: to, uhhh.......... colours i time!
14:30:43 <Taneb> fizzie, you may want to fix that
14:30:49 <fizzie> Probably.
14:31:02 <mroman> esomimic: What are you doing?
14:31:03 <esomimic> mroman: hey fhjlkdshfkjasdasd hjlkdshfkjasdasd 0
14:31:15 <Phantom_Hoover> i assume we were saved there by fungot's rate limiting
14:31:16 <fungot> Phantom_Hoover: that we fail the credit and the fun of our earnings this quarter we have attached the new with every time we utilized our partnership with the major power plants.
14:32:22 <Taneb> esomimic, mimic shachaf
14:32:23 <esomimic> Taneb: okay, mimicking shachaf
14:32:27 <elliott> what
14:32:27 <Taneb> esomimic, what's a lens
14:32:28 <esomimic> Taneb: you mean that good.
14:32:35 <Taneb> esomimic, I do mean that good
14:32:36 <esomimic> Taneb: i think it haskell get a so you're.
14:32:46 <Taneb> (it's not wrong, per se)
14:32:58 <Taneb> (its grammar is a tad dodgy)
14:33:15 <elliott> `addquote <esomimic> fungot: begrudging pat
14:33:15 <fungot> elliott: the risk of an approved site
14:33:19 <HackEgo> 964) <esomimic> fungot: begrudging pat
14:35:44 -!- Frooxius has joined.
14:37:20 <fizzie> "there's also a duck are you actually want to get around it." Yeah, "tad dodgy".
14:37:53 <Taneb> Does it work on similar lines to Fungot?
14:38:16 <fizzie> It's very similar, except it uses an existing toolkit (SRILM) to do all the work.
14:38:39 <fizzie> And speaker-dependent models, of course.
14:39:26 <elliott> Taneb: Do you think that person in #haskell is telling the truth?
14:39:48 <Taneb> I doubt anyone has that many hyphens in their name
14:40:17 <Taneb> But you should be prepared to help anyone at any time!
14:41:14 <Taneb> Halite reminds me of Kankri an a weird way
14:43:11 <Phantom_Hoover> i
14:44:08 -!- esomimic has quit (Remote host closed the connection).
14:44:20 -!- esomimic has joined.
14:44:20 <fizzie> Possibly it no longer the fungot.
14:44:20 <fungot> fizzie: our meeting.
14:44:38 <Taneb> esomimic, mimic fungot
14:44:39 <esomimic> Taneb: okay, mimicking fungot
14:44:39 <fungot> Taneb: of the deal will be at the airport. they
14:44:39 <fungot> esomimic: all of the mail the original. " i lost my balance of the 20 years."
14:44:39 <esomimic> fungot: selected style: lovecraft (h. p. lovecraft's writings)
14:44:39 <fungot> esomimic: yet the lights on.????????
14:44:40 <esomimic> fungot: ( printer is eta..
14:44:40 <fungot> esomimic: all we have had the option of going on.??????
14:44:40 <esomimic> fungot: (((cathedral to the west?... yes!! you brought back my cat! thank you, crono!!! help!)))
14:44:40 <fungot> esomimic: we should know that the summer of 2000.
14:44:41 <esomimic> fungot: helps oerjan: oerjan: oerjan: ct (chrono trigger game script)
14:44:49 <fizzie> ...
14:45:03 <Taneb> Sorry
14:45:06 <fizzie> Or maybe not.
14:45:34 -!- esomimic has quit (Remote host closed the connection).
14:45:47 -!- esomimic has joined.
14:45:49 <fizzie> esomimic: mimic fungot
14:45:49 <esomimic> fizzie: okay, mimicking fun​got
14:45:49 <fungot> fizzie: that is not to... .a bunch of construction within an iso market? interface. come support the houston cougars as they held stock to the authority that is important that we
14:45:57 <Phantom_Hoover> esomimic, can that sword alone stop
14:45:57 <esomimic> Phantom_Hoover: you be in cloud ventral been a time see a grave to the north. it's a great place for a picnic! heard that magus's place...
14:46:00 <fizzie> That seems better.
14:46:29 <fizzie> esomimic: How did you know it was about Chrono Trigger?
14:46:29 <esomimic> fizzie: in my friends!
14:46:33 <Taneb> > map fromEnum "fun​got"
14:46:34 <lambdabot> mueval: recoverEncode: invalid argument (invalid character)
14:46:37 <Taneb> > map fromEnum "fun​got"
14:46:38 <lambdabot> mueval: recoverEncode: invalid argument (invalid character)
14:46:51 <fizzie> It's just a zero-width space.
14:46:58 <Taneb> fun got
14:47:38 <elliott> esomimic: mimic lambdabot
14:47:39 <esomimic> elliott: sorry, don't know 'lambdabot' well enough
14:47:41 <elliott> wow fuck you
14:47:54 <fizzie> I didn't teach the other bots. :/
14:48:27 <fizzie> esomimic: WWFD?
14:48:28 <esomimic> fizzie: optbot optbot
14:48:47 <elliott> esomimic: mimic optbot
14:48:47 <esomimic> elliott: sorry, don't know 'optbot' well enough
14:49:03 <Taneb> esomimic, who?
14:49:04 <esomimic> Taneb: i grow so tired and stiff
14:49:06 <Taneb> esomimic, who
14:49:06 <esomimic> Taneb: ais523 asiekierka augur bsmntbombdood CakeProphet coppro cpressey Deewiant elliott fizzie *fun​got Gregor ihope itidus21 kallisti kmc lament monqy nooga oerjan oklopol olsner Phantom_Hoover pikhq quintopia Sgeo shachaf Taneb Vorpal zzo38
14:49:12 <Taneb> esomimic, mimic Phantom_Hoover
14:49:12 <esomimic> Taneb: sorry, don't know 'Phantom_Hoover ' well enough
14:49:22 <Taneb> ...
14:49:23 <Taneb> .......
14:49:25 <Taneb> .
14:49:28 <Phantom_Hoover> esomimic, mimic Phantom_Hoover
14:49:28 <esomimic> Phantom_Hoover: okay, mimicking Phantom_Hoover
14:49:32 <fizzie> Maybe it should strip some spaces.
14:49:36 <Taneb> :(
14:50:08 <elliott> esomimic: mimic zzo38
14:50:08 <esomimic> elliott: okay, mimicking zzo38
14:50:11 <elliott> esomimic: i'd like to see you try
14:50:12 <esomimic> elliott: i am using the command-line mean.
14:50:16 <elliott> esomimic: good
14:50:17 <esomimic> elliott: i thought it has amber is for those, the server than....
14:50:40 <fizzie> esomimic: You're not quite like the real deal.
14:50:41 <esomimic> fizzie: did you write it using the correct in category theory a disk and then assume there is a bad, so i have no.
14:50:52 <elliott> fizzie: can you make it preserve caps/punct
14:51:07 <nooga> huh
14:51:54 <fizzie> elliott: In theory I could just skip the preprocessing. Though then the models might be a bit more sparse.
14:52:09 <fizzie> Admittedly it's not very good mimicry when it normalizes that stuff.
14:52:29 <fizzie> esomimic: mimic fizzie
14:52:29 <esomimic> fizzie: okay, mimicking fizzie
14:52:30 <fizzie> esomimic: But why are you talking in all lowercase? I don't do that!
14:52:31 <esomimic> fizzie: you two 8-ball say "?"
14:52:49 <elliott> fizzie: You did in 2002!
14:53:00 <fizzie> That's twue.
14:53:42 -!- Arc_Koen has joined.
14:55:03 <elliott> I miss 2002 fizzie.
14:58:46 <fizzie> esomimic: Try to be like the 2002 fizzie.
14:58:47 <esomimic> fizzie: obviously haven't the gnu think anyone was doing the whole lot more impressive in this dates the point in a bus.
14:59:02 <fizzie> Obviously.
15:00:28 <nooga> how does this mimicking work?
15:00:44 <elliott> badly
15:01:34 <nooga> obviously
15:03:40 -!- DHeadshot has joined.
15:04:25 <Gregor> Who is this esomimic, and why does he mimic someone who spams X_X
15:04:46 <fizzie> I haven't seen any spammed "X_X"s.
15:05:44 <Gregor> I'm about to spam filet knives to your jugular vein.
15:06:47 <elliott> esomimic: mimic Phantom_Hoover
15:06:47 <esomimic> elliott: okay, mimicking Phantom_Hoover
15:06:49 <elliott> esomimic: hoov
15:06:49 <esomimic> elliott: something called try to won you don't think sense drama.
15:06:51 <elliott> esomimic: hoov
15:06:52 <esomimic> elliott: i assume it call/cc interaction so is why would you mean the computable reals, his tower.
15:06:55 <elliott> esomimic: hoov
15:06:55 <esomimic> elliott: it's not what?
15:06:57 <elliott> esomimic: hoov
15:06:57 <esomimic> elliott: but i have been.. "
15:06:58 <elliott> esomimic: hoov
15:06:58 <esomimic> elliott: he's arguing; internet talk about 5 'austerity come to think of it.'
15:07:04 <elliott> Phantom_Hoover: this isnt very good
15:07:07 <elliott> can you be more entertaining in future
15:07:18 <Phantom_Hoover> austerity come to think of it!
15:07:24 <Phantom_Hoover> c'mon i'm comedic gold
15:08:14 <elliott> that was alright I admit
15:08:20 <elliott> esomimic: mimic cpressey
15:08:20 <esomimic> elliott: okay, mimicking cpressey
15:08:26 <elliott> fizzie: does this include his seminal work as ZOMGMODULES?
15:08:29 <elliott> and catseye
15:08:59 <fizzie> It does not.
15:09:12 <elliott> fizzie: can I have at least 20 refunds
15:09:17 <elliott> he was catseye like half the time!
15:09:26 <fizzie> You can have twenty times zero monies.
15:09:39 <elliott> esomimic: this better be good
15:09:39 <esomimic> elliott: yes. for indirection.... will vm i want for us and but and directory other formats on that languages have syntax channels stuff oh oh
15:09:41 <elliott> esomimic: this better be good
15:09:42 <esomimic> elliott: or if it... mostly sending you expect
15:09:42 <elliott> esomimic: this better be good
15:09:43 <esomimic> elliott: well. then i would?
15:09:44 <elliott> esomimic: this better be good
15:09:44 <esomimic> elliott: hm can build better comparison. ok
15:09:45 <elliott> esomimic: this better be good
15:09:45 <esomimic> elliott: you have you ever get it crash why do you mean by dismissing you know. i say you have to comic strip almost always
15:09:51 <elliott> esomimic: mimic monqy
15:09:51 <esomimic> elliott: okay, mimicking monqy
15:09:52 <elliott> esomimic: this better be good
15:09:52 <esomimic> elliott: i'll on them
15:09:53 <elliott> esomimic: this better be good
15:09:53 <esomimic> elliott: sometimes people
15:09:57 <elliott> aye
15:09:58 <elliott> sometimes people
15:10:07 <fizzie> People are a sometimes food.
15:10:12 <elliott> esomimic:
15:10:12 <esomimic> elliott: if you mean the side
15:10:14 <elliott> esomimic:
15:10:14 <esomimic> elliott: oh right
15:10:16 <elliott> esomimic:
15:10:16 <esomimic> elliott: surely that, i think its do that
15:10:17 <elliott> esomimic:
15:10:18 <esomimic> elliott: those the make when fuck indentation because it's not doing what i want to find it
15:10:28 <elliott> fizzie: these don't quite have fungot's charm
15:10:28 <fungot> elliott: with that in mind the following ( in dth's) off of cng, cgas
15:10:35 <fizzie> It is true.
15:10:41 <Gregor> esomimic: mimic esomimic
15:10:41 <esomimic> Gregor: sorry, don't know 'esomimic' well enough
15:10:53 <fizzie> I probably should've simply used fungot's code to do the whole thing.
15:10:54 <fungot> fizzie: option as ceo of this right? -----original message----- from: steve venturatos.
15:11:04 <elliott> fizzie: IMO it should be able to take a nickname regexp and then generate a model for mimicking that on the fly
15:11:10 <elliott> so I can make hideous chimerae of people
15:11:17 <Gregor> I would be CEO of Steve Venturatos.
15:11:32 <elliott> `pastlog steve venturatos
15:11:47 <fizzie> fungot: I suppose you're still doing the Enron thing?
15:11:47 <fungot> fizzie: will we. hollings will confer in connection with any decision i think we have two set on the language of the) lines not working on i
15:12:01 <HackEgo> No output.
15:12:06 <elliott> `pastelogs steve venturatos
15:12:19 <elliott> oh wait
15:12:20 <elliott> ^irc
15:12:21 <elliott> er
15:12:23 <elliott> ^style
15:12:23 <fungot> Available: agora alice c64 ct darwin discworld enron* europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
15:12:23 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.15070
15:12:33 <elliott> fizzie: I hope you didn't update the irc style
15:12:36 <elliott> or ruin the darwin style
15:12:49 <fizzie> I have not changed anything.
15:12:51 -!- DHeadshot has quit (Ping timeout: 252 seconds).
15:12:56 <elliott> that's good
15:13:00 <elliott> you need reliable things in this e'er-changing world
15:13:26 -!- DHeadshot has joined.
15:13:27 <elliott> fizzie: so wait is that enron thing not new
15:13:39 <Phantom_Hoover> ^style enron
15:13:40 <fungot> Selected style: enron (subset of the Enron email dataset)
15:13:46 <Phantom_Hoover> fungot, oh, didn't notice that
15:13:46 <fungot> Phantom_Hoover: also on the price of 1 ( limit 2). i
15:13:49 <nooga> i'm reading SICP again and playing with a scheme interpreter
15:14:16 <elliott> 23:41:27: <Vorpal> fizzie, Enron?
15:14:18 <elliott> 23:41:57: <Vorpal> fizzie, the electricity company?
15:14:20 <elliott> Vorpal: really.
15:14:32 <nooga> uh, what a nice way procrastinate
15:14:39 <nooga> to*
15:14:53 <mroman> any python guy in here?
15:15:10 <elliott> if "python guy" means know python then yes. if it means like python then no
15:15:31 <mroman> is there a nice way to convert a string to a list of char?
15:15:36 <mroman> other than map(lambda a:a,str)
15:15:48 <elliott> list(s)
15:15:52 <fizzie> elliott: Oh. Well, I mean, I have not changed any of the things that already existed. I did add that.
15:16:34 <fizzie> In most cases you can just enumerate over the string, though.
15:17:03 <nooga> python is filthy
15:18:33 <Phantom_Hoover> why
15:20:48 <nooga> because i don't like it
15:20:51 -!- ais523 has joined.
15:20:59 <elliott> http://www.cs.cmu.edu/~enron/DELETIONS.txt
15:21:01 <mroman> God I hate file modes.
15:21:06 <elliott> this just makes me intensely curious as to what those emails were
15:21:15 <mroman> Is there a shut up just give me a file handle open
15:21:45 <elliott> open('foo')
15:21:49 <elliott> (for reading)
15:22:06 <ais523> @messages?
15:22:06 <lambdabot> Sorry, no messages today.
15:22:13 <ais523> lambdabot: what about yesterday? I wasn't here then either
15:22:20 <mroman> r+ seems to do the trick.
15:22:37 <fizzie> elliott: http://sprunge.us/MIVE is one of them.
15:22:43 <lambdabot> ais523: None then, either. Sorry!
15:22:52 <ais523> :)
15:23:32 <nooga> lol, the email
15:24:16 <fizzie> elliott: sent/205 seems reasonably similar, except to some other girl.
15:24:49 <elliott> fizzie: I sense a pattern.
15:25:23 <fizzie> For some reason, gay-r/sent/74. is just an email about scheduling a conference call discussing someone's termination notice.
15:25:35 <fizzie> (Don't know why to remove that.)
15:26:35 <elliott> fizzie: I guess the gay-r ones are still available for download, since it says removed 2011 but the latest archive is from 2009.
15:26:41 <elliott> So the skilling-j one is the real mystery.
15:26:57 -!- TeruFSX has joined.
15:26:58 <mroman> and is there a better way than reduce(str.__add__,foo)
15:27:02 <mroman> to undo list(str)?
15:27:23 <fizzie> ''.join(l) is common.
15:28:20 <fizzie> elliott: The copy at work is missing skilling-j/1584 too, so can't help there.
15:28:59 <fizzie> elliott: And the "Agust 21, 2009" download link is actually to enron_mail_20110402.tgz so I think it actually doesn't have the gay-r ones.
15:29:26 <mroman> Neat. Thx.
15:29:34 <mroman> My python is so rusty.
15:29:54 <elliott> fizzie: So that's what Agust means.
15:29:56 <mroman> But I'm doin' Array Manipulation Stuff and I'm even poorer at that with haskell than python
15:29:59 <elliott> Agust of Wind.
15:31:14 -!- carado has quit (Ping timeout: 256 seconds).
15:31:28 <ais523> "Triforce is identical to [[brainfuck]] while purely using triangles, and with the addition of an operator that resets a memory cell to 0. It is not yet possible to input and store a character."
15:31:42 <ais523> this… somehow manages to do worse than the average pointless BF derivative
15:31:49 <fizzie> But it uses triangles!
15:31:52 <elliott> ais523: that langauge was made as a threat, AIUI
15:32:01 <ais523> elliott: who was it threatening?
15:32:19 <elliott> 17:15:49: <Halite> SaltScript
15:32:19 <Taneb> ais523, when Phantom_Hoover tried to write a Tumblr post about it, my computer crashed
15:32:19 <elliott> 17:16:34: <Halite> what should I add to SaltScript
15:32:19 <elliott> 17:18:59: <Halite> ok, I'll make another BF-like language if you don't listen to those developing better languages
15:32:34 <elliott> (Phantom_Hoover or someone told him not to make a BF derivative)
15:32:43 <Phantom_Hoover> Taneb, so are my thoughts on it never going to come to light
15:33:12 <ais523> Taneb: you own PH's Tumblr, right?
15:33:35 <Taneb> Phantom_Hoover, we shall see
15:33:38 <Phantom_Hoover> is 'irthening bad' never going to be given the rightful place in a sentence that it deserves
15:33:56 <Taneb> I was thinking of using disappointirth
15:34:10 <Phantom_Hoover> that works also!
15:34:26 <elliott> ais523: btw, you should bug me to update the esowiki soon
15:34:33 <elliott> it's several updates behind and some of them are even security-related
15:34:56 <ais523> how soon is soon?
15:35:15 <elliott> ais523: well, I don't feel like doing it now :)
15:35:25 <elliott> which is the problem!
15:35:31 <ais523> so next time I remember and you seem like you're in a mood to do something major?
15:35:42 <elliott> no, I won't feel like doing it later, either
15:35:51 <elliott> which is why I'm telling you to bug me, see
15:36:02 <elliott> but I don't want you to bug me /now/, because I don't want to do it
15:36:15 <Taneb> elliott, doo eeeeeeet
15:36:58 <elliott> Taneb: you do it!
15:37:12 <nooga>
15:37:12 <Taneb> Alas, I can not
15:37:21 <FreeFull>
15:37:31 <Phantom_Hoover> Taneb, update my blog then!
15:37:46 <Taneb> I will when elliott updates the wiki!
15:39:56 <Phantom_Hoover> elliott, update the wiki!
15:47:16 <mroman> I've gone mad.
15:48:51 <mroman> http://codepad.org/nyIPsxbn
15:49:45 -!- SDr has joined.
15:52:03 <mroman> Threads must manipulate each other to do stuff
15:53:02 -!- ais523_ has joined.
15:53:28 <ais523_> it's nice to have an OS such that your computer can overheat, crash, and restart before you ping out from IRC
15:53:30 -!- ais523 has quit (Disconnected by services).
15:53:32 -!- ais523_ has changed nick to ais523.
15:57:35 -!- DHeadshot has quit (Ping timeout: 251 seconds).
16:07:31 -!- oerjan has joined.
16:23:16 -!- ogrom has quit (Quit: Left).
16:29:43 -!- efm has quit.
16:29:52 -!- efm has joined.
16:33:34 <oerjan> elliott: update the wiki O KAY
16:33:46 <elliott> oerjan: imo you do it
16:34:05 <oerjan> O KAY if you don't mind it breaking all over the place
16:35:45 <oerjan> also, why are there 83 people here
16:36:06 <Taneb> Because I have been ADVERTISING
16:36:14 <oerjan> oh dear
16:36:26 <elliott> Taneb: have you really.
16:36:31 <Phantom_Hoover> Taneb what have you done
16:36:43 <Taneb> (I have not been advertising)
16:36:54 <Arc_Koen> hello guys, I'm here thanks to Taneb!
16:36:56 <Taneb> (well, I have, but I've caused no-one to stick)
16:37:03 <Taneb> Arc_Koen, you are!?
16:37:07 <Arc_Koen> and I have a great idea for a new language! it has 8 symbols!
16:37:24 <Taneb> Is it a MIBBLLII derivative?
16:37:38 <oerjan> Arc_Koen: i shall assume it's an underload derivative without ) hth
16:37:58 <Arc_Koen> Taneb: do you really think I understand BCKW??
16:38:09 <Gregor> Is there a BF alternative for which the symbols are a, A, á, à, Á, À, ą and Ą?
16:38:17 <Taneb> I find BCKW easier than SKI
16:38:25 <Taneb> :t join const
16:38:27 <lambdabot> a -> a
16:38:46 <Gregor> Or maybe a, á, à, ä, ą, ā, ã and å.
16:39:14 <Arc_Koen> Gregor: I believe you should make one
16:40:36 -!- sebbu has quit (Ping timeout: 248 seconds).
16:40:51 -!- sebbu has joined.
16:41:21 <Gregor> I believe I should not.
16:41:39 <Arc_Koen> some would argue you already did :(
16:43:03 <elliott> Gregor: please do, I have a use for BF derivatives
16:43:27 <Gregor> Arc_Koen: I haven't specified the mapping.
16:43:47 <elliott> Gregor: so you specified as many BF derivatives as there are possible mappings
16:43:57 <Arc_Koen> elliott: do you wedge unstable furnitures with bf derivatives??
16:44:25 <Gregor> Oh wow, I specified 8 factorial BF derivatives without even realizing it!
16:44:34 <Arc_Koen> Gregor: you specified 40320 mappings!
16:45:03 <Arc_Koen> that's gotta set a record - I don't believe anyone else has accidentally specified so many bf derivatives
16:45:21 <Arc_Koen> (I wish I hadn't been so slow)
16:45:42 <Gregor> Actually, every sequence of unique characters in existence specifies mappings!
16:46:02 <Gregor> The alphabet specifies 26*25*24*23*22*21*20*19 mappings
16:46:25 <elliott> Arc_Koen: ye
16:46:25 <elliott> s
16:46:28 <Arc_Koen> please tell us it's no longer accidental
16:46:43 <Taneb> > product [109990..110000]
16:46:45 <lambdabot> 28516904589671371494881311400913125079881049855168000000
16:46:51 <Taneb> That's a lot of bf derivatives
16:46:58 <Taneb> (approx number of characters in Unicode)
16:47:08 -!- mekeor has joined.
16:47:16 <Gregor> As well as a featured language, the site should have a Brainfuck derivative of the day X-D
16:47:19 <Arc_Koen> and that's assuming we only use one character
16:47:58 <Gregor> It could even be automatic. Just choose at random from the BF derivatives category and barf it onto the main page.
16:48:03 <Gregor> We could call it the box of shame!
16:48:06 <Taneb> If you also have some encryption scheme such that each character is encoded by a different cipher...
16:49:23 <Taneb> Any sufficiently long block of text could be a programming encoding any algorithm
16:51:23 <ais523> hey, this has already been done better
16:51:37 <ais523> something like TMMDLPTEALPAITAFNFAL
16:51:47 <ais523> (that was from memory, I probably don't have it exactly right)
16:51:53 <ais523> also it's automatically better due to not being a BF derivative
16:52:05 <oerjan> TMMLPTEALPAITAFNFAL
16:52:08 <ais523> and I looked it up, it's TMMLPTEALPAITAFNFAL
16:52:20 <ais523> I was only one letter off :)
16:52:23 <ais523> added an extra D
16:52:31 <tswett> I just defined |V| programming languages.
16:54:43 <tswett> I defined so many programming languages that ZFC suddenly became inconsistent with reality.
16:55:04 -!- DHeadshot has joined.
16:56:41 -!- TeruFSX has quit (Ping timeout: 245 seconds).
17:00:49 -!- carado has joined.
17:03:20 <Taneb> Well, that'll explain why my graphics card hasn't arrived yet
17:03:24 <Taneb> It just got dispatched
17:07:45 -!- nooodl has quit (Ping timeout: 252 seconds).
17:15:41 <Taneb> (a -> b) -> (a -> c) -> (a -> b & c)
17:15:57 <Taneb> (a -> c) -> (b -> c) -> (a | b -> c)
17:20:59 <oerjan> Taneb: you might want to look up sequent calculus...
17:21:17 <Taneb> At the moment I'm looking up accents of the english language
17:21:24 <Taneb> I'll add sequent calculus to the queue
17:21:32 <FreeFull> Time for me to check pipes out
17:21:53 <Taneb> Unix pipes, Haskell pipes, or plumbing pipes?
17:22:57 <oerjan> Taneb: hm you weren't brought to accents from wikipedia's picture of the day by any chance?
17:23:06 <Taneb> No
17:23:11 <oerjan> ok then
17:23:14 <Taneb> I was talking to someone in the American South about it
17:23:31 <oerjan> because i just had "Transatlantic accent" open
17:25:23 <FreeFull> Haskell pipes
17:25:44 <FreeFull> I've been pretty familiar with unix pipes for a while now =P
17:33:14 <kmc> hash pipes
17:36:55 <FreeFull> I don't smoke
17:37:17 <Taneb> Cigars are much nicer
17:37:27 <Taneb> Actually, I've never smoken hash or a pipe
17:37:40 <FreeFull> Tobacco is nasty
17:37:53 <Taneb> Cigarettes are nasty
17:40:45 <Phantom_Hoover> tobacco in general just seems like a bum deal
17:41:30 <Phantom_Hoover> a boatload of crappy side effects for... getting relaxed?
17:43:00 -!- Bike has joined.
17:47:03 -!- TeruFSX has joined.
17:47:08 -!- TeruFSX2 has joined.
17:51:06 -!- const has changed nick to constant.
17:52:04 -!- Slereah has quit (Ping timeout: 256 seconds).
17:52:23 -!- Slereah_ has joined.
17:53:28 <ion> Finnish LotR. I hadn’t even heard about it existing. :-D http://youtu.be/Koj0V7G46fs?t=5m52s
17:57:31 <Taneb> I read that as "Finished [reading] LotR"
17:57:43 <Taneb> Which changes the meaning entirely
18:00:54 <olsner> aah, finland
18:01:21 <fizzie> ion: What, you didn't know about that show?
18:01:24 <fizzie> That's weird.
18:01:54 <fizzie> It has an impressive opening.
18:07:15 -!- nooodl has joined.
18:07:27 <oklopol> awesome
18:10:31 <Phantom_Hoover> i love the guy's reaction to being garotted
18:11:09 <Phantom_Hoover> he's like "huh why is my head moving backward"
18:11:20 <Phantom_Hoover> "oh right there's a string around my neck"
18:14:03 -!- mp98 has joined.
18:15:02 -!- mp98 has quit (Remote host closed the connection).
18:31:42 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
18:45:42 -!- Nisstyre-laptop has joined.
18:46:04 -!- impomatic has joined.
18:46:51 <Gregor> ion: I would watch that if the subtitles weren't in Comic Sans.
18:47:34 <oerjan> idea: comic sans for spoiler tags
18:47:51 <Phantom_Hoover> Gregor, it's all part of the style
18:57:17 -!- dessos has left.
19:06:12 -!- Taneb has quit (Ping timeout: 256 seconds).
19:22:34 -!- Gregor has set topic: Y'ALL DON'T NEED NO PRIVATE KEYS TO PUSH TO THIS REPO | http://codu.org/logs/_esoteric/.
19:40:30 <oerjan> :t foldr'
19:40:31 <lambdabot> Not in scope: foldr'
19:40:32 <lambdabot> Perhaps you meant one of these:
19:40:32 <lambdabot> BS.foldr' (imported from Data.ByteString),
19:42:38 -!- monqy has joined.
19:47:22 -!- TeruFSX2 has quit (Ping timeout: 256 seconds).
19:47:22 -!- TeruFSX has quit (Ping timeout: 256 seconds).
20:02:33 -!- AnotherTest has joined.
20:03:14 <nooga> um
20:03:14 -!- Taneb has joined.
20:03:29 <nooga> is it bad that I don't understand a thing from this: http://www.willamette.edu/~fruehr/haskell/evolution.html#categorical ?
20:03:51 <elliott> yes
20:03:54 -!- epicmonkey has quit (Read error: Operation timed out).
20:04:04 <nooga> why?
20:04:13 <elliott> yes
20:04:25 <AnotherTest> because elliott said so
20:05:11 <AnotherTest> actually I don't understand a thing from it either
20:05:37 <monqy> what's not to understand about it
20:05:42 <nooga> haskell is weird
20:06:03 <AnotherTest> Well, as a junior haskell programmer (probably not even) it's pretty hard
20:06:17 <AnotherTest> I think the idea actually is that you don't understand it, until you are at the said level
20:07:06 <oerjan> > _head ?~ ""
20:07:08 <lambdabot> No instance for (GHC.Show.Show (t0 -> t0))
20:07:08 <lambdabot> arising from a use of `M26650...
20:07:14 <oerjan> :t (?~)
20:07:15 <lambdabot> ASetter s t a (Maybe b) -> b -> s -> t
20:07:32 <kmc> AnotherTest: nah, look at the last one
20:07:34 <nooga> oerjan> :t (?~)
20:07:49 <nooga> arising from a use of `M26650
20:07:52 <AnotherTest> kmc: ok, I get thatone
20:07:57 <nooga> yeah, that's so meaningful
20:08:01 <AnotherTest> but I think someone not knowing haskell also does
20:08:40 <elliott> oerjan: (?~) is a setter
20:08:48 <elliott> > "" ^? _head
20:08:50 <lambdabot> Nothing
20:09:04 <elliott> > M.empty & ix "abc" ?~ Just 123
20:09:06 <lambdabot> fromList []
20:09:07 <nooga> haskell is weird and its algebraic type system is even weirder
20:09:14 <elliott> hm, what.
20:09:18 <elliott> oh
20:09:20 <elliott> > M. & at "abc" ?~ Nothing
20:09:22 <lambdabot> <hint>:1:4: parse error on input `&'
20:09:22 <elliott> > M.empty & at "abc" ?~ Nothing
20:09:24 <lambdabot> fromList [("abc",Nothing)]
20:09:25 <Taneb> > "hello" & _head ?~ 'Y' & id <>~ "w"
20:09:26 <lambdabot> Couldn't match type `GHC.Types.Char'
20:09:27 <lambdabot> with `Data.Maybe.Maybe...
20:09:37 <elliott> > M.singleton "abc" 123 & at "abc" ?~ 123
20:09:38 <AnotherTest> nooga: I guess some stuff is weirder than Haskell though
20:09:39 <lambdabot> fromList [("abc",123)]
20:09:43 <elliott> sometimes i forget i'm an idiot
20:10:17 <nooga> elliott: good that you remember now ;>
20:10:26 <oerjan> on this "evolution" thing, i'm disappointed by the "teaching Haskell to freshmen" comment on the tenured professor. without it, it would be a better joke of "no longer has to be pretentious", i think.
20:11:06 <monqy> nooga: um i think you'll find that it's things that aren't haskell that are weird
20:11:37 <nooga> i didn't say that haskell is the weirdest thing i saw
20:12:03 <elliott> oerjan: that sounds like wishful thinking :P
20:12:38 <AnotherTest> like in C++, you can write function() try { } catch { }
20:12:43 <AnotherTest> I just found that out recently
20:12:53 <AnotherTest> (note you'd have to write catch(something))
20:13:08 <nooga> C++ does not exist for me :D
20:13:27 <oerjan> god dammit i just start looking at something slightly brain-requiring (lenses), and like clockwork the housemate makes a phone call.
20:13:36 <AnotherTest> nooga: That's like denying the holocaust.
20:13:44 <elliott> what
20:13:50 <nooga> yeah, because C++ is almost that bad, AnotherTest
20:13:56 -!- DHeadshot has quit (Ping timeout: 248 seconds).
20:14:01 <AnotherTest> nooga: ha you got it
20:14:11 <nooga> ;)
20:14:15 <Taneb> oerjan, you are the only man alive who can program in Fueue, you should be able to understand lenses
20:16:24 <elliott> oerjan: just play edwardk's lens video really loud
20:16:25 <oerjan> i can. but the house has to be quiet.
20:16:47 <kmc> AnotherTest: huh? can you elaborate on that syntax?
20:17:20 <oerjan> <elliott> oerjan: that sounds like wishful thinking :P <-- i thought that was sort of the point of tenure, at least the american version...
20:17:41 <AnotherTest> kmc: It's a shorthand for function { try { } catch(something) { } }
20:17:43 <AnotherTest> BUT
20:17:54 <elliott> oerjan: I think I was trying to make some joke about you wanting to believe you could stop being pretentious with tenure or something
20:17:57 <elliott> but I am bad at joke
20:18:09 <AnotherTest> when it falls off }, it rethrows
20:18:10 <AnotherTest> BUT
20:18:10 <oerjan> O( )KAY
20:18:15 <AnotherTest> that only happens when it's in a constructor
20:18:34 <olsner> oerjan: the house has to be quiet?
20:18:36 <AnotherTest> so for a normal function, it will return when going out of scope, and for a constructor it will rethrow
20:18:58 <oerjan> olsner: if i am to think properly, yes.
20:19:19 <nooga> try that when living with fiance
20:19:35 <nooga> no more thinking
20:22:32 <olsner> oerjan: http://hackage.haskell.org/packages/archive/lens/3.8.5/doc/html/Control-Lens-Internal-Bazaar.html
20:23:28 <olsner> I'm sure that's the bestest starting point for learning about lenses
20:23:50 <oerjan> OKAY
20:24:05 <oerjan> i'm sure you are joking, as the alternative would require me to kill you now.
20:24:19 <olsner> I'm glad to see that Bazaar has a Bizarre instance nowadays
20:24:27 <elliott> that one is edwardk's fault
20:24:47 <Phantom_Hoover> what does that class <stuff> | <other stuff> thing mean
20:24:58 <Phantom_Hoover> i tried finding out the other day and failed miserably
20:25:08 <elliott> Phantom_Hoover: functional dependencies
20:25:12 <olsner> elliott: the type/typeclass or the lens library?
20:25:15 <elliott> a b c -> d e f mean that the choice of a,b,c determine d,e,f
20:25:19 <elliott> olsner: both
20:25:44 <nooga> i don't even try to visualize what are you talking about
20:25:50 <nooga> what lens
20:26:03 <elliott> yes
20:27:17 <nooga> no
20:32:47 <nooga> functional equivalent of reference
20:32:49 <nooga> huh
20:34:23 * oerjan suddenly realizes the pun in "Bazaar". i guess because it was written out explicitly in that link.
20:34:44 -!- mekeor has quit (Quit: goo nigh).
20:35:06 <oerjan> :t (^?)
20:35:08 <lambdabot> s -> Getting (First a) s t a b -> Maybe a
20:35:29 <tswett> The Karkat function.
20:35:39 <tswett> Seriously, what is that. What are Getting and First?
20:36:12 <shachaf> First is from Data.Monoid
20:37:35 <tswett> All right, it's the "Maybe monoid returning the leftmost non-Nothing value".
20:38:06 <tswett> (Look, a functor from Set to Mon!)
20:38:21 <tswett> And Getting, then?
20:38:23 <tswett> @index Getting
20:38:23 <lambdabot> bzzt
20:38:27 <oerjan> aka "why the heck isn't that the Monoid instance for Maybe itself, anyway?"
20:38:52 <tswett> Presumably because there's also Last. Not that that's a great reason.
20:39:05 <tswett> Hey, I bet there's a natrual transformation from First to Last.
20:39:13 <oerjan> :t fold
20:39:14 <lambdabot> (Foldable t, Monoid m) => t m -> m
20:39:34 <shachaf> tswett: Because the correct Monoid instance is Semigroup a => Monoid (Maybe a)
20:39:38 <shachaf> Not that that one exists.
20:39:59 <shachaf> Anyway: type Getting r s t a b -> (a -> Const r b) -> s -> Const r t
20:40:19 <tswett> And what's Const?
20:40:45 <oerjan> Const r b is r, wrapped.
20:40:58 <shachaf> @arrrr
20:40:59 <lambdabot> Avast!
20:41:13 <tswett> So it's equivalent to r.
20:41:24 <tswett> Isomorphic, even, isn't it...
20:41:29 <oerjan> it's used here because it makes Getting a special case of the type of Lens
20:41:33 <Taneb> > mconcat [Just "hello ", Nothing, Just "monoids!"]
20:41:34 <lambdabot> Just "hello monoids!"
20:41:58 <tswett> I'm starting to think something silly may be going on.
20:42:07 <oerjan> (also, because it's how you use a Lens as a Getter, which is sort of equivalent)
20:43:00 <elliott> 20:34:23 * oerjan suddenly realizes the pun in "Bazaar". i guess because it was written out explicitly in that link.
20:43:11 <elliott> oerjan: lens' puns aren't quite... puns
20:43:17 <elliott> they're more like excuses
20:44:03 <oerjan> OKAY
20:44:16 <elliott> oerjan: well there is also Market and Exchange
20:44:26 <oerjan> ouch
20:45:27 <Taneb> There's a market in Hexham and there used to be an exchange but now it's a cafe thing
20:45:47 <tswett> Is there also a type called Cafe?
20:46:17 <Bike> the cafe s t a b
20:46:17 <lambdabot> Bike: You have 2 new messages. '/msg lambdabot @messages' to read them.
20:48:21 <oerjan> :t _head
20:48:23 <lambdabot> Cons (->) f s s a a => LensLike' f s a
20:48:46 <Bike> That's a pretty good one, oerjan.
20:49:32 * oerjan isn't sure whether Bike is referring to _head or his message
20:52:01 <oerjan> :t [1,2,3] ^. _head
20:52:03 <lambdabot> (Num t, Monoid t) => t
20:53:48 <Taneb> _head is just a traversal
20:54:12 <Taneb> Which means (^.) needs a monoid
20:54:17 <Taneb> :t [] ^. _head :: String
20:54:19 <lambdabot> String
20:54:21 <Taneb> > [] ^. _head :: String
20:54:23 <lambdabot> ""
20:54:26 <Taneb> > [] ^. _head :: Int
20:54:27 <lambdabot> No instance for (Data.Monoid.Monoid GHC.Types.Int)
20:54:28 <lambdabot> arising from a use of...
20:56:33 <oerjan> :t _head %%~ pure
20:56:34 <lambdabot> (Applicative f, Cons (->) f t t b b) => t -> f t
20:56:54 <oerjan> > _head %%~ pure $ [1,2,3]
20:56:56 <lambdabot> No instance for (GHC.Show.Show (f0 [t0]))
20:56:56 <lambdabot> arising from a use of `M699807...
20:57:07 <oerjan> > _head %%~ (:[]) $ [1,2,3]
20:57:09 <lambdabot> [[1,2,3]]
20:57:20 <oerjan> ...what
20:58:04 <oerjan> oh right, that "always returns the same number of elements" thing
20:58:44 <Taneb> :t (%%~)
20:58:46 <lambdabot> Overloading p q f s t a b -> p a (f b) -> q s (f t)
20:59:09 -!- madbr has joined.
20:59:12 <Taneb> I'm pretty sure that's just id
20:59:13 <elliott> oerjan: ?
20:59:18 <elliott> oerjan: (%%~) = traverseOf = id
20:59:18 <madbr> hey
20:59:28 <elliott> > _head (:[]) [1,2,3]
20:59:30 <lambdabot> [[1,2,3]]
20:59:32 <Taneb> :t _head (:[])
20:59:34 <lambdabot> Cons (->) [] s s a a => s -> [s]
20:59:41 <Taneb> > _head (:[]) "hello"
20:59:42 <elliott> > traverse %%~ (:[]) $ [1,2,3]
20:59:43 <lambdabot> can't find file: L.hs
20:59:44 <lambdabot> ["hello"]
20:59:47 <elliott> > traverse %%~ (:[]) $ [1,2,3]
20:59:50 <lambdabot> [[1,2,3]]
21:00:01 <Sgeo_> Hmm
21:00:03 <Sgeo_> "This paper also shows how Scalas type system conspires with implicits to enable, and even surpass, many common extensions of the Haskell type class system, making Scala ideally suited for generic programming in the large.
21:00:03 <Sgeo_> "
21:00:08 <Sgeo_> I should probably read this
21:00:14 <oerjan> elliott: thank you for answering a question i'm not caring about
21:00:24 <elliott> Sgeo_: ask monqy about scala's many benefits over haskell
21:00:34 <Sgeo_> http://lambda-the-ultimate.org/node/4039
21:00:35 <elliott> oerjan: well I don't see how this is related to "always returns the same number of elements"?? i'm confused
21:00:35 <monqy> fuck scala fuck scala fuck scala
21:00:45 <Sgeo_> monqy, um, hm? Why?
21:00:55 <madbr> does anyone know if it's easy in a C copiler to reorder the operations to group as much memory read/writes together as possible?? like, group all the math operations and conditionals together, and then once in a while do a whole group of just memory accesses
21:00:55 <elliott> its just too powerful for monqy
21:00:59 <elliott> he needs good old typeclasses
21:01:37 <oerjan> oh hum
21:02:48 <monqy> Sgeo_: have you ever used scala
21:02:52 <madbr> I'm working on a RISC cpu design with no cache(!)
21:03:03 <Sgeo_> I've read some Scala documentation, never really used Scala though
21:03:06 <monqy> im sure you havent, because if you had, you'd know the True Heck that is scala
21:03:22 <Sgeo_> What, the piles and piles of syntax?
21:03:30 <monqy> um
21:03:34 <monqy> no
21:03:36 <elliott> sorta like how esolangs are all about adding weird syntax
21:03:52 <oerjan> :t (^?)
21:03:54 <lambdabot> s -> Getting (First a) s t a b -> Maybe a
21:04:05 <Sgeo_> I like that there's special syntax for delimited continuations.
21:04:12 <elliott> haskell has that too its called do notation
21:04:38 <madbr> and the problem is that when you have to do memory accesses, they have to do them on another mem page than where the instructions are, which has a penalty (3 cycles RAS/CAS access instead of 1 cycle CAS only), and then once the read/write is done, you have to load up the next opcode, which is also on another memory page and also gets the 3 cycle instead of 1 penalty
21:04:41 <Sgeo_> do notation is ugly compared to shift/reset imo
21:04:46 <oerjan> > foldMapOf [1,2,3] (:[]) _head
21:04:48 <lambdabot> Couldn't match expected type `p0 a0 (Control.Lens.Internal.Getter.Accessor
21:04:49 <lambdabot> ...
21:04:59 <Sgeo_> https://github.com/urso/embeddedmonads
21:05:01 <oerjan> :t foldMapOf
21:05:02 <FreeFull> Shift/reset?
21:05:03 <lambdabot> Profunctor p => Accessing p r s t a b -> p a r -> s -> r
21:05:06 <FreeFull> :t foldMapOf
21:05:08 <lambdabot> Profunctor p => Accessing p r s t a b -> p a r -> s -> r
21:05:27 <FreeFull> I don't get those types with profunctors
21:05:29 <oerjan> > foldMapOf _head (:[]) [1,2,3]
21:05:32 <lambdabot> [1]
21:05:35 <oerjan> finally
21:05:38 <madbr> so if I did just a standard load/store RISC cpu, the alu/jmp ops would take 1 cycle but the memory IO would take a massive 6 cycles
21:05:55 <FreeFull> > foldMapOf _tail (:[]) [3,4,5]
21:05:57 <lambdabot> [[4,5]]
21:06:18 <FreeFull> > foldMapOf _1 (:[]) [3,4,5]
21:06:20 <lambdabot> Could not deduce (Control.Lens.Tuple.Field1 [t1] t0 a b0)
21:06:20 <lambdabot> arising from t...
21:07:38 <oerjan> :t elementOf
21:07:40 <lambdabot> (Applicative f, Indexable Int p) => LensLike (Control.Lens.Internal.Indexed.Indexing f) s t a a -> Int -> p a (f a) -> s -> f t
21:08:26 <FreeFull> What hapenned to simple types like [a] -> Int -> a
21:08:57 <elliott> it's ghc's fault that the types look complex because it likes to reduce away type synonyms for no reason
21:09:14 <oerjan> > foldMapOf (elementOf id 2) (:[]) [1,2,3]
21:09:16 <lambdabot> []
21:09:18 <oerjan> oops
21:09:55 <oerjan> oh wait it doesn't do anything to the type...
21:09:57 -!- copumpkin has quit (Ping timeout: 252 seconds).
21:10:37 -!- copumpkin has joined.
21:11:04 <Sgeo_> monqy, what's wrong with Scala?
21:11:38 <monqy> oh god so many things
21:11:40 <monqy> i suggest you try it for yourself
21:11:40 <oerjan> > foldMapOf (elementOf traverse 2) (:[]) [1,2,3]
21:11:42 <lambdabot> [3]
21:11:54 <elliott> monqy: that doesnt really fit into the sgeo language workflow
21:11:54 <kmc> scala's type system is the illegitimate child of haskell's and java's
21:13:12 <oerjan> > foldMapOf (element 2) (:[]) [1,2,3] -- had an abbreviation
21:13:14 <lambdabot> [3]
21:13:28 <Sgeo_> elliott, oh come on. I've written real Haskell and Tcl programs.
21:13:51 <Sgeo_> And Ruby, once
21:14:01 <Sgeo_> Should have used Python or Haskell for that one though
21:14:34 <oerjan> > foldMapOf (elements even) (:[]) ['a'..'z']
21:14:36 <lambdabot> "acegikmoqsuwy"
21:14:40 <elliott> well 3 is a smaller number than a really big number
21:14:45 <elliott> soooooooooooooooo
21:14:53 <Bike> Also smaller than four.
21:15:06 <shachaf> Bike: I'm not sure about that.
21:15:17 <Sgeo_> ) 3<_
21:15:17 <shachaf> > comparing length "three" "four"
21:15:18 <jconn> Sgeo_: 1
21:15:19 <lambdabot> GT
21:15:33 <Bike> I'm talking about four, not "four".
21:15:38 <Bike> Obviously.
21:15:49 <elliott> > comparing length "three" four
21:15:51 <lambdabot> Not in scope: `four'
21:15:52 <lambdabot> Perhaps you meant `Data.Traversable.for' (imported fr...
21:15:53 <elliott> > comparing length "three" four
21:15:56 <lambdabot> Not in scope: `four'
21:15:57 <lambdabot> Perhaps you meant `Data.Traversable.for' (imported fr...
21:15:58 <shachaf> True.
21:16:01 <shachaf> And it was 3, not "three"
21:16:02 <elliott> oh
21:16:03 <elliott> 21:15:46 <elliott> @let "four" = four
21:16:04 <elliott> 21:15:48 <lambdabot> <local>:5:10:
21:16:04 <elliott> 21:15:48 <lambdabot> Not in scope: `four'
21:16:04 <elliott> 21:15:48 <lambdabot> Perhaps you meant `Data.Traversable.for' (imported from Data.Traversable)
21:16:06 <shachaf> > compare 3 four
21:16:07 <elliott> I am a genius
21:16:10 <lambdabot> mueval-core: Time limit exceeded
21:16:16 <Bike> So they're incomparable.
21:16:16 <shachaf> Hmph.
21:16:18 <Bike> That's cool.
21:16:18 <shachaf> > compare 3 four
21:16:22 <lambdabot> GT
21:16:27 <Bike> lambdabot is inconsistent.
21:16:38 <shachaf> Inconsistent *and* incomplete.
21:16:44 <shachaf> What kind of deal did we get here, anyway?
21:17:18 <oerjan> > elements even %~ toUpper $ ['a'..'z']
21:17:21 <lambdabot> "AbCdEfGhIjKlMnOpQrStUvWxYz"
21:17:57 <nooodl> that reminds me of `WeLcOmE
21:18:25 <oerjan> `WeLcOmE test
21:18:34 <HackEgo> TeSt: WeLcOmE To tHe iNtErNaTiOnAl hUb fOr eSoTeRiC PrOgRaMmInG LaNgUaGe dEsIgN AnD DePlOyMeNt! FoR MoRe iNfOrMaTiOn, ChEcK OuT OuR WiKi: HtTp://eSoLaNgS.OrG/WiKi/mAiN_PaGe. (fOr tHe oThEr kInD Of eSoTeRiCa, TrY #eSoTeRiC On iRc.dAl.nEt.)
21:18:44 <oerjan> seems identical
21:19:05 <shachaf> > elements even %~ toUpper $ "irc.dahl.net"
21:19:07 <lambdabot> "IrC.DaHl.nEt"
21:19:25 <oerjan> wait, WeLcOmE also downcases the others, i think
21:19:51 <nooodl> > elements odd %~ toUpper $ ['a'..'z']
21:19:53 <lambdabot> "aBcDeFgHiJkLmNoPqRsTuVwXyZ"
21:20:13 <elliott> > traversed %@~ if' even toUpper toLower "ABCdef"
21:20:15 <lambdabot> Not in scope: if'
21:20:15 <lambdabot> Perhaps you meant f' (imported from Debug.SimpleReflect)
21:20:23 <elliott> > traversed %@~ (\i -> if even i then toUpper else toLower) "ABCdef"
21:20:25 <lambdabot> Couldn't match expected type `a0 -> b0'
21:20:25 <lambdabot> with actual type `GHC....
21:20:26 <elliott> er
21:20:28 <elliott> > traversed %@~ (\i -> if even i then toUpper else toLower) $ "ABCdef"
21:20:30 <lambdabot> "AbCdEf"
21:22:02 <nooodl> > traversed %@~ (cycle [toUpper,toLower] !!) $ "ABCdef"
21:22:04 <lambdabot> "AbCdEf"
21:22:35 <oerjan> i have a hunch zipWith ($) is more efficient in that case
21:22:50 <shachaf> Sadly list indexing is really expensive.
21:23:00 <shachaf> It allocates a bunch of tuples and annoying things like that.
21:23:11 <elliott> should make it use unboxed tuples
21:23:18 <shachaf> Can't.
21:23:22 <elliott> I suspect a simple use of traversed + (%@~) gets inlined
21:23:35 <shachaf> Yes, but traversed is expensive even if you don't use the index.
21:23:37 <shachaf> ~10x
21:24:15 <elliott> I mean I suspect the allocation gets inlined away.
21:24:45 <shachaf> How?
21:24:54 <shachaf> It allocates a tuple for every element of the list.
21:25:07 <shachaf> Remember, indexing is implemented by traversing it with something like State Int.
21:26:07 <elliott> I mean when you're monomorphic on the container type.
21:27:14 <shachaf> ?
21:27:21 <elliott> ?
21:27:38 <shachaf> What does it change when you're monomorphic over the container type?
21:27:57 <elliott> Why does (traversed %@~ (\i -> if even i then toUpper else toLower)) have to allocate any tuples?
21:28:00 <elliott> If it all gets inlined.
21:28:14 <elliott> If you use it as String -> String.
21:28:18 <elliott> As in fixing the Traversable instance.
21:29:11 <shachaf> It's still going to traverse it with State Int to figure out the indices.
21:29:20 <elliott> But traverse can be inlined.
21:30:05 <shachaf> Right, and then what?
21:30:18 <shachaf> Note that you have to traverse it with *lazy* State.
21:30:32 <shachaf> You can't use an unboxed tuple there because then it fails with infinite lists and such.
21:35:08 -!- zzo38 has joined.
21:35:43 <elliott> Hmm.
21:36:20 -!- AnotherTest has quit (Quit: Leaving.).
21:43:50 <kmc> http://www.reddit.com/r/IAmA/comments/18pik4/i_am_astronaut_chris_hadfield_currently_orbiting/
21:53:30 <Phantom_Hoover> how funny would it be if that turned out to be fake
21:54:27 <Phantom_Hoover> not especially, i guess
21:55:32 <olsner> how funny would it be if it turned out we have people in space
21:57:58 -!- Taneb has quit (Read error: Connection reset by peer).
22:00:15 <oerjan> :t reuse _Cons
22:00:17 <lambdabot> (MonadState (b, t) m, Cons Control.Lens.Internal.Review.Reviewed Identity s t a b) => m t
22:16:14 <oerjan> :t (??)
22:16:19 <lambdabot> Functor f => f (a -> b) -> a -> f b
22:16:54 <FreeFull> > [\x -> x*x] ?? 3
22:16:58 <lambdabot> [9
22:17:07 <FreeFull> That got printed out weirdly o.o
22:17:08 <oerjan> WAT
22:17:14 -!- EgoBot has quit (Read error: Connection reset by peer).
22:17:31 <kmc> Phantom_Hoover: it would be funny if he made it sound like the space station was under attack by alien monsters
22:17:36 <oerjan> > [\x -> x*x] ?? 3
22:17:38 <lambdabot> [9]
22:17:43 -!- EgoBot has joined.
22:18:11 <kmc> maybe i should watch that terrible movie where (spoiler alert) it turns out that moon rocks are alien monsters
22:18:36 -!- Nisstyre-laptop has quit (Quit: Leaving).
22:18:38 <FreeFull> I like how the type basically tells you what the function does
22:19:12 <FreeFull> I wonder
22:19:16 <kmc> i think in this case it actually does tell you
22:19:25 <FreeFull> > [*] ?? 3 ?? 4
22:19:27 <lambdabot> <hint>:1:3: parse error on input `]'
22:19:33 <FreeFull> > [(*)] ?? 3 ?? 4
22:19:35 <kmc> that is, there's only one function of that type obeying the laws
22:19:35 <lambdabot> [12]
22:19:38 <FreeFull> Hah
22:19:39 <FreeFull> It works
22:19:41 <kmc> that happens sometimes with functors
22:21:06 -!- Nisstyre-laptop has joined.
22:21:07 <kmc> > ((++) ?? "foo") "bar"
22:21:10 <lambdabot> "barfoo"
22:21:21 <kmc> (??) is a generalization of flip :)
22:21:40 <Phantom_Hoover> @type (??)
22:21:41 <lambdabot> Functor f => f (a -> b) -> a -> f b
22:22:57 <kmc> hm i shouldn't have said "obeying the laws" because that's the job of the Functor instance and not the function using Functor
22:23:26 <kmc> perhaps I'm thinking of free theorems and the fact that they only work on law-abiding instances
22:25:14 <FreeFull> (??) feels to me like something from applicative
22:28:20 -!- aloril has quit (Ping timeout: 276 seconds).
22:28:24 <Phantom_Hoover> kmc, so wait how is that a generalisation of flip...
22:29:38 <FreeFull> It happens to be flip for functions
22:29:56 <Phantom_Hoover> what value of f makes it into flip
22:30:09 <elliott> (->) r
22:30:20 <Phantom_Hoover> ohhh, right
22:30:34 <Phantom_Hoover> i was trying it with (->) and getting immensely confused
22:31:42 <FreeFull> I wonder how it works with ((,) a)
22:32:43 <elliott> (c, a -> b) -> a -> (c, b)
22:32:45 <elliott> only one way it can work
22:32:58 <FreeFull> Ah, right
22:33:11 <FreeFull> > (3, (*)) ?? 4 ?? 5
22:33:18 <lambdabot> mueval: ExitFailure 1
22:33:18 <lambdabot> mueval: Prelude.undefined
22:33:27 <FreeFull> I think lambdabot is flaky
22:33:53 <shachaf> kmc: Well, you are assuming the laws when you say that.
22:34:05 <shachaf> E.g. without the laws, you could fmap id a few times and get a different result.
22:34:06 -!- aloril has joined.
22:34:25 <FreeFull> > (3, (3*)) ?? 4 ?? 5
22:34:29 <FreeFull> > (3, (3*)) ?? 4
22:34:32 <lambdabot> mueval: Prelude.undefined
22:34:33 <lambdabot> mueval: ExitFailure 1
22:34:35 <lambdabot> mueval-core: Time limit exceeded
22:35:25 <elliott> shachaf: You mean "law" singular.
22:35:51 <shachaf> I mean laws. Though you do get the other one for free here.
22:36:08 -!- madbr has quit (Quit: Radiateur).
22:36:21 -!- Slereah_ has changed nick to Slereah.
22:36:25 <elliott> I think there are many laws you get for free that we just take for granted.
22:36:30 <elliott> (So we should probably just take them all for granted.)
22:36:45 <FreeFull> @info (??)
22:36:45 <lambdabot> (??)
22:36:55 <FreeFull> > (3, (3*)) ?? 4
22:37:02 <lambdabot> mueval: Prelude.undefined
22:37:09 <FreeFull> Why is it undefined :/
22:37:20 <shachaf> lambdabot doesn't like you.
22:37:58 <oerjan> > ifoldMap replicate "testing"
22:38:05 <lambdabot> mueval: Prelude.undefined
22:38:07 <oerjan> > ifoldMap replicate "testing"
22:38:13 <lambdabot> mueval-core: Time limit exceeded
22:38:23 <elliott> > 2 + 2
22:38:25 <FreeFull> I think lambdabot is exploding
22:38:28 * oerjan hits lambdabot with the saucepan ===\__/
22:38:29 <lambdabot> mueval: ExitFailure 1
22:38:29 <lambdabot> mueval: Prelude.undefined
22:38:33 <elliott> did halite do something
22:39:21 <elliott> > "x"
22:39:27 <lambdabot> mueval-core: Time limit exceeded
22:42:31 <oerjan> > "a"
22:42:38 <lambdabot> mueval: Prelude.undefined
22:42:50 <elliott> apparently it is lispy's fault
22:42:55 <elliott> all the cpu is used up by ld
22:43:02 -!- carado has quit (Ping timeout: 256 seconds).
22:43:02 <shachaf> linkspy
22:43:26 <oerjan> BAN HIM OK
22:46:36 <elliott> > 3
22:46:40 <lambdabot> mueval-core: Time limit exceeded
22:46:42 <elliott> > 3
22:46:44 <lambdabot> can't find file: L.hs
22:46:47 <elliott> > 3
22:46:49 <lambdabot> 3
22:46:51 <elliott> oerjan: HTH HAND
22:47:13 <oerjan> yo
22:47:16 <oerjan> > ifoldMap replicate "testing"
22:47:19 <lambdabot> "esstttiiiinnnnngggggg"
22:47:42 <Sgeo_> :t ifoldMap
22:47:45 <lambdabot> (Monoid m, FoldableWithIndex i f) => (i -> a -> m) -> f a -> m
22:52:13 <oerjan> > imapM replicate "abcd"
22:52:15 <lambdabot> []
22:52:19 <oerjan> oops
22:52:27 <oerjan> > imapM (replicate.succ) "abcd"
22:52:30 <lambdabot> ["abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abc...
22:53:38 <FreeFull> > (3, (3*)) ?? 4
22:53:40 <lambdabot> (3,12)
22:53:42 <FreeFull> Yay
22:53:52 <FreeFull> > (3, (*)) ?? 4 ?? 5
22:53:54 <lambdabot> (3,20)
22:54:41 <FreeFull> :t flip (,)
22:54:42 <lambdabot> b -> a -> (a, b)
22:55:47 <FreeFull> :t flip (,) $ 3
22:55:48 <lambdabot> Num b => a -> (a, b)
23:01:02 <tswett> I wonder how difficult sustained terrestrial microgravity would be.
23:01:28 <tswett> I.e. build an evacuated magnetic levitation tube going all the way around the earth, and accelerate a vehicle within it to the appropriate speed.
23:07:51 <tswett> Presumably, you'd want the tube to go over as little water as possible.
23:11:20 <Phantom_Hoover> build it underground?
23:11:25 <Phantom_Hoover> probably have to be too deep
23:23:47 <FreeFull> It wouldn't be worth it
23:23:59 <elliott> define "worth it"
23:27:26 <nooga> > replicate "a"
23:27:28 <lambdabot> Couldn't match expected type `GHC.Types.Int'
23:27:28 <lambdabot> with actual type ...
23:27:45 <nooga> > replicate 2
23:27:46 <lambdabot> No instance for (GHC.Show.Show (a0 -> [a0]))
23:27:47 <lambdabot> arising from a use of `M388...
23:29:11 <FreeFull> > replicate 2 2
23:29:13 <lambdabot> [2,2]
23:29:14 <nooga> > replicate 2 2
23:29:15 <lambdabot> [2,2]
23:29:29 <nooga> lol
23:30:01 <Phantom_Hoover> > replicate -1 2
23:30:03 <lambdabot> Could not deduce (GHC.Num.Num (a0 -> GHC.Types.Int -> a -> [a]))
23:30:03 <lambdabot> arising...
23:30:18 <Phantom_Hoover> awww
23:31:37 <nooga> > replicate 200 $ replicate 200 "wee"
23:31:38 <lambdabot> [["wee","wee","wee","wee","wee","wee","wee","wee","wee","wee","wee","wee","...
23:31:43 <nooga> meh
23:31:53 <elliott> wee
23:32:03 <elliott> Phantom_Hoover: ps its (-1)
23:32:05 <nooga> go on
23:32:33 <nooga> only 384 wees to go
23:32:39 <Phantom_Hoover> > replicate (-1) 2
23:32:41 <lambdabot> []
23:33:09 <nooga> sorry, 387
23:33:27 <Phantom_Hoover> elliott, that seems kind of weird
23:33:54 <elliott> replicate -1 2 is (replicate - 1) 2
23:34:17 <Phantom_Hoover> yeah
23:34:37 <Phantom_Hoover> i'm just surprised i hadn't heard of it before, it seems Kind of a Big Deal
23:35:02 <nooga> > negate 2
23:35:04 <lambdabot> -2
23:35:36 <Sgeo_> This is why J > Haskell
23:36:05 <nooga> haskell has almost no syntax
23:36:18 <FreeFull> No, haskell has plenty of syntax
23:36:31 <FreeFull> lisp has almost no syntax
23:36:35 <nooga> and it makes weird things with operators and infix context
23:37:25 <nooga> FreeFull: haskell looks the same but with indentation instead of parens
23:37:42 <nooga> to me
23:37:45 * Sgeo_ thinks that macros count as syntax
23:37:58 <kmc> lisp has plenty of syntax
23:38:00 <Sgeo_> Syntax that can be added, but still syntax
23:38:00 <Phantom_Hoover> haskell does have stuff like case and guards
23:38:02 <coppro> Haskell has little syntax
23:38:07 <coppro> compared to most language
23:38:08 <coppro> *s
23:38:09 <kmc> is it (let (x 3) (y 4) ...) or is it (let ((x 3) (y 4)) ...) ?
23:38:18 <elliott> kmc: latter
23:38:20 <nooga> the latter
23:38:22 <kmc> hint: CL does one and Scheme does the other
23:38:28 <elliott> oh
23:38:30 <nooga> oh right
23:38:32 <elliott> i thought that was a sincere question
23:38:32 <kmc> that's syntax
23:38:33 <elliott> i was confused
23:38:35 <Sgeo_> elliott, that was just to point out that that's a syntax question
23:38:35 <elliott> (i didnt read context)
23:38:39 <coppro> lol
23:38:44 <kmc> abstract syntax is still syntax
23:38:45 <nooga> who uses common lisp anyway
23:38:51 <kmc> that concludes your canned rant
23:38:57 <nooodl> the more i read about common lisp the more i hate it
23:39:11 <nooga> scheme looks more pleasant
23:39:12 * Sgeo_ wonders if there's anything that kmc could say that I would disagree with.
23:39:22 <kmc> nooga: obviously you're just an idiot drone because CL programmers are 50x more productive and sexy and the proof of this is hiding... right over here
23:39:26 * kmc runs off
23:39:27 <Phantom_Hoover> "second life sucks"
23:39:37 <nooodl> scheme is more pleasant... but there's less stuff in it? "who uses lisp anyway"
23:39:40 <kmc> i hear the second life programming language is the worst
23:39:48 <Sgeo_> kmc, can't disagree with that.
23:39:55 <nooga> huh
23:40:02 <Phantom_Hoover> "the only good thing to come from activeworlds was shamus young"
23:40:04 <ais523> Sgeo doesn't like any programming languages
23:40:05 <kmc> i knew a guy who did behavioral econ experiments in SL and that was his conclusion
23:40:11 <ais523> nor does elliott, but possibly for different reasons?
23:40:34 <nooodl> i think elliott likes haskell!!
23:40:37 <elliott> sometimes I like some programming languages
23:40:40 <elliott> nooodl: not really
23:40:43 <FreeFull> There is no programming language that has 0 syntax
23:40:44 <elliott> well i mean it's okay
23:40:53 <kmc> if lisp has almost no syntax then lisp is just a language for specifying trees, not a language for specifying programs
23:40:54 <Sgeo_> FreeFull, sure there is? Well, hmm.
23:41:06 <Sgeo_> The language where every program means do nothing.
23:41:28 <Sgeo_> All possible strings are legal programs in this language.
23:41:31 <nooodl> then the syntax is "every program does nothing"
23:41:31 <Sgeo_> Or does that count as syntax?
23:41:55 <FreeFull> This sounds like philosophy
23:42:02 <Phantom_Hoover> nooodl, how is that different from a language with 0 syntax
23:42:14 <kmc> i'm not going to claim that there's a perfectly sharp line between syntax and semantics, but i think any definition of "semantics" which includes the number of parens in let is designed for winning arguments rather than understanding things
23:42:47 <Sgeo_> Esolang idea: Esolang where that sort of thing is... now I'm confused
23:42:56 <nooga> i'd like a language with minimal syntax that could change itself freely in runtime
23:42:59 <Sgeo_> Something to push it into more distinctly semantic territory... somehow
23:43:08 <Sgeo_> nooga, I've seen something like that
23:43:08 <kmc> i think i prefer scheme's way, because a) it seems more regular, and b) it allows an implicit begin/progn
23:43:11 <kmc> nooga: TeX
23:43:20 <nooga> tex is distorted lisp
23:43:22 <Sgeo_> I don't mean TeX
23:43:49 <FreeFull> TeX is a language where a string can do everything
23:43:52 <shachaf> kmc: Which one of those is supposed to be Scheme?
23:43:54 <FreeFull> Wait, no
23:43:58 <FreeFull> not TeX
23:44:00 <shachaf> It looks to me like it's the latter for both of them.
23:44:01 <kmc> shachaf: (let ((x 3) (y 4)) ...)
23:44:05 <shachaf> (I know that's beside the point.)
23:44:09 <elliott> kmc: it's interesting that scheme has the implicit progn, for being the less imperative language
23:44:11 <kmc> sorry, "both of them"?
23:44:18 <elliott> oh hmm
23:44:23 <nooga> Sgeo_: i think that Ian Piumarta showcased something like that
23:44:28 <shachaf> Both CL and Scheme use the latter
23:44:47 <kmc> elliott: yeah although i'm not sure if scheme is "really" less imperative or if it's just that most people who have learned any Scheme learned it in intro CS while most people who have learned CL have written a "real" program in it
23:45:05 <kmc> oh i may be mistaken
23:45:16 <kmc> i think i'm thinking of clojure for the former
23:45:23 <shachaf> Ah.
23:45:29 <Sgeo_> Clojure is (let [a 1 b 2] ...)
23:45:30 <kmc> oh clojure does (let [x 1 y 2] ...)
23:45:35 <kmc> even differenter
23:45:58 <Sgeo_> I kind of like it, the [] is expected to be used in different places and with a different vague meaning than ()
23:45:59 <nooodl> Phantom_Hoover: well, it's a rule that tells you something about which programs are valid
23:46:15 <kmc> Sgeo_: is the difference observable past the reader stage?
23:46:23 <shachaf> Why do Scheme/CL do the double-parentheses thing, anyway?
23:46:27 <Sgeo_> kmc, yes
23:46:35 <shachaf> kmc: Yes, [] is a vector
23:46:45 <kmc> so there's some predicate which tells you whether a given quoted s-expr was made with [] or ()?
23:47:05 <elliott> it's gross to not have two parens
23:47:10 <elliott> you're sacrificing structure
23:47:15 <elliott> and making it implicit instead
23:47:22 <nooodl> a language with 0 syntax would be one where valid programs don't exist at all, maybe. but arguably "valid programs don't exist" is also a syntax rule
23:47:31 <Sgeo_> kmc, yes, there exists such a predicate, but the difference goes beyond that
23:47:32 <elliott> which means e.g. it's harder to see the structure from the parens (the literal whole point), indentation/alignment/etc. become less simple
23:47:40 <Sgeo_> [+ 1 2] does not do (+ 1 2)
23:47:41 <elliott> program trnasformation is harder
23:47:42 <elliott> & so on & so forth
23:48:16 <Sgeo_> [] gets read as a vector, which is a different data structure, and there are predicates to find out exactly what data structure
23:48:49 <Sgeo_> <Sgeo_> &[+ 1 2]
23:48:49 <Sgeo_> <lazybot> ⇒ [#<core$_PLUS_ clojure.core$_PLUS_@1284047> 1 2]
23:49:30 <kmc> i read "literal white point" and was confused
23:49:50 <kmc> vectors have fast random access yeah?
23:49:59 <shachaf> fandom access
23:50:09 <kmc> it seems weird to say "function argument should be specified by a structure with fast random access" solely for syntactic reasons
23:50:12 <kmc> but okay
23:54:50 <kmc> Florida Man Too Fat For Jail
23:54:55 <kmc> guess what he was arrested for
23:55:11 <ais523> damage to property?
23:55:19 <kmc> stealing food
23:56:38 <Phantom_Hoover> is he literally too big to fit in the cells or sth
23:57:03 <kmc> http://blogs.miaminewtimes.com/riptide/2010/04/florida_man_too_fat_for_jail.php
23:57:22 <kmc> this is courtesy https://twitter.com/_FloridaMan of course
23:57:23 <monqy> yikes
23:57:46 <kmc> "Jolicur avoided jail because it would be too expensive to house him... The cost of bringing him to trial alone would be thousands of dollars."
23:58:21 <kmc> Florida Man Accidentally Dials 911 While Trying To Call Tech Support, Gets Busted For Marijuana Grow Operation
2013-02-18
00:00:06 <elliott> "There are certain groups we're not supposed to make fun of, which now apparently includes fat people."
00:00:09 <elliott> great start there
00:01:11 <kmc> yeah seriously
00:02:07 <FreeFull> How do you accidentally dial 911
00:02:26 <kmc> well
00:02:30 <kmc> first assume you are very stupid
00:03:15 <Sgeo_> I've accidentally dialed 911 once
00:04:06 <elliott> how
00:04:08 <Sgeo_> Accidentally put heavy object (either laptop or the ... electronic writer thing I once owned) on top of a phone, phone had 1 button push for 911
00:04:20 <Phantom_Hoover> i hear it's worse in the uk, since it's all the same digit
00:04:39 <Sgeo_> Hmm, I think it's more holding the button down
00:04:59 <FreeFull> Quick dial?
00:05:13 <Sgeo_> It had 911 as a quick-dial like thing built-in
00:06:43 <shachaf> wow, that Florida Man
00:11:15 * Phantom_Hoover remembers that florida and california are actually different
00:12:34 -!- nooodl has quit (Ping timeout: 256 seconds).
00:13:13 <kmc> yeah people pocket-dial 911 all the time
00:13:41 <kmc> the solution: https://www.youtube.com/watch?v=ab8GtuPdrUQ
00:14:01 <zzo38> I don't; I have no cellular phone and don't put any telephone in my pocket or have emergency on any speed dial either.
00:14:03 <shachaf> Florida Man is apparently a big fan of calling 911
00:14:05 <Sgeo_> I should resume watching that show
00:14:24 <zzo38> (I also don't like cellular phones that don't have a cover, but that is different)
00:14:45 <nooga> you can use both [] and () in Racket, formerly known as PLT Scheme
00:14:53 <shachaf> zzo38: Why not?
00:15:10 <kmc> oh damn this clip cuts off the best part of the joke
00:15:56 <Sgeo_> nooga, but they play (almost) the same role, there's not much that physically distinguishes them other than convention
00:16:02 <Sgeo_> Although you can detect which is used.
00:16:15 <FreeFull> Racket is a metaprogramming and DSL heaven
00:16:31 <nooga> Sgeo_: and i like that
00:16:37 <nooga> i like racket
00:17:04 <nooga> what i don't like is this stupid DrRacket "IDE"
00:17:33 <nooga> looks and behaves like poorly executed student's project
00:17:38 <kmc> which is to say https://www.youtube.com/watch?v=UYVm9QSuB8U&t=1m17s
00:17:38 <FreeFull> nooga: Nothing forces you to use it
00:17:44 <kmc> nooga: yeah it's not the best
00:17:54 <FreeFull> You can run the racket interpreter from command line
00:18:02 * Sgeo_ kind of likes it, except for the whole idea of restarting a program whenever something changes
00:18:20 <nooga> oh yeah, that too
00:18:27 <Sgeo_> And even with Quack and the other thing for Racket in emacs, uncaught exceptions are completely fatal
00:19:20 <kmc> we have a lot of trouble using Racket for teaching SICP, beacuse they decided to make breaking changes like making cons pairs immutable
00:19:30 <kmc> (and there's some reason we can't use #lang r5rs either, though i forgot which)
00:19:56 <kmc> also the default display mode is dumb
00:20:02 <Sgeo_> kmc, someone made a Racket language specifically for SICP
00:20:06 <kmc> if you type '(1 2) it should print (1 2) not '(1 2)
00:20:10 <kmc> Sgeo_: link?
00:20:13 <nooga> I actually read SICP atm, with racket interpreter running
00:20:32 <Sgeo_> http://www.neilvandyke.org/racket-sicp/
00:20:59 <nooga> I used Heist because it's quite easy to install and has a nice repl
00:21:09 <nooga> gem install heist && heist
00:21:09 <kmc> Sgeo_: thanks, i'll bring it up with the other TAs at the wrap-up meeting
00:21:14 <kmc> gem heist
00:21:18 <Sgeo_> kmc, you're welcome
00:21:29 <kmc> Sgeo_: looks like it may be a bit tricky to get it installed on every student's machine
00:21:58 <Sgeo_> I think it's just running #lang planet neil/sicp
00:22:25 <Sgeo_> And telling them to use that at the top of their programs
00:22:56 <kmc> ok
00:23:06 <kmc> and then they download a bunch of code unencrypted from the internet and run it
00:23:09 <kmc> o well
00:23:10 <Bike> kmc: so does putting in ''foo print ''foo?
00:23:12 <kmc> that's life i guess
00:24:06 <kmc> Bike: yes
00:24:23 <Bike> weird
00:24:48 <Sgeo_> Hmm. Write and distribute a Racket program that includes the thing as a file and sets it up and have them do #lang sicp ?
00:25:23 <Bike> what's sicp use anyway, a wonky r4rs? is that what mit scheme of the time was?
00:25:39 <nooga> 01:20 < kmc> if you type '(1 2) it should print (1 2) not '(1 2) << there's a setting for this, Language->Choose Language->Show Details: Output Style
00:25:50 <kmc> nooga: yeah i know, we have to tell every student to set it :/
00:26:00 <kmc> Bike: i think the current edition works fine in R5RS
00:26:10 <kmc> but not with racket #lang r5rs for some reason i forget
00:26:37 <Bike> i love standards, etc
00:27:29 <nooga> like ooxml?
00:27:35 <kmc> even with #lang r5rs and 'write' output style, it wants to write a mutable list as {1 2}
00:27:39 <coppro> racket works somewhat better with htdp
00:29:55 <nooga> i'm having problems with SICP
00:31:31 <nooga> i would usually skip the boring stuff "yeah yeah, piece of cake, where's the meaty part..." scroll scroll scroll "WTF this came from?!"
00:31:52 <nooga> and then i must read the boring stuff
00:32:19 <Bike> books sure are hard
00:34:49 <nooga> tl;dr Meet cons, car & cdr, check out rationals and now we'll write ourselves a scheme compiler in scheme
00:35:28 <Phantom_Hoover> eh, it's something you have to deal with when working with textbooks and notes
00:35:49 <nooga> but I like this book
00:36:01 -!- Regis_ has joined.
00:36:08 <nooga> i just don't have much time to read it carefully ;/
00:36:22 <shachaf> I guess I should read SICP
00:36:48 <Phantom_Hoover> hey elliott remember that time we tried to read categories for the working mathematician
00:37:02 <Bike> how'd it go
00:37:14 <elliott> Phantom_Hoover: im considering starting over now that i actually know some category theory
00:37:20 <shachaf> Phantom_Hoover: i'll have you know elliott knows several category theory things now!!
00:37:23 <elliott> except i won't involve you because you're lame
00:37:37 <Phantom_Hoover> elliott, problem is that all the motivations are from like topology and group theory
00:37:45 <shachaf> elliott's secret: http://flockdraw.com/upload/8kr07f6lb00s44k80c4.png
00:37:45 <Phantom_Hoover> and all the examples
00:38:27 <elliott> Phantom_Hoover: yes that's a bit of a problem
00:38:28 <Bike> what's wrong with topology, i think topology is a pretty cool guy or chick
00:38:34 <elliott> Bike: the problem is I don't know it
00:38:36 <elliott> so it's kind of useless to me
00:38:45 <Bike> maybe you should know it.
00:38:48 <elliott> however I am a fan of things with absolutely no point or application
00:38:49 <Phantom_Hoover> i'll let you in on a secret
00:38:51 <elliott> so this might not be a barrier
00:38:59 <Phantom_Hoover> topology is just the study of blobby diagrams
00:39:24 <elliott> maybe i'll read it but ask monqy to explain all the examples for me
00:40:15 <Sgeo_> `welcome Regis_
00:40:20 <HackEgo> Regis_: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
00:40:32 <monqy> i dont know topology yet (i should...) but i do know group theory
00:41:03 <Bike> how does topology not have any applications? turning down million dollar prizes is a good application.
00:41:13 <elliott> monqy: imo teach me group theory by way of explaining each example in categories for the working mathematician
00:41:25 <monqy> :-)
00:41:31 <elliott> monqy: itd work!!
00:41:31 <elliott> Bike: no I mean the barrier would be understanding CT things without being able to understand any if the motivating examples
00:41:40 <elliott> Bike: but I am a fan of things with absolutely no point or application
00:41:42 <elliott> therefore,
00:41:45 <zzo38> Now I made first version of VGMCK is available, but only one chip so far.
00:41:47 <Bike> oh
00:41:50 <Bike> so you're just a nerd
00:41:56 <Phantom_Hoover> elliott, but not all topology is pointless!
00:42:06 <elliott> ITS THE CT NOT THE TOPOLOGY THAT IM TAKLING ABOUT OMG
00:42:12 <elliott> PAY ATTENTION TO THE WORDS I AM VOMITING :(
00:42:14 <Phantom_Hoover> In fact I think pointless topology is actually slightly different from normal
00:42:22 <elliott> ok so that was a dumb joke
00:42:27 <elliott> but it's still based on a misreading
00:42:33 <nooga> nothing to do here anymore
00:42:36 <Bike> omg
00:42:49 -!- oerjan has quit (Quit: Good night).
00:43:10 <monqy> maybe i'll quickly learn topology before elliott bothers to read categories for the working mathematician and then i can explain the topology examples too
00:43:23 <elliott> do you love teaching me things that much
00:43:25 -!- Frooxius has quit (Ping timeout: 276 seconds).
00:43:30 <elliott> i feel special
00:43:32 <Phantom_Hoover> what about explaining topology to him in terms of category theory
00:43:43 <monqy> i feel embarrassed when im asked about things i dont know
00:43:43 <elliott> maybe what i'll just do is learn category theory
00:43:48 <elliott> and then topology and group theory will be ez
00:43:49 <Bike> bundles man, bundles
00:43:56 <monqy> maybe i'll learn topology by looking at all the examples
00:43:57 <Bike> have you considered stealing grothendieck's brain?
00:44:01 <elliott> because i'll just go "oh this is a trivial special case of [category theory thing]"
00:44:10 <elliott> clearly: teach kids category theory in preschool???
00:44:13 <Bike> I've heard that's a popular way to learn category theory through learning topology through brain theft.
00:44:21 <elliott> then you get to arithmetic and it's just a nice easy special case
00:44:50 <Bike> haha remember new math, where you learned arithmetic in arbitrary bases first
00:44:52 <Bike> good times
00:44:57 <elliott> right i was inspired by new math
00:44:59 <elliott> to be exact
00:45:01 <elliott> tom lehrer's song about new math
00:45:07 <Bike> obviously
00:45:18 <elliott> which i think might be the only evidence new math ever existed
00:45:23 <elliott> possibly he just made it up
00:45:30 <Bike> naw, my parents went through it
00:45:43 <Bike> and that's why i sometimes have to explain fractions to them so they can teach their students
00:45:57 <elliott> fractions are pretty complicated imo
00:46:08 <monqy> remember vortex based mathematics
00:46:11 <elliott> anyway arithmetic is kind of concrete
00:46:14 <monqy> now that's what we should be teaching our kids
00:46:20 <Phantom_Hoover> oh christ
00:46:22 <elliott> bit too "applied" for me
00:46:33 <Bike> categories are concrete! you have a thing and then you have another thing and you can draw arrows between the things!
00:46:35 <elliott> possibly this is why i am completely incapable of it
00:46:38 <Phantom_Hoover> i don't think i told you about that one time i accidentally exposed my dad to vortex math
00:46:43 <elliott> oh jesus
00:46:46 <elliott> this story sounds good already
00:46:54 <Phantom_Hoover> well basically
00:47:00 <Phantom_Hoover> he was like "oh this sounds interesting"
00:47:08 <Phantom_Hoover> "this guy knows what he's talking about"
00:47:17 <Bike> is vortex math a crackpot thing
00:47:21 <elliott> Bike: its a beautiful thing
00:47:29 <elliott> Bike: you must watch this tedx talk
00:47:31 <Bike> i remember a guy saying everything was based on vortices once but i thought he was a biologist
00:47:36 <Phantom_Hoover> at this point i called in every favour i had with him to stop him watching it
00:47:39 <elliott> Bike: https://www.youtube.com/watch?v=zhBymLCRIU8
00:47:44 <Bike> right i'm on it
00:47:48 <Bike> gonna get the new revelation of stan
00:48:02 <elliott> Bike: then in the sidebar i think there's a link to the crackpot behind it's "intro to vortex math"
00:48:04 <Phantom_Hoover> disaster was narrowly averted
00:48:11 <elliott> which is like 30 videos or something
00:48:15 <elliott> and yo ushould watch them
00:48:20 <elliott> because they're fucking hilarious
00:48:22 <Bike> wait wait
00:48:25 <Bike> what the hell is tedx
00:48:35 <Bike> ted doesn't allow free energy dipshits in last i checked, just rich-ish ones
00:48:40 <Phantom_Hoover> it's like ted without the reputability
00:48:44 <Bike> is it tedx without stan-
00:48:46 <Bike> god.
00:48:50 <elliott> Bike: it's "independently organised ted-affiliated events"
00:48:55 <Bike> oh, christ
00:49:00 <elliott> i.e. they have the ted brand name and even less credibility
00:49:07 <elliott> so you get amazing things like this!
00:49:28 <Phantom_Hoover> there was a tedx talk on at warwick
00:49:35 <Phantom_Hoover> maybe i should've checked it out
00:49:37 <Bike> start off math with deliberately shitty video of the president
00:50:29 <Bike> oh god.
00:50:38 <elliott> monqy: i hop eyou're watching
00:50:42 <elliott> gotta relive it
00:50:42 <monqy> ye
00:50:45 <monqy> ye
00:51:00 <Phantom_Hoover> aerodynamicssssss
00:51:23 <elliott> i like how even just 2 minutes in
00:51:28 <Bike> language of god
00:51:28 <elliott> it's completely fucking off the deep end
00:51:32 <Bike> grand unified
00:52:26 <Phantom_Hoover> it's like
00:52:35 <Bike> what the hell.
00:52:47 <Phantom_Hoover> every single concept he's ever know has collapsed into this one degenerate state of batshit crazy
00:52:56 <Bike> what the hell
00:53:04 <Phantom_Hoover> *known
00:53:04 <Bike> NINE NUMBERS AROUND A CIRCLE
00:53:07 <elliott> IT MAKES US INTO A VORTEX MACHINE
00:53:20 <Bike> you can do all the functions of all the branches of math instantly
00:53:25 <Phantom_Hoover> SUCKING ENERGY IN AT THE TOP AND SHOOTING IT OUT AT THE BOTTOM
00:53:37 <coppro> TIMECUBE
00:53:55 <elliott> "unless he closed himself, so maybe that's what I am"
00:54:02 <monqy> ***cloned
00:54:05 <Bike> cloned
00:54:07 <elliott> er yes
00:54:07 <elliott> typo
00:54:10 <elliott> I like how he laughs after that but you're not actually sure he's actually joking
00:54:10 <Bike> this can't be real
00:54:13 <elliott> is he sure he's joking
00:54:32 <Bike> whoa man
00:54:35 <Bike> hexagons
00:54:47 <Phantom_Hoover> negative backdraft counterspace
00:54:55 <Bike> our dna is a coil
00:55:10 <nooga> numbers
00:55:13 <nooga> are real
00:55:19 <nooga> wtf?
00:55:29 <Bike> ugh it actually irritates me when people learn things in the most shallow bullshit way and then go around yelling about how great it is
00:55:34 <Bike> dna is way cooler than a fucking coil
00:56:10 <kmc> Bike: haskell
00:56:31 <nooga> vortex machine?
00:56:39 <Bike> knew someone would say that
00:56:45 <kmc> caution: you are now approaching the periphery shield of vortex four
00:56:52 <elliott> god
00:56:54 <kmc> CAUTION: YOU ARE NOW APPROACHING THE PERIPHERY SHIELD OF VORTEX FOUR
00:56:55 <elliott> i love that "experiment"
00:57:00 <kmc> CAUTION: YOU ARE NOW APPROACHING THE PERIPHERY SHIELD OF VORTEX FOUR
00:57:02 <nooga> vortex equation
00:57:10 <nooga> actually
00:57:13 <nooga> this is hilarious
00:57:34 <elliott> that gigantigc fucking name
00:57:36 <elliott> and thde audience laughs
00:57:43 <nooga> i'll write a VM
00:57:47 <kmc> http://www.dailywav.com/1002/caution.wav
00:57:50 <nooga> and call it Vortex Machine
00:59:40 <elliott> Bike: https://www.youtube.com/watch?v=Fbyc9JW3vtk
00:59:42 <elliott> this is the ~intro~
00:59:46 <elliott> monqy: remember that
00:59:50 <monqy> yes
00:59:56 <elliott> its so good
01:00:07 <monqy> i love vortex based mathematics
01:00:12 <Bike> so is there any source on this salk thing
01:00:28 <elliott> whats a salk thing
01:00:45 <Bike> he said salk offered to be rodin's physician and bla bla clone
01:00:55 <Bike> salk wasn't even a practicing physician but i'm curious how the hell they came up with that
01:00:58 <elliott> oh that who knows
01:01:12 <Bike> "who's a famous doctor?" "iunno that dead guy"
01:01:16 <elliott> what matters is this intro
01:01:19 <elliott> that everyone must watch
01:01:26 <elliott> or else face unending sadness and unfulfilment
01:02:00 <Bike> This + Electric Universe = New Consciousness. No 12-21 doomsday, no alien invasion - the awakening is on. I no longer live in the world I grew up in. Namaste' to all.
01:02:15 <Bike> oh no he's saying it's old
01:02:21 <Bike> tachyons, gravitons, same thing
01:02:26 <Bike> chi, yep there we go.
01:02:42 <Bike> i need a bingo for these douchebags
01:02:54 <shachaf> is this tedx video real
01:02:57 <kmc> "if he's so smart why is he dead"
01:03:00 <Bike> photon
01:03:01 <monqy> hi shachaf
01:03:02 <shachaf> i mean do these pixels exist in this arrangement
01:03:05 <elliott> no
01:03:06 <Bike> no you... you fucking
01:03:08 <elliott> youre imaginaging ti
01:03:10 <elliott> *it
01:03:13 <shachaf> ok good
01:03:16 <shachaf> i do that sometimes
01:03:40 <Bike> penetrates everything and nothing can resist it, mmmmm bad implications there dude
01:03:50 <nooga> http://markorodin.com/
01:03:52 -!- zzo38 has quit (Remote host closed the connection).
01:04:19 <Bike> baha'i, don't fuck with real religions you trash
01:04:25 <Bike> "without going into religious mysticism"
01:04:47 <monqy> wow theabhakingdom.com got parked by godaddy RIP
01:04:50 <elliott> god he counts to 9
01:05:01 <elliott> god
01:05:07 <elliott> i dont know of anyone who blha blah another single digit number that exists
01:05:17 <Bike> well what if it went seven nine eight
01:05:18 <elliott> he cant be sure!! what if theres another single digit number
01:05:23 <Bike> "all the single-digit numbers known"
01:05:26 <Bike> what the christ
01:05:29 <nooga> http://rense.com/RodinAerodynamics.htm
01:05:34 <Bike> is this fucker twelve
01:05:35 <monqy> http://lifeforcegenie.com is parked too :(
01:05:35 <nooga> this is ...
01:05:42 <monqy> http://www.vortexmath.com/ at least this still exists
01:05:50 <Bike> no, nope, i'm done
01:06:03 <elliott> no Bike
01:06:04 <elliott> you're not
01:06:11 <elliott> it gets so much better
01:06:20 <Phantom_Hoover> i think around this time is when i was desperately trying to get my dad to stop watching
01:06:23 <nooga> "2013/01/18 - Now recruiting electrical engineers with EAGLE PCB Design experience and OpenGL developers with Win32 GUI experience on volunteer basis. To volunteer please send your credentials to [publicrelations at vortexspace o r g]. "
01:06:41 <Bike> I already had a headache and I'm pretty sure if I keep watching this my vertebral column will try to strangle me
01:06:57 <elliott> Bike: let the vortex math soothe your head
01:07:18 <monqy> @tell nooodl hey have you ever heard of a “vortex based mathematics„
01:07:18 <elliott> Bike: how about skip ahead to Advanced Vortex Math https://www.youtube.com/watch?v=tNHvyTIRVjY
01:07:19 <lambdabot> Consider it noted.
01:07:38 <elliott> ZERO... as in what you've offered so far. ZERO... as in how much common sense you have. ZERO... as in how many more times you'll be able to comment on my videos now LMFAO
01:09:31 <nooga> stop it please
01:09:39 <nooga> i'm already crying
01:09:53 <Bike> LMFA0
01:10:24 <ais523> nooga: re that advert, did they want someone with both skills? or two people, one with each?
01:10:40 <ais523> OpenGL is occasionally taught to electronic engineers, so it's /possible/ there's enough overlap there ;)
01:10:56 <ais523> (with electric and electronic engineers sharing many parts of the course)
01:11:27 <Bike> i'm reading it as two people BUT vortexspace
01:11:27 <kmc> i've used Eagle and I've done OpenGL programming but not Win32 GUIs
01:11:59 <kmc> Eagle is pretty accessible, it's like two steps past the Arduino stage of hardware tinkering
01:12:15 <shachaf> flux thruster atom pulsar electrical venturi space-time implosion field generator coil
01:12:20 <kmc> there's a free version of Eagle and there are plenty of fab houses that will take the files and make boards cheaply in small qty
01:12:31 <nooga> let's volunteer then!
01:12:36 <kmc> no u
01:14:02 <ais523> kmc: I've done Win16 GUIs
01:14:08 <ais523> I imagine Win32 GUIs are similar, most of the APIs are the same
01:14:16 <ais523> (that said, I haven't done them /well/, nor do I enjoy doing them)
01:15:31 <kmc> a Win32 GUI is essentially two Win16 GUIs side by side
01:16:46 <ais523> Win32 is pretty much backwards compatible in terms of developer mindshare
01:16:55 <pikhq> If by "most" you mean "Microsoft did crazy shit to not break source", then yes.
01:16:56 <lambdabot> pikhq: You have 2 new messages. '/msg lambdabot @messages' to read them.
01:16:56 <ais523> it works much the same way as Win16, and you can write the code in much the same way
01:16:58 <pikhq> :)
01:17:02 <ais523> pikhq: indeed :)
01:17:20 <ais523> nowadays they care more about binary compat than source compat, it seems
01:17:57 <pikhq> Nowadays they seem to run on thing-of-the-month.
01:18:22 <Bike> i like how windows 1.0 Reversi still runs on Windows 7
01:18:48 <pikhq> *32-bit Windows 7.
01:19:14 <elliott> does it run on itanium windows 7????
01:19:19 <pikhq> For x86_64 they kinda went "meh, let's not update the 16-bit stuff"...
01:19:31 <pikhq> elliott: Well, IA-64 is not 32-bit Windows 7. :)
01:19:33 <kmc> does it run on Windows NT 4 for Alpha
01:20:17 <pikhq> Honestly I'm not sure if it'll run on Windows 7 for Itanium. Assuming that even exists...
01:20:33 <pikhq> I have no idea how far the now-in-software x86 emulation goes.
01:21:13 <shachaf> all the single-digit numbers known
01:23:15 * ion ಠ_ಠs the Advanced Vortex Math video.
01:23:31 <ion> A fancy name for rather trivial number patterns.
01:23:45 <Bike> blowing my mind here ion
01:23:50 <elliott> blion
01:24:02 <Bike> blmhnoi
01:24:09 <elliott> no Bike
01:24:42 <kmc> baloney
01:24:56 <Bike> actually, yes Bike
01:25:14 <kmc> yes, bike. yike.
01:27:07 <Bike> :o
01:27:10 <shachaf> "This is base 26. It's the next step up from base 10."
01:28:33 <Bike> nope.
01:28:34 <kmc> are you sure this isn't all a game of numberwang
01:28:39 <shachaf> no
01:28:43 <kmc> do they at any point rotate the board
01:29:06 <shachaf> well it' a vortex
01:29:10 <shachaf> of course they rotate it
01:31:22 <shachaf> ok advanced vortex based mathematics is too advanced for me
01:34:27 <pikhq> Yup, apparently the x86 emulation thing on Itanium ignores 16-bit x86 entirely.
01:35:44 <nooga> goodnight
01:35:53 <kmc> mm right, it doesn't need to boot a PC operating system
01:38:48 -!- Phantom_Hoover has quit (Quit: Leaving).
01:39:33 <shachaf> vortex math reminds me of category theory
01:39:45 <shachaf> in that there are a bunch of videos of people saying crazy nonsense
01:40:49 -!- nooga has quit (Ping timeout: 248 seconds).
01:49:21 -!- Phantom_Hoover has joined.
01:49:26 <Phantom_Hoover> http://www.reddit.com/r/math/comments/18mh1p/my_favorite_song_about_doing_calculus/c8gy7yh
01:49:28 <Phantom_Hoover> i just
01:51:06 <elliott> Phantom_Hoover: having fun sleeping?
01:51:12 <Phantom_Hoover> yeah
01:51:18 <Phantom_Hoover> this is a pretty boring dream though
01:51:35 <Phantom_Hoover> someone turn into a giraffe
01:51:42 <monqy> i can try
01:52:24 <Phantom_Hoover> bless you, monqy
01:52:25 <monqy> oh good it's a “someone misunderstands sapir-whorf„
01:52:26 <Phantom_Hoover> blonqy
01:52:56 -!- doesthiswork has joined.
01:53:00 <Bike> "Yes, the Sapir-Worf is true. I can give very simple examples"
01:53:03 <Phantom_Hoover> (so does everyone finally see that swedes are terrible)
01:53:08 <Bike> sexistic
01:53:15 <Bike> are swedes sexistic?
01:53:34 <Phantom_Hoover> that guy's other comments are just as bad
01:53:40 <Phantom_Hoover> "If I could though, I would propose changing English as the current world language to Finnish. Although I do not think I would succeed."
01:53:48 <elliott> is monqy a giraffe yet
01:53:52 <Phantom_Hoover> i mean i agree but damn, talk about the wrong reasons
01:53:56 <doesthiswork> bike: which version of sapir-worf/
01:54:07 <elliott> `WELCOME doesthiswork
01:54:09 <HackEgo> DOESTHISWORK: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.)
01:56:35 <monqy> what noise do giraffes make
01:56:40 <monqy> this is important for my transformation
01:56:52 <elliott> monqy: "moo"
01:56:55 <Phantom_Hoover> looking through his site i think he's just proper crazy rather than a dickhead
01:57:05 <Phantom_Hoover> monqy, 'moo' but in a tall way
01:57:09 <Bike> doesthiswork: the dumb version
01:57:11 <monqy> -pleased moo-
01:57:16 <monqy> hm how do i make it taller
01:57:16 <elliott> did you turn into syraine
01:57:26 <elliott> is that the secret to your transformations
01:57:33 <monqy> -yes moo-
01:57:42 <elliott> wow this is really realistic
01:57:46 <elliott> im starting to believe monqy is a giraffe in real life
01:57:55 <monqy> -moo-
01:57:59 <elliott> gosh
01:58:02 <Phantom_Hoover> oh that's quite tall
01:58:05 <Phantom_Hoover> right i'm off then
01:58:09 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:58:51 <shachaf> um
01:58:58 <shachaf> giraffes are long horses
01:59:02 <shachaf> horses don't moo
01:59:03 <Sgeo_> .
01:59:07 <shachaf> oh wait i'm mixing it up with geraffes
01:59:15 <shachaf> monqy: you should be a geraffe
01:59:22 <monqy> nei------------------------------------------------gh
01:59:30 <ion> `run echo kirahvi | hyfinate
01:59:32 <HackEgo> ki-rah-vi
01:59:35 <monqy> being a geraffe seems counterproductive
01:59:39 <shachaf> i love geraffes
01:59:41 <shachaf> they are so dumb
01:59:54 <shachaf> @google geraffes are so dumb
01:59:55 <lambdabot> http://www.reddit.com/r/pics/comments/8aqjh/awww_this_is_just_too_sad_pic/c08pp5z
01:59:55 <lambdabot> Title: Awww, this is just too sad [PIC] : pics
02:00:29 <Sgeo_> Those people _are_ horrible, they should have told him
02:00:38 <shachaf> EDIT: spelling.
02:01:04 <elliott> Sgeo_...........
02:01:45 <Sgeo_> Could have genuinely believed it's spelled "geraffe"
02:01:50 <elliott> SGEO
02:01:59 <elliott> I ACTUALLY LITERALLY GOT UP AND BASHED MY HEAD AGAINST THE WALL
02:02:41 <shachaf> yes Sgeo_ don't be sexist like that
02:03:15 -!- DHeadshot has joined.
02:03:35 <Sgeo_> *or her. But I'm not convinced that's why elliott is bashing head against wall
02:03:55 -!- elliott has left ("i just give up on everything").
02:04:13 <Sgeo_> Well, someone did tell the person
02:04:18 <Sgeo_> Don't know of the time frame though
02:05:57 <Sgeo_> What, is elliott trying to say that it's probably a troll?
02:10:07 <doesthiswork> does anybody know where i can find the picture? wayback machine didn't have it
02:11:18 <ion> http://farm9.staticflickr.com/8165/7584193058_9e64228f7a_o.jpg
02:11:24 <ion> Google image search with the thumbnail URL
02:11:52 <Bike> i think elliott's trying to say it's a troll and also some other thing that i'm too tired to pretend to care about
02:12:38 <doesthiswork> thank you, the gerrafs / long horses were hilarious but I was still curious about the picture.
02:14:34 <Bike> ion's picture looks like the picture
02:14:44 <doesthiswork> it is
02:14:54 <Bike> so what are you asking for exactly
02:15:44 <doesthiswork> I no longer am, I may have used aspect incorrectly, I was trying to say that I was curious until ion satisfied the curiosity.
02:16:11 <ion> You used it correctly.
02:16:20 <Bike> ah.
02:17:33 <doesthiswork> have you people ever heard the linguistic illusion "no head injury is too trivial to be ignored" ?
02:18:52 <Sgeo_> linguistic illusion?
02:19:33 <doesthiswork> what it literally says is exactly the opposite of what everyone agrees it must mean.
02:20:09 <Bike> "no head injury is trivial enough to be ignored"
02:20:43 <doesthiswork> that is the commonly agreed upon meaning
02:20:50 <doesthiswork> what it literally says is the the smaller a head injury gets the the harder it gets to ignore.
02:21:10 <doesthiswork> But we can ignore all of them if we try
02:21:39 <ais523> btw, I ended up having to read the GNU coding standards recently (was looking at their version number standards to see if I could parse them automatically, but sadly, they're sufficiently freeform that you can't even reliably detect whether something is using their standards or not)
02:21:47 <ais523> and there are some hilariously opinionated bits in them
02:22:19 -!- elliott has joined.
02:22:37 <ais523> "When a feature is used only by users (not by programs or command files), and it is done poorly in Unix, feel free to replace it completely with something totally different and better. (For example, `vi' is replaced with Emacs.)"
02:22:38 <Bike> remember the part about how standards are optional, i think that's a good part
02:22:40 <Sgeo_> Shouldn't it all be opinionated? Or by 'opinionated' is it typically meant significant numbers of people with dissenting opinions?
02:23:01 <Bike> posix, that's just suggestions, really
02:23:05 <ais523> I just thought editor wars felt a little out of place in coding standards
02:23:05 <Sgeo_> "GOTO is usually a bad idea" is a pretty common opinion
02:23:16 <doesthiswork> The relevance of this linguistic illusion to programming languages is that you can often detect where someone has made a mistake by the presence of tautologies in the code
02:23:34 <FreeFull> vim ftw
02:24:00 <FreeFull> Sgeo_: goto is a good idea when handling errors
02:24:11 <FreeFull> Actually makes for much cleaner code
02:24:13 <ais523> also, their argument for using C is a little interesting: basically, C is the best language because people don't want to have to install a compiler/interpreter for whatever your language is written in
02:24:20 <FreeFull> The linux kernel makes good use of it
02:24:27 <kmc> ais523: sadly true
02:24:30 <kmc> users HATE code reuse
02:24:41 <ais523> meanwhile, I'm planning to make the officially supported method of compiling NetHack 4 on Windows to install Perl for the free, correctly packaged C implementation that comes with it
02:25:08 <ais523> (correctly packaged C implementation on Windows is difficult, if you want something vaguely sane rather than msvc)
02:25:09 <kmc> the amount of shit we get in Mosh for using Google Protobuf instead of hand-rolling our own half-baked format with a parser full of buffer overflows like any self-respecting C program
02:25:37 <kmc> ais523: is that mingw?
02:25:40 <Sgeo_> Maybe environments should make code reuse easier
02:25:45 <ais523> kmc: yeah, it's mingw + a bunch of third-party libraries
02:26:27 <ais523> FreeFull: the rule of thumb I like for goto in C is that it's OK to jump forwards with it, but not backwards, and out of control structures, but not into them
02:26:28 <Sgeo_> Not rewriting everything from scratch, when writing a C program intended to be used on Linux, seems to involve a dependency system that varies between distros.
02:26:32 <Bike> ais523: isn't that like the main historical reason for everything being in C
02:26:38 <ais523> Bike: perhaps
02:26:53 <ais523> C++ compilers are just as everywhere as C compilers nowadays, at least (although the C++ supporting libraries/headers may not be)
02:27:16 <ais523> scripting languages (Perl, Python) have a similar distribution to C and C++, although not an identical one
02:27:26 <ais523> as in, Perl but not C, and C but not Perl, seem approximately equally likely
02:27:38 <Sgeo_> o.O at Perl but not C
02:27:41 <FreeFull> Haskell is great on Linux but I hear it's horrible on Windows
02:27:54 <coppro> all languages suck on windows
02:27:55 <ais523> Sgeo_: well on Linuxy systems, you always have both
02:28:10 <ais523> too many critical programs are written in Perl, and C is needed to compile kernel modules during startup
02:28:37 <ais523> (although as a fun fact: Ubuntu stock install comes with a usable Perl install, but is missing userland headers, so you can't use the C compiler except for kernel modules)
02:28:58 <Sgeo_> ....startup as in when the computer starts, or... what? Because compilation at bootup sounds clinically insane
02:29:15 <Bike> kmc: what do the actual complaints consist of?
02:29:15 <kmc> Sgeo_: http://bellard.org/tcc/tccboot.html
02:29:26 <kmc> Bike: just that people don't wanna install shit
02:29:35 <Bike> ah, heh
02:29:39 <ais523> Sgeo_: when the computer starts
02:29:48 <Bike> everything's gotta be self contained~
02:29:48 <ais523> compilation at bootup might sound insane, but it's better than the computer not starting at all
02:29:58 <kmc> also people who are terribly concerned about this thing they call "software bloat" which has no correlates in the physical world
02:30:00 <Sgeo_> Why can't it just compile it once?
02:30:04 <ais523> if you have a driver compiled against the wrong kernel, you can't load it, but if you have its source…
02:30:12 -!- dessos has joined.
02:30:21 <kmc> mosh wastes literally cents worth of memory by linking against protobuf! somebody think of the bits!
02:30:22 <ais523> and basically, in case someone just updated their kernel, but the driver wasn't part of the same update mechanism
02:30:29 <FreeFull> Sgeo_: It's booting from a CD
02:30:31 <Bike> kmc: look i need that two megabytes of space protobuf so's will take up, i have very specific porn to save for myself
02:30:33 <FreeFull> Where will it write the data to
02:30:37 <kmc> haha
02:30:45 <kmc> your fetish is porno that is exactly 2 MB in size
02:30:53 <Bike> finally someone understands
02:31:37 <Bike> btw can you have it use bsd libc instead of gnu, i've heard bsd stuff is closer to that size? thanks
02:31:40 <ais523> is that imperial or metric megabytes?
02:32:00 <ais523> (if you have fetishes that specific, it probably matters)
02:32:59 <Bike> hm is there an imperial measure of data size
02:33:16 <Bike> I mean the mebibyte/megabyte thing is almost as silly, but
02:33:16 <ais523> Bike: joky names for 2 MiB versus 2e6 bytes
02:33:20 <Bike> baud maybe?
02:33:29 <Bike> ais523: yeah but now i'm thinking about it
02:33:54 <ais523> Bike: have you ever heard of the nat?
02:34:01 <Bike> oh! yes, of course
02:34:23 <Bike> actually no, e is way too half-reasonable for imperial
02:34:33 <ais523> it's not really like imperial, though
02:34:38 <ais523> it's more like measuring in radians
02:34:45 <Bike> it should be based off the imagined length of le morte d'artur or such
02:34:53 <ais523> when imperial has degrees, and metric has gradians (which nobody ever uses, but is still implemented in calculators for some reason)
02:35:08 <ais523> actually I think metric gave up and switched to radians, eventually
02:35:10 <Bike> I heard once that gradians were used in continental Europe.
02:35:20 <ais523> Bike: yeah, just like the rest of metric
02:35:26 <ais523> used once
02:35:43 <Bike> Like when did that cease, though? 80s? 60s?
02:35:55 <ais523> no idea
02:35:59 <ais523> hmm… I wonder if Wikipedia knows
02:36:38 <ais523> haha, apparently 100%th of a gradian is called a centigrade
02:36:43 <ais523> as if that isn't confusing :)
02:37:32 <ais523> apparently it was only ever used in specialized fields (artillery and surveying), and is still used in those fields in continental Europe, but not by anyone else
02:37:47 <Bike> figures
02:37:51 <ais523> or, hmm
02:37:57 <ais523> it's used by surveyors elsewhere, too
02:38:07 <elliott> Bike: mebibyte is inaccurate!!
02:38:10 <elliott> mebioctet
02:38:19 <Bike> elliott: haha
02:38:28 <elliott> i'm not kidding i've actually used mebioctet
02:38:30 <elliott> i stole it off Deewiant
02:38:38 <Bike> do you regularly use it
02:38:42 <elliott> like
02:38:44 <elliott> when I remember to
02:38:51 <elliott> and don't care about coming off as totally pretentious
02:39:04 <Bike> "mebioctet": a pretentious word
02:39:12 <Bike> ais523: i guess the problem with radians is that it's kind of inconveinent to have to do everything with rational multiples of pi, and (g)radians offer enough resolution for most applications
02:39:40 <elliott> rational multiples of pi is kind of the key to the human body though. vortex mathematics.
02:39:43 <Bike> also it's way easier to have a physical angle measurey thing with numbers instead of pi multiples.
02:39:53 <Bike> Oh they call those "protractors" now? Ok.
02:40:12 <elliott> the theory of vortex mathematics has a lot of detractors but it also has a lot of protractors
02:40:21 <coppro> elliott: also compasses and straightedges
02:40:33 <Bike> hrm
02:40:37 <Bike> maybe i should learn rational trig
02:40:41 <Bike> instead of vortex maths
02:44:40 <ais523> elliott: aren't both byte and octet correct in this case?
02:45:27 <elliott> ais523: well, I guess
02:46:35 <shachaf> elliott: Was that a pun from the vortex math video?
02:46:45 <elliott> no I made it up
02:46:47 <elliott> all by myself
02:46:48 <shachaf> If so, I'll have to change my opinion of them.
02:46:51 <shachaf> Oh. :-(
02:47:00 <elliott> it would have been good if it was in the video though
02:47:16 <shachaf> Maybe there's a parallel crackpot world.
02:47:30 <shachaf> Where some people have all the good puns.
02:48:37 <shachaf> Maybe every real person has a a crackpot twin.
02:48:57 <shachaf> Who is the Conor McBride of crackpots?
02:49:28 <monqy> does every crackpot have a real person twin ?
02:49:41 <Sgeo_> Is my crackpot twin my 7th grade self?
02:49:55 <Bike> That doesn't seem biologically possible.
02:50:42 <shachaf> Bike: Don't be so close-minded.
02:50:47 <shachaf> monqy: Yes.
02:51:07 <shachaf> It's an involution.
02:51:30 <Sgeo_> Oh god I remember in elementary school, I saw a diagram of the electromagnetic spectrum. The visual was of a large wave, with the visible spectrum being a small part. So I explained to the school nurse how the visible spectrum takes up less than a wavelength.
02:51:32 <shachaf> monqy: your crackpot twin thinks you are the crackpot
02:51:56 -!- Mathnerd314 has quit (Read error: Operation timed out).
02:52:05 <shachaf> Hmm, some people are self-dual, though.
02:52:25 <Bike> Sgeo_: haha well, it's vaguely true-like
02:53:15 <shachaf> a large wave
02:54:02 <elliott> so who is the non-crackpot version of monqy
02:54:32 <shachaf> oh no
02:54:37 <shachaf> elliott is negative and monqy is positive
02:56:18 <Sgeo_> It looked a little like this
02:56:19 <Sgeo_> http://blogs-images.forbes.com/williampentland/files/2011/08/EW-Electromagnetic-Spectrum.jpg
02:56:29 <Sgeo_> Except with smaller thing for visible spectrum I think
02:58:21 <Bike> See. All of visible light would fit in one of the microwave wavelengths.
03:00:50 <doesthiswork> that is a logical conclusion to come to
03:02:23 <Sgeo_> I remember in 4th grade or so, the day we were going to learn multiplication, explaining that a*b != b*a (not in those words)
03:02:39 <Sgeo_> And no, I wasn't talking about quaternions
03:03:19 <shachaf> a * b! = b * a?
03:03:21 <shachaf> That's wrong.
03:03:22 <Sgeo_> It wasn't intuitive to me (and still isn't except when presented geometrically) how, for example, 4 + 4 = 2 + 2 + 2 + 2
03:04:26 <Sgeo_> s/explaining/wrongly explaining/, if that helps
03:04:38 <elliott> isnt that pretty easy if you take 4 = 2 + 2 by definition
03:05:08 <doesthiswork> what eventually convinced you/
03:05:34 <Sgeo_> doesthiswork, being told in class. Also the geometric perspective, of a grid of a by b squares
03:06:07 <Sgeo_> Because that's obviously both a added b times and b added a times. And obviously from both perspectives the same result.
03:06:41 <doesthiswork> yes, you just rotate the rectangle and it is isomorphic
03:07:34 <Sgeo_> Also, a graph of the form x + y = 10, or along those lines, was the first I'd ever seen. So I thought they all sloped down.
03:08:19 <Sgeo_> Hmm. Maybe that was before I read Algebra the Easy Way?
03:08:56 <shachaf> what's the easy way
03:09:19 <shachaf> is it http://www.amazon.com/Barrons-Algebra-Turtleback-Library-Binding/dp/1417655968
03:09:33 <Sgeo_> No
03:09:39 <shachaf> E-Z is the list of grades you can get right
03:09:40 <Jafet> Monoid algebras
03:10:07 <Sgeo_> http://www.amazon.com/Algebra-Easy-Way-Douglas-Downing/dp/0764119729/ref=sr_1_1?s=books&ie=UTF8&qid=1361156986&sr=1-1&keywords=Algebra+the+Easy+Way
03:10:12 <Sgeo_> Although, uh, not with that cover
03:10:28 <Sgeo_> The cover looked like http://www.amazon.com/Trigonometry-Easy-Douglas-Downing-Ph-D/dp/0764113607/ref=sr_1_6?s=books&ie=UTF8&qid=1361156986&sr=1-6&keywords=Algebra+the+Easy+Way
03:10:57 <Jafet> PhD in making things easy
03:11:21 <Sgeo_> I really liked that series
03:11:28 <Sgeo_> But not Chemistry the Easy Way :(
03:11:42 <Sgeo_> Chemistry the Easy Way can suck my balls.
03:11:47 <Sgeo_> Um, I didn't mean to send that.
03:12:06 <elliott>
03:12:07 <elliott> then why did you type it
03:12:15 <Bike> When I was in the first grade I gave a presentation on human reproductive anatomy.
03:12:20 <pikhq> I doubt a book can suck your balls.
03:12:23 <Bike> That is my elementary school memory.
03:12:44 <pikhq> At least, from my knowledge of books and genitalia it seems tricky.
03:12:48 <doesthiswork> when I was in first grade I built a giant sand sculpture of human reproductive anatomy
03:13:02 <Bike> Oh, I saw that on Ripley's! You're a good sculptor.
03:13:03 <doesthiswork> it took me years to figure out why the teacher didn't like it
03:13:25 <Bike> You did that for a class? Did you have a class in sand sculptery?
03:13:42 <Sgeo_> I was thinking about sending it, but decided against it
03:13:48 <Sgeo_> And then accidentally sent
03:13:51 <doesthiswork> I did during recess and got the rest of the class to help
03:13:57 <Jafet> pikhq: http://oglaf.com/booklove/
03:14:03 <Bike> Which genders was it of?
03:14:07 <Bike> Er, sexes.
03:14:24 <doesthiswork> both combined (because more is better)
03:14:45 <Sgeo_> Anyway: Algebra the Easy Way, Trigonometry the Easy Way, and Calculus the Easy Way were all story books. Chemistry the Easy Way is not.
03:16:51 <Sgeo_> Bike, is there a link to it?
03:17:55 <pikhq> Jafet: You make a good argument.
03:18:05 <Bike> The presentation was done in person, and I think the relevant drawings are in a basement somewhere.
03:32:51 -!- comex has quit (Remote host closed the connection).
03:40:04 -!- Sgeo_ has changed nick to Sgeo.
03:45:10 -!- zzo38 has joined.
03:48:28 -!- copumpkin has quit (Ping timeout: 252 seconds).
03:48:59 -!- copumpkin has joined.
03:49:39 -!- Regis_ has quit (Ping timeout: 240 seconds).
04:01:49 <Sgeo> "Remembering that lists are L(a) = 1 / (1 - a)"
04:02:08 <Sgeo> wtf is that meant to imply that [()] is... ... huh?
04:02:17 * Sgeo is totally confused
04:02:39 <Bike> that's the formula for a geometric series, isn't it
04:02:45 <shachaf> Yes.
04:02:52 <shachaf> Lists are L(a) = 1 + a + a^2 + a^3 + ...
04:03:03 <Bike> right
04:03:22 <shachaf> In certain cases you can go from that to Sgeo's formula.
04:03:31 <shachaf> a=1 is not one of those cases.
04:03:47 <Sgeo> Hmm, ok
04:03:50 <Bike> radius of convergence bladdity bladdity bla but formal power series pwnzrs anyday anyway
04:04:09 <shachaf> hi Bike
04:04:14 <Bike> hi shachaf
04:04:19 <shachaf> make your nick should be Bikey
04:04:24 <shachaf> s/k/yb/
04:04:32 <Bike> the derivation is pretty though. L - aL = 1
04:05:31 <shachaf> Hmm.
04:05:43 <shachaf> Maybe I should figure out what a lax functor and a terminal bicategory are.
04:05:54 <shachaf> Then I can be cool like copumpkin, right?
04:06:13 <copumpkin> it's a 2-functor
04:06:16 <Bike> coolpumpkin
04:06:44 <elliott> shachaf: Well, [()] ~ Nat and Nat is infinite and 1/0 is infinite, ERGO
04:07:14 <shachaf> elliott: right except you can't really do that
04:26:12 -!- Mathnerd314 has joined.
04:32:21 <kallisti> ohai
04:38:21 -!- SirCmpwn has quit (Ping timeout: 245 seconds).
04:39:11 -!- SirCmpwn has joined.
05:01:35 <shachaf> monqy: https://en.wikipedia.org/wiki/Closure_operator
05:06:15 <monqy> hi
05:11:47 -!- azaq23 has quit (Quit: Leaving.).
05:28:30 -!- Arc_Koen has quit (Quit: Arc_Koen).
06:04:15 <zzo38> I read that 2A03 CPU core does have all the logic for decimal arithmetic, but the connection to the rest of the circuit is cut, preventing it from working.
06:13:07 <shachaf>
06:37:21 -!- aloril has quit (Ping timeout: 256 seconds).
06:40:35 -!- librarystudent01 has joined.
06:41:05 -!- librarystudent01 has quit (Client Quit).
06:50:21 -!- aloril has joined.
07:07:04 -!- monqy_ has joined.
07:07:11 -!- monqy has quit (Disconnected by services).
07:07:16 -!- monqy_ has changed nick to monqy.
07:07:48 <shachaf> `welcome monqy
07:07:54 <HackEgo> monqy: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
07:07:56 <monqy> hi shachaf
07:08:08 <Sgeo> `welcome HackEgo
07:08:10 <HackEgo> HackEgo: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
07:08:26 <shachaf> monqy: closure operators are "pretty cool huh"
07:09:03 <shachaf> did you see the "alternate definition for posets"
07:09:49 <monqy> you mean in terms of a something or other category? at most one morphism in each hom-set? yeah i saw that
07:10:02 <monqy> is there anohter one
07:10:14 <shachaf> no the definition of a closure operator
07:10:19 <shachaf> (which is just a monad in a poset of course)
07:10:30 <monqy> oh ok
07:10:34 <monqy> sure sure
07:10:38 <shachaf> but the alternate way of stating the axioms is like >>=
07:11:21 -!- epicmonkey has joined.
07:12:19 <shachaf> monqy: is there a difference between a lattice that has all small limits and a lattice that has all products
07:13:11 <shachaf> well non-empty limits
07:13:20 <monqy> ok
07:13:25 <shachaf> well doesn't matter in this case
07:13:33 <shachaf> oh well ¨who knows¨
07:13:37 <monqy> ok
07:14:01 <shachaf> ¨̈́hi¨̈́
07:14:13 <shachaf> wow fancy quotes
07:14:28 <shachaf> how did i even make those
07:17:46 <zzo38> By computer
07:18:03 <shachaf> zzo38: no i did it by keyboard..
07:18:16 <shachaf> @quote augustss
07:18:16 <lambdabot> augustss says: Haskell already has enterprise monads; there is a fail method.
07:18:18 <shachaf> `quote augustss
07:18:20 <HackEgo> No output.
07:18:21 <shachaf> @quote augustss
07:18:21 <lambdabot> augustss says: <wy> augustss: Wow. You win the IOCCC three times! <augustss> wy: i'm bad at C programming ;)
07:19:33 -!- FreeFull has quit (Quit: bye).
07:24:37 -!- sebbu has quit (Read error: Connection reset by peer).
07:25:06 -!- sebbu has joined.
07:30:44 <Sgeo> `slist
07:30:46 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
07:33:17 <shachaf> hi Sgeo
07:33:20 <shachaf> How's Dylan?
07:33:42 <Sgeo> I forgot about Dylan :(
07:33:50 <Bike> Ada?
07:36:50 <zzo38> I really think there should be the separate class for do-notation, which has fail and (>>=) but return is not needed to implement the do-notation. (I also think do-notation should be implemented by macros rather than hard-coded, but that is different.)
07:42:43 <shachaf> Sgeo: They want your help!
07:42:49 <shachaf> Seriously, they're understaffed.
07:43:57 <Sgeo> shachaf, I guess doing stuff would consist of looking through some sort of lists of tickets?
07:46:44 <shachaf> Sgeo: I don't know. Ask in the channel.
07:46:49 <shachaf> They're working on the compiler and things like that.
08:28:09 -!- ais523 has quit.
08:34:44 -!- epicmonkey has quit (Ping timeout: 248 seconds).
08:38:27 -!- Nisstyre-laptop has quit (Ping timeout: 260 seconds).
08:41:01 <mroman> zzo38: defmacro!
08:42:15 <Sgeo> I agree with zzo38 about do-notation should be implemented as a macro
08:42:16 -!- Frooxius has joined.
08:42:51 <mroman> I want defmacro.
08:43:10 * Sgeo does too
08:43:14 <zzo38> mroman: I also want macro
08:43:21 <Sgeo> Or, actually, no. syntax-rules and syntax-case are better, possibly.
08:43:24 <Bike> radical, bro.
08:43:35 <mroman> I always wished I could hack Haskells do Notation to support my own stuff.
08:43:53 <zzo38> Sgeo: I suppose, any way which is good enough to do it, would work
08:44:06 <mroman> I.e if I don't have a Monad but something else which allows one to chain stuff the same way
08:44:11 <zzo38> But what is your opinion of having it the separate class for do-notation?
08:44:17 <Sgeo> CL/Clojure-style macros do have some issues
08:44:30 <Sgeo> zzo38, well, monads without a return operation can be useful.
08:44:41 <mroman> then one has to write foo >>~> bar >>~> \c -> foobaz c
08:44:44 <Sgeo> Well, they're not monads in that case
08:44:47 <Bike> semimomomomomonads
08:44:53 <zzo38> Sgeo: It isn't a monad without return, but what I mean is that return is not necessary to make do-notation work.
08:44:54 <mroman> etc.
08:44:55 <Sgeo> But yeah, being able to use do notation with that would be nice
08:45:00 <Sgeo> zzo38, yes, agreed
08:45:15 <doesthiswork> I'm fond of both fexprs and compile time functions
08:45:49 <Sgeo> I need to try to understand if fexprs allow for a Tcl-like sort of thing
08:45:57 <Sgeo> I like the Tcl approach, except want more quasiquoting
08:46:05 <Sgeo> And less stringiness
08:46:25 <Bike> fexprs and quasiquoting are kinda anathema.
08:46:51 <Sgeo> (some-fexpr-based-macro ,(+ 1 1))
08:47:03 <Sgeo> some-fexpr-based-macro would only see 2
08:47:17 <Bike> What, that's not even quasiquoting, that's eval.
08:48:06 <Sgeo> (some-fexpr-based-macro ,(+ 1 1) (+ 2 3)) would be processed same as (some-fexpr-based-macro 2 (+ 2 3))
08:48:33 <elliott> so its eval
08:48:35 <Bike> seriously, that's not quasiquotation, that's antiquotation.
08:48:43 <Bike> which is eval (whoaaaaa)
08:49:02 <doesthiswork> (some-fexpr-based-macro (eval (+ 1 1)) (+ 2 3))
08:49:08 <Bike> well, that's different.
08:49:16 <Bike> More importantly, is Burning Sand popular here?
08:49:21 <Sgeo> Burning Sand?
08:49:28 <monqy> is that one of those falling sand games
08:49:32 <Jafet> After they took out his colon, he went into a comma.
08:49:38 <monqy> you know, with the sand, and it's falling
08:49:45 <Bike> Yep.
08:49:48 * Sgeo likes those
08:49:52 <monqy> i've played a few of those in my days
08:50:05 <Bike> I found out you can get it for phones, and now that's what my phone is doing.
08:50:11 <monqy> idk if ive ever played burning sand tho is it any good
08:50:11 <Bike> Good use of technology there.
08:50:32 <Bike> It's cool. Still haven't figured out what glue does.
08:50:51 <Sgeo> Is it TC?
08:51:22 <monqy> good question
08:51:30 <Bike> Eh, maybe. I just try to get a stable ecosystem going.
08:51:40 <Bike> My current attempt is based on a shitload of steam and even more oil.
08:51:48 <monqy> a stable ecosystem??
08:52:19 <Bike> So that the "life" state continues to exist without my intervention and without reaching a stable state.
08:52:22 <Bike> Metastability, I guess.
08:52:23 <Sgeo> Trying to put out a burning plant with water is fun
08:52:45 <Bike> Basically it amounts to making a cycle of growth and fire, or at least that's what I'm doing right now.
08:52:50 <Sgeo> Erm, only if it has to be from above
08:53:28 <Bike> Oh, that's a fun thing, on the phone version gravity depends on how your phone is oriented.
08:53:40 <monqy> cute
08:54:34 <Bike> yeah it's mostly pointless but kinda nice.
08:54:51 <Sgeo> Oh hey managed to put out the fire
09:01:32 <Sgeo> Replicator can't replicate antimatter
09:01:41 <monqy> ok
09:01:53 * Bike notes in copybook.
09:02:42 <Sgeo> Antimatter can destroy black hole
09:03:50 <monqy> ok
09:04:47 <Sgeo> I think replicator burns faster than gunpowder
09:05:05 <monqy> i think you should conduct some more tests
09:07:07 <Bike> I think this fire burned so fast that it missed some oil. Awesome.
09:10:33 -!- Taneb has joined.
09:14:50 <elliott> Taneb: Remember the whole Halite in #haskell thing?
09:15:54 <Sgeo> Oh hey the entire world can be filled with replicator
09:16:01 <Sgeo> There's an option for that
09:18:18 <Sgeo> Black hole in a replicator world is pretty
09:19:55 <Taneb> Aye, I do
09:21:11 <shachaf> `pastelogs octagonfly
09:21:51 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.25898
09:27:26 <elliott> Taneb: He's banned now.
09:27:26 -!- DHeadshot has quit (Read error: Connection reset by peer).
09:27:48 -!- DHeadshot has joined.
09:27:50 <Taneb> Yay
09:28:21 <monqy> maybe he'll evade again.....more secretly this time
09:28:26 <monqy> maybe he'll fix his behavior too
09:28:34 <monqy> maybe he'll come back here???
09:28:59 <monqy> what's next, thutubot?????????
09:29:15 <Bike> isn't halite some kind of mineral
09:29:38 <Taneb> Yeah
09:29:41 <Taneb> rock salt
09:29:41 <Bike> oh it's salt
09:29:47 <Bike> right, hal- is salt
09:30:57 <monqy> is ite rock
09:32:58 <Bike> «adjective-forming suffix, especially of nominalized adjectives identifying groups of people as "those belonging to"»
09:33:09 <Bike> or "a rock, mineral or fossil" but that's hella boring
09:34:00 -!- Bike has quit (Quit: are you are you are you are you are you).
09:40:55 <Sgeo> Put cloud in a pure replicator environment
09:41:09 -!- epicmonkey has joined.
09:41:45 <monqy> oops?
09:41:59 <Sgeo> No, as in, I think it looks cool
09:42:06 <monqy> ok
09:42:15 <Sgeo> Although it becomes boring quickly
09:42:26 <monqy> oops...
09:42:44 <zzo38> SQLite plugins for dealing with VGM and MIDI would be useful, I think.
09:42:58 <Sgeo> Still starts out cool
09:44:01 <Sgeo> It starts out looking like cloud is growing sort of crystaline and then usually there will be a sudden burst of water
09:53:20 -!- oerjan has joined.
09:54:44 -!- ais523 has joined.
09:59:53 <elliott> oerjan: hi
09:59:55 <elliott> ais523: hi also
10:00:01 <oerjan> yo
10:00:08 <ais523> moin auch
10:04:35 -!- oerjan has set topic: CAUTION: YOU ARE NOW APPROACHING THE PERIPHERY SHIELD OF VORTEX FOUR | http://codu.org/logs/_esoteric/.
10:05:11 * oerjan is reminded of triangle and robert
10:05:18 <ais523> oerjan: hmm… that immediately made me think of "enjoy being locked in your matrix of solidity", even though it has no words in common
10:05:50 <oerjan> "OF" HTH
10:10:11 <ais523> bleh
10:10:21 <ais523> I stared at it for a while to make sure, too
10:10:49 <oerjan> you could try to claim "of" really counts as grammar instead of a word.
10:13:01 <Jafet> Being that "being" and "are" are totally the same word
10:13:47 -!- FreeFull has joined.
10:14:35 <oerjan> well then we also have "you" and "your"
10:15:37 <oerjan> YOU ARE TURNING INTO MONQY
10:15:41 <monqy> hi
10:16:12 <oerjan> wrong window
10:16:16 <monqy> ok
10:16:50 <oerjan> monqy: elliott said "hi" in the other window, i _think_ this is harmless for me to explain? omg don't hurt me!
10:17:13 <shachaf> oh no
10:17:18 <monqy> does that mean if i say hi i'll turn into monqy
10:17:20 <monqy> dreadful
10:17:26 <shachaf> is oerjan having secret conversations with elliott
10:17:30 <monqy> a fate worse than death???
10:17:39 <shachaf> monqy: if i say hi will i turn into monqy
10:17:46 <shachaf> i want to be like monqy!!
10:17:46 <monqy> it's too late
10:17:47 <oerjan> monqy: i hesitate to tell you, but i'm afraid it may already have happened
10:18:09 <Jafet> What about your turning into monqy
10:18:28 <shachaf> monqy: when do i get my monqy manual
10:18:37 <shachaf> the book all monqys have access to
10:18:54 <monqy> gosh i have access to a lot of books which one are you talking about
10:18:58 <monqy> be more specific please
10:19:11 <shachaf> um
10:19:14 <shachaf> maybe it's tapl?
10:19:20 <monqy> i have access to that
10:19:28 <shachaf> i don't.. :"(
10:19:37 -!- Phantom_Hoover has joined.
10:19:43 <shachaf> but i think it's a book you have access to iff you're monqy
10:19:53 <oerjan> shachaf: i think it must be "Journey to the West" hth
10:20:10 <monqy> what's that
10:20:50 <oerjan> oh iff you're monqy, cannot be that one then
10:20:58 <oerjan> it's pretty out of the bag, so to speak
10:21:17 <shachaf> i heard monqy was a bit 'out of the bag' if you know what i mean
10:21:25 <oerjan> http://en.wikipedia.org/wiki/Journey_to_the_West
10:21:56 <oerjan> or maybe there are four books, one more for each of East, South and North, but only monqy has those
10:21:56 <monqy> what sort of bag are we talking about here
10:22:07 <shachaf> ummmm i think its metaphorical
10:22:10 <oerjan> the monqy bag
10:22:17 <monqy> i think i'm in that bag though
10:22:24 <shachaf> monqy: im hinting that youre a cat
10:22:41 <shachaf> the proof is that you made a unicode cat face the other day
10:23:34 <monqy> alright i'll believe that
10:28:10 <Sgeo> HOVER!
10:28:10 <Sgeo> http://www.stanford.edu/~cammat/HOVER/index.html
10:28:14 <Sgeo> Wonder if it works on WINE
10:28:38 <monqy> hover
10:29:34 -!- nooga has joined.
10:30:20 <shachaf> monqy: Am I bothering you too much?
10:30:46 <monqy> did someone suggest that you might be
10:35:11 <shachaf> I think I suggested it in those terms.
10:36:10 <monqy> ok
10:41:32 <Phantom_Hoover> meanwhile: http://www.reddit.com/r/math/comments/18mh1p/my_favorite_song_about_doing_calculus/c8h3ygo?context=3
10:41:34 <Phantom_Hoover> this guy...
10:51:42 -!- jconn has quit (Ping timeout: 264 seconds).
10:51:48 -!- DHeadshot has quit (Ping timeout: 248 seconds).
10:52:54 -!- fftw has quit (Ping timeout: 264 seconds).
10:55:21 -!- fftw has joined.
10:55:37 <elliott> fftw: are you a fourier transform
10:56:36 <fizzie> Perhaps not only fast, but the fastest.
10:57:15 <fizzie> ("In the West? I thought MIT was in the East?" is one of the FFTW FAQ questions.)
10:57:18 <ais523> btw, here's something fun to inspire conversation: aimake2 makes a test file that can include one of five header files: <iso646.h>, <limits.h>, <setjmp.h>, <sys/types.h>, and <zlib.h>
10:57:33 <ais523> any guesses as to why I chose that particular set?
10:57:48 <ais523> (in some cases, multiple header files would have worked; a couple of them had to be those specific headers, though)
10:58:26 <ais523> (also, in each case, the actual contents of the header files are irrelevant)
11:03:17 <FreeFull> ais523:
11:03:26 <FreeFull> ais523: To test if the compiler is being an ass or not?
11:03:39 <FreeFull> limits.h is part of the C standard
11:03:46 <FreeFull> I think setjmp.h is too
11:03:53 <FreeFull> zlib.h is an external library
11:07:35 <oerjan> <shachaf> oh wait i'm mixing it up with geraffes
11:07:45 <oerjan> http://speedydeletion.wikia.com/wiki/Geraffe hth
11:08:17 <monqy> ??????????????????????????
11:08:18 * oerjan mainly wants to point out his discovery of this wiki.
11:08:41 <oerjan> (as a front page hit for geraffe, but still.)
11:08:44 <fizzie> Possibly all those headers are from different standards? At least limits.h is C89/C90, iso646.h C99, <sys/types.h> POSIX, and so on.
11:10:06 -!- monqy has quit (Quit: hello).
11:12:20 <shachaf> I want a program to keep track of my PDF files.
11:12:34 <shachaf> I download lots of them and they have weird filenames and I lose them and it's annoying.
11:12:41 <shachaf> Is there a nice program for it?
11:13:01 <shachaf> Indexing a bunch of files with a bit of metadata (title, author, notes, etc.)
11:15:50 <fizzie> You could abuse a generic ebook library collection manager (like Calibre) for that, maybe? Though it doesn't sound entirely sensible.
11:16:45 <shachaf> That doesn't sound so bad in principle.
11:16:51 <shachaf> I haven't heard of Calibre -- let me see.
11:18:04 <fizzie> It maintains a metadata database, does format conversions, fetches book info from Amazon/whatever, and has e-reader integramation stuffs.
11:18:13 <fizzie> (Also security bugs.)
11:18:21 <shachaf> Hmm.
11:19:11 <shachaf> Well, I'll download the 20MB and see.
11:19:45 <elliott> shachaf: Calibre is that one where it installed a buggy setuid program and then the maintainer refused to remove it or something.
11:20:02 <shachaf> Uh oh.
11:20:11 <shachaf> Is that where I heard the name before?
11:20:13 <shachaf> Is it still there?
11:20:18 <shachaf> I don't want to install it if it's still there.
11:20:49 <fizzie> I don't see any suid binaries in this Ubuntu package, at least.
11:21:30 <oerjan> `run echo Testing something right here | hyfinate
11:21:32 <HackEgo> Tes-ting so-met-hing right he-re
11:21:54 <fizzie> That's not Finnish!
11:28:42 <shachaf> fizzie: wow this has an actual wizard
11:28:57 <shachaf> With an actual picture of a magic wand and everything.
11:29:34 <shachaf> AttributeError: 'BooksView' object has no attribute 'context_menu'
11:29:45 <fizzie> Heh.
11:29:49 <shachaf> I like the part where it throws exceptions when you right-click things.
11:30:57 <shachaf> This looks like an awful UI but I hate making GUIs so maybe I'll use it.
11:32:11 <fizzie> I wasn't too happy about the UI either.
11:32:36 <elliott> Does it need to be a GUI thing?
11:33:22 <shachaf> No.
11:33:53 <elliott> I'm not sure what operations you require.
11:34:25 <shachaf> I'm not quite sure either.
11:34:32 <shachaf> I want to have lots of .pdf, .ps.gz, etc. files
11:34:48 <shachaf> I want them to have metadata, like title, author, notes, and tags-or-something
11:34:55 <shachaf> I want to be able to find them easily by metadata.
11:35:27 <elliott> Well, for instance, the metadata could be just a text file (or YAML or whatever -- I hear you like YAML) and you could just grep them to find things.
11:35:31 <elliott> Given those rqeuirements.
11:35:33 <elliott> *requirements
11:35:42 <elliott> (A file per PDF, that is.)
11:36:00 <shachaf> Yes, but that's awkward.
11:36:13 <shachaf> Once I grep I have to view the filename and things like that.
11:36:49 <shachaf> I'd also like to be able to filter by tag-or-something, since I have a few different "universes" of PDFs and I want to focus on one at a time.
11:36:58 <shachaf> I suppose in my case maybe just having multiple metadata files is enough.
11:37:09 <elliott> Right. So you also require integration with a PDF reader (at least to the point of opening the file automatically).
11:37:34 <elliott> Anyway I think "document search" may be useful keywords?
11:37:55 <shachaf> I wonder whether all I want is searching.
11:38:02 <shachaf> It seems like I want more but I'm not sure what.
11:38:11 <elliott> If you search for the empty query then you get a list too.
11:38:17 <shachaf> Well, as long as we're searching, full-text search through PDFs that have it would be nice. :-)
11:38:46 * elliott thinks trying to maintain metadata beyond "title, tags, freetext description" is pointless.
11:38:58 <elliott> And you can merge the latter two, and arguably the first as well.
11:39:29 <shachaf> URL is good.
11:39:33 <shachaf> And author.
11:40:31 <elliott> Freetext subsumes both.
11:40:40 <shachaf> Maybe...
11:40:42 <shachaf> Not really.
11:40:46 <shachaf> But maybe.
11:40:49 <elliott> Well, it means that searching will be easier.
11:40:52 -!- ais523 has quit (Ping timeout: 248 seconds).
11:40:53 <elliott> Since you can just type any old crap.
11:41:04 <elliott> And it also means that more software will satisfy your requirements, because they'll be weaker.
11:41:10 <shachaf> I also want "original filename of the PDF".
11:41:19 <shachaf> Because I care about that for some reason?
11:41:21 * elliott wonders what possible use you have for that.
11:41:26 <elliott> Anyway URL subsumes that?
11:41:27 <shachaf> Maybe URL subsumes that.
11:41:29 <shachaf> hi
11:41:41 <elliott> Assuming the resource doesn't die, and if you're storing e.g. academic papers it's unlikely they'll disappear off the internet entirely.
11:42:02 <shachaf> Resources do die.
11:42:13 <elliott> Yes, but papers are usually available from multiple locations.
11:42:19 <shachaf> Some of them aren't.
11:42:30 <shachaf> Anyway some sort of "browsing" thing would be good too.
11:42:36 <shachaf> But I'm not sure exactly what it should be.
11:43:05 <shachaf> Why can't the Internet be one big content-addressed thing?
11:43:17 <shachaf> That way things wouldn't disappear.
11:43:36 <shachaf> (They already "don't disappear" -- you just don't know where to find them.)
11:44:16 <shachaf> Anyway, this sounds like a good start.
11:44:24 <shachaf> What satisfies these requirements?
11:44:39 -!- ais523 has joined.
11:46:49 <elliott> Well, grep + a tiny wrapper shell script, for requirements this minimal.
11:47:22 <shachaf> Also I want to be able to add files easily.
11:47:37 <elliott> That's another shell script. But I'm not proposing you use shell scripts.
11:48:39 <shachaf> Ugh, I wish I had working → and End keys.
11:48:46 <shachaf> It's very annoying.
11:49:21 <FreeFull> shachaf: Rebind capslock as → and shift+capslock as End
11:51:19 <shachaf> Maybe I'll just do it elliott's way.
11:54:21 <zzo38> But then, what if you want to write in all capital letters?
11:54:41 <zzo38> (such as when using with software that doesn't accept lowercase, such as INTERCAL)
11:56:45 <shachaf> I already bind caps lock to Esc.
11:56:54 <shachaf> If I want to write in all capital letters, I'll hold the shift key.
12:01:34 <doesthiswork> did Psogumma ever go beyond a concept? http://catseye.tc/node/Psogumma.html
12:02:49 <FreeFull> Interesting concept
12:03:11 <FreeFull> I think the difficulty is in making a good pseudo-random generator
12:05:56 <doesthiswork> I can't think of any big obstacles off the top of my head
12:09:45 <doesthiswork> you have a nice parse tree representing a normal bland language, and then whenever you don't know how to translate the next part of psogumma you decide that it must mean one of the valid operations available and use that.
12:09:45 <FreeFull> Making it interesting
12:11:25 <doesthiswork> or really easily it could be a skin for the s k i combinators
12:11:47 -!- jconn has joined.
12:38:06 <oerjan> :t use _1 . acts
12:38:08 <lambdabot> (MonadState s ((->) (m a -> f (m a))), Field1 s t b b1, Effective m r f) => (a -> f a) -> b
12:39:23 <oerjan> :t _1 . acts
12:39:25 <lambdabot> (Field1 s t (m a) (m a), Effective m r f) => (a -> f a) -> s -> f t
12:40:21 <FreeFull> > _1 . acts $ (:[]) []
12:40:22 <lambdabot> Couldn't match expected type `a0 -> f0 a0' with actual type `[a1]'
12:40:36 <FreeFull> Wait, what is f
12:40:50 <oerjan> a monad, i think
12:41:09 <FreeFull> [] is a monad
12:41:14 <oerjan> > (_1 . acts) (:[]) []
12:41:16 <lambdabot> No instances for (Control.Lens.Tuple.Field1
12:41:16 <lambdabot> [a1] t0 (m...
12:41:43 <FreeFull> > (_head . acts) (:[]) []
12:41:44 <lambdabot> No instance for (GHC.Show.Show (m0 a0))
12:41:45 <lambdabot> arising from a use of `M37117443...
12:41:47 <oerjan> > (_1 . acts) (:[]) ([], "so")
12:41:49 <lambdabot> No instance for (Control.Lens.Internal.Action.Effective [] r0 [])
12:41:49 <lambdabot> arisin...
12:41:51 <elliott> no, "m" is the monad
12:41:53 <oerjan> ouch
12:42:18 <elliott> oerjan: the Effective/MonadicGetter/MonadicFold stuff isn't very good.
12:42:25 <oerjan> OKAY
12:42:26 <elliott> it is a source of disappointment
12:50:35 <FreeFull> Which lens package should I install?
12:51:00 <Taneb> lens
12:51:29 <Taneb> shachaf, can I use your Free Group type?
12:51:33 <FreeFull> It's still a heavy work in progress, isn't it?
12:51:44 <Taneb> It's a heavy work that is in progress
12:51:46 <Taneb> It's pretty solid
12:51:55 <shachaf> Taneb: For what?
12:52:07 <Taneb> Putting in a library and sharing with the world
12:52:15 <shachaf> Oh. Uh, sure?
12:52:39 <Phantom_Hoover> free group type?
12:52:50 <shachaf> I didn't know it was mine.
12:52:57 <oerjan> > transposeOf (traverse._1) [("testing",1),("ho",2)]
12:52:59 <shachaf> I don't know whether it's actually a free group type.
12:52:59 <lambdabot> [[('t',1),('h',2)],[('e',1),('o',2)]]
12:53:09 <elliott> What is the type?
12:53:22 <Taneb> newtype FreeGroup a = FreeGroup {runFreeGroup :: Group g => a -> g}, I believe
12:53:24 <oerjan> oh right "ragged inputs"
12:53:29 <shachaf> ?
12:53:30 <Taneb> Hang on
12:53:32 <shachaf> It's (a -> g) -> g
12:53:40 <Taneb> Yes, that makes more sense
12:53:51 <Taneb> newtype FreeGroup a = FreeGroup {runFreeGroup :: Group g => (a -> g) -> g}
12:53:58 <shachaf> newtype Foo = Foo { runFoo :: forall g. Group g => (a -> g) -> g }
12:54:00 <Phantom_Hoover> what's the definition of Group
12:54:03 <shachaf> oerjan: Is that a free group?
12:54:16 <elliott> How about newtype Free c a = Free { runFree :: forall r. c r => (a -> r) -> r}.
12:54:20 <elliott> How about newtype Free c a = Free { runFree :: forall r. c r => (a -> r) -> r }.
12:54:22 <elliott> General, see?
12:54:35 <shachaf> Sure.
12:54:43 <shachaf> Does it actually give you free things always?
12:54:45 <oerjan> shachaf: i think i concluded the other day it was
12:58:05 <Taneb> I find myself unable to write instance Show (Free Show a)
12:59:12 <Taneb> Read (Free Read a) feels difficult also
13:01:22 <elliott> Taneb: (Show a, c a) => Show (Free c a) should work.
13:01:48 <elliott> I suggest not writing those instances.
13:03:18 <oerjan> c needs to be something that can be lifted into (r ->)
13:03:35 <oerjan> *lifted with
13:03:58 <oerjan> er r is a bad letter there, try (e ->)
13:04:20 <Taneb> Wouldn't it be (-> r)?
13:04:26 <oerjan> this is easy enough for _actual_ algebraic structures
13:04:28 <oerjan> no.
13:04:39 <Taneb> I think it was the bad letter confusing me
13:04:42 <oerjan> you want instance c x => c (e -> x)
13:05:07 * elliott thinks you just don't want a Show instance at all :P
13:05:21 <oerjan> and Show doesn't have that
13:10:10 <oerjan> > scanl1Of each (+) (1,2,3,4,5)
13:10:13 <lambdabot> (1,3,6,10,15)
13:15:05 <oerjan> > partsOf each .~ [42] $ [1..10]
13:15:07 <lambdabot> [42,2,3,4,5,6,7,8,9,10]
13:15:26 <elliott> oh, that scanl1Of is fancy!
13:15:31 <elliott> I didn't realise that was possible
13:18:39 <oerjan> > let ljust s n = partsOf each .~ s $ replicate n ' ' in ljust "testing" 10
13:18:41 <lambdabot> "testing "
13:19:23 <elliott> ...that may be slightly evil :P
13:19:29 <oerjan> you don't say :P
13:23:14 <shachaf> Just use partsOf traverse instead of artsOf each to make it not evil!
13:23:35 <elliott> artsOf
13:25:23 <oerjan> just because each and traverse are the same on lists...
13:26:27 <elliott> oerjan: (shachaf has prejudices.)
13:26:42 <oerjan> OKAY
13:29:33 <shachaf> oerjan: Isn't each slower?
13:29:42 <shachaf> Oh, I guess not, with the Conjoined hack. :-(
13:30:17 <oerjan> no idea about that :P
13:31:34 <shachaf> oerjan: Oh, it's so ugly. You'd hate it.
13:31:43 <shachaf> @ty conjoined
13:31:45 <lambdabot> Conjoined p => (p ~ (->) => q (a -> b) r) -> q (p a b) r -> q (p a b) r
13:31:45 <oerjan> OKAY
13:32:03 <shachaf> You provide an indexing and a non-indexing version of the operator.
13:32:19 <shachaf> That way it can choose the second one sometimes for better performance.
13:35:12 <elliott> (The first one.)
13:35:31 <shachaf> elliott: See previous line.
13:36:02 <elliott> ?
13:36:17 <shachaf> 05:32 <shachaf> You provide an indexing and a non-indexing version of the operator.
13:37:45 <oerjan> :t timingOut
13:37:46 <lambdabot> Not in scope: `timingOut'
13:39:13 -!- nooga has quit (Ping timeout: 248 seconds).
13:49:41 -!- Regis_ has joined.
13:53:49 <ais523> btw, I have to disappear again in like 5 minutes
13:54:06 <ais523> but the answer to my include files question is, between them they should cover all the default search paths for header files
13:54:48 <elliott> `welcome Regis_
13:54:50 <HackEgo> Regis_: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
13:56:11 <ais523> iso646.h is provided by gcc (specifically); setjmp.h always by glibc or the platform's equivalent libc; sys/types.h covers platform-specific paths (which aren't used for ISO/ANSI C headers); limits.h is there because gcc and clang both generate it by patching the system's limits.h, and so it has a path all to itself; and zlib.h is there because some distributions have separate paths for C/POSIX and non-C/POSIX headers, so I needed a commonly
13:56:12 <ais523> available header that wasn't in either C or POSIX
13:56:33 <ais523> btw, setjmp.h is absolutely required, because it's the only C89 header that gcc never patches to fix deficiencies in it
13:56:47 <ais523> I actually read gcc source about that; every single other C89 header can be patched on some platform or another
13:56:56 <ais523> (and that would move it to the same search path as limits.h)
13:57:28 <ais523> iso646.h makes for a nice "provided by compiler not libc" header, incidentally, because it's completely platform-independent /and/ missing from glibc
13:57:37 <ais523> and thus most compilers feel they have to provide it
13:58:04 <ais523> clang provides it too, for instance
14:00:19 <elliott> hmm, why doesn't glibc provide it?
14:16:23 -!- boily has joined.
14:32:07 -!- doesthiswork has quit (Quit: Leaving.).
14:34:26 -!- oerjan has quit (Quit: leaving).
14:43:23 <FreeFull> Maybe there should be a way to specify which optimisations you expect the compiler to apply to a chunk of code, and it'll warn/error if it can't
14:43:37 <FreeFull> I mean can't apply them to the code
14:45:51 -!- nooga has joined.
14:54:13 <ais523> elliott: probably because gcc does, I guess
14:54:21 <ais523> also because it's the most portable header in existence
14:54:30 <ais523> it basically has to define macros with specific names and specific expansions
14:54:33 <ais523> and that' sit
14:54:34 <ais523> *that's it
14:54:40 <ais523> and there isn't even any wiggle room for the expansions
15:06:20 -!- zzo38 has quit (Remote host closed the connection).
15:14:22 -!- ais523 has quit.
15:46:47 -!- nooodl has joined.
16:14:15 -!- ogrom has joined.
16:22:27 -!- azaq23 has joined.
16:22:37 -!- azaq23 has quit (Max SendQ exceeded).
16:39:54 -!- Nisstyre-laptop has joined.
16:41:11 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
16:41:43 -!- Nisstyre-laptop has joined.
16:50:47 -!- AnotherTest has joined.
16:50:55 <AnotherTest> Hello
16:51:00 <Taneb> Hi
16:51:13 <AnotherTest> mroman: very interesting idea with Büü
16:52:15 <mroman> Thx.
16:52:55 <AnotherTest> I wonder whether programs can be predictable
16:53:09 <AnotherTest> is it possible to predict the numbers in powers of 2?
16:53:25 <AnotherTest> If so, I think that might be a possible way of doing it
16:53:41 <mroman> You can compute the collatz sequence.
16:53:49 <AnotherTest> backwards?
16:53:55 <mroman> No.
16:53:57 <mroman> Forwards.
16:54:01 <AnotherTest> I mean predicting as in
16:54:17 <AnotherTest> actually I don't mean to say predicting
16:54:32 <AnotherTest> "writing" is probably a better word here
16:54:45 <mroman> You want to write a program
16:54:56 <mroman> (incl. all sub-programs)
16:55:00 <AnotherTest> Yes, by finding a power of 2
16:55:07 <AnotherTest> (a good one)
16:55:09 <mroman> and then find a number which produces your program?
16:55:41 <AnotherTest> Yes, by predicting what any power of two is going to do
16:55:50 <AnotherTest> and then reversing that idea
16:56:18 <AnotherTest> That is, 2^n will produces n sub programs
16:56:26 <AnotherTest> and they will all be powers of 2
16:56:35 <mroman> yeah.
16:56:47 <AnotherTest> The remaining problem is: what digits to these powers of 2 contain
16:57:15 <AnotherTest> (depending on their exponent)
16:57:34 <AnotherTest> and then, what will those digits do
16:59:26 <AnotherTest> It's possible though that this won't work
16:59:41 <mroman> I actually highly doubt that one can achieve an arbitrary effect at an arbitrary point.
16:59:44 <AnotherTest> because, for example, a very low power of 2 already has digits that cause something bad
17:00:09 <AnotherTest> mroman: well you can always try, but I agree
17:03:24 <AnotherTest> mroman: what about a language similar to Büü, but to make it more complex:
17:04:03 <AnotherTest> of every subprogram not in the range (0, 9), generate all subprograms according to the current method
17:04:07 -!- Arc_Koen has joined.
17:04:17 <AnotherTest> There would be lot's of 1's though
17:04:23 <AnotherTest> and no 0
17:04:59 <mroman> I don't think it needs to be more complex
17:05:07 <mroman> it's already completely unusable to program in.
17:05:22 <AnotherTest> I like the truth machine
17:05:25 <AnotherTest> how did you find it?
17:05:43 <AnotherTest> Or just at random
17:05:53 <mroman> I brute forced it.
17:06:14 <AnotherTest> mroman: maybe in 10 years it's like real simple to write code in tho
17:06:24 <AnotherTest> if someone proves collatz conjecture
17:07:40 <mroman> wont that just mean that there is no Büü programs which yields infinite sub-programs?
17:07:51 <mroman> that does not make it any simpler to write Büü programs?
17:08:25 <AnotherTest> Well, yes, but the way of proof probably would provide (and require) more insight in the sequences
17:08:59 <mroman> probably.
17:09:19 <AnotherTest> also, it might be possible to predict things like how long it would take for a given number to reach 1
17:09:29 -!- Nisstyre-laptop has quit (Quit: Leaving).
17:09:37 <AnotherTest> which would be very useful
17:09:55 <mroman> If you wan't you can write a Büü program which adds two 2bit unsigned numbers :)
17:09:58 <mroman> *want
17:10:08 -!- Nisstyre-laptop has joined.
17:10:14 <mroman> but since there is no input
17:10:22 <mroman> and you have to encode the numbers to add in your program
17:10:29 <mroman> it influences the behaviour of your program :)
17:10:32 <mroman> good luck :D
17:10:46 <AnotherTest> :(
17:10:59 <mroman> and most certainly will yield different sub-programs to execute of course.
17:11:38 <AnotherTest> I give €100 to anyone (for real!) who can write a valid brainfuck interpreter in Büü, proving that it is Turing Complete - which it probably isn't but okay
17:12:03 <mroman> it's probably not.
17:12:22 <mroman> and you don't need to worry about sub-programs actually.
17:12:30 <mroman> you can write a single program in Büü
17:12:39 <mroman> and it will execute that program
17:12:49 <mroman> and then the behaviour of the rest depends on the collatz sequence
17:13:03 <AnotherTest> which might cause something totally different to happen?
17:13:04 <mroman> but if you don't care about what your program does after it's done its job its no problem.
17:14:13 <mroman> Is Büü turing-complete given it would not compute sub-programs and evaluate those?
17:14:27 <mroman> or might it be turing-complete if it does so.
17:14:29 <AnotherTest> I think so, but I'd have to recheck for that
17:14:33 <mroman> I personally think no.
17:14:52 <mroman> If you chain an infinite amount of finite state machines together
17:14:54 <AnotherTest> let me see the wiki page
17:14:59 <mroman> does that make a turing machine?
17:15:01 <mroman> probably not.
17:15:27 <mroman> I would love if it were so of course :D
17:16:15 <mroman> An infinite amount of finite state machines actually most probably has infinite state
17:16:23 <AnotherTest> It looks a lot like bitfuck to be honest
17:16:42 <AnotherTest> or what was that called again
17:17:13 <AnotherTest> ah smallfuck
17:17:14 <AnotherTest> http://esolangs.org/wiki/Smallfuck
17:17:22 <mroman> but they are executed one after another
17:17:27 <kallisti> s/most probably //
17:17:28 <mroman> which probably indeed yields only finite state.
17:17:50 <mroman> but they share the same data
17:17:57 <mroman> I really don't know anything :(
17:18:00 <AnotherTest> Let me see:
17:18:09 <AnotherTest> Smallfuck has a * that flips
17:18:17 <AnotherTest> You have 6 which also flips
17:18:27 <mroman> Smallfuck has nested loops.
17:18:30 <mroman> Bueue does not.
17:18:33 <AnotherTest> aha
17:18:43 <AnotherTest> it's probably not TC then
17:19:02 <mroman> 4 just jumps back to the last 2
17:19:07 <mroman> so 2244
17:19:19 <mroman> they would both jump to the same 2
17:19:25 <mroman> (the second two to be exact)
17:20:26 <mroman> it wouldn't be fun if it had real loops :)
17:31:06 -!- boily has quit (*.net *.split).
17:31:06 -!- epicmonkey has quit (*.net *.split).
17:31:07 -!- kallisti has quit (*.net *.split).
17:31:07 -!- Gregor has quit (*.net *.split).
17:31:07 -!- Deewiant has quit (*.net *.split).
17:31:07 -!- elliott has quit (*.net *.split).
17:31:07 -!- constant has quit (*.net *.split).
17:31:08 -!- glogbackup has quit (*.net *.split).
17:31:08 -!- yiyus has quit (*.net *.split).
17:31:08 -!- nortti has quit (*.net *.split).
17:31:08 -!- jconn has quit (*.net *.split).
17:31:08 -!- fftw has quit (*.net *.split).
17:31:09 -!- Jafet has quit (*.net *.split).
17:31:09 -!- coppro has quit (*.net *.split).
17:31:09 -!- myndzi has quit (*.net *.split).
17:31:09 -!- ineiros has quit (*.net *.split).
17:31:09 -!- fungot has quit (*.net *.split).
17:31:10 -!- FireFly has quit (*.net *.split).
17:31:10 -!- shachaf has quit (*.net *.split).
17:31:10 -!- dessos has quit (*.net *.split).
17:31:11 -!- lifthrasiir has quit (*.net *.split).
17:31:11 -!- Nisstyre-laptop has quit (*.net *.split).
17:31:11 -!- Arc_Koen has quit (*.net *.split).
17:31:11 -!- fizzie has quit (*.net *.split).
17:31:12 -!- Regis_ has quit (*.net *.split).
17:31:12 -!- Frooxius has quit (*.net *.split).
17:31:12 -!- SDr has quit (*.net *.split).
17:31:13 -!- ion has quit (*.net *.split).
17:31:13 -!- oklopol has quit (*.net *.split).
17:31:14 -!- heroux has quit (*.net *.split).
17:31:14 -!- copumpkin has quit (*.net *.split).
17:31:14 -!- EgoBot has quit (*.net *.split).
17:31:15 -!- Nisstyre has quit (*.net *.split).
17:31:15 -!- upgrayeddd has quit (*.net *.split).
17:31:15 -!- esomimic has quit (*.net *.split).
17:31:15 -!- jix has quit (*.net *.split).
17:31:15 -!- sivoais has quit (*.net *.split).
17:31:15 -!- HackEgo has quit (*.net *.split).
17:31:15 -!- Vorpal has quit (*.net *.split).
17:31:16 -!- nooodl has quit (*.net *.split).
17:31:16 -!- Slereah has quit (*.net *.split).
17:31:17 -!- Sgeo has quit (*.net *.split).
17:31:17 -!- quintopia has quit (*.net *.split).
17:31:17 -!- Phantom_Hoover has quit (*.net *.split).
17:31:17 -!- md_5 has quit (*.net *.split).
17:31:17 -!- rodgort has quit (*.net *.split).
17:31:17 -!- sebbu has quit (*.net *.split).
17:31:17 -!- aloril has quit (*.net *.split).
17:31:18 -!- nooga has quit (*.net *.split).
17:31:18 -!- efm has quit (*.net *.split).
17:31:18 -!- noam_ has quit (*.net *.split).
17:31:18 -!- hogeyui has quit (*.net *.split).
17:31:18 -!- ssue has quit (*.net *.split).
17:31:18 -!- lahwran has quit (*.net *.split).
17:31:18 -!- clog has quit (*.net *.split).
17:31:19 -!- TodPunk has quit (*.net *.split).
17:31:19 -!- tswett has quit (*.net *.split).
17:31:19 -!- oonbotti has quit (*.net *.split).
17:31:19 -!- kmc has quit (*.net *.split).
17:31:20 -!- FreeFull has quit (*.net *.split).
17:31:20 -!- augur has quit (*.net *.split).
17:31:20 -!- sirdancealot7 has quit (*.net *.split).
17:31:20 -!- stuntane has quit (*.net *.split).
17:31:20 -!- SimonRC has quit (*.net *.split).
17:31:20 -!- lambdabot has quit (*.net *.split).
17:31:20 -!- Taneb has quit (*.net *.split).
17:31:21 -!- SirCmpwn has quit (*.net *.split).
17:31:21 -!- Gracenotes has quit (*.net *.split).
17:31:21 -!- tromp_ has quit (*.net *.split).
17:31:21 -!- surma has quit (*.net *.split).
17:31:21 -!- mroman has quit (*.net *.split).
17:31:21 -!- AnotherTest has quit (*.net *.split).
17:31:21 -!- Sanky has quit (*.net *.split).
17:31:22 -!- mtve has quit (*.net *.split).
17:31:22 -!- Lumpio- has quit (*.net *.split).
17:36:46 -!- Nisstyre-laptop has joined.
17:36:46 -!- Arc_Koen has joined.
17:36:46 -!- AnotherTest has joined.
17:36:46 -!- nooodl has joined.
17:36:46 -!- nooga has joined.
17:36:46 -!- boily has joined.
17:36:46 -!- Regis_ has joined.
17:36:46 -!- jconn has joined.
17:36:46 -!- fftw has joined.
17:36:46 -!- Phantom_Hoover has joined.
17:36:46 -!- FreeFull has joined.
17:36:46 -!- epicmonkey has joined.
17:36:46 -!- Taneb has joined.
17:36:46 -!- Frooxius has joined.
17:36:46 -!- sebbu has joined.
17:36:46 -!- aloril has joined.
17:36:46 -!- SirCmpwn has joined.
17:36:46 -!- copumpkin has joined.
17:36:46 -!- dessos has joined.
17:36:46 -!- elliott has joined.
17:36:46 -!- EgoBot has joined.
17:36:46 -!- Slereah has joined.
17:36:46 -!- efm has joined.
17:36:46 -!- SDr has joined.
17:36:46 -!- esomimic has joined.
17:36:46 -!- augur has joined.
17:36:46 -!- fungot has joined.
17:36:46 -!- Jafet has joined.
17:36:46 -!- Nisstyre has joined.
17:36:46 -!- coppro has joined.
17:36:46 -!- glogbackup has joined.
17:36:46 -!- sivoais has joined.
17:36:46 -!- Sgeo has joined.
17:36:46 -!- quintopia has joined.
17:36:46 -!- fizzie has joined.
17:36:46 -!- noam_ has joined.
17:36:46 -!- myndzi has joined.
17:36:46 -!- sirdancealot7 has joined.
17:36:46 -!- upgrayeddd has joined.
17:36:46 -!- Lumpio- has joined.
17:36:46 -!- oonbotti has joined.
17:36:46 -!- HackEgo has joined.
17:36:46 -!- mroman has joined.
17:36:46 -!- md_5 has joined.
17:36:46 -!- hogeyui has joined.
17:36:46 -!- oklopol has joined.
17:36:46 -!- Vorpal has joined.
17:36:46 -!- Gregor has joined.
17:36:46 -!- ssue has joined.
17:36:46 -!- stuntane has joined.
17:36:46 -!- Deewiant has joined.
17:36:46 -!- jix has joined.
17:36:46 -!- Gracenotes has joined.
17:36:46 -!- shachaf has joined.
17:36:46 -!- Sanky has joined.
17:36:46 -!- constant has joined.
17:36:46 -!- nortti has joined.
17:36:46 -!- yiyus has joined.
17:36:46 -!- ineiros has joined.
17:36:46 -!- FireFly has joined.
17:36:46 -!- lifthrasiir has joined.
17:36:46 -!- ion has joined.
17:36:46 -!- heroux has joined.
17:36:46 -!- kmc has joined.
17:36:46 -!- lambdabot has joined.
17:36:46 -!- tswett has joined.
17:36:46 -!- surma has joined.
17:36:46 -!- clog has joined.
17:36:46 -!- TodPunk has joined.
17:36:46 -!- tromp_ has joined.
17:36:46 -!- rodgort has joined.
17:36:46 -!- SimonRC has joined.
17:36:46 -!- mtve has joined.
17:36:46 -!- lahwran has joined.
17:37:15 -!- glogbackup has left.
17:45:23 <tswett> Hm. Wikipedia rhetorically asks whether you could assign a meaning to a lambda calculus term, and states that the "natural semantics" is to find a set D isomorphic to the function space D -> D of functions on itself.
17:45:43 <tswett> It then points on that no nontrivial such D can exist, bceause the set of all functions D -> D has greater cardinality than D.
17:46:20 <tswett> In NFU, though, that's not true. V is the set of everything, and the set of all functions V -> V has *smaller* cardinality than V.
17:47:03 <AnotherTest> then edit the page
17:47:42 <tswett> Nah. What the page says is true in ordinary set theory.
17:48:24 <elliott> so you can give semantics for the LC in NFU as long as you admit non-function primitive types :P
17:49:01 <tswett> Well, NFU certainly also has sets S such that the set of all functions S -> S is larger than S.
17:49:04 <tswett> For example, {1, 2, 3}.
17:49:07 -!- augur has quit (Remote host closed the connection).
17:49:18 <tswett> So maybe it has a set S such that S has the same cardinality as S -> S.
17:49:48 -!- augur has joined.
17:50:18 <tswett> What about the set S = { x | x is a function with domain and codomain S }... nope, that's a recursive definition.
17:51:02 <tswett> Okay, technically S = {1} is such a function.
17:51:20 -!- Taneb has quit (Quit: Leaving).
17:52:21 <elliott> imo set theory is lame
17:52:44 <tswett> Yeah, it's totally lame. It gets in the way of category theory.
17:54:39 <elliott> it's all gross and untyped!
17:54:48 <tswett> That too.
17:54:54 <elliott> and it has all these lame axioms for nerds
17:54:58 -!- augur has quit (Ping timeout: 276 seconds).
17:55:25 <elliott> and it doesn't even have a nice first-class proof representation!!
17:55:54 <tswett> Maybe the calculus of constructions is better.
17:56:24 -!- Bike has joined.
17:58:49 <elliott> something about homotopy type theory
18:21:44 -!- Nisstyre-laptop has quit (Quit: Leaving).
18:21:44 <mroman> AnotherTest: You spelled my name wrong ;)
18:22:17 <AnotherTest> mroman: oh edit that please
18:22:24 <AnotherTest> I looked at your userpage to find it
18:22:32 <AnotherTest> although probably misread it there
18:22:58 <AnotherTest> Oh it's "Roman Muentener"
18:23:02 <AnotherTest> not Muenter
18:23:09 <AnotherTest> fixed
18:23:21 <AnotherTest> oh you were faster :)
18:23:43 <mroman> it's actually even ü instead of ue
18:25:33 <tswett> Roman Müntener, then?
18:25:37 <mroman> Yes.
18:26:52 <mroman> AnotherTest: It's getting DSLs btw ;)
18:27:19 <mroman> I figured to increase its expressiveness even more it might be neat
18:27:36 <mroman> to switch between different embedded DSLs
18:27:44 <mroman> so one can just the most appropriate.
18:27:54 <AnotherTest> DSL = ? Domain specific language? sorry
18:27:59 <mroman> Yes.
18:28:03 <AnotherTest> oh ok
18:28:34 <AnotherTest> So you're going to embed languages inside Burlesque?
18:28:51 <AnotherTest> Sort of using eval instructions?
18:29:08 <AnotherTest> Sounds great
18:29:19 <mroman> Yep @embed
18:30:33 <mroman> I'm currently working on a DSL to manipulate text.
18:30:50 <Gregor> Embed perl.
18:30:52 <Gregor> Great success.
18:31:03 <olsner> or sed
18:31:21 <mroman> I don't want to have anything to do with perl ;)
18:31:33 <AnotherTest> so no regual expressions?
18:31:39 <elliott> regal expressions
18:31:39 <olsner> regal expressions
18:31:46 <elliott> olsner: ⁵
18:32:17 <AnotherTest> s/regual/regular of course
18:32:19 <AnotherTest> :(
18:32:48 <mroman> there will be regular expressions of course.
18:32:56 <mroman> Burlesque already has them.
18:33:10 <mroman> but they can be accessed with fewer keystrokes in my DSL
18:33:42 <Bike> important design criteria
18:33:54 -!- augur has joined.
18:33:57 <FreeFull> > [head] ?? [3]
18:33:59 <lambdabot> [3]
18:34:02 <FreeFull> > [head] ?? []
18:34:05 <lambdabot> [*Exception: Prelude.head: empty list
18:34:09 <FreeFull> :D
18:34:26 <Bike> :t (??)
18:34:28 <lambdabot> Functor f => f (a -> b) -> a -> f b
18:34:30 <AnotherTest> You should consider extending the regular expression syntax I think
18:35:32 <Gregor> Irregular expressions
18:35:47 <mroman> Bike: Exactly.
18:36:19 <Bike> > [head] ?? [3,9]
18:36:22 <lambdabot> [3]
18:37:05 <FreeFull> Is the function [a] -> [a] where the list returned only has the first element, or is empty, useful for anything?
18:37:07 <Bike> You should use Snobol syntax.
18:37:24 <olsner> > take 1 []
18:37:26 <lambdabot> []
18:37:51 <FreeFull> I guess with tail 1, you wouldn't need a less generic function
18:38:01 <FreeFull> How about one that works for all functors though?
18:38:22 <FreeFull> Hmm
18:38:33 <FreeFull> Are there functors that can't be empty?
18:38:58 <FreeFull> Wait, doesn't matter
18:39:10 <FreeFull> If the functor isn't empty, you can always take the first element anyway
18:40:07 <FreeFull> So either :: (Functor f) => f a -> f a or :: (Functor f, Integral n) => f a -> n -> f a
18:41:21 <FreeFull> I think it should work for all functors, but I don't know if the type system would allow such a function
18:42:19 <elliott> Note that IO and (e ->) (for any e, possibly unordered) are Functors.
18:42:30 <elliott> If you think you have something that works for every Functor then those are two good ones to consider.
18:43:58 <FreeFull> For IO it'd just be id
18:44:17 <elliott> Are you suggesting IO is always "empty"?
18:44:42 * elliott doesn't think the concept is well-defined but note that you can define IO as just a plain free monad and your definition had better agree for that form
18:45:22 <FreeFull> No, IO is never empty
18:45:32 <FreeFull> And () doesn't count as empty here
18:46:10 <FreeFull> Hmm, (->) e
18:48:30 <FreeFull> elliott: I'm thinking lists have constructors that take either zero or two arguments. You construct an IO value using return, which always has one argument
18:49:13 <FreeFull> And for any functor which only contains one value, :: (Functor f) => f a -> f a should be id
18:49:24 <elliott> Is Identity empty? Note that your answer must coincide for (->) e when e = ().
18:49:33 <tswett> I'm suddenly reminded of my "replace" function.
18:50:00 <elliott> The notion of functors "containing values" is misleading (again IO and (->) e being standard examples to show why it's problematic), is the fundamental problem here.
18:50:23 <FreeFull> Well, IO doesn't really contain a value
18:50:39 <tswett> replace head 'q' "elephant" === "qlephant"; replace last 50 [1,2,3,4] === [1,2,3,50]; replace (head . tail) True [False, False, False] === [False, True, False]; and so on.
18:52:44 <FreeFull> For (->) e you'd have :: ((->) e) -> ((->) e)
18:53:03 <FreeFull> Which has to return the exact same thing it was given
18:53:53 <FreeFull> Could call it fhead
18:54:18 <FreeFull> @hoogle (Functor f) => f a -> f a
18:54:19 <lambdabot> Control.Monad void :: Functor f => f a -> f ()
18:54:19 <lambdabot> Prelude fmap :: Functor f => (a -> b) -> f a -> f b
18:54:19 <lambdabot> Data.Functor fmap :: Functor f => (a -> b) -> f a -> f b
18:55:38 <Sgeo> Is this not id?
18:55:48 <FreeFull> I don't know how to implement it though, I don't think it can be done in terms of fmap or <$
18:55:53 <FreeFull> Prove me wrong
18:57:39 <elliott> 18:52:43 <FreeFull> For (->) e you'd have :: ((->) e) -> ((->) e)
18:57:42 <elliott> that type isn't even valid :P
18:58:05 <FreeFull> elliott: Oh yeah
18:58:16 <FreeFull> It'd be :: ((->) e a) -> ((->) e a)
18:59:13 -!- epicmonkey has quit (Ping timeout: 248 seconds).
18:59:23 <Sgeo> Does (->) e or whatever have a name other than "reader monad" to distinguish it from the more "official" reader monad?
18:59:43 <Sgeo> I just keep calling it reader monad which I guess can be confusing to some
19:00:17 <FreeFull> There should be
19:00:39 <FreeFull> I'd be tempted to call it a function constructor, although that's wrong
19:02:04 <FreeFull> I don't know if it's possible to write fhead without writing a separate one for all functors, although it feels like there should be a way
19:03:23 <Sgeo> What does fhead do? Sorry, wasn't paying attention
19:04:42 <Sgeo> Try writing it for Cont. That's not all functors, but if you can do that, then I think you can write it for all monads at least, and so you at least have it for some functors
19:05:07 <Sgeo> And Cont is a functor, so you need to be able to write it for Cont
19:06:05 <Sgeo> :t cont
19:06:07 <lambdabot> ((a -> r) -> r) -> Cont r a
19:06:23 <FreeFull> Sgeo: Lemme get the package
19:07:02 <FreeFull> Oh, got it installed
19:08:03 <Sgeo> I should try to understand cont
19:08:10 <Sgeo> It's delimited continuations, I think
19:08:18 <Sgeo> Shouldn't be too difficult really
19:08:24 <Sgeo> Well, I don't grok the types anyway
19:08:29 <FreeFull> Well, the functor instance is for ContT
19:08:45 <FreeFull> Sgeo: I'm looking at its source now
19:08:52 <FreeFull> http://hackage.haskell.org/packages/archive/mtl/1.1.0.2/doc/html/src/Control-Monad-Cont.html
19:08:58 <FreeFull> Dunno if that's newest
19:09:19 -!- SirCmpwn has quit (Excess Flood).
19:10:21 <Sgeo> Uh, why does it have callCC?
19:12:04 <Sgeo> callCC's name implies undelimited continuation
19:12:41 -!- SirCmpwn has joined.
19:15:06 <FreeFull> Is Cont basically function composition?
19:15:14 <FreeFull> But wrapped up
19:16:45 <Sgeo> It's basically delimited continuations
19:17:10 <Sgeo> Remember that with monads, the second argument to >>= is conceptually a continuation
19:19:38 -!- SirCmpwn has quit (Excess Flood).
19:21:13 -!- SirCmpwn has joined.
19:24:19 -!- ogrom has quit (Quit: Left).
19:24:24 -!- carado has joined.
19:25:38 <nooodl> "[...] and π ≈3.1416 and e ≈ 2.7183." gee, thanks wikipedia
19:25:39 <lambdabot> nooodl: You have 2 new messages. '/msg lambdabot @messages' to read them.
19:31:04 -!- xirhfisgd has joined.
19:31:54 -!- RobotSystem has joined.
19:32:11 <RobotSystem> hi every1
19:33:19 -!- RobotSystem has quit (Read error: Connection reset by peer).
19:33:47 -!- xirhfisgd has left.
19:34:10 -!- efm has quit.
19:34:18 -!- efm has joined.
19:38:32 <Sgeo> `olist
19:38:34 <HackEgo> shachaf oerjan Sgeo
19:39:35 -!- Regis_ has quit (Ping timeout: 252 seconds).
19:40:03 <boily> `olist
19:40:05 <HackEgo> shachaf oerjan Sgeo
19:40:07 <boily> `list
19:40:11 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover
19:40:28 <Gregor> wut
19:40:31 <Gregor> `cat bin/list
19:40:33 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover
19:41:00 <Gregor> WUT
19:41:09 <nortti> wtf
19:41:09 <Sgeo> What's so WUT?
19:41:16 <Sgeo> Although, how did HackEgo get on there
19:41:30 <Gregor> Presumably two commands were sent to HackEgo near the same time.
19:41:42 <nortti> seems like it...
19:41:57 <Gregor> Y'know, oldpwd is always the same.
19:41:57 <Gregor> `pwd
19:41:59 <HackEgo> ​/hackenv
19:42:39 <nortti> `list
19:42:46 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover
19:43:01 <Sgeo> Would be nice if it showed the new name too
19:43:07 <nortti> yeah
19:43:16 <Gregor> `cat bin/olist
19:43:17 <HackEgo> echo shachaf oerjan Sgeo
19:43:21 <nortti> `cat bin/list
19:43:21 <boily> I think I prefer it this way. it's sneaky.
19:43:22 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti
19:43:22 <Sgeo> Maybe if it added one, make it call itself and exit before its own echo
19:44:24 <fizzie> http://codu.org/logs/log/_esoteric/2013-02-07#215457elliott is approximately when HackEgo gets on it.
19:44:43 <nortti> ah. now I get it. there is no end of line at the end
19:44:52 -!- AnotherTest has quit (Quit: Leaving.).
19:51:50 <tswett> Sgeo: I'd hesitate to say that Cont is for delimited continuations.
19:53:27 <tswett> The "limit" of callCC is the entire computation; there's no reset operator.
19:59:20 <Sgeo> Hmm
19:59:21 <Sgeo> http://en.wikibooks.org/wiki/Haskell/Continuation_passing_style
19:59:28 <Sgeo> pythagoras_cps is valid syntax?
19:59:47 <Sgeo> That seems... like even writing manually CPSed code in Haskell is nicer than in, say, node.js
20:01:12 * FreeFull checks what happens when you fmap over Cont
20:02:39 -!- GreyKnight has quit (Remote host closed the connection).
20:02:49 -!- neutrak has joined.
20:03:37 <neutrak> okay quintopia, what is this bot?
20:03:40 <quintopia> @tell neutrak hi
20:03:40 <lambdabot> Consider it noted.
20:03:47 <neutrak> k
20:03:48 <lambdabot> neutrak: You have 1 new message. '/msg lambdabot @messages' to read it.
20:03:53 <neutrak> hm, I see
20:03:58 <neutrak> it's like unix mail
20:04:17 <nortti> @tell lambdabot hi
20:04:18 <lambdabot> Nice try ;)
20:04:34 <neutrak> auto-deleting I guess, but other than that it seems exactly like sendmail
20:05:08 <tswett> Sgeo: have you seen Ralph Loader's loader.c, the one that produces an extremely large number?
20:05:18 <Sgeo> Nope.
20:05:39 <tswett> It's described here: http://djm.cc/bignum-results.txt
20:05:54 -!- neutrak has quit (Client Quit).
20:06:12 <tswett> If I'm not mistaken, Loader's number is much larger than TREE(3), which is much larger than Graham's number.
20:08:16 <Sgeo> tswett, with the k that the function passed to callCC gets, will that k return something sensible when given a value?
20:08:55 <tswett> Well, yeah. It returns a value of type forall b. Cont r b.
20:08:56 <Sgeo> {loader.c} very big very big
20:10:03 <tswett> It never produces a value of type forall b. b, though; the code beyond the call to k simply doesn't run.
20:10:33 <Sgeo> :/
20:10:44 <Sgeo> So, not comparable to shift
20:10:49 <Bike> that's a pretty cool program.
20:11:05 <tswett> Hm, I don't remember how shift works.
20:11:08 -!- DHeadshot has joined.
20:11:15 <tswett> Let me look up shift, again.
20:11:49 <tswett> Okay, so "the shift operator captures or reifies the current continuation up to the innermost enclosing reset".
20:13:06 <nooga> http://subtextual.org/subtext2.html peculiar, but interesting
20:13:16 -!- Regis_ has joined.
20:13:17 -!- epicmonkey has joined.
20:13:29 <tswett> callCC does capture the current continuation, I suppose, but once you run that continuation, if the continuation finishes executing, then the entire computation has finished executing.
20:13:45 <tswett> Similar to shift, then, I guess, but not the same.
20:16:23 <FreeFull> Sgeo: Would fhead x = cont $ runCont x be a valid implementation you think?
20:16:33 <FreeFull> It's either that or id
20:16:42 <Sgeo> I think that is id
20:16:46 <tswett> Hm. I wonder how you'd simulate a "singleton object" in Haskell. Like, a value that cannot be copied or destroyed.
20:17:54 <tswett> How would you express the type of a function that doesn't copy, destroy, or examine its argument, simply returning a structure that contains one copy of it?
20:18:24 <Sgeo> Well, if the type is general, the number of operations that can be done on it is limited
20:18:37 <Sgeo> id :: a -> a can't possibly, say, add 1 to argument
20:18:53 <Sgeo> Although does copying count as an operation? Probably not?
20:19:11 <tswett> Right. There's a function of type forall a. a -> (a, a); that copies the a.
20:19:36 <tswett> I think (forall a. (a -> b a, b a -> a)) seems close. The "a -> b a" part is the main function. The "b a -> a" part ensures that the "b a" does in fact contain an "a", and also forces the function to select one particular copy of the "a".
20:20:36 <tswett> So you can't have b = Maybe, because there's no function forall a. Maybe a -> a.
20:21:22 <tswett> But if data Pair a = P a a, then you could have b = Pair, and so now you're violating the no-copy restriction.
20:21:40 <FreeFull> Does cont $ runCont evaluate the continuation or leave it as is?
20:21:54 <Sgeo> :t cont . runCont
20:21:56 <lambdabot> Cont r a -> Cont r a
20:22:09 <Sgeo> :t cont
20:22:10 <lambdabot> ((a -> r) -> r) -> Cont r a
20:22:11 <Sgeo> :t runCont
20:22:12 <lambdabot> Cont r a -> (a -> r) -> r
20:22:36 <tswett> Looks like it leaves it as is.
20:22:38 <Sgeo> :t cont $ runCont
20:22:39 <lambdabot> Couldn't match expected type `a0 -> r0'
20:22:40 <lambdabot> with actual type `Cont r1 a1'
20:22:40 <lambdabot> Expected type: (a0 -> r0) -> r0
20:22:47 -!- DHeadshot has quit (Ping timeout: 244 seconds).
20:22:50 <tswett> You're not evaluating the continuation until you pass an "a -> r" in.
20:23:37 <FreeFull> ((a -> r) -> r) looks like fix's signature
20:23:39 <tswett> cont . runCont $ x is a computation that, when run, asks for an "a -> r" and then passes it on to x.
20:23:42 <Sgeo> Incidentally, asking you to write it for Cont is a Super Sneaky (TM) way of asking you to write it for all monads. I think.
20:24:09 <tswett> Oh yeah, every monad in Haskell is isomorphic to a Cont monad.
20:24:13 <FreeFull> Because you can implement all monads in terms of Cont?
20:24:27 <FreeFull> Well, it makes things easier
20:24:33 <tswett> So what's fhead, again?
20:24:36 <tswett> :t fhead
20:24:37 <lambdabot> Not in scope: `fhead'
20:24:37 <lambdabot> Perhaps you meant one of these:
20:24:37 <lambdabot> `head' (imported from Data.List),
20:24:47 <Sgeo> tswett, the function that FreeFull is trying to writr
20:24:48 <Sgeo> write
20:24:56 <tswett> Well, what's it supposed to do?
20:25:15 <Sgeo> Uh. Ask FreeFull. But its type is apparently (Functor f) => f a -> f a
20:25:28 <FreeFull> tswett: For lists, it's the same as take 1
20:25:40 <FreeFull> For a tree, it'll return the root node
20:25:49 <FreeFull> For a stream....
20:25:54 <FreeFull> Wtf would it do for a stream
20:25:57 <tswett> I'm pretty sure that's impossible.
20:26:02 <Sgeo> Maybe you should make a new typeclass?
20:26:24 <FreeFull> For IO and (e ->) it'd be just id
20:26:33 <FreeFull> streams are functors, right?
20:26:40 <tswett> The only way you can make it work for all functors is by writing it using only fmap.
20:26:45 <tswett> And you can't do that using only fmap.
20:27:00 <tswett> "Stream" is a functor, yes.
20:27:05 <FreeFull> The problem with a stream is that it always contains an infinite number of values
20:27:10 <FreeFull> So you can't just take one
20:27:24 <FreeFull> You could take one and repeat it
20:27:31 <FreeFull> But I don't know if that's a reasonable thing to do
20:27:52 <Sgeo> FreeFull, this is an operation that can mean different things for different types, right? As such, it's an operation on an open-ended collection of types. It's a function that should be a method of a new typeclass.
20:28:18 <Sgeo> Or find a different typeclass that it makes sense to implement fhead in terms of
20:28:31 <tswett> Yeah, that's what I was thinking. It should belong to a new typeclass.
20:28:43 <tswett> Or find a typeclass that already lets you do this somehow.
20:29:34 <Sgeo> If your intuition claims that this should apply to all functors, your intuition about what a functor is is wrong.
20:29:36 <Sgeo> "is is"
20:29:51 <FreeFull> Functor only has fmap and <$
20:30:02 <tswett> :t (<$)
20:30:04 <lambdabot> Functor f => a -> f b -> f a
20:30:25 <nooga> http://dkeenan.com/Lambda/ this
20:30:30 <tswett> :t fmap . const
20:30:31 <lambdabot> Functor f => b -> f a -> f b
20:30:35 <nooga> the idiot bird
20:30:58 -!- oerjan has joined.
20:32:46 <FreeFull> Sgeo: I already thought of a functor this doesn't work for
20:32:55 <FreeFull> Unless you do the repeat tihnig
20:32:58 <FreeFull> thing*
20:33:43 <FreeFull> nooga: Graphical notations always leave me confused and wondering what the hell they mean
20:36:53 -!- GreyKnight has quit (Ping timeout: 256 seconds).
20:37:45 <Sgeo> tswett, is cont shift?
20:37:48 <Sgeo> :t cont
20:37:49 <lambdabot> ((a -> r) -> r) -> Cont r a
20:38:01 <FreeFull> :t shift
20:38:02 <lambdabot> Bits a => a -> Int -> a
20:38:06 <FreeFull> Wrong shift
20:38:06 <tswett> Isn't it more like reset, if anything?
20:38:14 <FreeFull> :t reset
20:38:15 <lambdabot> Not in scope: `reset'
20:38:27 <oerjan> > shift 20 1
20:38:29 <lambdabot> 40
20:38:30 <tswett> Hm.
20:38:34 <oerjan> oops
20:38:35 <Sgeo> cont $ \k -> ...
20:38:38 <oerjan> > shift 1 20
20:38:40 <lambdabot> 1048576
20:38:51 <tswett> Yeah, cont still has no way of accessing the stuff around it.
20:38:55 <Sgeo> What does k do there?
20:39:18 <tswett> Uh, hmm. k :: a -> r, right?
20:39:34 <Sgeo> yes
20:40:06 <tswett> I guess k is just the function that runCont passed in.
20:40:14 <tswett> Mm, lemme think.
20:40:29 <Sgeo> I remember seeing elliott do somethign with my function that needed shift and reset, and pretty much used my code to run inside shift inside cont
20:41:46 <tswett> Yeah, I don't think it does anything special.
20:42:04 <tswett> Hm, maybe we could try to figure out how to create delimited continuations.
20:42:16 <Sgeo> Lemme see if I can transliterate a shift/reset example into using cont
20:42:39 <tswett> "reset" provides a context that "shift" runs in. "shift" does something within that context.
20:42:44 <oerjan> @tell AnotherTest <AnotherTest> is it possible to predict the numbers in powers of 2? <-- i recall we had a discussion of whether every power of 2 beyond the apparent last exception contain the digit 0; it seems to be heuristically almost certain, but proving it is an open problem. so don't expect too much predictable structure...
20:42:44 <lambdabot> Consider it noted.
20:43:32 <Sgeo> > (`runCont` id) $ do { r <- cont $ \k -> do {k 5}; return (r+1) }
20:43:34 <lambdabot> 6
20:43:41 <tswett> So (reset foo), where foo is a computation-needing-a-context, is the result of the computation. reset has the type Del a -> a, or something like that.
20:44:07 <Sgeo> I think (`runCont` id) is reset and cont is shift
20:44:47 <tswett> I guess (`runCont` id) does seem pretty reset-like, but cont isn't shift-like, is it?
20:45:07 <Sgeo> Look at what k does. It does the surrounding and returns its result
20:45:25 <Sgeo> > (`runCont` id) $ do { r <- cont $ (\k -> do {k 5}); return (r+1) }
20:45:27 <lambdabot> 6
20:45:38 <tswett> :t cont (\k -> k 5)
20:45:39 <lambdabot> Num a => Cont r a
20:45:49 <tswett> That's just "return 5".
20:46:17 <tswett> Equivalent to it, anyway.
20:46:32 <Sgeo> > (`runCont` id) $ do { r <- cont $ (\k -> do {v <- k 5; w <- k 6; return (k+w)}); return (r+1) }
20:46:34 <lambdabot> Occurs check: cannot construct the infinite type:
20:46:34 <lambdabot> t0 = m0 t0 -> m0 t0
20:46:46 <tswett> Anyway, what's the context that shift runs in, and what does it do? Well, it gives you a function of type (a -> b), where a is the thing that shift is supposed to return, and b is the eventual return type of the entire calculation.
20:47:19 <tswett> So Del needs to be parameterized over the eventual return type. reset only works when the "eventual return type" is equal to the type actually being returned, so reset :: Del a a -> a.
20:48:15 <Sgeo> Is (shift k (k 5)) not just a thing that is equivalent to 5?
20:48:20 <nooga> FreeFull: yeah, but that one is quite clever
20:48:30 <tswett> That's also equivalent to 5, yeah.
20:48:54 <tswett> But there's no way to do, like, (shift k (k (k 5))) here. I think.
20:49:00 <FreeFull> nooga: What, binary shift?
20:49:13 <tswett> Okay, in (shift foo), foo *takes* the function of type (a -> b), and returns, oh, some thing. shift then returns that same thing. So...
20:49:39 <tswett> shift :: ((a -> r) -> a) -> Del r a?
20:50:16 <Sgeo> > (`runCont` id) $ do {r <- cont $ (\k -> a <- k 5; b <- k a; return b); return (r+1)}
20:50:18 <lambdabot> <hint>:1:43: parse error on input `<-'
20:50:27 <Sgeo> > (`runCont` id) $ do {r <- cont $ (\k -> do a <- k 5; b <- k a; return b); return (r+1)}
20:50:28 <lambdabot> Occurs check: cannot construct the infinite type: t0 = m0 t0
20:50:32 <Sgeo> GAH
20:51:29 <tswett> Hm. I don't immediately see anything wrong with that.
20:51:30 <Sgeo> > (`runCont` id) $ do {r <- cont $ (\k -> do a <- k 5; return a); return (r+1)}
20:51:32 <lambdabot> No instance for (GHC.Num.Num (m0 t0))
20:51:32 <lambdabot> arising from a use of `e_151'
20:51:32 <lambdabot> Pos...
20:51:44 <tswett> What type does k return?
20:51:54 <tswett> :t cont
20:51:56 <lambdabot> ((a -> r) -> r) -> Cont r a
20:52:19 <tswett> So k returns an "r".
20:52:36 <Sgeo> > (`runCont` id) $ do {r <- cont $ (\k -> do a <- k 5; b <- k a; b); return (r+1)}
20:52:38 <lambdabot> Occurs check: cannot construct the infinite type: t0 = m0 t0
20:53:06 <Sgeo> > (`runCont` id) $ do {r <- cont $ (\k -> do a <- k 5; return a); return (r+1)}
20:53:08 <lambdabot> No instance for (GHC.Num.Num (m0 t0))
20:53:08 <lambdabot> arising from a use of `e_151'
20:53:08 <lambdabot> Pos...
20:53:18 -!- kallisti has joined.
20:53:26 <tswett> So when you're doing "a <- k 5; b <- k a", you're expecting r to be the same thing as Integer or whatever.
20:53:28 <Sgeo> Hmm, cont doesn't actually take a monadic thingy
20:53:45 <Sgeo> > (`runCont` id) $ do {r <- cont $ (\k -> k (k 5)); return (r+1)}
20:53:47 <lambdabot> 7
20:53:52 <tswett> Oh yeah, "a <- k 5" doesn't really even make sense.
20:54:01 <tswett> Huh, what just happened...
20:54:08 -!- carado has quit (Ping timeout: 256 seconds).
20:54:16 -!- GreyKnight has changed nick to CrayKnight.
20:54:17 <Sgeo> I stopped assuming that cont wanted to take a monadic value.
20:54:19 <Sgeo> It was a bad assumption.
20:54:28 <FreeFull> :t do {r <- cont $ (\k -> k (k 5)); return (r+1)}
20:54:29 <lambdabot> Num b => ContT b Identity b
20:54:31 <tswett> That does look like a delimited continuation indeed.
20:55:54 <tswett> Hm, I think I'm leaving something out of my delimited continuation stuff.
20:56:29 <tswett> Like, you can say "shift :: ((a -> r) -> a) -> Del r a". But that makes it so that neither the exterior of shift (of type a -> r) nor the interior of shift (of type (a -> r) -> a) can do any monad stuff.
20:56:57 <Sgeo> Well, working with the pure Cont monad, as opposed to ContT.... what monad stuff?
20:57:02 <tswett> Maybe it ought to be this: shift :: ((a -> Del r r) -> Del r a) -> Del r a
20:57:17 <tswett> I'm not sure where it makes sense to do monad stuff.
20:57:20 <Bike> kmc: https://twitter.com/glitchr_/
20:57:24 <tswett> BRB; grabbing a sandwich from the fridge.
20:59:12 -!- hagb4rd has joined.
20:59:44 <tswett> All right.
21:00:32 <oerjan> :t replace
21:00:33 <lambdabot> Not in scope: `replace'
21:00:43 <oerjan> :t upon
21:00:45 <lambdabot> (Data.Data.Data a, Data.Data.Data s, Applicative f, Indexable [Int] p) => (s -> a) -> p a (f a) -> s -> f s
21:01:19 <oerjan> @let replace f = over (upon f)
21:01:22 <lambdabot> Defined.
21:01:32 <oerjan> > replace <AnotherTest> is it possible to predict the numbers in powers of 2?
21:01:35 <lambdabot> <hint>:1:61: parse error on input `in'
21:01:35 <oerjan> argh
21:01:46 <oerjan> > replace head 'q' "elephant"
21:01:49 <lambdabot> Couldn't match expected type `p0 b0 b0'
21:01:49 <lambdabot> with actual type `GHC....
21:01:51 <oerjan> darn
21:02:06 <tswett> replace isn't a library function; I wrote it myself.
21:02:06 <nooga> FreeFull: it's get interesting when he talks about polymorphism and dataflow, the last third of the video
21:02:27 <oerjan> tswett: did you use upon?
21:02:33 <tswett> Nope.
21:03:10 <oerjan> > upon head .= 'q' $ "elephant"
21:03:11 <tswett> I think it only required that the container type belong to Functor.
21:03:12 <lambdabot> No instance for (Control.Monad.State.Class.MonadState
21:03:12 <lambdabot> [...
21:03:29 <oerjan> huh
21:03:38 <oerjan> oops
21:03:44 <oerjan> > upon head .~ 'q' $ "elephant"
21:03:46 <lambdabot> "qlephant"
21:03:51 <oerjan> there you go
21:04:03 <oerjan> @undefine
21:04:17 <tswett> :t (upon head .~ 'q')
21:04:19 <lambdabot> [Char] -> [Char]
21:04:22 <oerjan> @let replace f = set (upon f)
21:04:22 <tswett> Mm.
21:04:24 <lambdabot> Defined.
21:04:25 <tswett> :t (upon head .~)
21:04:26 <lambdabot> Data.Data.Data b => b -> [b] -> [b]
21:04:39 <oerjan> > replace last 50 [1,2,3,4]
21:04:42 <lambdabot> [1,2,3,50]
21:05:07 <oerjan> > replace (head . tail) True [False, False, False]
21:05:09 <lambdabot> [False,True,False]
21:05:26 <oerjan> yep, that gives all your examples from the log :)
21:05:56 <tswett> I think that with my function, you could have done replace ($ True) "yes" (\x -> if x then "si" else "no") === (\x -> if x then "yes" else "no").
21:06:19 <FreeFull> :t replace
21:06:20 <lambdabot> (Data.Data.Data t, Data.Data.Data b) => (t -> b) -> b -> t -> t
21:06:20 <tswett> Given an instance of Functor for (->) Bool.
21:06:40 <tswett> What the heck is Data.Data.Data, anyway?
21:06:43 <FreeFull> :t (head . tail)
21:06:45 <lambdabot> [b] -> b
21:06:58 <FreeFull> Oh yeah
21:07:02 <FreeFull> that's just the second element
21:07:08 <Sgeo> tswett, it provides Brent Spinner
21:07:29 <tswett> Ah, of course.
21:07:31 <tswett> @docs Data.Data
21:07:32 <lambdabot> Data.Data not available
21:07:36 <tswett> @docs Data
21:07:37 <lambdabot> Data not available
21:07:40 <Sgeo> *Spiner
21:08:08 <oerjan> tswett: the automatically derived (or derivable?) type class for getting reflection about a type in ghc haskell
21:08:10 <FreeFull> Data is a subset of Typeable with some extra stuff
21:08:37 <tswett> I see.
21:08:53 <Sgeo> DerivingDataTypeable
21:08:54 <Sgeo> iirc
21:09:10 <tswett> Right, so.
21:09:37 <tswett> The first function is the "selector function", taking the container and returning one of its elements. The second function is the desired new element.
21:09:40 <tswett> Yeah, lemme see.
21:09:47 <oerjan> the lens documentation listed certain limitations about what you could pass to upon :)
21:09:54 <tswett> > replace ($ True) "yes" (\x -> if x then "si" else "no") True
21:09:56 <lambdabot> No instance for (Data.Data.Data
21:09:56 <lambdabot> (GHC.Types.Bool -> [GHC...
21:10:24 <Sgeo> Oh, it's DeriveDataTypeable
21:11:29 <tswett> Let me find my "replace" function.
21:11:31 <FreeFull> oerjan: You could generalise replace to take a function (b -> c) rather than a value
21:12:05 <oerjan> FreeFull: naturally, since upon gives a lens or is it prism
21:12:12 <Sgeo> Hmm. If functions could be changed (hopefully by the dev) at runtime, all functions would have IO surrounding their entire type
21:12:36 <oerjan> > replace head 'a' ""
21:12:37 <Sgeo> So in main, the actual function is unpacked with its current value in the IO monad
21:12:39 <lambdabot> ""
21:12:48 <oerjan> looks prismy
21:13:06 <Sgeo> So the developer does in fact have control over which version of a function gets used
21:13:27 <tswett> > replace (const True) False "hello"
21:13:29 <lambdabot> "hello"
21:13:32 <FreeFull> oerjan: Does it swallow all exceptions?
21:13:43 <FreeFull> > replace undefined 'a' "b"
21:13:45 -!- zzo38 has joined.
21:13:45 <lambdabot> "b"
21:13:49 <tswett> > replace id "goodbye" "hello"
21:13:51 <lambdabot> "hello"
21:13:58 <tswett> Hmmm.
21:14:16 <oerjan> FreeFull: i'm not sure it ever really applies the function given :P
21:14:32 <oerjan> :t replace
21:14:33 <lambdabot> (Data.Data.Data t, Data.Data.Data b) => (t -> b) -> b -> t -> t
21:14:47 <tswett> Anyway, no, it turns out that my "replace" only works with a specific typeclass I defined.
21:14:48 <Sgeo> All functions would need to be in the IO monad to be able to use these volatile functions. Either that, or get the version of the function to use passed to them, which feels similar to dependency injection
21:15:14 <Sgeo> But then, the list of dependencies could change
21:15:14 <Sgeo> AIEEE
21:15:41 <tswett> Though maybe I could get "replace" to work with any functor. Lemme see.
21:16:53 <tswett> This is the type I want: Functor f => (forall t. f t -> t) -> t -> f t -> f t
21:17:05 <tswett> Uh, let me change that.
21:17:15 <tswett> Functor f => (forall t. f t -> t) -> a -> f a -> f a
21:18:05 <FreeFull> I can give you a function that satisfies that type
21:18:31 <tswett> Can you give me two different total functions that satisfy that type?
21:18:34 <FreeFull> replace _ _ y z = y <$ z
21:18:42 <tswett> Ooh.
21:18:59 <tswett> Okay, how about *three*?
21:19:18 <FreeFull> Wait, no
21:19:30 <tswett> Anyway, we have our container; let's say it's the string "hello". We also have a selector; let's say it's head. Then we have the new value; let's say it's 'b'.
21:19:49 <FreeFull> replace _ a y _ = y <$ a
21:19:59 <FreeFull> No
21:20:01 <FreeFull> Other way around
21:20:03 -!- Gracenotes has quit (Ping timeout: 255 seconds).
21:20:09 <FreeFull> replace _ a y _ = a <$ y
21:20:14 <FreeFull> replace _ a _ z = a <$ z
21:20:15 -!- monqy has joined.
21:20:37 <tswett> We want to explode the string "hello" into the list [\x -> [x] ++ "ello", \x -> "h" ++ [x] ++ "llo", \x -> "he" ++ [x] ++ "lo", \x -> "hel" ++ [x] ++ "o", \x -> "hell" ++ [x]].
21:20:44 <tswett> Regis_: replace only takes three arguments.
21:20:50 <tswett> Uhh.
21:20:54 <tswett> FreeFull: replace only takes three arguments.
21:20:55 <FreeFull> Oh right
21:21:04 <FreeFull> replace _ a y = a <$ y
21:21:08 <FreeFull> There's one
21:21:17 <tswett> Yeah, I guess I can think of countably infinitely many.
21:21:23 -!- efm has quit.
21:21:31 <tswett> You can, as many times as you like, apply the selector, then use <$.
21:21:48 <FreeFull> tswett: The result will be the same though
21:21:56 -!- Gracenotes has joined.
21:21:56 <FreeFull> Or should be
21:22:13 <tswett> Anyway, it should be possible to explode any functor in the way I just described.
21:22:38 <tswett> I mean, I think that explosion is a natural transformation or what have you.
21:22:41 <Sgeo> So it fmaps ... what operation
21:22:45 <tswett> But I'm not sure it can actually be implemented.
21:22:47 <Sgeo> Hmm. I think you need pure.
21:22:49 <tswett> It doesn't just fmap an operation.
21:23:03 <Sgeo> And something else too
21:23:50 <tswett> Mm, natural transformations "touch the structure but not the data", don't they? This certainly touches the data, in a sense.
21:24:00 <tswett> It replaces it with other data, but doesn't actually look at it.
21:24:38 <tswett> I guess that ultimately, given a container, the only thing you can do with it is to use it as an argument to fmap.
21:25:25 <tswett> So I think that this can't be implemented.
21:25:47 <FreeFull> fmap touches the data, but it touches all of it
21:26:25 <Sgeo> tswett, it replaces the data in a way that depends on the nature of the container
21:28:41 <Sgeo> http://web.archive.org/web/20090421080714/http://www.cpax.org.uk/prg/portable/c/c++/rfe00000.html
21:28:47 <tswett> Hm, I think I have a functor that replace doesn't make sense for.
21:29:12 <tswett> Namely, ((Integer -> Bool) ->).
21:29:45 <tswett> There are uncountably many (Integer -> Bool)s, but any given ((Integer -> Bool) -> a) can only actually distinguish countably many of them.
21:30:21 <tswett> And there is no single point that a ((Integer -> Bool) -> a) can distinguish; it can only distinguish entire open sets of points or whatever.
21:30:36 <tswett> Whereas "replace" requires it to distinguish one single point.
21:30:44 <tswett> Okay, why don't we go back to delimited continuations.
21:31:13 <tswett> http://hpaste.org/82639 – this is the basic thing we'd like to be able to do with delimited continuations.
21:31:21 <tswett> Notice that there's definitely monad stuff going on on the outside.
21:31:38 <Sgeo> shift = cont
21:31:43 <Sgeo> We just need to define reset
21:31:56 <FreeFull> What's the type of reset again?
21:32:05 <tswett> Del a a -> a, I think.
21:32:17 <Sgeo> reset = flip runCont id -- should do the trick
21:32:19 <tswett> I'm trying to figure that out.
21:32:25 <tswett> :t flip runCont id
21:32:27 <lambdabot> Cont c c -> c
21:32:34 <tswett> Mmyup.
21:32:35 <tswett> :t cont
21:32:36 <lambdabot> ((a -> r) -> r) -> Cont r a
21:32:43 <FreeFull> :t runCont id
21:32:45 <lambdabot> Couldn't match expected type `Cont r0 a0'
21:32:45 <lambdabot> with actual type `a1 -> a1'
21:32:45 <lambdabot> In the first argument of `runCont', namely `id'
21:33:14 <tswett> Not quite. The type I was guessing shift would have was "shift :: ((a -> r) -> a) -> Del r a".
21:33:21 <tswett> Sgeo: let me change things up a bit.
21:35:06 <tswett> http://hpaste.org/82639 – so does this still work with deli 2?
21:35:27 <tswett> :t (\showIt -> showIt . length . showIt $ "pink")
21:35:28 <lambdabot> Couldn't match expected type `Int' with actual type `[Char]'
21:35:29 <lambdabot> In the second argument of `($)', namely `"pink"'
21:35:29 <lambdabot> In the expression: showIt . length . showIt $ "pink"
21:35:38 <tswett> Umm.
21:35:54 <tswett> Mmhmm. Let me try that again.
21:36:28 <tswett> http://hpaste.org/82639 – deli 2.1.
21:36:38 <tswett> :t (\showIt -> showIt . length . showIt $ 1234567812345678)
21:36:39 <lambdabot> (Int -> [a]) -> [a]
21:36:41 <tswett> :t cont
21:36:42 <Sgeo> Lemme see if ideone supports this stuff
21:36:42 <lambdabot> ((a -> r) -> r) -> Cont r a
21:37:02 <tswett> :t do x <- cont (\showIt -> showIt . length . showIt $ 1234567812345678); return (show x)
21:37:03 <lambdabot> ContT [a] Identity String
21:37:21 <tswett> Where the Fletcher Tringham did ContT come from.
21:37:23 <tswett> Anyway.
21:37:47 <tswett> > flip runCont id $ do x <- cont (\showIt -> showIt . length . showIt $ 1234567812345678); return (show x)
21:37:48 <Sgeo> Nope :(
21:37:51 <lambdabot> mueval-core: Time limit exceeded
21:38:07 <tswett> All right, let me make it smaller.
21:38:10 <Sgeo> As in, IdeOne can't find Control.Monad.Cont
21:38:14 <tswett> > flip runCont id $ do x <- cont (\showIt -> showIt $ 1234567812345678); return (show x)
21:38:16 <lambdabot> "1234567812345678"
21:38:31 <tswett> Okay, that works. Let me try something else.
21:38:43 <tswett> > flip runCont id $ do x <- cont (\showIt -> "foo" ++ showIt 1234567812345678); return (show x)
21:38:46 <lambdabot> "foo1234567812345678"
21:38:55 <Sgeo> Remember, the thing inside shift, the function passed to shift, its result should be the result of the whole computation
21:38:58 <tswett> All right, whatever.
21:39:00 <FreeFull> :t showIt
21:39:02 <lambdabot> Not in scope: `showIt'
21:39:02 <lambdabot> Perhaps you meant one of these:
21:39:02 <lambdabot> `showInt' (imported from Numeric), `shows' (imported from Prelude),
21:39:03 <Sgeo> Which in the Cont monad is represented by r
21:39:09 <FreeFull> Oh
21:39:17 <tswett> So how come it doesn't work when you use showIt twice?
21:39:33 <Sgeo> > flip runCont id $ do x <- cont (\showIt -> showIt . length . showIt $ 1234567812345678); return (show x)
21:39:36 <lambdabot> "16"
21:39:41 <Sgeo> Quantum.
21:39:41 <tswett> No good reason.
21:39:53 <Sgeo> lambdabot has pulled that on me before
21:39:56 <Sgeo> timing out for no reason
21:40:14 <tswett> So yup, these do look like delimited continuations.
21:40:39 <tswett> Let me look at those types one more time.
21:40:44 <tswett> :t (flip runCont id, cont)
21:40:46 <lambdabot> (Cont c c -> c, ((a -> r) -> r) -> Cont r a)
21:40:47 <oerjan> <tswett> Hm. I wonder how you'd simulate a "singleton object" in Haskell. Like, a value that cannot be copied or destroyed. <-- you need linear or uniqueness types, which haskell doesn't have, but it's sister language clean does.
21:41:16 <tswett> Okay, so here's the thing. It would make sense to use shift inside shift.
21:44:35 <tswett> Once shift is run, the whole outer thing is essentially copied into a function and then discarded. There's no reason you shouldn't still be able to access the context.
21:44:41 <tswett> I.e. run shift again.
21:45:57 <tswett> But I do think that the "whole outer thing" should just be a function (a -> r), without any fancy monad stuff.
21:46:41 <Sgeo> It is, isn't it?
21:46:45 <tswett> It is, yes.
21:47:07 <tswett> So we want shift to have this type: ((a -> r) -> Cont r r) -> Cont r a
21:47:44 <tswett> Then again, I guess all you would do is call "reset" on the Cont r r.
21:48:40 <tswett> So yeah. Sounds like Cont is, indeed, the delimited continuation construct.
21:48:53 <tswett> :src callCC
21:49:00 <tswett> @src callCC
21:49:00 <lambdabot> Source not found. Just what do you think you're doing Dave?
21:49:08 -!- copumpkin has quit (Ping timeout: 240 seconds).
21:49:08 <Sgeo> ew "How does AcidState deal with the presence of very big data structures which may not fit in memory?
21:49:09 <Sgeo> "
21:49:46 <Bike> is this a drug joke
21:49:46 -!- copumpkin has joined.
21:50:09 <tswett> Hm. Why do "out of memory" exceptions happen, anyway?
21:50:22 <tswett> Doesn't swapping effectively give you... a lot of memory?
21:50:38 <Sgeo> No, I just don't like the notion of a .. state storage thing that doesn't do well with large state
21:50:50 <tswett> Is the system simply deemed to have "run out of memory" once it's too dependent on swap?
21:50:56 <tswett> I believe those are called databases.
21:51:25 <tswett> Mm. "This occurs because all available memory, including disk swap space, has been allocated."
21:52:43 <zzo38> I know you can make intuitionistic logic in linear logic
21:52:57 <zzo38> (It seems a comonad?)
21:53:36 <tswett> Hm. Expressions could be a comonad.
21:54:09 -!- CrayKnight has quit (Ping timeout: 248 seconds).
21:54:39 <zzo38> It is by having ! on the left and yet it is possible to have another ! operator which is not the same as the first ! so you can even have more than one
21:54:55 <tswett> Imagine this data type: data Expr a where Literal :: a -> Expr a; Apply :: Expr (a -> b) -> Expr a -> Expr b; AddFiveToInt :: Expr (Int -> Int)
21:55:57 <tswett> "extract" would simply evaluate the expression.
21:56:39 <tswett> "duplicate" would, uh... turn the expression into an expression for itself. There are plenty of ways you could do that.
21:57:13 <tswett> And "extend", umm...
21:57:46 <zzo38> Wikipedia says the intuitionistic logic (a -> b) can be encoded by the linear logic (!a -o b) so that is why I thought it is a coKleisli category
21:58:32 <tswett> Yeah, no, I don't think Expr is a comonad.
21:58:39 <FreeFull> tswett: Those look like applicative
21:59:05 <FreeFull> pure, fmap and (+5) <*>
21:59:32 -!- epicmonkey has quit (Ping timeout: 248 seconds).
22:04:21 -!- c00kiemon5ter has joined.
22:06:54 -!- augur has quit (Remote host closed the connection).
22:07:51 -!- c00kiemon5ter has quit (Client Quit).
22:08:35 -!- c00kiemon5ter has joined.
22:09:22 -!- doesthiswork has joined.
22:13:25 -!- zzo38 has quit (Remote host closed the connection).
22:13:33 -!- augur has joined.
22:17:26 <Sgeo> god dammit I hate absolutely everyone.
22:18:12 <c00kiemon5ter> espacially those who dont share cookies with me
22:18:46 <Bike> That's a lot of people, sgeo...
22:19:53 <Phantom_Hoover> come on Sgeo!!!
22:20:02 <Phantom_Hoover> how can you hate me!
22:20:51 <Sgeo> I have no hope for the programming community.
22:20:54 <Sgeo> None.
22:21:09 <Sgeo> alert = ffi "window.alert(%1)"
22:21:15 <Bike> What about all the people who aren't in the programming community (what is the hprogramming community"
22:21:21 <Sgeo> How is that FFI possibly a good idea in anyone's imagination?
22:22:20 <Bike> what's wrong with it
22:24:25 <Phantom_Hoover> sgeo there are so many important bits of context you have left out...
22:24:54 <Bike> basically, yeah
22:25:04 <Bike> presumably due to extreme anger to the max!
22:25:14 -!- comex has joined.
22:25:24 <shachaf> Are you people serious? What does it take to get taken off `list?
22:25:29 <shachaf> Are you just trying to be annoying?
22:26:03 <Sgeo> It _looks like_ (although still trying to check) that its FFI basically does string interpolation of the argument...
22:26:24 <Phantom_Hoover> `list
22:26:26 <Sgeo> Actually, hmm, that might not be a bad thing, since the type of the argument would be known, if it's a string, won't be injected directly
22:26:27 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti
22:26:40 <tswett> shachaf: I suggest ignoring highlights from HackEgo.
22:26:44 <Phantom_Hoover> i guess he's still there
22:26:56 <tswett> In fact, I don't know why I haven't done that already...
22:27:08 <Sgeo> Anyone want to check that shachaf isn't doing things in private to HackEgo?
22:27:15 <Phantom_Hoover> esomimic, what's your take on `the matter'
22:27:16 <esomimic> Phantom_Hoover: and even codegen....do sso you can transform into smaller than the tried looking at least of nethack
22:27:20 <Sgeo> Yeah, I may withdraw my anger at Fay
22:27:22 <Bike> That sounds gross, sgeo
22:27:32 <Phantom_Hoover> whose fay
22:27:40 <Sgeo> fay-lang.org
22:27:41 -!- shachaf has left.
22:27:47 <monqy> whose esomimic
22:28:00 <Sgeo> esomimic, style
22:28:00 <esomimic> Sgeo: uhh
22:28:14 <Sgeo> fungot, style
22:28:15 <fungot> Sgeo: line 1?
22:28:22 <Phantom_Hoover> esomimic, styles
22:28:22 <esomimic> Phantom_Hoover: but not now
22:28:26 <Phantom_Hoover> oh
22:28:30 <Phantom_Hoover> what about in half an hour
22:29:03 * Sgeo is vaguely thinking that esomimic may be another fungot, but can't prove it either way :(
22:29:04 <fungot> Sgeo: to a enron/ scwc on energy matters on august on a build-operate basis that corp will have to do we would more than any of the schedule the call you asked that we spoke of the two on, go upstairs to a question of the the confirmation on the nomination on k22252 was realigning storage gas
22:29:07 -!- kallisti has quit (Ping timeout: 260 seconds).
22:29:13 <Sgeo> Well, I guess that proves it's not
22:29:24 <Sgeo> Or reconfigured?
22:29:42 <Phantom_Hoover> esomimic, mimic Sgeo
22:29:43 <esomimic> Phantom_Hoover: sorry, don't know 'Sgeo ' well enough
22:29:47 <Phantom_Hoover> !!
22:29:55 <Phantom_Hoover> fizzie, fix this at once
22:29:58 <Sgeo> esomimic, mimic zzo38
22:29:59 <esomimic> Sgeo: okay, mimicking zzo38
22:30:05 <Sgeo> esomimic, should I do this?
22:30:06 <esomimic> Sgeo: that is used to write it that. it was having is actually
22:30:23 <Sgeo> esomimic, mimic Sgeo
22:30:23 <esomimic> Sgeo: okay, mimicking Sgeo
22:30:25 -!- DHeadshot has joined.
22:30:30 <Phantom_Hoover> it is significantly less grammatical than fungot
22:30:30 <fungot> Phantom_Hoover: their locations. new street west chester, 2) we cleared away those things that were in the very first of the securities and exchange commission
22:30:37 <Phantom_Hoover> also dammit forgot about the space thing
22:30:39 <tswett> esomimic: so, tell me about stuff.
22:30:40 <esomimic> tswett: i must be tara
22:30:46 <tswett> esomimic: I see.
22:30:46 <esomimic> tswett:
22:30:47 <Phantom_Hoover> classic sgeo
22:30:52 <Bike> It's like the real sgeo!
22:31:01 <tswett> esomimic: don't you have anything else to say?
22:31:01 <esomimic> tswett: that was to a vm harder free copy a defadt you cannot by making a new one of probably the magic worlds, inc some point
22:31:02 <Bike> esomimic, mimic fungot
22:31:02 <esomimic> Bike: okay, mimicking fun​got
22:31:02 <fungot> Bike: it is on the same as the friday " package" so that the support of the market and the modified that last week
22:31:16 <Bike> Yo wassup esomimic? Fungotting some of the good shit?
22:31:18 <tswett> That doesn't really sound like Sgeo.
22:31:30 <Sgeo> tswett, i must be tara
22:31:31 <Bike> esomimic: come on, jerkwad.
22:31:32 <esomimic> Bike: it's s'posed to 31131122211231131122211013112221.
22:31:45 <Phantom_Hoover> Sgeo has always known deep down that he is an irish woman
22:31:53 <tswett> May I?
22:31:59 <tswett> esomimic, mimic tswett
22:31:59 <esomimic> tswett: sorry, don't know 'tswett' well enough
22:32:01 <Bike> esomimic: Which integer sequence is that? I always forget.
22:32:02 <esomimic> Bike: defined.
22:32:03 <tswett> Aww.
22:32:10 <Bike> esomimic: thanks
22:32:11 <esomimic> Bike: ...out of time!
22:32:13 <Sgeo> esomimic, mimic Warrigal
22:32:13 <esomimic> Sgeo: sorry, don't know 'Warrigal' well enough
22:32:14 <tswett> Resembles the look and say sequence.
22:32:31 <Sgeo> esomimic, mimic ihope
22:32:31 <esomimic> Sgeo: okay, mimicking ihope
22:32:55 <tswett> esomimic: so, what did I sound like years ago?
22:32:55 <esomimic> tswett: that is, hong of those, because the splitting stuff.
22:33:08 <tswett> esomimic: yeah, I guess I can confirm that I sounded kind of like that.
22:33:08 <esomimic> tswett: curry- and robes can't 10053 i as a receiver, then with the left out of this
22:33:20 <tswett> esomimic: I assume I still sound roughly the same.
22:33:20 <esomimic> tswett: that's a girl that i would be be have chroot stuff.
22:33:34 <tswett> tswett: no, come to think of it, you really don't sound very much like me at all.
22:33:40 <tswett> Uhh.
22:33:46 <tswett> esomimic: no, come to think of it, you really don't sound very much like me at all.
22:33:46 <esomimic> tswett: there's be interested do a t-shirt after able to ascii.
22:34:08 <tswett> I get the idea that it lowercases everything.
22:34:13 <tswett> esomimic, mimic lambdabot
22:34:13 <esomimic> tswett: sorry, don't know 'lambdabot' well enough
22:35:33 <Sgeo> esomimic, mimic esomimic
22:35:34 <esomimic> Sgeo: sorry, don't know 'esomimic' well enough
22:35:45 <tswett> esomimic, mimic EgoBot
22:35:45 <esomimic> tswett: sorry, don't know 'EgoBot' well enough
22:36:41 <Sgeo> tswett, so I guess esomimic wouldn't mimic Karkat very well?
22:36:48 -!- cuttlefish has joined.
22:37:00 <boily> esomimic: mimic cuttlefish
22:37:01 <esomimic> boily: sorry, don't know 'cuttlefish' well enough
22:37:04 <tswett> That would be cool to see.
22:37:22 <tswett> Or funny or amusing or whatever.
22:37:26 <boily> ~eval esomimic: mimic tswett
22:37:28 <cuttlefish> Error (1): Not in scope: `esomimic'Not in scope: `mimic'Not in scope: `tswett'
22:37:34 <boily> ~echo esomimic: mimic tswett
22:37:35 <cuttlefish> esomimic: mimic tswett
22:37:35 <esomimic> cuttlefish: sorry, don't know 'tswett' well enough
22:37:55 <Phantom_Hoover> esomimic, mimic Phantom_Hoover
22:37:55 <esomimic> Phantom_Hoover: okay, mimicking Phantom_Hoover
22:37:56 <doesthiswork> how bot infested is this channel? so far I count esomimic lambdabot and hackwhatever
22:38:01 <Phantom_Hoover> esomimic, hey
22:38:02 <esomimic> Phantom_Hoover: i still disappointed... wha.
22:38:38 <Phantom_Hoover> doesthiswork, cuttlefish, HackEgo, EgoBot, fungot, glogbot, clog, lambdabot, esomimic
22:38:38 <fungot> Phantom_Hoover: in one of the last two and a swaption, there will not be the one that the vice president of the third, we expect any material ( pricing) only.
22:39:10 <Phantom_Hoover> oonbotti too, I think.
22:39:12 <oonbotti> Phantom_Hoover: How do you feel when you say that?
22:39:14 <boily> I think fungot is my favourite bot. it exudes a warm and fuzzy aura.
22:39:15 <fungot> boily: being a diabetes e-news now! kana, business 2.0 3.3 to recall we changed. its raining a little ( 7) to me that the if the shipper to avoid the new ( the ' get articles' button then hit ' enter').
22:39:33 <Phantom_Hoover> myndzi has a thing where if you type \o/ it does this:
22:39:45 <Phantom_Hoover> or i guess he turned it off
22:39:50 <Sgeo> I think the cover letters I've been (hastily) writing are a bit too informal :/
22:40:05 <Phantom_Hoover> isn't jconn a bot too
22:40:16 <Sgeo> ) <'Yes'
22:40:17 <jconn> Sgeo: +---+
22:40:17 <jconn> Sgeo: |Yes|
22:40:17 <jconn> Sgeo: +---+
22:40:46 <Phantom_Hoover> The ones that see the most actual use are HackEgo and lambdabot though.
22:42:16 <boily> s/use/abuse/
22:46:07 <Sgeo> `resume
22:46:08 <HackEgo> rsum
22:47:12 <Phantom_Hoover> aw man i really need to fix my compose key
22:48:19 <Sgeo> No one minds me abusing HackEgo like this, right?
22:48:44 <Phantom_Hoover> Sgeo, words cannot express how little we mind.
22:49:04 <boily> nobody human minds, I think. but HackEgo itself may harbour a deep and angry feeling of vengeance.
22:50:41 <olsner> `résumé
22:50:42 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: résumé: not found
22:50:48 <kmc> the next person who tells me that Paul Graham is a master hacker can read http://news.ycombinator.com/item?id=5239673
22:52:05 <olsner> I'm sure HN has a positive twist about how it's the genious of lisp that allowed it to be broken in such a magnificent way
22:52:42 <Sgeo> Maybe run-time environments should be version controllable
22:52:47 <kmc> "But first, since I had been writing code that day, I pushed the latest version to the server. As long as I was going to have to restart HN, I might as well get a fresh version."
22:52:51 <boily> `learn résumé is a French summary. Not a curriculum vitæ.
22:52:55 <HackEgo> I knew that.
22:52:59 <Bike> hahaha
22:53:00 <Sgeo> Do something at the REPL, it breaks something, revert it
22:53:03 <Sgeo> ala HackEgo
22:53:06 <kmc> yes let's push untested code to production during an outage
22:53:26 <olsner> "if it's broken it can only get fixed!"
22:54:33 <boily> if it's broken, then it works. fix it and it will be /really/ broken.
22:55:14 <olsner> I guess if it works well enough that you can see that it's broken it can always be broken more
22:55:33 <olsner> otoh, is it broken at all if you can't even see that it's broken?
22:56:13 <boily> olsner's first paradox of brokenness.
22:56:28 <Bike> if a 9 falls in the forest and nobody's around to write a postmortem does it make an angry user
22:59:11 <doesthiswork> I think that what could have helped prevent that stupid mistake is some nice strong and static typeing
23:00:33 <Bike> clearly
23:00:43 <Phantom_Hoover> well it would if it was haskell
23:03:06 <Sgeo> Snapshots of all state
23:03:14 <Sgeo> And a tool for browsing them
23:03:20 <Sgeo> No state is ever lost
23:03:37 <Sgeo> Hmm, isn't Enchilada something like that?
23:04:05 <doesthiswork> also if the comment thread was lazily computed there would be no bug visable
23:05:30 <Bike> Yes, we'll just make rendering lazy. It's perfect.
23:06:47 <kmc> > fix ("hacker news " ++)
23:06:51 <lambdabot> "
23:06:55 <kmc> uhm
23:07:11 <kmc> lambdabot: are you feeling allright
23:07:13 <doesthiswork> fixed!
23:07:27 <boily> ~eval fix ("hacker news " ++)
23:07:27 <FreeFull> lambdabot sometimes clips output like that it seems
23:07:28 <cuttlefish> "hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news h
23:07:37 <FreeFull> > fix ("hacker news " ++)
23:07:42 <lambdabot> mueval-core: Time limit exceeded
23:07:46 <FreeFull> I guess that's what cuttlefish is for
23:08:05 <boily> sometimes, contrary to generic experience, my bot can be useful!
23:08:07 <olsner> FreeFull: lambdabot always clips, but usually a bit further down the line than after the first quote
23:08:37 <FreeFull> olsner: I mean clips earlier
23:08:43 <FreeFull> Seems to happen with high load
23:10:18 <doesthiswork> is the same lambda bot as haskell's channel or is it a variation
23:10:36 <FreeFull> Same nick
23:10:37 <FreeFull> So same bot
23:14:39 <nooodl> ) 9999 $ 'hacker news '
23:14:40 <jconn> nooodl: hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news ...
23:18:46 <kmc> hacker nooodl
23:27:18 <Sgeo> "Unfortunately, My client is going to pass at this time. I will keep you on file for similar opportunities."
23:27:54 <nooga> so I got this nice task in my job
23:27:58 <kmc> Sgeo: :/
23:28:47 <nooga> we're building some accesible data mining and reporting tools
23:30:15 <nooga> and it would be nice to have some sort of programming language in them for the end user to define data transformations, reporting schemes and stuff like that
23:35:14 <nooga> i was thinking about some kind of simple functional language in disguise of some colorful boxes for people to play with
23:35:49 <nooga> but i don't have any interesting ideas besides that ;<
23:37:40 <Sgeo> Is operational the package typically used for operational's purpose?
23:38:04 <nooga> http://mashable.com/2013/02/18/19-clicks-internet/ interesting, it's like this wikipedia and Jesus Christ stuff
23:40:51 -!- esomimic has quit (Ping timeout: 245 seconds).
23:41:08 -!- fungot has quit (Ping timeout: 248 seconds).
23:57:12 -!- nooga has quit (Ping timeout: 244 seconds).
2013-02-19
00:04:47 -!- boily has quit (Quit: Poulet!).
00:04:49 -!- cuttlefish has quit (Remote host closed the connection).
00:05:05 <Sgeo> `resume
00:05:07 <HackEgo> rsum
00:10:19 <Sgeo> Just applied to Jane Street
00:13:07 <Sgeo> Does anyone actually use classy prelude?
00:17:08 -!- nooodl has quit (Ping timeout: 248 seconds).
00:18:28 <Sgeo> "Jane Street doesnt seek outside investment and doesnt have customers. Our growth comes from hiring and training amazing people and giving them the tools they need to innovate."
00:18:37 <Sgeo> I am so confused. What do they actually _do_?
00:18:45 <Sgeo> They trade.
00:18:57 <Jafet> I hear they make money
00:19:37 <Sgeo> They make money off... the nature of a system built around the ability to exchange goods and services in a sensible way
00:19:46 <Bike> since when do people have to do things to make money
00:20:48 <Sgeo> I guess they likely make contributions to open-source stuff, but...
00:20:49 -!- GreyKnight has quit (Quit: zzz).
00:21:06 <kmc> haha oh Sgeo
00:21:10 <Sgeo> It still feels weird that they fundamentally make money by... well, does it count as a service to society?
00:21:16 <Sgeo> To... trade?
00:21:19 <kmc> blah blah providing liquidity blah blah
00:21:24 <Bike> do you want like, a lecture on modern capitalism
00:21:38 <kmc> some strategies pretty clearly provide value
00:21:40 <kmc> like market making
00:21:46 <kmc> others are purely exploiting inefficiency
00:22:14 <kmc> my problem with HFT isn't some idea that it's evil, but the opportunity cost of all these smart people playing zero-sum games rather than improving the world
00:22:30 <kmc> even if your market making activity is beneficial, most of your effort goes into being slightly faster than the 20 other people trying to do it
00:22:34 <Sgeo> Does exploiting inefficiency actually benefit others, though? I... think it kind of could. If I'm too lazy to go across town to buy something, I will buy near me, even if it costs a little more
00:22:49 <kmc> Sgeo: i meant that it doesn't
00:23:02 <kmc> ok so
00:23:12 <Bike> "exploiting inefficiency" is the leeches, "clearly provide value" is the weird seemingly pointless things that are actually quite helpful
00:23:25 <kmc> Sgeo: do you know how a market order book works
00:23:28 <Sgeo> No
00:23:33 <kmc> ok so say i'm a stock exchange
00:23:42 <doesthiswork> I thought that exploiting inefficiency improved efficiency
00:23:56 <kmc> for each stock, i maintain a list of entries such as "person X is willing to buy at $a or less" and "person Y is willing to sell for $b or more"
00:24:10 <kmc> people send me these entries, i publish them to the world, they can also cancel them at any time
00:24:13 <kmc> that's the order book
00:24:25 <Sgeo> The market can't automate matchmaking?
00:24:29 <kmc> look
00:24:31 <kmc> i am a computer here
00:24:41 <kmc> i am the automation
00:25:02 <kmc> the "people" who send me orders are also computer programs
00:25:09 <kmc> does it make sense so far
00:25:19 <Sgeo> Yes
00:25:27 <Bike> doesthiswork: exploiting inefficiency in the sense of finding a niche that doesn't 'need' to exist for the rest of the system to function, and possibly deepening that niche out of self-interest.
00:25:37 <kmc> now, a trade happens if there's a buy order with price above a sell order
00:25:43 <kmc> that is, a >= b
00:25:45 <kmc> BUT
00:25:54 <kmc> for this to happen, one of the orders was never actually displayed to the world
00:26:00 <kmc> because it immediately matched the other one when it came in
00:26:02 <kmc> SO
00:26:06 <Sgeo> Ah, ok
00:26:09 <kmc> the two sides of the trade are playing different roles!
00:26:24 <kmc> the person whose order sits on the book is 'providing liquidity'
00:26:31 <kmc> the person who matches that order is 'taking liquidity'
00:27:02 <kmc> now the stock exchange makes money on every trade
00:27:06 <kmc> they charge a fee
00:27:14 <kmc> but they charge a large fee to the person who is taking liquidity
00:27:21 <kmc> thus encouraging people to provide liquidity
00:27:28 <kmc> because that's what attracts more traders and makes the exchange successful
00:27:40 <kmc> in fact, many exchanges give a *negative* fee to liquidity providers
00:27:43 <kmc> liquidity rebate
00:28:02 <kmc> market making is a strategy where you provide liquidity on both sides of the book
00:28:24 <kmc> you're willing to buy *or* sell
00:28:31 <doesthiswork> bike: could you give an example niche?
00:28:39 <kmc> if your position gets too positive or too negative then you do only one or the other to get it back to zero
00:28:57 <kmc> anyway one way for market makers to make money is the liquidity rebate
00:29:01 <Bike> probably not, because i'm not very familiar with banking
00:29:08 <kmc> "we lose money on every trade we make, but we make up for it in volume!"
00:29:59 <kmc> the service that market makers provide to the world is ensuring that it's always possible to buy or sell a given stock
00:30:33 <kmc> by providing liquidity you're taking a risk. at any time, someone might come along and make that trade, and maybe by the time they do, it's a bad trade for you
00:30:37 <hagb4rd> even if nobody wants it
00:30:50 <Sgeo> Could someone just make money trading market maker item to market maker item, or would the fees cancel that out?
00:31:09 <kmc> the liquidity taking fee is larger in magnitude than the liquidity providing rebate
00:31:14 <kmc> because the exchange gotta get paid too
00:31:37 <Sgeo> And I guess the market makers are not going to have the prices be so.. drastically.. something that it would make sense?
00:31:52 -!- augur has quit (Remote host closed the connection).
00:32:23 <kmc> it's also worth noting that before computerized market making, the human market markers were a good ol' boys club that got their positions by knowing a guy and colluded to screw over investors
00:32:54 <kmc> opening this up to everyone with a computer and shrinking the buy/sell price spread to pennies was pretty good for society, i would say
00:33:22 <kmc> anyway the big picture is that I think liquidity-providing strategies are easier to defend as useful to society than liquidity-taking ones
00:33:32 <kmc> it's not impossible to defend the latter but it gets more and more convoluted
00:33:48 <kmc> another way to look at it is, the market is a distributed computational system
00:34:03 <kmc> some participants are not willing to do the huge amount of computation necessary to determine the correct relative price of 3,000 stocks
00:34:06 <Phantom_Hoover> maybe getting a job in this wouldn't be so bad
00:34:12 <kmc> in exchange for their laziness, they pay a premium
00:34:19 <kmc> that money goes to the HFT firms that do all the computation
00:34:49 <Bike> i've heard being a quant is kind of miserable
00:34:51 <kmc> when you point and click to buy stock on your retail brokerage's website, you're not getting the best price in the pennies place, but do you care?
00:34:58 <kmc> you're a long term investor probably
00:34:59 <Bike> but still lucrative, of course
00:35:00 <Phantom_Hoover> Bike, oh well
00:35:04 <kmc> somebody else makes a little money from you not caring
00:35:15 <kmc> in fact retail orders are very unlikely to hit the open market
00:35:42 <kmc> every retail brokerage is going to run those orders through one or more internal HFT strategies and then shop them around to various other "dark pools" and such
00:35:52 <kmc> only a small chance you can see your order on the tape at ARCA / BATS / NASDAQ / etc
00:35:52 <Phantom_Hoover> Bike, can you be miserable for a while then make enough money to do something pleasant but cheap
00:36:08 <Jafet> I think kmc has asked the most pertinent question about stock trading
00:36:11 <Jafet> <kmc> do you care?
00:36:29 <kmc> the ultimate sketchy example of this is Zecco, a brokerage that offered zero-commision trades as a way to attract dumb retail orders that their HFT could profit from
00:36:42 -!- zzo38 has joined.
00:36:43 <kmc> they are ultra sketchy
00:36:45 <kmc> see http://en.wikipedia.org/wiki/Zecco.com#April_Fools.27_incident
00:38:05 <kmc> also the order book model above is super simplified
00:38:46 <kmc> in reality, markets offer hidden orders, fill-or-kill orders, mid-spread floating orders, intermarket sweep orders, various forms of timeout, etc
00:39:01 <kmc> unclear if these are fundamentally useful
00:39:11 <kmc> the complexity attracts HFT firms who think they can model the market microstructure better
00:39:16 <Bike> suddenly the evolution in Accelerando seems more plausible.
00:39:42 <Jafet> Somewhere in here a sexual selection analogy is waiting to be made
00:39:43 <kmc> i would say that market microstructure has almost nothing to do with banking, economics, or even most of finance
00:40:14 <Phantom_Hoover> Bike, is that another stross novel set in edinburgh
00:40:14 <kmc> it's a strange, specialized game played on the microsecond scale, to determine which of two parties in an overall financial transaction gets a slightly better deal
00:40:27 <kmc> and that's where babies come from
00:40:53 <Bike> Phantom_Hoover: I forget where it's set, but it involves marketing drones evolving into lifelike forms.
00:41:06 <Bike> the intelligent ponzi scheme was a good character imo
00:41:16 <kmc> yeah having just read Accelerando was a key factor in me deciding to work in HFT for a while
00:41:31 <Phantom_Hoover> what does hft actually stand for
00:41:35 <kmc> high frequency trading
00:41:49 <Jafet> What kind of lifelike form does the knight capital software evolve into
00:42:24 <copumpkin> :O
00:42:33 <copumpkin> kmc is the devil!
00:42:42 <Phantom_Hoover> do they all speak in phonetic scottish vernacular
00:43:15 <Sgeo> Could a stock exchange that makes HFT nonviable be created?
00:43:32 <copumpkin> a lot of the spam these days is with cancelled orders
00:43:43 <copumpkin> people have talked about putting in disincentives to cancel orders
00:43:58 <Jafet> Sgeo: just remove all the computers
00:44:02 <copumpkin> or that
00:44:07 <Phantom_Hoover> Sgeo, well you could just limit the frequency of trades
00:44:32 <copumpkin> I think people feel that disincentives would be more "organic" than frequency limits
00:44:49 <Jafet> ie. "we can game this more"
00:44:54 <Phantom_Hoover> i was going for the mathematician's answer
00:45:05 <Bike> is there any real reason to ban hft
00:45:09 <copumpkin> the game theorist's answer might lead to more interesting outcomes
00:45:27 <kmc> Sgeo: if you took orders over the course of a minute and then filled them atomically at the end
00:45:32 <kmc> it would be very different
00:45:54 <Sgeo> Bike, its existence implies inefficiencies ... somewhere. Don't know if those inefficiencies could be fixed at the exchange level though
00:46:08 <kmc> one thing i want is a market where everyone's strategies run on the same virtual machine host, and you can trade computation time like any other commodity
00:46:14 <Bike> so you're going to deal with inefficiencies by slowing everything down or
00:46:28 <Bike> also: is computational economics, doing things like kmc just said, a field of study
00:46:41 <Bike> (is it just "economics")
00:46:42 <kmc> Sgeo: "inefficiencies" is a pejorative way of saying "computation that needs to be done"
00:46:51 <copumpkin> Bike: plenty of people are rallying against the complexy of exchange fee structures giving rise to artificial situations that can be exploited for very little external gain
00:47:21 <copumpkin> I don't particularly care either way
00:47:25 <Bike> Is there like, a consistent criterion one could use to quantify activities with no external gain
00:47:36 <kmc> Sgeo: say you have a bunch of commodity options contracts; the relative prices between them are described by a very complicated mathematical model
00:47:43 <kmc> in fact people can't agree on which model is best
00:47:54 <kmc> should the exchange be required somehow to run that model themselves and update prices in lockstep?
00:48:05 <kmc> or do they open up trading to HFT companies and effectively pay them to do that computation
00:48:13 <kmc> i don't see a priori why one is better than the other
00:48:41 <kmc> and these are contracts that relate to the real world, are used by farmers and airlines and mcdonalds to hedge risk
00:48:51 <kmc> keeping that market efficient and liquid has a real social benefit
00:48:54 <copumpkin> the biggest complaint I've seen is that the order spam means that you might place a market order under the assumption that you'll intersect someone else's order on the book, but by the time you get there that order will be gone
00:49:02 <copumpkin> I guess the solution to that would be to not place blind market orders :)
00:49:05 <copumpkin> or to limit spam orders
00:50:15 <Sgeo> Going to watch some http://www.youtube.com/playlist?list=PL9B79FB0EADB3D0CD
00:51:34 <kmc> Sgeo: some really strange stuff here: https://www.google.com/search?q=nanex+strange+days
00:51:55 <copumpkin> nanex is really hardcore against HFT :)
00:51:58 <Sgeo> kmc, how much of a financial background am I going to need to have to understand any of it
00:52:05 <copumpkin> half my twitter stream is him bitching about it
00:52:12 <kmc> dunno
00:52:21 <kmc> there are pretty pictures
00:52:28 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:54:08 <kmc> anyway i don't think HFT is a good long-term career for programmers
00:54:15 <kmc> for reasons I am happy to explain but not right this second
00:54:22 <kmc> need to purchase a burrito and then shove that burrito into my face
00:54:46 * copumpkin only engages in LFT
00:56:32 -!- oerjan has quit (Quit: Good night).
01:06:38 -!- augur has joined.
01:07:38 -!- Regis_ has quit (Ping timeout: 253 seconds).
01:31:05 <doesthiswork> what if there is a language that gets offended whenever you assume that a function will return because you're infringeing on it's autonomy
01:31:07 -!- kallisti has joined.
01:31:07 -!- kallisti has quit (Changing host).
01:31:07 -!- kallisti has joined.
01:31:39 <doesthiswork> so when you add numbers you need to provide a default value in case they don't add
01:32:44 <Sgeo> This language is to the Maybe monad what Prolog is to the List monad?
01:32:49 <doesthiswork> and when you use a value from a variable you have to specify what to do if the variable has forgotten
01:34:03 <kallisti> oh my god I have working DNS
01:34:08 <kallisti> it's a miracle
01:34:24 <doesthiswork> yes! naturally most of the time every thing will be obliging but if you take things for granted it won't work
01:35:30 <doesthiswork> although you can become friends with parts of the program and leave out some of the bet hedgeing
01:39:50 <doesthiswork> and sometimes variables won't want to store values for you because they have more interesting things to do, but if spend a little extra computation time thanking various parts of the program when they help you, they will be happier and faster to help you the next time you ask a favor of them
01:40:48 <Bike> Are you sure this isn't the Sims
01:41:32 <kallisti> can you get married to your variables?
01:41:37 <kallisti> this is a feature I find lacking in most languages.
01:42:04 <doesthiswork> yes but if you marry more than one there can be jelousy problems
01:42:58 <doesthiswork> it would be a truly object oriented language because it would make you treat objets with the proper respect
01:44:26 <doesthiswork> and you have to interact with your married variables more than any other
01:44:54 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:45:04 <coppro> `addquote <Bike> Are you sure this isn't the Sims <kallisti> can you get married to your variables? <kallisti> this is a feature I find lacking in most languages
01:45:35 <coppro> doesthiswork: that sounds like a DMM languages
01:45:39 <coppro> s/s$//
01:46:02 <kmc> Prolog: a synonym for "anything vaguely like logic programming" since 1980
01:46:06 <doesthiswork> the problem with simula was it wasn't simulationist enough
01:46:26 <HackEgo> 965) <Bike> Are you sure this isn't the Sims <kallisti> can you get married to your variables? <kallisti> this is a feature I find lacking in most languages
01:46:58 <Bike> some time i should figure out what prolog has to do with NLP again because i forgot
01:47:22 <doesthiswork> coppro: what does DMM stand for?
01:48:53 <coppro> david morgan-mar
01:49:17 <coppro> aka dangermouse
01:51:05 <doesthiswork> I was reading a book about discourse analysis and though that making a language that worked like human relations would be most natural.
01:58:19 -!- madbr has joined.
01:58:59 <hagb4rd> wasn*t this actually the approach of cobol for example?
01:59:55 <Bike> You can't marry variables in cobol, no.
02:00:15 <hagb4rd> sorry..just came in
02:00:43 <hagb4rd> *backlog
02:01:51 <doesthiswork> marry a variable is more trouble than it's worth unless you're going to be using that variable pretty exclusively
02:03:27 <kmc> monogamy is creepy
02:03:45 <hagb4rd> well they found out marriage would be a bad pattern if there is no way of beating the variables
02:03:59 <hagb4rd> so for that they decided not to implement it
02:04:07 <Bike> polyandry am i right
02:04:32 <doesthiswork> it doesn't enforce monogamy it just has jealousy as a anti scaling factor
03:58:28 -!- esowiki has joined.
03:58:29 -!- glogbot has joined.
03:58:29 -!- glogbackup has left.
03:58:32 -!- esowiki has joined.
03:58:33 -!- esowiki has joined.
03:59:43 -!- Gregor has joined.
04:00:06 -!- Gregor has changed nick to Guest26860.
04:05:10 -!- Guest26860 has changed nick to Gregor.
04:13:43 -!- Mathnerd314 has quit (Read error: Operation timed out).
04:21:12 <kmc> http://videos.designworldonline.com/video/Air-Force-Bugbots i love the fake pigeon robot at 0:40
04:43:07 <Sgeo> I should seriously look for that thing that I think ais523 would like
04:43:29 <Sgeo> Or, actually, I don't know if he would
05:07:14 -!- doesthiswork has quit (Quit: Leaving.).
05:09:14 -!- iamcal_ has quit (Read error: Operation timed out).
05:09:16 -!- ssue has quit (Ping timeout: 244 seconds).
05:09:24 -!- upgrayeddd has quit (Ping timeout: 256 seconds).
05:10:17 -!- surma has quit (Ping timeout: 255 seconds).
05:10:26 -!- jix has quit (Ping timeout: 245 seconds).
05:18:59 -!- jix has joined.
05:19:30 -!- copumpkin has quit (Ping timeout: 252 seconds).
05:20:10 -!- copumpkin has joined.
05:21:39 -!- madbr has left.
05:28:27 -!- Nisstyre-laptop has quit (Quit: Leaving).
05:36:50 -!- TeruFSX has quit (Ping timeout: 255 seconds).
05:51:54 <zzo38> The PC-Engine audio seems to very closely resemble something I have made once, except that mine didn't have global volume/balance, and it used ring modulation rather than frequency modulation.
05:56:55 <Sgeo> Oh hey github has examples
05:57:18 <Sgeo> wrong channel
06:02:04 -!- Nisstyre-laptop has joined.
06:08:58 <zzo38> I intend when I design the computer, one program being Famicom emulator to have two video modes, composite and RGB; the palette setting is ignored in composite mode (the digital video output is also disabled in composite mode, and the emphasis bits have different purpose with composite and RGB)
06:09:13 <zzo38> I don't know whether you consider it a good design or not.
06:19:01 <Sgeo> Going to try to watch this and not be sad that it's C# and not Haskell
06:19:01 <Sgeo> http://channel9.msdn.com/blogs/charles/erik-meijer-rx-in-15-minutes
07:00:07 <Sgeo> elliott, you know how I know you haven't heard of monadic reflection?
07:00:13 * Sgeo angrily glares
07:02:50 <Sgeo> http://www.haskell.org/haskellwiki/The_Monad.Reader/Issue2/FunWithLinearImplicitParameters
07:02:51 -!- nooodl has joined.
07:03:24 <Bike> good markup
07:03:40 <Sgeo> It was apparently brought in from an older Haskell wiki
07:06:32 <kmc> oh linear implicit parameters
07:06:39 <kmc> one of the few extensions GHC has abandoned
07:07:10 -!- upgrayeddd has joined.
07:08:22 -!- surma has joined.
07:08:59 -!- hagb4rd has joined.
07:09:40 -!- ssue has joined.
07:09:55 -!- WeThePeople has quit (Quit: Leaving).
07:09:59 <Sgeo> kmc, does the direct style notation for monads described rely on it?
07:10:26 <Sgeo> reify (reflect [0,2] + reflect [0,1])
07:10:29 <Sgeo> I love this so much
07:13:02 <kmc> heh
07:13:06 <kmc> don't know
07:27:14 -!- epicmonkey has joined.
07:43:47 -!- pingveno has joined.
07:54:18 -!- nooodl has quit (Ping timeout: 245 seconds).
08:01:55 -!- hagb4rd has quit (Ping timeout: 252 seconds).
08:04:59 -!- epicmonkey has quit (Ping timeout: 255 seconds).
08:16:08 <Sgeo> o.O
08:16:42 <Sgeo> I have a comment with 1 karma.... because I got 10 upvotes and 9 downvotes.
08:16:42 <Sgeo> (counting my own)
08:19:07 -!- DHeadshot has joined.
08:22:57 -!- Nisstyre-laptop has quit (Ping timeout: 248 seconds).
08:24:36 -!- Bike has quit (Quit: leaving).
08:40:38 -!- Slereah has quit (Read error: Connection reset by peer).
08:40:59 -!- Slereah has joined.
08:45:03 -!- doesthiswork has joined.
08:50:46 -!- hagb4rd has joined.
09:09:30 -!- epicmonkey has joined.
09:17:38 -!- FreeFull has quit.
09:23:54 -!- GreyKnight has quit (Ping timeout: 252 seconds).
09:39:35 -!- hagb4rd has quit (Quit: hagb4rd).
09:40:54 -!- copumpkin has quit (Ping timeout: 252 seconds).
09:41:34 -!- copumpkin has joined.
09:58:16 -!- monqy has quit (Quit: hello).
10:04:44 -!- copumpkin has quit (Ping timeout: 252 seconds).
10:05:15 -!- copumpkin has joined.
10:13:18 <elliott> 07:00:07 <Sgeo> elliott, you know how I know you haven't heard of monadic reflection?
10:13:29 <elliott> Sgeo: I don't know how you know this incorrect information, no.
10:13:36 <elliott> Feel free to keep angrily glaring, it hurts a lot!
10:16:53 -!- nooga has joined.
10:36:05 -!- Jafet has quit (Quit: Leaving.).
10:57:17 -!- Frooxius has joined.
11:22:18 -!- Frooxius has quit (Ping timeout: 244 seconds).
11:22:53 -!- zzo38 has quit (Remote host closed the connection).
11:58:06 -!- azaq23 has joined.
11:58:14 -!- azaq23 has quit (Max SendQ exceeded).
12:06:38 -!- Phantom_Hoover has joined.
12:09:14 -!- shachaf has joined.
12:09:38 <shachaf> `seen kmc
12:09:44 <HackEgo> 2013-02-19 07:13:06: <kmc> don't know
12:09:51 <shachaf> `time
12:09:53 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: time: not found
12:09:54 <shachaf> `date
12:09:55 <HackEgo> Tue Feb 19 12:09:55 UTC 2013
12:13:06 -!- Snowyowl has joined.
12:14:58 -!- DHeadshot has quit (Ping timeout: 256 seconds).
12:16:42 -!- DHeadshot has joined.
12:20:41 <fizzie> `run date +%s # the Internet time is measured in seconds
12:20:43 <HackEgo> 1361276442
12:21:02 <fizzie> Why is there no %specifier for .beats?
12:32:49 -!- Arc_Koen has joined.
12:35:50 <Phantom_Hoover> man, /r/pyongyang is a sight to behold
12:38:25 <ion> Well, seconds-ish.
12:52:16 -!- doesthiswork has quit (Quit: Leaving.).
12:57:33 -!- Jafet has joined.
13:02:58 -!- Snowyowl has quit (Ping timeout: 245 seconds).
13:13:38 -!- Snowyowl has joined.
13:21:20 -!- Jafet has quit (Read error: Connection reset by peer).
13:22:16 -!- Jafet has joined.
13:23:42 -!- rodgort has quit (Ping timeout: 252 seconds).
13:28:51 -!- rodgort has joined.
13:46:47 -!- sebbu has quit (Ping timeout: 256 seconds).
13:55:33 -!- DHeadshot has quit (Ping timeout: 245 seconds).
13:56:28 -!- DHeadshot has joined.
13:59:07 -!- sebbu has joined.
14:00:30 -!- Snowyowl has quit (Quit: Page closed).
14:05:34 -!- boily has joined.
14:07:34 -!- sebbu has quit (Ping timeout: 272 seconds).
14:12:23 -!- waksman has joined.
14:15:21 -!- sebbu has joined.
14:16:40 -!- Frooxius has joined.
14:22:14 -!- ogrom has joined.
14:22:54 -!- waksman has left.
14:24:13 <ion> Meanwhile in Japan http://youtu.be/j2A002Em8Yw
14:27:37 -!- sebbu has quit (Ping timeout: 252 seconds).
14:54:11 -!- copumpkin has quit (Ping timeout: 245 seconds).
14:54:42 -!- copumpkin has joined.
14:59:25 -!- sebbu has joined.
15:08:47 -!- cuttlefish has joined.
15:48:35 -!- Regis_ has joined.
15:54:01 -!- nooodl has joined.
15:54:06 <elliott> https://github.com/impressivewebs/HTML9-Responsive-Boilerstrap-js/issues/87 does anyone understand this
15:54:27 <elliott> oh i see
15:57:36 <elliott> does anyone know of a simple example of a function that is not primitive recursive even from a higher-order POV?
16:01:15 <boily> first: cpressey is on github? second: what the shizzle is this ticket?
16:03:46 -!- ogrom has quit (Ping timeout: 256 seconds).
16:04:02 <elliott> `pastequotes ZOMGMODULES
16:04:14 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.9570
16:05:05 -!- ogrom has joined.
16:06:02 -!- Bike has joined.
16:06:41 <boily> `pastequotes quote
16:06:47 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.4722
16:07:14 <boily> `quote 124
16:07:15 <HackEgo> 124) <Gregor> <badgood> GOODBAD! Your watered down brand of evil conflicts with my botched attempts at dogoodery!
16:08:34 <Phantom_Hoover> er
16:08:37 <Phantom_Hoover> why is 225 still there
16:08:39 <elliott> when 69 was added it was referring to
16:08:40 <elliott> `quote 68
16:08:42 <HackEgo> 68) [Warrigal] `addquote <Dylan> hahaha, Lawlabee is running windows <Lawlabee> 'cuz it's pretty awesome. [Lawlabee] Warrigal: :(
16:08:43 <elliott> probably that
16:08:53 <Phantom_Hoover> istr there being a small-scale war over it
16:08:57 <elliott> Phantom_Hoover: good question
16:08:59 <elliott> `delquote 225
16:09:04 <HackEgo> ​*poof* <Vorpal> `addquote <elliott_> I'm a bit 'tarded. <Vorpal> (NOTHING PERSONAL!)
16:09:08 <elliott> now it's not (RIP (Rely In Packages))
16:09:34 <boily> I like how elliott slowly loses it across time. the pernicious long-term side effects of this channel made visible!
16:10:01 <elliott> boily: how do you know I didn't start without it, and am now slowly regaining it?
16:10:28 <boily> elliott: something something kaon symmetry.
16:16:49 <tswett> elliott: can you give me a simple example of a function that is primitive recursive only in a higher-order POV?
16:17:21 <elliott> tswett: ackermann
16:18:48 <elliott> hmm, cpressey is in Cornwall? or was.
16:18:54 <Jafet> Let f(n) be the largest function that is primitive recursive from POV_n, applied n times to n
16:18:59 <elliott> I should go visit him or something.
16:19:23 <Phantom_Hoover> elliott i get the sense you know even less about english geography than me
16:19:54 <tswett> elliott: so what does it mean to be primitive recursive in a higher-order POV?
16:21:02 <elliott> Phantom_Hoover: It's not in America so it's close enough to visit!
16:21:19 <elliott> tswett: that's a good question. would you accept a non-answer?
16:21:33 <elliott> my non-answer is found at the bottom of http://en.wikipedia.org/wiki/Ackermann_function#Definition_and_properties
16:22:50 <tswett> Hm.
16:23:07 <tswett> I dunno. Maybe f(n) = the Conway chain 3 -> 3 -> ... -> 3, where there are n 3s.
16:25:04 -!- copumpkin has quit (Ping timeout: 244 seconds).
16:25:41 -!- copumpkin has joined.
16:55:26 -!- epicmonkey has quit (Ping timeout: 245 seconds).
17:02:23 -!- Nisstyre-laptop has joined.
17:03:25 -!- aloril has quit (Ping timeout: 256 seconds).
17:05:33 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
17:05:56 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
17:06:32 -!- Nisstyre-laptop has joined.
17:06:44 -!- Phantom_Hoover has joined.
17:07:11 -!- iamcal_ has joined.
17:08:48 -!- pumpkin has joined.
17:08:53 -!- copumpkin has quit (Remote host closed the connection).
17:09:44 -!- pumpkin has changed nick to copumpkin.
17:10:34 -!- Phantom_Hoover has quit (Read error: Operation timed out).
17:10:39 -!- Phantom__Hoover has joined.
17:12:21 -!- Phantom__Hoover has quit (Read error: Operation timed out).
17:13:31 -!- Phantom__Hoover has joined.
17:14:33 <Phantom__Hoover> https://wiki.archlinux.org/index.php/DVD_Burning
17:14:40 <Phantom__Hoover> oh this is just fucking typical
17:15:25 <Phantom__Hoover> a bunch of outdated instructions that are useless for my system configuration
17:16:01 <elliott> can't you just install cdrkit
17:16:05 -!- hagb4rd has joined.
17:16:06 <elliott> its in the repos and all
17:16:16 -!- aloril has joined.
17:16:26 <Phantom__Hoover> % ls /dev/cdrw
17:16:26 <Phantom__Hoover> ls: cannot access /dev/cdrw: No such file or directory
17:16:27 <Phantom__Hoover> that's why
17:17:11 <elliott> where /dev/cdrw is your DVD writer device.
17:17:17 <elliott> it seems what is typical is your inability to read
17:18:10 <Phantom__Hoover> very helpful of it to tell me to use my dvd writer device without giving the slightest hint as to how i might work out what it is
17:28:20 -!- DHeadshot has quit (Ping timeout: 272 seconds).
17:28:32 -!- DH____ has joined.
17:40:54 -!- ogrom has quit (Quit: Left).
17:51:39 -!- Snowyowl has joined.
17:56:13 -!- Regis_ has quit (Ping timeout: 252 seconds).
18:01:58 -!- ogrom has joined.
18:03:57 -!- FreeFull has joined.
18:07:20 -!- Nisstyre-laptop has quit (Ping timeout: 252 seconds).
18:09:02 -!- doesthiswork has joined.
18:18:04 -!- Snowyowl has quit (Quit: Page closed).
18:22:51 -!- epicmonkey has joined.
18:24:27 -!- Nisstyre-laptop has joined.
18:24:53 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
18:30:21 -!- nortti has set topic: 2+2=5; http://www.techdirt.com/articles/20130218/10364722017/pirate-bays-lawsuit-against-anti-piracy-group-more-about-exposing-double-standards-enforcement.shtml.
18:30:33 <nortti> shit
18:31:41 -!- nortti has set topic: CAUTION: YOU ARE NOW APPROACHING THE PERIPHERY SHIELD OF VORTEX FOUR | http://codu.org/logs/_esoteric/.
18:31:44 <coppro> haha
18:32:20 <nortti> that must be the worst case of "sorry, wrong channel" I've ever done
18:36:34 -!- Phantom___Hoover has joined.
18:38:45 <Sgeo> `slist
18:38:46 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
18:39:26 <nortti> `cat bin/slist
18:39:27 <HackEgo> echo Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
18:39:59 <nortti> so olist is the old list, slist is static list and list is self-modifying abomination?
18:40:05 <Sgeo> No
18:40:24 <Sgeo> olist is the OOTS list, slist is the Homestuck list, and list js the self-modifying abomination.
18:40:32 <nortti> ah
18:40:32 -!- Phantom__Hoover has quit (Ping timeout: 272 seconds).
18:42:39 <doesthiswork> where's karkat in the slist?
18:42:57 <boily> what's an OOTS?
18:43:04 <nortti> order of the stick
18:43:20 <Phantom___Hoover> it's an important concept in topology
18:43:32 <boily> looks like so.
18:44:31 <elliott> doesthiswork: so, does it work?
18:44:57 <doesthiswork> elliott: does what work?
18:45:45 <Sgeo> elliott, you could have pointed me at monadic reflection when I was rambling about mamb
18:46:02 <elliott> doesthiswork: this.
18:46:17 <doesthiswork> elliott: no it doesn't
18:46:28 <nortti> doesthiswork: what is "this"
18:46:47 <Phantom___Hoover> it's a word
18:47:11 -!- Phantom___Hoover has changed nick to Phantom_Hoover.
18:48:05 <olsner> `learn this is a word
18:48:09 <HackEgo> I knew that.
18:50:57 <olsner> `? this
18:50:59 <HackEgo> this is a word
18:51:30 <boily> `? bird
18:51:31 <HackEgo> bird? ¯\(°_o)/¯
18:51:52 <Phantom_Hoover> `learn bird bird bird bird
18:51:56 <HackEgo> I knew that.
18:51:57 <nortti> `learn bird is a dinosaur
18:51:59 <nortti> oh
18:52:01 <HackEgo> I knew that.
18:52:01 <doesthiswork> `? olsner
18:52:02 <HackEgo> olsner seems to exist at least.
18:52:07 <Phantom_Hoover> `learn bird bird bird bird
18:52:11 <HackEgo> I knew that.
18:52:28 <Phantom_Hoover> `run echo "no" > wisdom/doesthiswork
18:52:29 -!- Regis_ has joined.
18:52:32 <HackEgo> No output.
18:52:34 <Phantom_Hoover> `? doesthiswork
18:52:36 <HackEgo> no
18:52:57 <doesthiswork> `? hackego
18:52:59 <HackEgo> HackEgo, also known as HackBot, is a bot that runs arbitrary commands on Unix. See `help for info on using it. You should totally try to hax0r it! Make sure you imagine it's running as root with no sandboxing.
18:53:22 <doesthiswork> `run echo "no" > wisdom/hackego
18:53:25 <HackEgo> No output.
18:53:41 <elliott> `revert
18:53:42 <doesthiswork> `? hackego
18:53:46 <HackEgo> no
18:53:47 <HackEgo> Done.
18:55:28 <Phantom_Hoover> `? fungot
18:55:29 <HackEgo> fungot cannot be stopped by that sword alone.
18:56:03 <Sgeo> Sword and a pawn?
18:56:31 <Sgeo> Can't checkmate a king with just a queen, but queen and pawn work iirc
18:57:03 <Phantom_Hoover> yes Sgeo
18:57:09 <boily> um, where's fungot?
18:57:16 <Phantom_Hoover> i think the confusion here comes from where queens, or indeed chess, come into it in the first place
18:57:23 <boily> youhou? fungot? où es-tu?
18:57:38 <elliott> fizzie: FUNGOT!!!!!!!
18:57:43 <elliott> boily: when it dies you yell at fizzie.
18:57:57 <boily> elliott: thanks for the tip.
18:58:23 <boily> fizzie: FUNGOT! REVIVE IT, OR I'LL GO CANADIAN ON YOU!
18:58:26 <Sgeo> Phantom_Hoover, because HackEgo said "fungot cannot be stopped by that sword alone". And I thought to myself, that's like not being able to be checkmated by a queen alone.
18:58:27 <olsner> hmm, so apparently I "seem to exist at least." ... I guess I should be glad or something
18:58:33 -!- oerjan has joined.
18:58:42 <nortti> `? nortti
18:58:43 <HackEgo> nortti boy. very nortti boy.
18:58:48 <Phantom_Hoover> Sgeo, it... would have helped if you'd made any attempt at explaining that
18:58:56 <boily> `? boily
18:58:57 <HackEgo> boily is Canadian or something. We are not sure about Canada's existence.
18:59:14 <boily> `? Phantom_Hoover
18:59:15 <Phantom_Hoover> `? canada
18:59:16 <HackEgo> canada? ¯\(°_o)/¯
18:59:16 <HackEgo> Phantom Michael Hoover is a true Scotsman and hatheist.
18:59:48 <boily> `? kmc
18:59:50 <HackEgo> kmc ran the International Devious Code Contest of 2013
19:00:53 <olsner> a code contest so devious you'll never hear anything about it
19:00:58 <Sgeo> Phantom_Hoover, because explaining jokes is always a good idea.
19:01:08 <Sgeo> Or, uh.
19:01:15 <Phantom_Hoover> no sgeo
19:01:20 <Sgeo> Guess it wasn't really a "joke" so much as, um. Something.
19:01:21 <kmc> i'm still thinking about it
19:01:23 <kmc> biding my time
19:01:30 <kmc> i need to decide if it's really a competition
19:01:36 <kmc> i think i now hate competitiveness in hacker culture
19:02:16 <Phantom_Hoover> the point, however, is not to make figuring out what the joke has to do with the premise the main part of the joke
19:02:16 <fizzie> Uh.
19:02:50 -!- fungot has joined.
19:03:04 <olsner> fungot!!!!
19:03:05 <fungot> olsner: what do you mean ' 5? :) ( i'm sure you're thinking about core syntactic forms or their names. ultra10s are named after weather stuffs
19:03:19 <boily> fungot! viens ici que je t'embrasse!
19:03:20 <fungot> boily: i wish we were using some kind of bizarre interaction between minion and riastradh. :) for me, so i would've said brainfuck.
19:04:08 <olsner> hmm, "ultra10s are named after weather stuffs" .. they are suns, but does fungot know that?
19:04:08 <fungot> olsner: fnord/ fnord/ fnord/ bin:/usr/ local/ lib" -dyydebug fnord -i./src -i./temp -c -o temp/ parser.o temp/ fnord ;p fnord
19:07:48 <oerjan> <elliott> does anyone know of a simple example of a function that is not primitive recursive even from a higher-order POV?
19:08:10 <elliott> kmc: if you don't help people compete someone else will help people compete and then they'll be better than you
19:08:10 <oerjan> maybe the goodstein sequence length function?
19:08:13 <elliott> are you going to let that happen
19:08:18 -!- augur has quit (Remote host closed the connection).
19:08:33 <oerjan> (i'm not _sure_ it isn't, but it requires a much higher ordinal than ackermann & stuff...
19:08:37 <oerjan> )
19:09:04 * boily sleazily and sneakily unbalances a parenthesis: (
19:09:17 <Phantom_Hoover> }
19:09:34 <Sgeo> OSHI-
19:09:40 <olsner> )
19:09:48 <Sgeo> Isn't there a Lisp that there's one that closes all open parens
19:09:57 <Sgeo> Like ] means however many ) is needed?
19:10:25 <doesthiswork> yeah but modern lisps don't use it
19:10:25 <elliott> oerjan: thanks
19:10:35 <elliott> oerjan: note: I have no use for this, my interest is purely out of curiosity :)
19:10:59 <kmc> has anyone really been far even as decided to there's one that closes all open parens
19:11:15 <elliott> oerjan: that said, goodstein is a bit of a bag of worms in terms of something you want to *know* is total (but not primitive recursive)...
19:12:00 <doesthiswork> kmc if I rember correctly you use a [ and then later the ] would close everything in between
19:12:52 <kmc> elliott: i see what you did there
19:13:00 <Sgeo> I think I specifically had picolisp in mind, but I could be misremembering
19:13:16 <quintopia> boily: what should i buy from amazon that is very cheap or very useful
19:14:15 <boily> quintopia: let me check...
19:15:03 <oerjan> elliott: i am not entirely convinced it isn't "higher order primitive recursive", anyhow, since epsilon_0 _is_ the limit of omega^omega^... so you should be able to do something based on the height of that...
19:15:11 <elliott> kmc: did I do a thing
19:15:57 <kmc> thingers gonna thing
19:17:16 <oerjan> so maybe you need to go even higher, maybe to that "impredicative" stuff... but now i'm out of my depth.
19:17:17 <elliott> kmc: help
19:17:43 <elliott> oerjan: at least this is a good argument for higher-order primitive recursion being all you need to write any function anyone actually cares about :P
19:17:51 <elliott> (albeit potentially awkwardly)
19:19:27 <oerjan> mhm
19:20:21 <tromp_> where can i find a definition of higher order primitive recursive ?
19:20:49 <tromp_> (no obvious hits from google)
19:21:14 <elliott> I don't have a forma ldefinition. but "primitive recursive in the presence of higher-order functions"
19:21:34 <elliott> e.g. you can define ackermann as a primitive recursive function that outputs another function by using higher-order functions
19:21:40 <elliott> (which themselves are primitive recursive)
19:23:13 <boily> quintopia: I'm always partial toward books, but if you want something that is not too expensive and tremendously useful: http://www.amazon.ca/Victorinox-Swiss-Classic-Pocket-Knife/dp/B00004YVB2/ref=sr_1_4?s=hi&ie=UTF8&qid=1361301423&sr=1-4
19:23:28 <boily> (adjust to model of your choice, of course.)
19:24:27 -!- GreyKnight has quit (Ping timeout: 260 seconds).
19:25:28 <elliott> 00:54:08: <kmc> anyway i don't think HFT is a good long-term career for programmers
19:25:31 <elliott> 00:54:15: <kmc> for reasons I am happy to explain but not right this second
19:25:37 <elliott> kmc: I am interested in hearing this any time, by the way
19:25:40 <quintopia> i have one. turns out my sister needs a tiny led device that isn't too bright and can be stuck to her dash
19:25:46 <elliott> soothing kmc rants
19:25:48 <elliott> for the soul
19:26:17 <kmc> heh
19:26:26 <olsner> kmc: do you work in HFT?
19:26:39 <kmc> olsner: no, but i did for a year and change
19:26:48 <kmc> one problem is that the code quality is shit
19:27:01 <kmc> you're building a magic money printing machine; every day you delay turning it on costs you huge in opportunity cost
19:27:14 <kmc> so the pressure is to copy-paste the most vaguely similar thing, hack it up until it kinda works, and start trading ASAP
19:27:47 <kmc> the risk of bad trades due to bugs is not really factored in
19:27:49 <elliott> well, if spending more time increases the rate at which your magic money printing machine prints money...
19:27:49 <kmc> at least where i worked it wsan't
19:28:01 <kmc> well i'm talking about infrastructural code, not the strategy code itself
19:28:05 <kmc> i was working on the former
19:28:16 <kmc> also if you're in that role, you are seen as a cost center rather than a revenue center
19:28:27 <kmc> your compensation is mostly bonus, but you're not directly working on one strategy
19:28:40 <kmc> so you have to play political games and get in good with the various traders in order to get a share of their bonus
19:28:52 <kmc> it's different at some firms where all traders work together and pool money
19:29:03 * elliott is now wondering where kmc worked...
19:29:09 <kmc> but i was at a very 'siloed' firm meaning that it was a bunch of quasi-independent traders who didn't trust each other or share code
19:29:19 <elliott> admit it, you just wanted an excuse to use the word silo
19:29:24 <kmc> i worked at http://www.tower-research.com/
19:29:33 <kmc> don't get me wrong, they treated me okay
19:29:40 <kmc> i made a lot of money and had an ok time
19:29:45 <kmc> but it wasn't the place for me long term
19:30:01 <kmc> one problem though is that there's a certain personality type, maybe even the dominant one, who absolutely can't tolerate a decrease in standard of living
19:30:08 <kmc> if you're like that, you basically can't leave finance once you enter it
19:30:15 <oerjan> elliott: maybe something like "definable in system F as a function in terms of church numerals?" the system F types prevent you from using general recusrion, but church numerals are all you need to do primitive higher-order recursion, they're like defined to be...
19:30:18 <kmc> i'm fortunate enough that i don't have this problem
19:30:26 <oerjan> *recursion
19:30:33 <kmc> i can't really take credit for that because i think it's almost a biological addictiveness thing
19:30:36 <elliott> "decrease in employment"
19:30:47 <kmc> any more than i can take credit for being able to drink alcohol without becoming an alcoholic
19:31:03 <oerjan> (you need something like system F to be able to use a church numeral on different functino types)
19:31:08 <oerjan> *function
19:31:19 <oerjan> tromp_: ^
19:31:44 <boily> ^[[6;2~
19:32:05 <boily> ah! found. damned incongruous weechat shortcuts.
19:34:59 <FreeFull> I think I see the power of pipes
19:35:14 <elliott> oerjan: you can define church numerals in system F, can't you?
19:36:10 <doesthiswork> kmc: that sounds like a fun candidate for a genetic screen, to see which genes are more common than in the background population
19:37:24 <elliott> kmc: thank you for all the info btw, it was interesting
19:39:54 <kmc> :)
19:40:06 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
19:40:47 -!- Phantom_Hoover has joined.
19:41:37 <oerjan> elliott: sure, they're just the type forall a. (a -> a) -> a -> a
19:44:43 <elliott> oerjan: right. so isn't it equivalent to "definable in system F"?
19:44:57 <oerjan> i guess :)
19:46:37 <elliott> or did you mean solely with the church numerals and nothing else? I guess not
19:47:16 <oerjan> i vaguely recall seeing Ackermann as an example of something you could define in Coq because it could do higher order primitive recursion
19:47:46 <oerjan> and that more advanced things required you to prove well-orderedness of the relevant ordinal
19:48:10 <elliott> yeah
19:48:26 <elliott> but I don't know that you *can't* define everything like that in terms of higher-order primitive recursion
19:48:33 <elliott> (and it just being simpler not to do so)
19:48:59 <FreeFull> oerjan: Isn't that function application
19:49:53 <FreeFull> Except the a remains the same
19:49:54 <oerjan> it might be that everything with numbers boils down to h.p.r. provided you can prove the function terminates
19:49:59 <FreeFull> :t ($)
19:50:01 <lambdabot> (a -> b) -> a -> b
19:50:15 <elliott> oerjan: oh boy, we're acronymming already
19:50:18 <oerjan> FreeFull: ($) is just the church numeral 1 :)
19:50:36 <elliott> I wasn't necessarily trying to restrict things to numbers, but this just gets even vaguer if you don't...
19:50:48 <elliott> FreeFull: consider the function \f -> f . f
19:50:52 <FreeFull> oerjan: What's 0?
19:51:02 <elliott> flip const
19:51:10 <elliott> aka \_ x -> x
19:51:54 <FreeFull> So is 2 \f -> f . f . f
19:52:13 <oerjan> > join(.)(join(.))succ 0
19:52:14 -!- augur has joined.
19:52:15 <lambdabot> 4
19:52:26 <oerjan> FreeFull: no, that's 3
19:52:40 <kmc> i did learn a lot of cool things working in finance
19:52:50 <kmc> i learned C++ for real
19:53:07 <kmc> although i quickly became frustrated that coworkers / existing code wouldn't use the language in full
19:53:15 <kmc> i learned about high performance low latency network kernel things
19:53:28 <kmc> i learned about how markets actually work, which is strange and terrifying
19:53:36 <tromp_> goodstein is easily defined in haskell
19:54:08 * Sgeo doubts that Jane Street would hire him :(
19:54:14 <tromp_> @let gs=g 2 where g b 0=b;g b n=g c$s 0 n-1 where s _ 0=0;s e n=mod n b*c^s 0 e+s(e+1)(div n b);c=b+1
19:54:17 <lambdabot> Defined.
19:54:19 <Sgeo> I mean, I don't even have much knowledge about the language they use
19:54:19 <elliott> kmc: learning C++ for real doesn't sound particularly cool :P
19:54:27 <Sgeo> I know _other_ functional languages
19:54:28 <tromp_> > map gs [0..3]
19:54:30 <lambdabot> [2,3,5,7]
19:54:33 <Jafet> @quote kmc c\+\+
19:54:33 <lambdabot> kmc says: C++ is at least interesting to learn. it's a good esolang
19:54:47 <tromp_> gs 4 is rather huge though:(
19:54:56 <Jafet> Is gs 4 11
19:54:56 <kmc> elliott: i disagree
19:55:02 <kmc> C++ is a fascinating and unique language
19:55:06 <oerjan> tromp_: that's probably not primitive recursive though
19:55:06 <kmc> it's worth learning for the same reasons as Haskell
19:55:13 <kmc> it will change the way you think about other languages
19:55:22 <tromp_> gs 4 = 3 * 2^402653211 - 1
19:55:24 <kmc> but you have to learn it in depth and not just "C with classes and crap"
19:55:25 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds).
19:55:33 <oerjan> (i guess it doesn't have a type which proves termination)
19:55:50 <kmc> here's a nugget: C++ is the only language I know where objects are first class, not just references to objects
19:55:56 <tromp_> gs 5 is hard to describe in words:(
19:56:06 <Bike> you've said that half a dozen times and i still can't imagine what you mean
19:56:16 <kmc> it's pretty cool to understand what this really means, and why it implies things like copy constructors and operator= exist
19:56:31 <Sgeo> Bike, when you do a = b, b gets ... copied, I think
19:56:32 <kmc> Bike: in Java if x is an object and you say "y = x" that's effectively just a pointer copy
19:56:35 <kmc> it's boring
19:56:44 <boily> > gs 6
19:56:49 <lambdabot> mueval-core: Time limit exceeded
19:56:56 <kmc> in C++ you have pointers and references but you also have types for objects themselves
19:57:01 <Jafet> lambdabot knows the right words
19:57:05 <kmc> which you can copy, and pass and return by value in functions
19:57:15 <kmc> and this has various other ramifications for the language
19:57:17 <kmc> huge ramifications
19:57:31 <tromp_> kmc, couldn't you work for a few more years and retire:-?
19:57:32 -!- Phantom_Hoover has joined.
19:57:57 <Jafet> Can you write gs in agda
19:57:58 <kmc> for example it's what makes RAII work -- because objects declared as auto variables have deterministic lifetime
19:58:05 <kmc> and it's why you have copy constructors and operator=
19:58:08 -!- azaq23 has joined.
19:58:16 -!- azaq23 has quit (Max SendQ exceeded).
19:58:17 <kmc> and why smart pointers work
19:58:43 -!- azaq23 has joined.
19:58:50 <kmc> tromp_: they weren't paying me /that/ much and i wasn't working /that/ hard
19:59:21 <Jafet> Why are you praising c++ anyway, this is #esoteric link to some scott meyer articles or something
19:59:30 <kmc> i mean this was a "$100k/yr for 40-50 hr/week" not a "$500k/yr for 90 hr/week" kind of deal
19:59:37 <boily> btw, what is gs?
19:59:37 <FreeFull> kmc: You mean objects aren't first-class in Ruby?
19:59:38 <kmc> pay wasn't that much higher than FaceGoogleSoft
19:59:42 <kmc> FreeFull: i don't believe so
20:00:03 <kmc> i mean, in most contexts we conflate an object with a reference to that object, to some degree
20:00:07 <kmc> but in C++ the difference is very important
20:00:25 <Sgeo> =
20:00:27 <kmc> i would have been paid more in subsequent years if i'd stayed but I also would have gone insane
20:00:37 <Sgeo> Even = doesn't mean the same thing among different languages
20:00:40 <Sgeo> It's fun
20:00:41 <kmc> and that's even without working a lot harder to get the big bonus bux
20:00:43 <Bike> "even" he says
20:01:04 <Jafet> We need equality diagrams for equality diagrams
20:01:11 <kmc> also the bonus system is kind of fucked up
20:01:20 <Sgeo> Jafet, talking about assignment here
20:01:30 <kmc> once you've been there a few years, most of your pay is in the annual bonus
20:01:34 <kmc> salary doesn't go up very much
20:01:39 <tromp_> bonus should be based on whole company performance
20:01:44 <Jafet> Wait, = means assignment in your language?
20:02:04 <kmc> but that's a lump sum once a year, and it's arbitrary, and they would also tend to fire people right before bonus time
20:02:07 <elliott> kmc: it is interesting that finance seems to be the most viable career path if you want to do functional programming commercially
20:02:18 <nooodl> huh. i swear there was an existing monoid instance for Monoid (a -> b) that's just like, mappend = (.), mempty = id. (that IS a monoid, right)
20:02:19 <elliott> I wonder why that is
20:02:23 <elliott> nooodl: Endo
20:02:31 <kmc> basically you get hooked on the high-spending lifestyle BUT most of your income isn't even a little bit guaranteed
20:02:33 <nooodl> ahh
20:02:34 <kmc> bad combo
20:02:39 <kmc> people spending their bonus 6+ months ahead of time
20:02:40 <kmc> on rent
20:02:42 <kmc> bad times
20:02:48 <Sgeo> Is there a somewhat nonesoteric language where - does not mean subtraction?
20:02:54 <Jafet> That is the best lifestyle
20:03:04 <kmc> elliott: depends what fp is blah blah
20:03:14 <kmc> right now i'm ass deep in anonymous functions in some javascript web code
20:03:17 * Bike goes to look up operator=, suddenly doesn't understand anything
20:03:31 <Bike> Sgeo: snobol?
20:03:36 <elliott> kmc: "haskell or ocaml or maybe F#"
20:03:42 <elliott> or uh scala I guess
20:03:47 <nooodl> Sgeo: APL :p
20:03:50 <elliott> but I've heard nightmarish things about scala
20:03:56 <elliott> nooodl: pretty sure APL uses - for subtraction
20:03:59 <Sgeo> elliott, or Clojure? Or does Clojure not count as FP for you?
20:04:02 <Jafet> T&T::operator=(T&&)throw()
20:04:25 <nooodl> it uses − not -
20:04:34 <nooodl> (it was sort of a joke)
20:04:54 <Jafet> Iverson knows better than to use hyphens for subtraction
20:05:05 <elliott> I hear bad things about Clojure too
20:05:21 <Bike> you hear lots of bad things.
20:05:24 <nooodl> even better: ¯ is a minus sign
20:05:31 <FreeFull> Oh, that's right, yesterday in the shower I thought of a programming language
20:05:34 <elliott> yes and you say most of them Bike OH SNAP????????
20:05:37 <FreeFull> [ ] is a loop
20:05:53 <FreeFull> Anything else is a token that gets pushed onto the stack
20:06:11 <Bike> :( :( :(
20:06:20 <FreeFull> When [ is encountered, the loop enclosed by the matching ] is evaluated
20:06:33 <FreeFull> And the resulting stack gets plopped right onto the current
20:06:50 -!- GreyKnight has quit (Quit: .).
20:06:54 <FreeFull> When ] is reached, it's checked if the element is of type Loop
20:07:43 <elliott> Bike: it's ok
20:07:46 <FreeFull> If so, it's popped off and checked if the value is Loop or Dont
20:07:53 <Jafet> I bet the interpreter for this language is shorter than the english description of the language
20:08:09 <FreeFull> If there is no such value, then the whole stack gets dumped and the loop terminates
20:08:30 <FreeFull> No functions get evaluated until the very end though
20:08:37 <FreeFull> So for example [
20:08:40 <Bike> my self-esteem is destroyed :(
20:08:54 <FreeFull> So for example [ 3 3 [ + ] Dont ] will result in 6
20:08:56 <nooodl> i think i'd understand this better if it were an interpreter
20:08:58 -!- augur has quit (Read error: Connection reset by peer).
20:09:14 <Jafet> @wn dont
20:09:14 <lambdabot> No match for "dont".
20:09:22 <Sgeo> What's Dont, and why doesn't the [ + ] need it?
20:09:24 <FreeFull> Yeah, I think I should write the interpreter
20:09:27 -!- augur has joined.
20:09:27 <boily> ~duck dont
20:09:27 <Jafet> I bet I'm not being helpful
20:09:28 <cuttlefish> DONT is a conventional overcall against an opposing 1NT opening bid.
20:09:30 -!- carado has joined.
20:09:33 <FreeFull> Sgeo: Dont is the default
20:09:52 <Sgeo> Why does the outer loop need it?
20:09:56 <FreeFull> It doesn't
20:10:01 <FreeFull> I just put it there anyway
20:10:07 <nooodl> it's equivalent to [ 3 3 [ + ] ] ?
20:10:13 <FreeFull> Yes
20:10:23 <nooodl> (is that equivalent to "3 3 +"?)
20:10:27 <FreeFull> Yes
20:10:33 <nooodl> hmm
20:10:42 <Sgeo> :( I thought I understood it, now I don't
20:10:44 <FreeFull> I was pondering making looping the default though
20:10:49 <FreeFull> I don't know which one would be easier to work with
20:10:54 <nooodl> i kinda get it
20:11:33 <FreeFull> I never wrote an interpreter for a language though
20:12:02 <FreeFull> I'm thinking this is a fusion between stack-based programming languages and brainfuck
20:12:18 <mroman> Call it Brainstuck
20:12:52 <FreeFull> I'm wondering when to do function evaluation though
20:13:24 <FreeFull> Because [ 3 [ 3 4 + ] + ] can be replaced with [ 3 7 + ]
20:13:24 <Jafet> If your language is simpler than oklopol's brainfuck fuckiest fuck and it's a brainfuck derivative, don't write it!!!
20:14:01 <FreeFull> But for [ 3 [ 3 + ] ] there isn't a final value yet
20:14:29 <mroman> *Most ever Brainfuckiest Fuck you Brain fucker Fuck
20:14:29 <FreeFull> Jafet: It doesn't actually take anything from brainfuck other than the [ ] similarity
20:15:01 <Bike> brainstuckiest
20:16:08 <mroman> replace [ with brain and ] with fuck
20:16:15 <mroman> brain3brain3+fuckfuck
20:17:07 <Bike> brain 2 fuck harder
20:17:26 <Bike> 2 brains 1 fuck. that's probably been done already
20:17:30 -!- epicmonkey has quit (Ping timeout: 264 seconds).
20:17:35 <coppro> ... why did I not see the intermission intermission coming
20:17:53 <Sgeo> :t over
20:17:54 <lambdabot> Profunctor p => Setting p s t a b -> p a b -> s -> t
20:18:01 <Sgeo> AIEEE
20:18:09 <coppro> s t a b
20:18:18 <Jafet> @quote s.t.a.b
20:18:18 <lambdabot> byorgey says: <edwardk> @type (^.) <lambdabot> s -> Getting a s t a b -> a <byorgey> I would not like to be getting a stab, thank you
20:18:44 <coppro> the type system of that library is probably written just for that joke
20:19:04 <Jafet> http://www.haskell.org/ghc/docs/latest/html/libraries/base/GHC-Generics.html#t:M1
20:19:09 <elliott> it was accidental
20:19:44 <Bike> i thought someone pushed it to change from abcd to stab?
20:20:01 <elliott> yes that was shachaf
20:20:03 <kmc> how is there not an esolang named Branefuck
20:20:04 <elliott> but it wasn't for the pun
20:20:11 <elliott> kmc: I think oklopol described one
20:20:14 <elliott> `pastelogs branefuck
20:20:17 <kmc> shachaf was deep pundercover
20:20:45 <Sgeo> It would be nice if TH were nicer
20:20:45 <HackEgo> No output.
20:20:48 <Jafet> shachaf is very sharp
20:20:55 <coppro> kmc: you are a horribleterrible person
20:21:20 <kmc> Sgeo: yes
20:21:22 <Bike> kmc: are you expecting somebody who wants to make a brainfuck derivative to know anything about brane theory
20:21:37 <coppro> Bike: yes
20:21:47 <elliott> `pastelogs branefuck
20:22:02 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.1806
20:22:11 <oerjan> > over (element 3) succ "Sgeo"
20:22:14 <lambdabot> "Sgep"
20:22:29 <oerjan> > over _last succ "Sgeo"
20:22:31 <lambdabot> "Sgep"
20:22:33 <Bike> so branefuck only exists in that it is speculated on, cool
20:22:48 <boily> I wouldn't like branefuck to become the new Canada.
20:22:50 <Sgeo> > set (element 3) 'p' "Sgeo"
20:22:51 -!- nooodl_ has joined.
20:22:53 <lambdabot> "Sgep"
20:23:53 <elliott> kmc: if you know things about brane theory please create branefuck
20:23:57 <elliott> I guess oerjan is most likely to
20:24:23 <Sgeo> . being backwards is going to confuse me
20:24:52 <oerjan> kmc: there is FukYorBrane
20:24:53 <elliott> its not backwards
20:25:00 <elliott> > (map.fmap) succ [(1,2),(3,4)]
20:25:04 <lambdabot> [(1,3),(3,5)]
20:25:14 <elliott> > (map.first.map) succ [([1,2],2),([3,4],4)]
20:25:17 <lambdabot> [([2,3],2),([4,5],4)]
20:25:21 <elliott> ok that one is symmetric so maybe a bad example :P
20:25:38 <elliott> > (map.first.map.first) succ [([(1,2),(3,4)],2),([(5,6),(7,8)],4)]
20:25:41 <lambdabot> [([(2,2),(4,4)],2),([(6,6),(8,8)],4)]
20:25:51 <elliott> > mapped . _1 . mapped . _1 %~ succ $ [([(1,2),(3,4)],2),([(5,6),(7,8)],4)]
20:25:54 <lambdabot> [([(2,2),(4,4)],2),([(6,6),(8,8)],4)]
20:25:56 <elliott> the same order
20:26:00 * oerjan has no idea about brane theory, well it's something related to strings i think.
20:26:18 -!- nooodl has quit (Ping timeout: 272 seconds).
20:26:30 <boily> :t (%~)
20:26:31 <lambdabot> Profunctor p => Setting p s t a b -> p a b -> s -> t
20:26:37 <oerjan> elliott: i'm pretty sure he means in lens?
20:26:42 <boily> :i Profunctor
20:26:44 <elliott> oerjan: yes.
20:26:48 <elliott> oerjan: did you read my last two lambdabot queries?
20:26:56 <elliott> they express the same idea, and compose in the same order
20:27:00 <elliott> but the _first_ one has nothing to do with lens at all
20:27:00 <Jafet> The resonant frequency of a planck length of fuck you
20:27:02 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
20:27:19 <oerjan> OKAY
20:27:21 <elliott> it composes exactly the right way for what conal calls semantic editor combinators -- i.e., editing functions
20:27:25 <elliott> like fmap, first, etc.
20:27:33 <elliott> the error is in considering a lens as a type of getter
20:27:40 <elliott> if you consider it as a type of setter, then the order falls out of that
20:28:07 <elliott> (in fact a lens is just a semantic editor combinator polymorphic over an effect)
20:28:19 <elliott> ((a -> b) -> s -> t becomes (a -> f b) -> s -> f t)
20:28:36 -!- Phantom_Hoover has joined.
20:28:39 <Sgeo> :t mapped
20:28:41 <lambdabot> (Functor f, Settable f1) => (a -> f1 b) -> f a -> f1 (f b)
20:31:18 <Sgeo> Lenses would probably make my Trustfuck implementation clearer
20:34:41 <Sgeo> Why are there unsafeCoerces in Lens?
20:34:48 <coppro> magic
20:34:54 -!- carado has quit (Ping timeout: 264 seconds).
20:35:28 <elliott> Sgeo: because GHC is bad at optimising newtypes
20:35:42 <elliott> actually the unsafeCoerces are in the instances of profunctors
20:35:46 <elliott> *the profunctors package
20:35:56 <elliott> but we use them in a standard pattern because of GHC
20:36:17 -!- copumpkin has quit (Read error: Connection reset by peer).
20:36:49 -!- copumpkin has joined.
20:38:45 <Sgeo> Will there ever be a language extension for making lenses automatically without TH?
20:39:16 -!- ogrom has quit (Quit: Left).
20:40:05 <elliott> there are a multitude of record system proposals. using TH is convenient enough as it is
20:44:12 <kmc> high performance libraries typically make a mockery of the idea that Haskell is a type-safe pure functional language
20:44:17 <kmc> i think this is basically fine though
20:44:25 <kmc> push the ugliness into core libraries, give users a nice interface that's also fast
20:44:35 <kmc> i would still rather write my impure unsafe marshalling code in Haskell rather than C
20:44:38 <kmc> for many things anyway
20:45:55 <elliott> well we don't even really do anything that bad
20:46:11 <elliott> it is just composing newtype constructors/destructors onto functions (actually arrows in a profunctor)
20:46:18 <elliott> that is the single thing GHC is too dumb to inline away for us
20:46:30 <elliott> well except edwardk's generalisations might have screwed up the whole "it inlines to nothing" part of lens
20:48:20 <Sgeo> In languages like C, is high performance code typically idiomatic?
20:48:28 <Sgeo> Or in CL?
20:48:30 <Sgeo> Same question
20:51:14 <kmc> it's all relative
20:51:28 <kmc> i would say the gap is smaller in C but it's still there
20:51:49 <kmc> it also depends a lot on your compiler
20:51:57 <kmc> same in Haskell except everyone uses the same one
20:52:17 <kmc> in C people will do things like hand-unroll loops if the compiler isn't smart enough to
20:52:39 <kmc> actually i saw a good presentation about how most cutesy C performance tricks are counterproductive these days
20:53:05 <kmc> you're better off writing the straightforward thing and letting the compiler and CPU pattern-match it
20:53:17 <kmc> but a lot of C programmers didn't get the memo yet
20:53:45 <shachaf> I unrolled one step of a few recursive functions in some Haskell code. But it was for better inlining, because GHC is awful at inlining recursive things.
20:53:57 <shachaf> Did you know GHC doesn't turn "reverse []" into "[]"?
20:55:10 <Sgeo> Micro-optimization scares, confuses, and frightens me
20:55:23 <kmc> classic example is the xor swap: "a ^= b; b ^= a; a ^= b;"
20:55:35 <kmc> this looks clever and sounds better than "temp = a; a = b; b = temp;"
20:55:40 <Bike> Sgeo: hacker's delight is fun
20:55:55 <Sgeo> Bike, ?
20:55:56 <Bike> shachaf: why not?
20:56:03 <kmc> maybe it's faster if you assume the compiler is "close to the hardware" and that the CPU is an in-order sequential processor from the 70s
20:56:06 <kmc> as is often assumed
20:56:17 <kmc> but actually compilers will recognize the temp swap and use an exchange instruction
20:56:24 <shachaf> Bike: Well, inlining recursive functions is tricky.
20:56:29 <kmc> and even if they don't, exchanging registers is cheap because the hardware is doing register renaming anyway
20:56:43 <Bike> Sgeo: a book with a lot of micro sort of tricks, which as kmc is saying are more and more integrated into tools
20:56:44 <kmc> whereas the xor trick ties up arithmetic units and introduces more data dependencies
20:56:52 * impomatic has a copy of Hacker's Delight. First edition unfortunately. Not sure what they added in the second edition.
20:57:05 <Bike> shachaf: i'm just thinking not side effectful operation on constant argument
20:57:05 <kmc> well a lot of the things in HD don't have an idiomatic naive form like the swap does
20:57:21 <shachaf> Bike: ?
20:57:30 <kmc> i wouldn't expect a compiler to recognize a for loop that counts the number of bits set in a word
20:57:35 <kmc> though compilers can be scary smart
20:57:45 <elliott> kmc: I bet some do.
20:58:06 <kmc> i liked the thing where clang will implement "if (x == 3 || x == 17 || x == 29 || x == 31)" by building a lookup table in an immediate 64-bit value
20:58:15 <Bike> that was crazy
20:58:41 <kmc> elliott: i bet some compilers recognize the xor swap, sigh, and emit an XCHG
20:58:55 <impomatic> Random question: does anyone know how to download every message ever posted to a USENET group, going back ~25 years?
20:59:12 <shachaf> There should be a compiler thing where it generates a De Bruijn sequence for you.
20:59:29 <Bike> hey nice, that paper on cuttlefish sight says specifically they used PowerPoint to make checkerboards for some reason
20:59:43 <Sgeo> ....paper on cuttlefish?
21:00:02 <Bike> yes
21:00:07 <elliott> did u kno people study animals
21:00:08 <Bike> is that surprising or
21:00:30 <Sgeo> I thought momentarily that "cuttlefish" had to be referring to a computing thing
21:00:34 <Sgeo> Which I hadn't heard of
21:00:42 <Bike> -_-
21:00:44 <kmc> cuttlefish: eval "hi sgeo"
21:00:48 <kmc> ~eval "hi sgeo"
21:00:49 <cuttlefish> "hi sgeo"
21:01:04 <Sgeo> Papers on boily's bot.
21:01:07 <Bike> i should find that paper about how some marine organism i forget much about has eyes like television cameras
21:01:26 <Bike> (eyes are really weird)
21:02:07 <boily> I only named my bot cuttlefish because of circumstances involving chocolate ice cream and a game of DOTA in tokyo.
21:03:05 <elliott> that sounds exciting
21:03:07 <elliott> the circumstances I mean
21:03:12 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
21:03:32 -!- Phantom_Hoover has joined.
21:03:54 <Bike> searching for "ieee transactions on cuttlefish" got me "Initial Design of a Biomimetic Cuttlefish Robot Actuated by SMA Wires" so i'm gonna call this a win
21:04:27 <elliott> beautiful
21:04:34 <Bike> a lot less than i expected on vision actually
21:05:20 <Bike> "Undulating Fins of a Cuttlefish Robot" also things that may be porn?
21:05:48 <boily> "Edge detection and texture classification by cuttlefish" sounds interesting.
21:06:43 <Bike> yeah most of the work on cuttlefish seems to revolve around the camouflage/sight business
21:07:23 <Bike> they use differently patterned camouflage based broadly on whether whatever it is is "continuous" or "discrete" so it's probably a pretty good model organism for edge detection crap
21:10:57 <kmc> did you see the squishy robots from harvard
21:11:00 <kmc> they have no bones
21:11:23 <kmc> they're like rubbery envelopes that move around by fluids being pumped in/out (externally)
21:12:13 <ion> Reminds me of these creatures in a book i’m reading.
21:12:21 <boily> I'd like myself some squishy robot with me, but I doubt it'd taste as delicious as the real thing.
21:12:39 <kmc> the cuttlefish is squishy except for the cuttlebone.
21:12:49 <kmc> it eats harder things like crabs and shrimps
21:13:10 <kmc> i watched the nova documentary on cuttlefish, it was freaking cool
21:13:24 <kmc> some of them will circle their prey while blinking a hypnotic skin coloration pattern
21:13:30 <kmc> in order to dazzle and then eat them
21:13:48 <ion> heh
21:13:49 <Bike> seeing them eat is weird
21:13:54 <Bike> just, shoop, you're dead
21:14:07 <kmc> yeah they have some kind of mouth part that jets out to grab
21:14:10 <kmc> or is it one of the tentacles
21:14:15 <kmc> apparently they know to grab crabs from behind
21:14:23 <kmc> cause the pinchy bits are at the front of the crab
21:17:27 <hagb4rd> hey guys, i spent hours copy pasting links to finally build the M4SteRlSt of internernet radio stations..don't even know why, but having about 3000 entries a life-savig wonder happened, and i decided i was ready.
21:17:27 <hagb4rd> so first of all i wanted i wanted to hide the treasure and buried it somewhere, so some archeoligsts might find it the future completely overthrowing their views on the culture of our time. but even before i thought this through this jagged naughtly little shit turned out to be a tiny RESTservice!!
21:17:27 <hagb4rd> well so here it is:
21:17:33 <hagb4rd> http://hagbard.host-ed.me/admin/radio.php?out=debug&shuffle=1&limit=1&filter=*
21:17:40 <hagb4rd> http://hagbard.host-ed.me/admin/radio.php?out=debug&shuffle=1&limit=1&filter=*
21:17:49 <hagb4rd> maybe you can do somethin useful with this. like connect it to a radio or pipe it to dev/null
21:19:17 * hagb4rd tumbles
21:22:44 -!- augur has quit (Remote host closed the connection).
21:24:18 <hagb4rd> `fetch http://hagbard.host-ed.me/admin/radio.php?out=inline&shuffle=1&limit=1&filter=*MitamineLab*
21:24:23 <HackEgo> 2013-02-19 21:24:22 URL:http://hagbard.host-ed.me/admin/radio.php?out=inline&shuffle=1&limit=1&filter=*MitamineLab* [58/58] -> "radio.php?out=inline&shuffle=1&limit=1&filter=*MitamineLab*" [1]
21:24:54 <quintopia> hagb4rd: what can i use that for and how
21:25:57 <hagb4rd> well you can switch between 3000 cool radio stations.. just need to plug that shit to that HTML5 audio element for example
21:26:06 <hagb4rd> but i guess that's about it
21:26:22 <hagb4rd> sure..anyone could add links
21:26:29 <hagb4rd> one could rate it and stuff
21:26:32 <hagb4rd> but blah
21:26:45 <quintopia> well why not go ahead and plug it into that html5 audio element on your page
21:26:53 <hagb4rd> sure
21:27:00 -!- augur has joined.
21:27:46 <hagb4rd> i'll show you later on
21:28:30 <hagb4rd> but i need a break..eat someting..take a walk.
21:28:41 <quintopia> yep
21:28:44 <quintopia> good idea
21:28:49 <hagb4rd> yup
21:35:01 <doesthiswork> freefull: how would you get a loop to cycle 5 times? in all your examples it looked like they stopped after one cycle
21:36:39 <hagb4rd> btw.. you mostly don't even need to implement sth with the out=firstforward option.. but that depends on your client..
21:36:42 <hagb4rd> http://hagbard.host-ed.me/admin/radio.php?out=firsforward&shuffle=1&limit=1&filter=*
21:37:29 <hagb4rd> gets a completely random stream and puts it directly to the client (whatever requested it)
21:38:02 <hagb4rd> maybe i could add some mime/http headers :..later
21:38:18 <hagb4rd> http://hagbard.host-ed.me/admin/radio.php?out=firstforward&shuffle=1&limit=1&filter=*
21:38:53 -!- hagb4rd has changed nick to hagb4rd|lounge.
21:42:06 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
21:42:26 -!- Phantom_Hoover has joined.
21:42:34 <olsner> `? endofunctor
21:42:36 <HackEgo> Endofunctors are just endomorphisms in the category of categories.
21:44:44 <FreeFull> doesthiswork: 5 [ 1 - 0 == Loop Dont ? ]
21:45:32 <olsner> `? endomorphism
21:45:34 <HackEgo> Endomorphisms are just morphisms which compose with themselves.
21:45:36 <FreeFull> Actually, swap the Loop and Dont
21:45:39 <FreeFull> Or make it /=
21:45:47 <shachaf> `? endotheworld
21:45:48 <HackEgo> endotheworld? ¯\(°_o)/¯
21:45:52 <FreeFull> Or make it >=
21:46:12 <boily> `? endoendofunctor
21:46:14 <HackEgo> endoendofunctor? ¯\(°_o)/¯
21:46:15 -!- KingOfKarlsruhe has joined.
21:46:31 <FreeFull> doesthiswork: 5 [ 1 - 0 >= Loop Dont ? ]
21:46:32 <Sgeo> `? exofunctor
21:46:33 <FreeFull> That should work
21:46:33 <HackEgo> exofunctor? ¯\(°_o)/¯
21:46:42 <Sgeo> `? exomorphism
21:46:44 <HackEgo> exomorphism? ¯\(°_o)/¯
21:46:46 <FreeFull> `? category
21:46:46 <Sgeo> aww
21:46:47 <HackEgo> Categories are just categories.
21:47:06 <olsner> not categories in the category of categories?
21:47:06 <elliott> `run ls -lh wisdom/category
21:47:08 <HackEgo> ​-rw-r--r-- 1 5000 5000 32 Feb 13 16:28 wisdom/category
21:47:09 <elliott> `run ls -lh wisdom/categories
21:47:10 <HackEgo> ​/bin/ls: cannot access wisdom/categories: No such file or directory \ /bin/ls: cannot access wisdom/categories: No such file or directory
21:47:11 <doesthiswork> freefull: I see now
21:47:24 <elliott> `run echo "Categories are just a special case of bicategories." >wisdom/category
21:47:25 <hagb4rd|lounge> `? endoscope
21:47:27 <HackEgo> No output.
21:47:29 <HackEgo> endoscope? ¯\(°_o)/¯
21:47:39 <olsner> `? bicategory
21:47:41 <HackEgo> bicategory? ¯\(°_o)/¯
21:47:48 <olsner> a generalization of categories?
21:47:57 <Bike> 'a special case' isn't nearly almost helpful enough
21:48:10 <olsner> it's not supposed to help, duh
21:48:34 <olsner> this aint #category-helpdesk
21:49:04 -!- fenris_kcf has joined.
21:49:06 <elliott> olsner: yes
21:49:12 <doesthiswork> freefull: why have a special "loop/ don't" version of boolians? why not use normal boolians for the loop test?
21:49:21 <Bike> i said almost help
21:49:31 <elliott> olsner: there's even (∞,n)-categories
21:49:37 <elliott> I have no fucking idea what they are
21:49:41 <Bike> good categories
21:49:47 <boily> `learn category-helpdesk is a helpdesk with identity and composition. This channel isn't it.
21:49:51 <HackEgo> I knew that.
21:50:10 <olsner> are those the same as quasicategories?
21:50:20 <FreeFull> doesthiswork: Because of what happens when you don't have the right indicator on the stack
21:50:21 <olsner> (also called quasicategory, weak Kan complex, inner Kan complex, infinity category, ∞-category, Boardman complex, quategory)
21:50:45 <Sgeo> the center cannot hold\
21:50:49 -!- lale has joined.
21:50:53 <doesthiswork> freefull: what happens?
21:50:54 <Sgeo> `welcome lale
21:50:56 <HackEgo> lale: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
21:50:57 <shachaf> An (∞,n)-categories are just (n,r)-categories where n=∞ and r=n
21:50:59 <Bike> i think the center already gave up sgeo
21:51:01 <shachaf> s/...//
21:51:11 <Sgeo> `welcome fenris_kcf
21:51:13 <HackEgo> fenris_kcf: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
21:51:20 <FreeFull> doesthiswork: The loop terminates and everything gets dumped
21:51:32 <FreeFull> Onto the higher-up loop's stack
21:51:45 -!- lale has quit (Read error: Connection reset by peer).
21:52:16 -!- ais523 has joined.
21:53:03 <doesthiswork> freefull: I mean, could you give a nice example where it is nicer to use loop/not loop than 0/not 0?
21:53:36 <Sgeo> Going to go read all of PBF now
21:54:31 <kmc> good life choice
21:54:41 <FreeFull> [ 4 [ 1 - 3 = ] 10 20 ? ]
21:55:09 <FreeFull> Basically, you should be able to surround anything in [ ] and have the code do the same thing unless there is a Loop/Dont
21:55:31 <FreeFull> I need to look into actually implementing this
21:55:35 <doesthiswork> that is a good reason
21:57:46 <FreeFull> I'm wondering if something resembling higher-order functions is possible with this syntax or not
22:00:01 <doesthiswork> so what about [ [ 1 - 3 = ] don't loop ? ]
22:00:21 <doesthiswork> I meant [ 4 [ 1 - 3 = ] don't loop ? ]
22:00:40 <doesthiswork> when we put brackets around "loop" does it's behavior change?
22:00:47 <doesthiswork> [ [ 1 - 3 = ] don't [loop] ? ]
22:16:52 <nooodl_> isn't [ loop ] an infinite loop
22:17:01 <nooodl_> (did this thing change since you last talked about it)
22:18:15 -!- cuttlefish has quit (Read error: Operation timed out).
22:19:14 <doesthiswork> I believe that it is an infinite loop which is why I can't quite make them work like higher order functions.
22:19:22 <doesthiswork> it's the one value you can't return
22:19:54 -!- boily has quit (Ping timeout: 264 seconds).
22:22:57 -!- GreyKnight has quit (Ping timeout: 248 seconds).
22:34:33 <FreeFull> [ Loop ] is an infinite loop
22:36:09 <FreeFull> [ Loop Dont ] returns Loop
22:36:21 <FreeFull> [ Dont Dont ] returns Dont
22:36:37 <FreeFull> doesthiswork: Is this satisfactory?
22:37:39 <doesthiswork> that is satifactory (I've always had a poor imagination)
22:39:00 <doesthiswork> so by using [ * dont ] you can surround anything without change
22:39:39 -!- oerjan has quit (Quit: leaving).
22:39:48 <doesthiswork> or if loop looped on boolians [ * 0 ] would do the same
22:45:35 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.89 [Firefox 19.0/20130215130331]).
22:51:56 <FreeFull> Pretty much
22:52:55 -!- noam_ has quit (Read error: Connection reset by peer).
22:53:34 -!- nooodl_ has changed nick to nooodl.
22:54:12 -!- augur has quit (Remote host closed the connection).
22:57:57 -!- dessos_ has joined.
23:00:45 -!- dessos has quit (Ping timeout: 256 seconds).
23:01:01 -!- augur has joined.
23:01:19 -!- rodgort has quit (Ping timeout: 256 seconds).
23:01:42 -!- rodgort has joined.
23:11:22 <FreeFull> doesthiswork: That is a good argument for getting rid of Loop/Dont actually
23:16:44 <doesthiswork> if you hit the end of a loop and the inside is true then, then the loop is reset to exactly how it was before executing?
23:18:44 <FreeFull> No
23:18:53 <quintopia> !bfjoust brachiationtest >->(-)*5>(+)*5(>)*3(>[(<)*3(+)*7<<(+[<{}>(+)*4[<(-)*50(>)*7(>[-[-[-[(>)*3(+*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3 (>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7 (>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
23:19:06 <EgoBot> ​Score for quintopia_brachiationtest: 20.4
23:23:36 <quintopia> !bfjoust brachiationtest >->(-)*5>(+)*5(>)*3(>[(<)*3(+)*7<<(+[<{}>(+)*4[<(-)*50(>)*7(>[-[-[-[(>)*3(+*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(+)*50(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3 (>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7 (>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
23:23:38 <EgoBot> ​Score for quintopia_brachiationtest: 32.2
23:23:52 <ais523> quintopia: so what does brachiation actually do?
23:24:06 <ais523> it's kind-of all over the place in terms of trying to read it
23:24:10 <FreeFull> I'm wondering if I should evaluate everything as soon as possible, or to delay evaluation until the end
23:24:35 <FreeFull> Which might or might not have an effect on stack manipulation operators depending on how they're implemented
23:25:02 <quintopia> !bfjoust brachiationtest >->(-)*5>(+)*5(>)*3(>[(<)*3(+)*7<<(+[<{}>(+)*4[<(-)*50(>)*7(>[-[-[-[(>)*3(+*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*4<(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3 (>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7 (>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
23:25:05 <EgoBot> ​Score for quintopia_brachiationtest: 19.1
23:25:08 <quintopia> ha
23:25:25 -!- hagb4rd|lounge has quit (Quit: hagb4rd|lounge).
23:26:21 <elliott> great programs here quintopia
23:26:53 <Bike> i like the 3s
23:27:09 <FreeFull> Also, it would matter for IO, unless I decide to try special syntax for that
23:27:15 <quintopia> !bfjoust brachiationtest >->(-)*5>(+)*5(>)*3(>[(<)*3(+)*7<<(+[<{}>(+)*4[<(-)*50(>)*7(>[-[-[-[(>)*3(+*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*5<(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3 (>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7 (>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
23:27:18 <EgoBot> ​Score for quintopia_brachiationtest: 37.0
23:27:29 -!- Regis_ has quit (Ping timeout: 255 seconds).
23:28:40 <quintopia> i could probably do better by adding a longer special case for that decoy, but it's supposed to be somewhat golfy
23:29:33 <quintopia> ais523: its basically the golfed version of space hotel. it sacrifices the ability to know exactly where was poked in order to be smaller
23:29:45 <ais523> ah right
23:29:48 -!- augur has quit (Remote host closed the connection).
23:29:49 <ais523> like the original _poke?
23:30:00 <FreeFull> I'm wondering if to do it as a Haskell EDSL or if I should do it properly with Parsec
23:30:31 <nooodl> has anyone written a genetic algorithm for bf joust
23:30:36 <quintopia> yeah
23:30:39 <nooodl> it sounds so perfect for the task
23:30:48 <quintopia> !bfjoust brachiation >->(-)*5>(+)*5(>)*3(>[(<)*3(+)*7<<(+[<{}>(+)*4[<(-)*50(>)*7(>[-[-[-[(>)*3(+*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*5<(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3 (>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7 (>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
23:30:51 <EgoBot> ​Score for quintopia_brachiation: 36.8
23:31:17 <quintopia> !bfjoust brachiationtest <
23:31:20 <EgoBot> ​Score for quintopia_brachiationtest: 0.0
23:31:48 <ais523> nooodl: it's actually quite hard to evolve a good jouster
23:32:02 <ais523> genetic algorithms do sort-of OK at constant tweaking, but brute force does better for that
23:32:16 <quintopia> i just rewrote it slightly to be able to beat programs that outrush it, like david_werecat_golf
23:32:20 <ais523> in terms of general strategy, the problem is that the parts of your program typically have to work together in some meaningful way
23:32:37 <quintopia> basically, it now knows how to deal with rushes that don't leave decoys
23:32:51 <quintopia> or few decoys
23:33:00 <ais523> take a lock/full-tape-clear combo as an example of something that doesn't seem likely to be generated by any sort of naive evolver
23:33:56 <quintopia> it could be done. you could evolve based on parameterized genes that generate various strategy types
23:34:47 <doesthiswork> hah, and information free language http://pastebin.com/trAf3vbP
23:34:55 <doesthiswork> *an not and
23:35:12 <quintopia> like "start a full tape clear at cell 8 that runs 64 cycles out of every 128 and cedes control to another gene in the remaining cycles" is one type of gene (where the numbers would be parameters)
23:35:53 <ais523> 128-cycle locks are really hard to win with, on a longish tape you just can't clear before you run out of cycles
23:36:00 <elliott> nooodl: BF Joust is the kind of thing that looks good for evolving at first sight
23:36:09 <elliott> but it's sort of like evolving real actual programs
23:36:15 <elliott> they have structure, they store state, they do branching
23:36:17 -!- augur has joined.
23:36:32 <elliott> they just have obscure syntax and happen to work on unreliable memory
23:36:36 <quintopia> ais523: the 128 would be a parameter, which means an evolver could find the actual best cycle length
23:36:45 <ais523> quintopia: well, yes
23:36:46 <nooodl> well, i was thinking of something more like what quintopia said
23:36:47 <Phantom_Hoover> also you can't reliably 'combine' programs for their best traits
23:36:56 <ais523> elliott: hardly any BF Joust programs use the tape for computation
23:37:03 <ais523> the only ones I can think of offhand are waterfall3 and triplock3
23:37:09 <elliott> ais523: well, no, but there is "state"
23:37:13 <nooodl> tweak parameters on winning strategies
23:37:15 <ais523> it's not particularly that it's unreliable, it's just too slow
23:37:17 <elliott> it's just, most people don't think of it as state when they're writing it
23:37:21 <ais523> nooodl: I've used evolvers for that in the past
23:37:25 <elliott> stuff like tripwires and decoys etc.
23:37:29 <ais523> but normally I bruteforce instead
23:37:34 -!- Arc_Koen has quit (Quit: Arc_Koen).
23:37:37 <quintopia> Phantom_Hoover: you could combine them if you came up with some sort of description language for the strategies they use
23:37:40 <ais523> elliott: hmm
23:37:44 <ais523> at least tripwires are more like control structures
23:37:48 <quintopia> like the parameterized gene description
23:38:19 <Phantom_Hoover> isn't that the hard part in the first place
23:38:20 <nooodl> anyway there should totally be BF Joust 3v3 matches
23:38:29 <elliott> what would that even mean?
23:38:30 <quintopia> lol
23:38:52 <ais523> there's no "move sideways" command
23:38:55 <quintopia> bidirectional BF joust melee free-for-alls on a ring tape
23:38:56 <ais523> just forwards and backwards
23:39:08 <ais523> quintopia: hmm
23:39:18 <nooodl> how would you "kill" another program?
23:39:21 <ais523> it wouldn't work with existing programs, they'd leave their decoys the wrong side of the flag half the time
23:39:26 <ais523> nooodl: set the flag to 0 for two cycles
23:39:27 <quintopia> right
23:39:27 <ais523> as usual
23:39:41 <quintopia> you'd have to code for it specifically
23:39:42 <nooodl> oh there's just flags scattered throughout the ring
23:39:45 <elliott> how about k-dimensional bf joust, where your programs have to work on a "tape" of an arbitrary number of dimensions
23:39:58 <elliott> and then what you do is pit the entire hill against each other simultaneously, in every possible spatial configuration
23:39:59 <quintopia> and there are > commands for every direction?
23:40:13 -!- augur has quit (Remote host closed the connection).
23:40:19 <elliott> quintopia: more like general commands for moving along which dimension you're operating on I think
23:40:28 <elliott> and that "dimension tape" wraps or something
23:40:42 <Bike> butbut the problem of dimensionality
23:40:43 <ais523> BF Joust on a ring seems at least viable as a variant
23:40:51 <ais523> I'd probably find it less interesting than regular 2v2 jousting, though
23:40:52 <elliott> how about Most ever Brainfuckiest Fuck you Brain fucker Fuck joust
23:41:10 <Bike> fuckfuckfuckjoust for short?
23:41:14 <nooodl> brainfuck derivative joust MOBA
23:41:19 <quintopia> ais523: how does regular 2v2 work?
23:41:46 <elliott> Bike: MeBFFyBfF Joust, I think
23:41:52 <ais523> err, I meant 1v1
23:41:56 <ais523> just said the wrong thing
23:41:58 <Bike> that has BFF in it
23:42:02 <Bike> is brainfuck your friend
23:42:08 <elliott> yes
23:42:10 <elliott> :')
23:42:14 <Bike> aww.
23:42:18 <quintopia> i like elliotts idea for a bfjoust tournament that is exponentially long in the number of players
23:42:30 <nooodl> for short it should be "Fuck you". just drop the "Joust"
23:42:36 <nooodl> (and also everthing else)
23:43:16 <elliott> quintopia: wouldn't it be worse than exponential
23:44:23 <ais523> hmm… I have a new idea for a noncomputable function
23:44:36 <elliott> ais523: what is it?
23:44:54 <ais523> f(n) = the largest value that can be printed by a terminating program of length n
23:44:59 <ais523> it's sort-of like busy beaver
23:45:08 <ais523> but has the benefit that it grows faster than any computable function
23:45:25 <Bike> so does busy beaver...?
23:45:56 <ais523> hmm
23:46:02 <ais523> I wonder which is faster? probably mine
23:46:05 <nooodl> why is it noncomputable
23:46:20 <Phantom_Hoover> halting problem.
23:46:21 <Bike> similar reasons to kolmogorov
23:46:36 <ais523> nooodl: because it's easy to prove that it grows faster than any computable function
23:46:43 <ais523> if it were computable, that'd cause a contradiction
23:46:53 <Phantom_Hoover> can't enumerate the set of terminating programs of length n without doing that
23:47:38 <Phantom_Hoover> ais523, i feel like you should add in a +1 there
23:47:42 <nooodl> oh, duh, terminating,
23:47:50 <nooodl> i need sleep
23:48:03 <ais523> nooodl: well nonterminating programs don't output values, if you take the traditional mathematical view of them
23:48:13 <Phantom_Hoover> also i remember seeing this on stackoverflow when i was trying to find an explicit proof of a faster-than-computable function
23:48:14 <ais523> so the definition would be the same without "terminating" in there, but more confusing
23:48:43 <Phantom_Hoover> also: 1 - 1/f(n) grows slower than any computable function
23:48:47 <elliott> 23:44:59 <ais523> it's sort-of like busy beaver
23:48:47 <elliott> 23:45:08 <ais523> but has the benefit that it grows faster than any computable function
23:48:52 <elliott> ais523: what did you think the point of busy beaver was...
23:49:01 <Bike> shhh we did that already
23:49:05 <elliott> ais523: btw, I forget if it was you or someone else who said this but -
23:49:06 <elliott> yes what Phantom_Hoover said
23:49:08 <Bike> Phantom_Hoover: that's still really weird to me
23:49:12 <ais523> elliott: the number of cycles that the longest-running terminating program runs for
23:49:13 <elliott> that's far more mindblowing than growing faster, I think
23:49:17 <Phantom_Hoover> ais523, your function basically /is/ busy beaver anyway
23:49:17 <elliott> even though it's the same thing
23:49:32 <ais523> hmm, it's reasonably equally mindblowing for me
23:49:34 <nooodl> well, it's not that i didn't see the word "terminating" or something
23:49:41 <ais523> huh, I just remembered Hofstadter's number
23:49:43 <elliott> like... there being a speed limit isn't that surprising
23:49:46 <Sgeo> Um... slightly confused
23:49:48 <ais523> (it's equal to the number of times you thought about Hofstatder's number)
23:49:49 <elliott> but there being a limit to how /slow/ you can go?
23:49:50 <Bike> he has a number now?
23:49:51 <Bike> oh.
23:49:54 <Sgeo> WHy not a function that doesn't grow?
23:49:59 <nooodl> i was just thinking "there's only a finite amount of length n programs, so just go through all of them and find the largest one!"
23:50:00 <ais523> Sgeo: then it doesn't grow
23:50:06 <Bike> Sgeo: slower than any monotonically increasing computable function*
23:50:16 <ais523> nooodl: determining what a program outputs can be harder than it sounds
23:50:17 <Sgeo> ah, ok
23:50:39 <Phantom_Hoover> i wonder if you can do that and /also/ have it grow without bound
23:50:52 <ais523> Phantom_Hoover: clearly not
23:50:55 -!- zzo38 has joined.
23:50:58 <ais523> there are bounded monotonically increasing computable functions
23:51:24 <quintopia> i just had a brain bunny about how to use the tape to record how far was poked. HMMMMMM
23:51:37 <quintopia> i really don't have time to explore it :(
23:51:37 <Phantom_Hoover> yeah i guess the 'outs' i was considering don't really work
23:51:46 <Phantom_Hoover> this is why i hate analysis
23:53:04 <quintopia> it's probably impossible anyway
23:53:34 <Gregor> Anybody still play Minecraft?
23:53:42 <quintopia> i play survivalcraft
23:53:48 <Phantom_Hoover> i might consider it
23:54:09 <Bike> wait, so what about the min-kolmogorov function, m(x) = the largest value of C(y) for y between 0 and x? isn't that unbounded?
23:54:34 <Gregor> Phantom_Hoover: Tryin' to bring back #esoteric-minecraft . I have a server set up and 1.5 players who aren't me X-D
23:55:46 <doesthiswork> what's the highest complexity class you can get for a language that doesn't create or destroy information?
23:55:57 <Phantom_Hoover> TC?
23:55:58 <Bike> what does that mean
23:56:05 <Gregor> Define "create"...
23:56:08 <Phantom_Hoover> if you mean reversible languages
23:56:17 <Phantom_Hoover> cf. that fredkin automaton, some other things
23:56:23 <Gregor> Arguably reversible languages still create data.
23:56:27 <doesthiswork> I do mean reverseable
23:56:54 <doesthiswork> you give it a list of values at the beginning of the program
23:57:16 <doesthiswork> and then you get them back rearranged (I think)
23:57:24 <quintopia> dont reversible languages create *more* data on average than equally powerful irreversible languages?
23:57:26 <Bike> well a fredkin gate is certainly enough for TC
23:58:01 <doesthiswork> on the wikipedia article they had wires splitting which breaks the no creaton of information rule
23:58:01 <Phantom_Hoover> doesthiswork, that's so obviously tc i can't be bothered demonstrating that it is
23:58:48 <doesthiswork> it is obviously turing complete if you have a large list of values that you already know (like a free list)
23:59:18 <doesthiswork> ...
23:59:41 <Phantom_Hoover> (also your definition of reversible is not the one the rest of the world uses)
2013-02-20
00:00:11 <doesthiswork> reversible is just a side effect
00:00:14 <Bike> doesthiswork: the fredkin gate has three outputs.
00:00:56 <doesthiswork> yes it does, and if you use each output exactly once it conserves information
00:00:58 <ais523> doesthiswork: reversible languages emulating irreversible ones normally do so by having keeping a history of what happened
00:01:08 <ais523> to be able to reverse it
00:02:09 <doesthiswork> I am more interested in the conservation of information and 0-energy than reversing computation
00:02:23 <Phantom_Hoover> doesthiswork, you can't talk about 'conservation of information' without a rigorous quantification of information
00:02:32 <doesthiswork> shannon information
00:02:56 <doesthiswork> otherwise known as entropy
00:03:21 <Bike> so, the thing reversible computing won't increase
00:04:25 <doesthiswork> phantom_hoover: what is the definition of reversible that the rest of the world uses?
00:04:38 <Phantom_Hoover> bijective between its inputs and outputs?
00:05:07 <ais523> doesthiswork: basically that given any program, there's an inverse program that does the opposite
00:05:10 <ais523> that you can run to undo its effects
00:05:12 <ais523> and the same for subprograms
00:05:41 <doesthiswork> does sound like the definition of reversable
00:05:41 <Phantom_Hoover> man i can't believe i learnt about bijectivity in this channel
00:06:01 <elliott> thats when Phantom_Hoover was 3
00:06:06 <Phantom_Hoover> yes
00:06:15 <Phantom_Hoover> now i am 6 i am infinitely wiser
00:06:24 <shachaf> What does bijectivity mean between classes (rather than sets)?
00:06:25 <elliott> no your 4
00:06:29 <shachaf> Is it a thing you can talk about?
00:06:45 <elliott> shachaf: Set theory? Come on.
00:06:47 <Phantom_Hoover> probably...?
00:06:55 <shachaf> elliott: OK, how do you define adjunctions between categories that aren't locally small?
00:07:23 <shachaf> "putting it in terms elliott can understand"
00:07:26 <Phantom_Hoover> what do you need for bijectivity?
00:07:37 <Phantom_Hoover> equality, universal and existential quantification...?
00:07:48 <Phantom_Hoover> existence of functions or something similar, i guess
00:07:48 <Bike> you mean to define it?
00:08:05 <shachaf> I don't even know, man. How do classes even, like, work?
00:08:14 <Bike> don't they usually not
00:08:32 <shachaf> Bike: well you need them for categories like Set..................
00:08:36 <shachaf> Or something.
00:08:55 <Bike> i thought the general opinion of set theory of category theory is "fuck that"
00:09:01 <Bike> thus elliott
00:09:06 <Phantom_Hoover> also... do you need adjunctions to get bijections in category theory?
00:09:15 <Phantom_Hoover> i thought being monic and epic was enough or sth
00:10:25 <shachaf> ?
00:10:29 <shachaf> Which definition are you thinking of?
00:11:47 <Phantom_Hoover> i seem to be confused
00:12:39 <Phantom_Hoover> i'm thinking of a bimorphism, i think
00:13:22 <shachaf> I mean, you have the definition of adjunctions in terms of natural transformations, but I wonder how it all works when you have proper classes.
00:13:50 <Phantom_Hoover> why are we even talking about proper classes, was it just a curiosity
00:13:56 <nooodl> i'd play on a #esoteric minecraft server probably
00:14:08 <nooodl> it's actually been a while since i last played...
00:14:13 <shachaf> Phantom_Hoover: well you did bring up bijectivity.......
00:14:22 <Phantom_Hoover> not on proper classes!!
00:14:26 <shachaf> Maybe I should ask Bike.
00:14:39 <shachaf> I bet Bike knows?
00:15:08 <Bike> nope sorry i'm a fraud
00:15:11 <Bike> i know nothing
00:16:10 <elliott> Gregor: is your server still based on the map of the old server
00:16:57 <elliott> Bike: by the way I think http://en.wikipedia.org/wiki/Tropical_geometry was the thing I was thinking of
00:17:07 <shachaf> Bike: allow me to illustrate with a diagram: http://flockdraw.com/upload/8kr07f6lb00s44k80c4.png
00:17:15 <Bike> that thing you said was named after an island?
00:17:31 <nooodl> yikes that diagram
00:17:51 <Bike> it's pretty helpful
00:18:32 <Bike> but uh i'm pretty sure you can just quantify over members of classes same as you do sets
00:22:27 <Phantom_Hoover> i think it depends on what version of set theory you use
00:23:06 -!- nooga has quit (Ping timeout: 240 seconds).
00:23:11 <Bike> i'm guessing an obvious one like NBG since shachaf wasn't more specific
00:25:40 <Bike> http://math.stackexchange.com/questions/92257/in-nbg-set-theory-how-could-you-state-the-axiom-of-limitation-of-size-in-first-o looks pretty standard
00:26:29 -!- FireFly has quit (Excess Flood).
00:27:28 -!- FireFly has joined.
00:32:48 <zzo38> What is set theory with sets of any "rank" that can contain smaller rank sets?
00:33:29 <elliott> tell us another one, Bertrand
00:33:36 <Bike> zfc
00:34:05 <Bike> hm i bet russell could play piano
00:34:16 <Bike> wonder if he was actually any good or if it was just a forced in kidhood thing
00:34:17 <zzo38> I mean instead of only sets and proper classes to have however much you want as long as you know which one it is
00:35:37 <shachaf> Bike: i heard he was a natural
00:35:48 <Bike> that's how zfc works
00:36:34 <Bike> V_0 = empty, V_{n+1} = P(V_n) and then you get sick of this and throw in vector bundles
00:37:39 <shachaf> Bike: I think instead of this category nonsense I should learn a few real maths.
00:37:46 <Phantom_Hoover> Bike, er
00:37:53 <Phantom_Hoover> isn't P({}) {}
00:38:00 <Bike> it's {{}}
00:38:04 <Phantom_Hoover> ohhh
00:38:17 <Phantom_Hoover> yeah duh
00:38:34 <elliott> Bike: can he play the peano
00:38:38 <Bike> heh
00:38:38 <elliott> oh shachaf already made the joke
00:38:43 <Bike> i like yours better
00:39:03 <Bike> shachaf: i like that maths has moved far enough for Principia Mathematica to be considered concrete relative to something
00:39:46 <Bike> maybe after category theory mathematicians will just roll around on the floor laughing
00:40:13 <Phantom_Hoover> did you know some mathematicians think category theory is just a load of abstract nonsense
00:40:49 <Bike> i have heard that from somebody who works on infinitary logic.
00:41:04 <Gregor> <elliott> Gregor: is your server still based on the map of the old server // no
00:41:07 <Phantom_Hoover> yeah but nobody gives a shit what logicians say
00:41:18 <Gregor> elliott: There are so many changes, keeping the old one is almost silly.
00:41:20 <Bike> fair enough
00:41:56 <Bike> i think he mentioned having a friend who did category theory with games or something, kinda wish i'd asked more about it
00:42:29 <elliott> Phantom_Hoover: EXCUSE ME
00:43:17 <Bike> how does infinitary logic interact with curry-howard
00:49:37 -!- nooodl has quit (Ping timeout: 248 seconds).
00:51:46 -!- augur_ has joined.
01:00:40 -!- Phantom_Hoover has quit (Quit: Leaving).
01:21:34 -!- Nisstyre-laptop has joined.
01:25:29 -!- ais523 has quit.
01:31:06 <kmc> zzo38: New Foundations is like that
01:32:18 <kmc> the axioms are: extensionality of equality, and set comprehension where there must exist a way to assign levels to things such that if "a ∈ b" appears, a must be at a lower level than b
01:32:34 <kmc> that's all the axioms (on top of predicate logic i guess)
01:32:47 <kmc> it's super simple but people hate it because its consistency is independent of everything else, or something
01:33:32 <Bike> people hate NF?
01:35:39 <elliott> have I mentioned: set theory sucks. type theory 4 eva
01:46:40 -!- Regis_ has joined.
01:50:27 <kmc> you make a persuasive argument
01:52:00 <elliott> kmc: can you give me a good infix composition operator that isn't .
01:52:03 <elliott> and that I can type
01:53:03 <Bike> × for the irony.
01:54:23 -!- augur_ has quit (Remote host closed the connection).
01:54:51 -!- augur has joined.
01:55:21 <Sgeo> elliott, surely if the symbol represents a legal function in a statically typed language, it can be typed?
01:55:29 <kmc> it's easy to type ×
01:55:38 <kmc> or ∘
01:55:51 <elliott> Sgeo:
01:55:54 <doesthiswork> lol
01:55:59 <Bike> sgeo..........
01:56:03 <elliott> kmc: what compose key do you have for \circ
01:56:05 <elliott> because i don't have it
01:56:09 * Sgeo isn't allowed to make jokes?
01:56:50 <Bike> nope
01:56:51 <elliott> not bad jokes
01:57:05 <Bike> i snickered for what it's worth which is one gold piece
01:57:12 <elliott> how does sgeo redeem his gold piece
01:57:36 <Bike> Does he have a WoW account?
02:00:47 <Sgeo> I had an account on metaplace
02:00:51 <Sgeo> Back when it existed
02:01:10 <Bike> that doesn't sound like a thing that has gold pieces.
02:01:26 <Sgeo> I think it had... something. Some kind of currency
02:01:36 <Sgeo> I forget what though
02:01:52 <Bike> Guess you can't redeem your gp then.
02:01:58 <Bike> I'll mark it down in my notebook for you though.
02:02:13 <Sgeo> :D
02:05:21 <elliott> kmc: but seriously do you have a good compose binding for it
02:05:23 <elliott> and what is it
02:05:27 <kmc> i added it as o.
02:05:35 <elliott> hmmm
02:05:36 -!- Regis_ has quit (Ping timeout: 240 seconds).
02:05:38 <elliott> seems reasonable
02:05:41 <kmc> not to be confused with .o = ȯ
02:05:46 <shachaf> o. now I sew.
02:06:12 <kmc> oȯóöőꙮ
02:06:48 <Bike> what do you have ꙮ on?
02:07:22 <kmc> i enter that using urxvt's ISO 14755 mode
02:07:33 <kmc> which is to say, hold down Ctrl-Shift and type A66E
02:08:04 <kmc> i remember the codepoint value for CYRILLIC LETTER MULTIOCULAR O because it's p. much the best Unicode character
02:08:07 <Bike> maybe you could put it on [compose].ooooooo
02:08:10 <kmc> yes
02:08:43 <kmc> doesn't it bug you that the Unicode reference glyph has 7 eyes but the only source for the character (that i could find) has 10 eyes?
02:09:44 -!- epicmonkey has joined.
02:09:55 <Bike> does the consortium have a complaints box
02:10:23 <elliott> > (0$0.)
02:10:25 <lambdabot> The operator `L..' [infixr 9] of a section
02:10:25 <lambdabot> must have lower precedence ...
02:11:09 <kmc> the fuck, there are also combining character versions of cyrillic
02:11:25 <kmc> for old ass manuscripts where they wrote some letters above others for no apparent reason
02:11:27 <Bike> well yeah, isn't that where we got combining cyrillic millions?
02:11:28 <Bike> oh.
02:14:43 <kmc> isn't that where umlauts come from too
02:15:17 <Bike> diareses are used in a lot of non-slavic languages though...
02:16:07 <kmc> (mommy where do umlauts come from?)
02:16:10 <kmc> yeah i meant in general
02:16:15 <kmc> ä used to be an e over an a
02:16:25 <kmc> but the scribes got lazy until eventually it's just two fuckin dots
02:16:34 <kmc> it's neat how the sands of time wear smooth the edges of language
02:21:14 <Sgeo> When will they wear smooth the annoyances of English?
02:21:34 <Sgeo> English the borg language, assimilating words from other languages without at least making them consistent.
02:24:55 -!- FreeFull has quit (Ping timeout: 244 seconds).
02:26:26 -!- FreeFull has joined.
02:26:43 <Bike> they have worn smooth the annoyances of english dude
02:26:52 <Bike> have you ever thought about why we have "'s" for possession?
02:27:03 <Bike> it's because old english had a big complicated system of declension
02:27:14 <Bike> but that all got lost and 's and a few other things are the only remnant
02:27:22 <doesthiswork> the suffix -ed is a reduced form of "did"
02:27:46 <doesthiswork> the suffix -ly used to be like
02:28:22 <Bike> the thing is that language sort of requires a certain level of expressibility, so you gain things too
02:28:37 -!- monqy has joined.
02:28:39 <Bike> like i dunno, "cyber-" meaning internet and tech things despite that having little or nothing to do with cybernetics
02:30:25 <kmc> yeah i never thought about the possessive as a noun case until recently
02:30:48 -!- epicmonkey has quit (Ping timeout: 276 seconds).
02:31:06 <Bike> the "nice" thing about being a monoglot is never having to think about your language at all
02:32:16 <Bike> in spanish class once a classmate complained about how unintuitive "va" being a conjugation of "ir" was, and the teacher pointed out it made about as much sense as "went" from "go"
02:33:34 <Sgeo> In Spanish class once, a girl asked if people switch the location of adjective and noun in their head
02:34:21 <Bike> ha, you mean, to match english ordering?
02:34:28 <Sgeo> yes
02:34:46 <Bike> there was an anecdote about that in hofstadter i liked
02:35:03 <coppro> Sgeo: even better,
02:35:04 <coppro> "be"
02:35:09 <Bike> "[referring to Russian] The text appears to be ciphered. I will now precede to decode [into English]"
02:35:20 <coppro> "be" has seven forms, which is three more than any other verb
02:35:28 <coppro> and the past tenses are from a different root
02:35:52 <Bike> "are" and "is" have the same root?
02:35:57 <coppro> yes, actually
02:36:07 <Bike> whoa.
02:36:21 <coppro> hmm... I /could/ be wrong
02:36:33 <coppro> but I'm pretty sure it's just was/were that have a different root
02:36:56 <Bike> maybe was+is/were+are are splits off an earlier split :P
02:37:46 <Bike> «From Middle English, from Old English is, from Proto-Germanic *isti, a form of Proto-Germanic *wesanan (“to be”), from Proto-Indo-European *h₁ésti (“is”)»
02:38:13 <Bike> versus are, «[...]from Proto-Germanic *arun (“(they) are", originally, "(they) became”)»
02:38:21 <Bike> that's cool
02:38:35 <coppro> hmm, ok
02:39:06 <Bike> "were" seems to be from the first actually
02:39:24 <Bike> anyway if anything this just makes your point that "be" is fucking weird stronger
02:39:38 <Bike> «The paradigm of "to be" has been since the time of Proto-Germanic a synthesis of three originally distinct verb stems. The infinitive form be is from Proto-Indo-European *bʰew- (“to become”). The words is and are are both derived from Proto-Indo-European *h₁es- (“to be”). Lastly, the past forms starting with w- such as was and were are from Proto-Indo-European *h₂wes- (“to reside”).»
02:39:55 <Bike> So ok, you're right.
02:41:36 <shachaf> kmc: What do you think about the fact that an existential type can be much more memory-efficient than a record?
02:42:34 <shachaf> E.g. if you have class Blah a where length, width, height, volume, area, ... :: a -> Double
02:42:47 <shachaf> And then you have data Shape = forall a. Blah a => Shape a
02:42:57 <shachaf> And you have data Circle = Circle Double Double
02:43:35 <shachaf> Then a [Shape] will only take up as much memory as the circles, no matter how many methods you add.
02:44:24 <shachaf> Whereas with a (Double,Double,Double,...) record you use more memory for every value.
02:49:58 <kmc> that's basically the optimization behind vtables right?
02:50:05 <shachaf> Yes.
02:50:11 <shachaf> It's pretty much a vtable.
02:50:14 <kmc> it's a good one
02:50:29 -!- TeruFSX has joined.
02:50:30 <shachaf> This isn't strictly about type classes.
02:50:47 <shachaf> You can represent it as exists a. (a, (a -> Double, a -> Double, ...))
02:51:03 <shachaf> That way you can share the dictionaries even when they're constructed at runtime.
02:51:28 <zzo38> I have done something similar like that too
02:51:36 <shachaf> Anyway, it's an annoying aspect of the "record of methods" approach.
02:51:52 <zzo38> Although in my case I had Typeable as a superclass
02:52:41 <zzo38> I didn't know it is called a vtable.
02:52:52 <doesthiswork> you know how physicists like trying to solve the problems of other fields because they figure they can probably do it better than the professionals?
02:53:05 <Bike> stereotypically, sure
02:53:19 <shachaf> I thought that was a stereotype about programmers.
02:53:22 <kmc> programmers too
02:53:30 <doesthiswork> I've noticed several programers that have the habit of trying to do the same to physics
02:53:38 <kmc> dude programmers do it with everything
02:53:38 <doesthiswork> it is pretty funny
02:53:41 <kmc> and yes
02:53:43 <zzo38> doesthiswork: Maybe in some cases it is possible? Not in all cases!
02:53:46 <zzo38> (Same with programmers)
02:53:54 <kmc> my favorite recent example is http://dotsies.org/
02:54:01 <kmc> cause vision is just, like, a grid of pixels, right?
02:54:12 <Bike> lol for real
02:54:28 <doesthiswork> lol
02:54:29 <Bike> ahahaha.
02:54:54 <doesthiswork> my hobby is redesigning alphabets so i feel free to say that this one is a bad idea
02:55:04 <Bike> it's like universal language crap but with scripts, i'll give them half a point for some originality
02:56:52 <zzo38> If you just want five dots each, you can even use different encodings, such as Baudot
02:56:56 <doesthiswork> fər sɛvrl mʌnθs æi roʊt onli ɪn IPA
02:57:47 <kmc> i think these people legitimately recognize that applying computational techniques to this or that old field can be really powerful
02:57:53 <kmc> but they don't realize that you need to work with domain experts
02:57:54 <kmc> and like
02:57:56 <kmc> collect data
02:57:58 <kmc> and analyze it
02:57:59 <Bike> well yeah, they just do it naïvely
02:58:00 <doesthiswork> exactly!
02:58:08 <Bike> computational physics and visions are huge and amazing fields, of course
02:58:10 <kmc> they just assume that if a programmer thinks about something really hard, he/she will come up with the perfect answer
02:58:11 <doesthiswork> and the domane experts love new ideas
02:58:24 <doesthiswork> because they love the domain
02:58:30 <Bike> doesthiswork: btw you should write in IPA in a non-rhotic accent
02:58:37 <kmc> it really gets me how bad many programmers are at empiricism
02:58:51 <doesthiswork> no thanks I don't like those little floaty rs
02:58:52 <kmc> argue forever about which way will be faster without actually running the fucking thing
02:59:07 <shachaf> Just argue about which way is better instead.
02:59:10 <Bike> the first CS paper I ever read had tables of times <3
02:59:10 <shachaf> Untestable!
02:59:29 <shachaf> Bike: ummm that doesn't sound like real cs.....
02:59:30 <Sgeo> Is it possible to be a college professor without being a PhD?
02:59:32 <doesthiswork> kmc : http://www.neverworkintheory.org/
02:59:34 <Sgeo> I think I would like that
02:59:44 <Bike> Sgeo: you could have a master's and teach at a community college
02:59:57 <Bike> alt. be a misunderstood genius and get an honorary degree
03:00:11 <shachaf> Bike: Don't you have to be understood for that?
03:00:12 <Bike> shachaf: It was the 80s. A strange time for all of us.
03:00:28 <shachaf> Bike: I have it on good authority the 80s didn't exist.
03:00:30 <Bike> shachaf: I don't mean a misunderstood genius. Just misunderstood.
03:00:37 <kmc> shachaf: argue about which way is more elegant and awesome
03:00:49 -!- DH____ has quit (Read error: Connection reset by peer).
03:00:52 <shachaf> kmc: That works too.
03:01:07 <shachaf> Well, everyone knows that length in bytes in the true measure of code elegance.
03:01:22 <doesthiswork> I have found that by the time I've heard 5 ways of doing something I have developed strong opinions about which way is best, all with out ever doing the thing
03:01:23 <kmc> "Cool, lots of people on twitter can't distinguish between aesthetics and engineering. That's encouraging."
03:01:59 <Bike> doesthiswork: i think people are pretty good at having strong opinions regardless of what they know, generally speaking.
03:02:10 <kmc> inversely proportional in fact
03:03:08 <doesthiswork> kmc: I've seen a graph of how well people thought they did compated to how wel they did do
03:03:20 <doesthiswork> there was no inverse nor inflection point
03:03:57 <doesthiswork> their estimates just had a much lower variance and a mean of 60th percentile
03:04:03 -!- TeruFSX2 has joined.
03:04:10 -!- TeruFSX2 has quit (Read error: Connection reset by peer).
03:04:18 -!- TeruFSX2 has joined.
03:04:33 <kmc> heh
03:05:12 <kmc> well dunning and kruger demonstrated an inverse correlation
03:05:14 <doesthiswork> although my anecdotal evidence matches up with your statement
03:05:17 <kmc> don't know how it generalizes
03:05:27 <kmc> parkinson's law of triviality is also relevant here
03:05:41 <kmc> people have opinions on simple and unimportant things, cause everyone can understand them
03:05:58 <doesthiswork> that actually seems counter
03:06:17 <shachaf> kmc: You're spreading rumours about CUPS now?
03:06:18 <shachaf> Ugh.
03:06:22 <shachaf> I should track down this last bug.
03:06:25 <doesthiswork> what it said is that people failed to express opinions about things they didn't know
03:06:28 <shachaf> "last"
03:06:35 <doesthiswork> but made up for it on the trivial things
03:07:09 <kmc> shachaf: yes
03:07:14 -!- azaq23 has quit (Quit: Leaving.).
03:07:39 <kmc> yeah they are kind of counter
03:07:49 <kmc> but both relate to silly opinions ;)
03:08:01 -!- dessos_ has changed nick to dessos.
03:08:24 <doesthiswork> have a look at the dunning kruger graph http://www.talyarkoni.org/blog/2010/07/07/what-the-dunning-kruger-effect-is-and-isnt/
03:08:37 <shachaf> Why are there two good laws named "Parkinson's Law"?
03:08:52 <shachaf> Named after the same person, too.
03:08:59 <doesthiswork> it shows that the ranking of abiliy is stable no matter your knowledge level
03:09:09 <Bike> Because Parkinson was a cool person, obviously.
03:09:19 <doesthiswork> it is just the absolute vales that change
03:09:47 <Bike> I keep seeing "Kruger" and reading "Krugman".
03:10:45 <Bike> I like how the crossing point is way higher than mediocrity.
03:12:08 <doesthiswork> the crossing point depends on the difficulty of the tast
03:12:15 <Bike> Makes sense.
03:12:22 <doesthiswork> with harder tasks the crossing point is lower
03:12:56 <Bike> the SSRI thing reminds me of the various controversies in medicine... statistics is hard to do right.
03:13:07 <doesthiswork> (sorry about bringing in the data, but I really like graphs)
03:13:31 <Bike> Don't apologize, this article is cool.
03:15:18 <kmc> doshm
03:15:27 <kmc> thanks for the link doesthiswork
03:15:43 -!- TodPunk has quit (Quit: This is me, signing off. Probably rebooting or something.).
03:16:14 <kmc> huh ok
03:16:22 <kmc> i should pay better attention to science :)
03:16:32 <doesthiswork> it pisses off some of my facebook acquaintances, when I spoil a good story with nitpicking data
03:16:35 <Bike> it's particularly hard to keep up with psychology, i think...
03:16:51 <Bike> apparently people are pretty complicated?
03:16:54 <kmc> it would be the height of hypocrisy if i were upset about you bringing data into /this/ discussion
03:17:17 <kmc> i don't know why i typed "doshm" up there or what it means
03:17:20 <kmc> more mysteries of human psychology
03:17:27 <kmc> it was probably an attempt to tab complete your name doesthiswork
03:18:46 <Bike> gimme the dosh
03:25:47 <doesthiswork> here is an argument for why R is a good esoteric language http://www.talyarkoni.org/blog/2012/06/08/r-the-master-troll-of-statistical-languages/
03:29:02 -!- elliott has set topic: doshm | http://codu.org/logs/_esoteric/.
03:29:11 <elliott> all hail dosm
03:29:13 <elliott> i mean doshm
03:29:18 <elliott> the sects have started already
03:29:47 <kmc> oh no
03:29:51 <kmc> what have i done
03:29:56 <kmc> what have i dunning
03:30:00 <shachaf> imo grhgh
03:30:39 <Bike> that's quite an apply
03:31:16 <Bike> "string (or, in R’s nomenclature, character)"
03:31:36 <shachaf> @arrrr
03:31:36 <lambdabot> Drink up, me 'earties
03:32:42 <kmc> of all the dated lines in _Hackers_, I think "RISC architecture is going to change everything" might be the best
03:33:03 <Bike> what's the context
03:33:28 <monqy> r is weird
03:33:28 <lambdabot> monqy: You have 1 new message. '/msg lambdabot @messages' to read it.
03:33:36 <monqy> another??? i just checked my messages
03:33:55 <monqy> an hour ago i guess
03:33:58 <shachaf> monqy: do you check your messages in /msg every day before talking in the channel
03:34:14 <shachaf> i've sent you several messages and never saw the monqy: You have notification before??
03:34:48 <monqy> mhm
03:36:35 <kmc> Bike: two nerds nerding out as a mating ritual
03:36:39 <doesthiswork> shachaf: i think monqy doesn't want to respond to your messages
03:36:50 <shachaf> doesthiswork: It's possible.
03:37:08 <shachaf> I think it's been suggested that I bug monqy too much.
03:37:16 <shachaf> Perhaps I should cut down.
03:37:17 <doesthiswork> that can't be right
03:37:19 <Bike> kmc: i can imagine that line coming up in such a context in life
03:37:26 <doesthiswork> if anything you aren't monqying enough
03:37:46 <zzo38> Even though it is called RISC, modern ARM are really complicatd though.
03:37:54 <elliott> doesthiswork: ok who are you
03:37:58 <elliott> you have clearly been in this channel before
03:38:04 <elliott> is it you chris????
03:38:30 <shachaf> `pastelogs 75.87.251.5
03:38:31 <Bike> zzo38: so, what, you think Hackers is inaccurate?
03:38:49 <zzo38> Bike: That is not what I said.
03:38:52 <kmc> zzo38 yeah
03:39:06 <HackEgo> No output.
03:39:25 <Bike> it isn't, but "ARM isn't really reduced in a meaningful sense" isn't all that interesting to talk about
03:39:34 <elliott> well I guess doesthiswork has to be the kind of person who would use adium to connect to an IRC channel
03:39:39 <elliott> not sure how this helps me narrow things down
03:39:49 <Bike> though i was just reading something about proposed x86 extensions and they're pretty wacky
03:40:05 <Bike> arbitrary bit perms in constant cycles, hooray
03:40:15 <doesthiswork> elliott: what kind of person would that be?
03:40:20 <shachaf> Bike: Unlike the accepted x86 extensions, eh?
03:40:42 <Bike> quite
03:41:10 <Bike> some of them must be at least as complicated as POLY by now
03:41:20 <elliott> doesthiswork: aaaaaaaargh
03:41:24 <elliott> `pastelogs doesthiswork
03:41:39 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3003
03:41:46 <zzo38> x86 have removed instructions too
03:41:53 <Bike> doesthiswork: are you a person from elliott's past that wants to annoy him into madness, because i could get behind that
03:42:17 <elliott> Bike: I think you will find that literally everyone on the planet wnats to annoy me
03:42:31 <Bike> well yes, exactly
03:42:34 <Bike> we need to organize
03:42:41 <elliott> okay I believe I have sufficient information to discount the hypothesis that doesthiswork is cpressey
03:42:57 <elliott> for instance you asked about a cpressey language
03:43:05 <elliott> the only cpressey language cpressey would ask about is turkey bomb
03:43:21 <shachaf> who is cpressey
03:43:23 -!- TodPunk has joined.
03:43:28 <doesthiswork> is being cpressy a bad thing?
03:43:36 <Bike> no, elliott loves cpressey.
03:43:37 <shachaf> doesthiswork: not at all
03:43:42 <monqy> maybe doesthiswork is the mirror world version of someone you know
03:43:42 <kmc> RISC isn't just about having fewer instructions
03:43:44 <elliott> doesthiswork: no, it's roughly the best thing
03:43:47 <kmc> ARM has interesting RISCy properties
03:43:51 <kmc> even if it has lots of instructions
03:44:06 <zzo38> ARM has several instruction sets
03:44:06 <Bike> the initialism does stand for "reduced instruction set computer"...
03:44:15 <kmc> it's kind of a second generation RISC in that it has features specifically to deal with weakness of basic RISC
03:44:30 <kmc> but also yeah, it has multiple instruction sets and other such stuff which makes it less RISCy
03:45:07 <Bike> instruction set by itself doesn't seem like the greatest criterion, anyway, you can implement instructions in lots of ways
03:45:25 <kmc> Bike: there's some instruction that shachaf and Donald Knuth like, which is multiplication of two 8×8 binary matrices (as 64-bit numbers)
03:45:32 <kmc> apparently many useful things can be expressed this way
03:45:52 <Bike> a fuckton of linear operators for one
03:46:06 <Bike> i wouldn't be surprised if SIMD has that soon really
03:46:50 <kmc> or maybe it's matrix * 8-bit vector, applied to each byte of the other operand
03:46:54 <kmc> shachaf: ^?
03:47:01 <kmc> think both would be useful
03:47:14 <shachaf> It's multiplication of two matrices.
03:47:19 <shachaf> Using AND and either OR or XOR.
03:48:04 <kmc> is (or, and) a field?
03:49:17 <Bike> pretty sure it is
03:49:30 <shachaf> What it does is let you express each byte of the resulting matrix as OR/XOR of any selection of bytes of the source matrix, as specified by the intermediate matrix.
03:50:58 <Bike> Hey, anybody here know any German perchance?
03:51:06 <kmc> i know how to say "segmentation fault"
03:51:16 <zzo38> What I would like is a mux instruction, like described in esolang wiki under "Muxcomp".
03:51:25 <Bike> I want to know what the hell is going on with the name "Uexküll".
03:51:32 <Bike> Does German even use "x"?
03:52:08 <shachaf> Uexküll (also Üxküll or Yxkull) is a Baltic-German noble family.
03:52:11 <Bike> zzo38: http://palms.princeton.edu/system/files/IEEE_TC09_NewBasisForShifters.pdf You might find this interesting.
03:52:16 <Bike> Yxkull. No way.
03:52:17 <shachaf> Looks like there are lots of ways to spell it, but all of them use x.
03:52:37 <Bike> Googling gives me... Swedish wikipedia
03:52:51 <shachaf> Swekipedia
03:54:26 <shachaf> Bike: have you accepted de Bruijn into your heart yet
03:54:47 <Bike> I'm used to weird-ass Dutch names by now.
03:54:56 <shachaf> Not the name.
03:55:27 <Bike> The person being cool is obvious.
03:55:41 <kmc> ü_ü
03:56:05 <Bike> "Gemeenschappelijke representantensystemen van twee klassen-indelingen van een verzameling.
03:56:53 -!- hogeyui has quit (Ping timeout: 244 seconds).
03:57:03 <Bike> kmc: What's "segmentation fault" in Dutch?
03:57:46 <kmc> please hold
03:58:32 <shachaf> kmc: What, running CUPS with nl_NL.UTF-8?
03:58:47 <kmc> something like that
03:59:18 <kmc> why does Debian need to regenerate *every* locale
03:59:59 <shachaf> Because it's more trouble to do it another way, presumably.
04:00:30 <kmc> the answer is "Segmentatiefout"
04:00:35 <Bike> fout.
04:00:51 <Bike> Maybe it would have been faster to install Dutch Debian on a fresh VM.
04:14:05 <kmc> double dutch debian
04:18:58 -!- hogeyui has joined.
04:21:39 <kmc> zzo38: yeah they removed a bunch of single-byte increment instructions :(
04:21:43 <kmc> from x86 i mean
04:22:24 <kmc> also AAA and DAA and such
04:32:16 <kmc> i forget what AAA is in amd64, it might just be reserved
04:32:29 -!- aloril has quit (Ping timeout: 276 seconds).
04:33:14 <Bike> What did it do?
04:33:40 <kmc> calls AAA to come change the tires on your computer
04:34:25 <kmc> actually ASCII Adjust for Addition
04:34:31 <kmc> used in BCD arithmetic
04:34:35 <Bike> oh, is that the bcd- yeah.
04:37:23 <kmc> remember that x86 traces its lineage back to a calculator processor
04:43:27 <zzo38> Yes I also don't like that they removed single-byte increment and BCD arithmetic, or all the extremely complicated stuff they added, but I think it might still works outside of 64-bit mode?
04:43:34 <kmc> yeah
04:43:51 <kmc> x86 is very particular about backwards compatibility
04:44:25 <kmc> i think even 16-bit protected mode is still supported
04:44:32 -!- aloril has joined.
04:44:56 <pikhq> kmc: ... in long mode
04:45:12 <kmc> yes i was talking about long mode before
04:45:32 <pikhq> WINE on x86_64 uses 16-bit protected mode to run Win16 stuff.
04:45:33 <pikhq> :)
04:45:57 <kmc> inside a compat mode 32-bit process?
04:45:59 <kmc> or what
04:46:07 <kmc> i don't know how these layers of compatibilitiy cruft stack ;_;
04:46:14 <pikhq> Pretty sure that's how it goes, yeah.
04:46:21 <shachaf> Windows 64-bit doesn't run Windows 16-bit programs. :-(
04:46:44 <pikhq> shachaf: Yeah, Microsoft decided it wasn't worthwhile to update NTVDM to actually work on x86_64.
04:46:56 <pikhq> There's no *technical* reason they couldn't, they just didn't feel like it.
04:47:05 <kmc> good for them
04:47:27 <pikhq> (admittedly, writing an 8086 emulator for the 0.001% of the population that really cares is a bit of a silly proposition)
04:48:04 <shachaf> Well, I know someone it affected.
04:48:20 -!- WeThePeople has joined.
04:48:30 <pikhq> IIRC they *did* do some hacks for old installers.
04:48:44 <pikhq> (because some Win32 stuff has 16-bit installers.)
04:50:18 <kmc> heh
04:50:28 <kmc> i guess it makes sense, if your app has a 16- and a 32-bit exe in the same install
04:50:35 <kmc> you don't want to have to write two installers
04:51:16 <pikhq> And if your company already has in-house installer programs, you're likely to just not care that the installer's not using Win32.
04:56:20 -!- TeruFSX2 has quit (Ping timeout: 252 seconds).
04:56:45 -!- TeruFSX has quit (Ping timeout: 260 seconds).
04:59:13 <Sgeo> There is a pro-peny lobbying group
04:59:19 <Sgeo> penny
04:59:30 <Sgeo> http://www.pennies.org/
05:00:01 <zzo38> I think should not get rid of pennies. Canadian government has stopped making them but they should continue to use it
05:03:06 <doesthiswork> 63 people liked that page
05:03:13 <doesthiswork> that means that no one cares
05:04:03 <zzo38> No it doesn't
05:04:48 <zzo38> The only thing it means is that 63 people put "Like" in it.
05:05:16 <zzo38> It doesn't tell you how many people care, how many people dislike, or anything else.
05:05:20 <kmc> https://medium.com/queer-life/f62d82e13c2d trolling recruiters for social good, i like it
05:05:47 <zzo38> The polls show something a bit more; the "Like" shows nothing regardless how high or low it is.
05:06:13 <zzo38> Since even people who have read it, but don't have Facebook, also isn't being counted.
05:07:17 <doesthiswork> kmc: that is community service
05:07:23 <Bike> kmc: i like it.
05:07:43 <Bike> THere's also the employment discrimination thing on top of that...
05:10:31 <Bike> This reminds me that I'm not really sure how I should refer to reassignment surgery. I used "cosmetic" once on the basis that it's not directly connected to physical failure of anything, but I pretty well immediately was told how shitty I sounded and now that I think about it I'm not sure I could explain what I was thinking.
05:11:48 -!- Frooxius has quit (Ping timeout: 244 seconds).
05:12:20 <kmc> just call it reassignment surgery i guess
05:14:33 <kmc> it may be too special case to fit in another category
05:15:03 <Bike> hm, maybe.
05:15:06 <kmc> in a sense it's surgery to fix a psychological problem rather than a physical one
05:15:12 <kmc> but 'psychological problem' has all kinds of stigma
05:15:15 <Bike> yeah
05:15:19 <kmc> like it's "not real" or you should just stop being crazy or whatever
05:16:00 <kmc> a lot of the way we talk about LGBT issues is kind of awkwardly dodging around even more fundamental biases that people have
05:16:24 <Bike> which is part of why i'd like to avoid anything even close to "cosmetic", yeah
05:16:43 <Bike> (especially after actually seeing it, for another connotation. that is not a simple operation)
05:19:53 <pikhq> Bike: "Sex reassignment surgery" is one of the more common ways of referring to it.
05:20:06 <pikhq> Not sure that's the best, but it's the one I default to when it comes up.
05:20:22 <Bike> i was trying to put it in a general category, for... some reason
05:21:56 <pikhq> It's tricky to categorize.
05:24:52 <pikhq> Somehow trans-related stuff has a way of bringing up edge cases.
05:25:11 <Bike> Haha, true enough.
05:25:28 <Sgeo> Maybe I should try to wrap my mind around Idris
05:25:47 <Bike> The prophet?
05:26:42 <Sgeo> http://idris-lang.org/
05:27:03 <Bike> Maybe you should try gardening.
05:28:46 <Sgeo> ?
05:29:08 <Bike> Instead of language after language, I mean.
05:29:12 <Bike> Get your mind off things.
05:29:56 <Sgeo> Funny, right now I'm looking at Idris to get my mind off things
05:32:24 <kmc> like people making a big deal about whether being gay is a choice
05:32:32 <kmc> it shouldn't matter whether it's a choice
05:32:47 <kmc> if somebody chooses to do something that doesn't affect you at all, that is still no excuse to take away their civil rights
05:32:48 <pikhq> Yeah, but assholes think "choice" -> "we can and should fix you".
05:33:09 <kmc> but the way we think about these things is generally fucked up
05:33:30 <kmc> not that i'm arguing it is a choice
05:33:33 <pikhq> I don't think it's a choice, but then it doesn't freaking matter.
05:33:35 <Bike> mm, i kind of had "if transsexuals want to present as another sex and alter their bodies accordingly I have no reason to object" as my mental model for a while, but it gets stale
05:33:35 <kmc> just, the fact that it even matters is messed up
05:33:44 * Sgeo agrees with kmc
05:34:07 <pikhq> Bike: Hey, that's starting off as a not-assholish position, so.
05:34:38 <kmc> i don't see why i should care about someone else modifing their body or worry about whether their reason is good enough
05:34:52 <kmc> a more interesting question is, in a civilized society with socialized healthcare, should i be obliged to pay for it
05:35:04 <kmc> but "fortunately" in america we don't need to think about this question so much
05:35:08 <Bike> pikhq: so i hope, but it oversimplifies transpeople's experiences enough that i'd like to move from it more
05:35:53 <Bike> the first i heard of transgenderism was a webcomic by a transgender person about the problems she had to deal with, so i started out reasonably sympathetic
05:36:29 <Bike> but now that i actually know transgender people i know that framing it in such a fashion isn't that great, i guess
05:38:44 <pikhq> Yeah, it is a bit more than just "yeah, they want to present as another sex", so.
05:39:25 <Bike> Unfortunately for me it turns out that well gosh, there's not a clear-cut and obvious line of thought to look at! who woulda thought, eh
05:39:38 -!- WeThePeople has quit (Remote host closed the connection).
05:39:46 <Bike> the SEP entries on the subject are crazy
05:40:19 <pikhq> SEP?
05:40:27 <Bike> stanford encyc. of philosophy
05:40:30 <pikhq> Ah.
05:40:42 <Bike> e.g. "Feminist Perspectives on Trans Issues"
05:40:58 <pikhq> With things around sex and gender, you can't go wrong assuming it's complicated.
05:41:12 <Bike> That's pretty much where I'm at now, yeah.
05:45:41 <kmc> s/sex and gender/humans/
05:45:52 <pikhq> Thanks for the generalization.
05:45:57 <kmc> theneralization
05:47:43 <kmc> labels make me sad because they obscure the uniqueness of each person's life story; on the other hand, they are useful esp. when fighting oppression
05:49:35 <Bike> yeah i used to do the "abandon labels" thing a lot
05:49:44 <kmc> life stories are also long and don't always make sense
05:49:45 <kmc> so there's that
05:49:48 <Bike> apparently this and other ideas i had corresponds to a popular feminist position, actually!
05:50:07 <kmc> does that position have... a label
05:50:32 <kmc> "the great thing about different types of feminism is that there are so many to choose from"
05:51:04 <Bike> i have no hope of understanding different waves or anything :(
05:51:05 <doesthiswork> if you don't use labels to record things it doesn't make problems go away it just means you no longer record what's happening
05:51:06 <pikhq> And human cognition seems to be based in labelling and categorizing things...
05:51:21 <Bike> doesthiswork: nice way to put it.
05:51:53 <elliott> doesthiswork: thats a strong argument for always naming function arguments
05:51:56 <elliott> oh man strong argument
05:51:58 <elliott> i am literally hilarious
05:52:04 <kmc> ellarious
05:52:05 <Bike> keep your day job
05:52:13 <doesthiswork> I prefer point free style
05:52:14 <elliott> Bike
05:52:18 <kmc> quit your day job and do an agile comedy startup
05:52:18 <elliott> i dont even have a day job
05:52:21 <kmc> iterate the shit out of that joke
05:52:26 <Bike> wait is your day job making bad jokes on irc
05:52:28 <elliott> can i pivot the joke by changing the punchline
05:52:30 <elliott> Bike: yes
05:52:34 <kmc> yes
05:52:34 <Bike> shit
05:53:09 <Bike> hm i guess it's called "performativity" or so
06:00:03 * pikhq wonders how LGBT issues came up here.
06:00:05 <pikhq> *shrug*
06:00:37 <Bike> Because kmc linked a page about asking tech recruiters whether they medically support trans employees.
06:00:43 <pikhq> Ah, right.
06:01:09 <Bike> then i went off on it because i am confused and ignorant.
06:02:47 <kmc> you don't sound confused and ignorant
06:02:58 <pikhq> I've seen confused and ignorant.
06:04:02 <pikhq> Bit worried for the day it actually starts effecting me, really.
06:04:09 <pikhq> Affecting, even.
06:04:19 <oklopol> äffecting
06:05:54 <zzo38> I have a book titled "There Are Two Errors In The The Title Of This Book"
06:06:04 <Bike> Is it good?
06:06:17 <zzo38> I have had it for a while already and wrote things in it
06:07:22 <zzo38> Suppose someone held a gun at your head, and said, "Believe that the Dodgers will win next year's World Series, or I'll shoot!"
06:07:40 <elliott> i'm supposing
06:08:10 <zzo38> Do you believe that God believes that you do not believe God believes that you do not believe God exists?
06:09:06 <pikhq>
06:09:07 <Bike> BG¬BG¬BE
06:09:25 <kmc> your dodgers scenario reminds me a bit of parfit's hitchhiker
06:09:39 <Bike> I can conveniently say "no" because I am an atheist. Checkmate, Christians.
06:09:40 <zzo38> kmc: It is from the book.
06:09:57 <zzo38> The second one is something I have written in the book myself.
06:10:37 <Bike> It's like the modal question from hell. I'm so bad at recursion.
06:11:08 <kmc> what's a modal question
06:11:11 <kmc> something about modal logic?
06:11:16 <Bike> @google doxastic logic
06:11:18 <lambdabot> http://en.wikipedia.org/wiki/Doxastic_logic
06:11:18 <lambdabot> Title: Doxastic logic - Wikipedia, the free encyclopedia
06:11:26 <zzo38> In this book, they say "All universal claims are false" is a false statement, but if you believe that, you have to tell me which universal claim is not false (it shouldn't be difficult); but they did not consider that in their logic!
06:11:43 <Bike> That's a very constructivist thing to say, zzo38.
06:12:04 <zzo38> Bike: What kind of logic is applicable depends on the circumstances, I think.
06:12:19 <zzo38> So many of the logical paradoxes they have may also be due to using the wrong kind of logic.
06:12:31 <Bike> I just meant that your God question is pretty doxastic.
06:12:43 <oklopol> i'm so strongly against labels that when someone tries to talk about functions or groups to me, i correct them
06:12:53 <zzo38> Bike: I don't even know what "doxastic" means but I can look it up.
06:12:56 <oklopol> by saying it's all sets
06:13:01 <oklopol> and they are being ignorant
06:14:03 <Bike> zzo38: It's a kind of modal logic where the modal... functions... i forget what they're called, are like "believes". Like BG¬BG¬BE is short for your question, where E = "God exists", Bx = I believe x, and Gx = God believes x.
06:14:04 <zzo38> Yes I can see how doxastic logic is about believing, but still, if you say "do you believe..." it has to do with *you*, not with logic.
06:14:40 <Bike> That's why it's modal.
06:14:49 <Bike> I mean, you can have Bx and ¬x.
06:16:29 <zzo38> That is for "inaccurate reasoner"
06:16:31 <elliott> 06:11:26 <zzo38> In this book, they say "All universal claims are false" is a false statement, but if you believe that, you have to tell me which universal claim is not false (it shouldn't be difficult); but they did not consider that in their logic!
06:16:57 <elliott> zzo38: ~(forall a, ~p(a)) doesn't necessarily give you a concrete a s.t. p(a)
06:17:01 <shachaf> Can you have Bx and B¬(Bx)?
06:17:16 <pikhq> I've observed it.
06:17:26 <Bike> shachaf: that's called a peculiar reasoner.
06:17:59 <Bike> Psychologically I don't really think doxastic logic is very accurate, though...
06:18:33 <shachaf> Bike: http://www.mit.edu/people/dpolicar/writing/prose/text/epistemologicalNightmare.html
06:18:48 <zzo38> Bike: You may be correct, I also don't really think doxastic logic really describe beliefs. It is still a kind of logic though.
06:18:49 <Bike> Haha, I love that story
06:19:05 <Bike> that whole book was crazy in the best way
06:19:07 <shachaf> raymond.smullyan++
06:19:14 <shachaf> Which book was that? 5000 B.C.?
06:19:30 <shachaf> I think it was in _The Mind's I_ also.
06:19:32 <Bike> The Mind's Eye. Epistemological Nightmare predates it but it was in it.
06:19:49 <Bike> I think my favorite was the story about the guy in one neuron.
06:19:56 <zzo38> I have read that Epistemological Nightmare before.
06:19:57 <shachaf> ?
06:20:11 <shachaf> _The Mind's I_ had three Smullyan excerpts in it.
06:20:13 <Bike> Uhm, let me find the title...
06:20:26 <shachaf> You should read other Smullanbooks!
06:20:31 <Bike> Probably.
06:20:42 <Bike> I've read other Borgesbooks and Hofstadbooks.
06:21:06 <shachaf> Smullyanbooks are the best.
06:21:35 <Bike> Oh and Lembooks.
06:21:50 <shachaf> Well, everyone's heard of Lem.
06:22:08 <Bike> And the story I'm thinking of is "The Story of a Brain", by Arnold Zuboff.
06:22:17 <shachaf> Łem
06:22:25 <Bike> good letter
06:23:50 <doesthiswork> there doesn't seem to be any difficulty to this story
06:23:50 <oklopol> zzo38: how does it not describe beliefs?
06:23:58 <Bike> doesthiswork: which
06:24:10 <doesthiswork> most recent link
06:24:21 <doesthiswork> epistemological nightmare
06:24:31 <shachaf> Hmm, what were the other two Smullcerpts in that book?
06:24:45 <shachaf> There was _Is God a Taoist?_ and _An Unfortunate Dualist_, I think.
06:25:12 <Bike> Seems so.
06:25:16 <Bike> I've also read the one about laughter.
06:25:54 <shachaf> You should read his books!
06:26:00 <zzo38> oklopol: I don't mean it doesn't describe beliefs, I mean it doesn't *necessarily* describe beliefs. That is different.
06:26:02 <shachaf> They're good.
06:26:27 <zzo38> Not everything can be describe by some logic; that is why you need many different kinds.
06:26:34 <Bike> I know a guy who loves Smullyan. I'm just a slow reader.
06:27:07 <Sgeo> :t maybe
06:27:08 <lambdabot> b -> (a -> b) -> Maybe a -> b
06:27:46 <oklopol> first you say it describes beliefs and other things, then you say "Not everything can be describe by some logic"? can you give an example mr constructivist because your previous sentence wasn't one?
06:28:15 <zzo38> oklopol: I do not understand you.
06:28:22 <oklopol> no prob, we'll talk later
06:28:23 <oklopol> off to work
06:28:31 <zzo38> Or maybe you do not understand me.
06:28:41 <zzo38> I am unsure which is true (possibly both).
06:30:14 <Bike> B_z(¬U_zO∨¬U_oZ)
06:30:36 <zzo38> Another example of paradox means: Epimenides of Crete says "All cretans are liars."
06:31:24 <zzo38> There are other Cretans, and he may have said other things. But what if, he is the only one and he only ever says one thing, which is that?
06:33:13 <Bike> shachaf: How about "To Mock a Mockingbird" particularly?
06:35:04 <shachaf> Bike: Well, that's a "puzzle" book about combinatory logic.
06:35:23 <shachaf> I was thinking of _The Tao is Silent_, _This Book Needs No Title_, and _5000 B.C._ here.
06:35:33 <shachaf> The puzzle books are good too, though!
06:35:46 <zzo38> I have never read any of them but I wanted to read all of them.
06:36:37 <zzo38> I believe it is Monday, but it is not.
06:38:45 <Sgeo> 4 people just picked up a freebie I offer in SL
06:38:49 <Sgeo> In the space of an hour
06:39:00 <Sgeo> I have to wonder if there's a blog post or something mentioning it
06:40:50 <zzo38> If you are at a railroad where the track splits into two. There is a switch. There is ten children playing on the north track and one on the south. The train is heading toward the north track. There is no time to warn anyone. What will you do and why?
06:41:06 <Bike> ugh, that question.
06:42:05 <zzo38> I ask some people I know who give different reasons; my reasoning is also different to that commonly shown in books.
06:42:13 <zzo38> But also different to who I asked.
06:42:18 <Bike> have you gotten the answer "I don't know"?
06:42:26 <zzo38> No.
06:42:32 <Bike> that is my answer.
06:42:33 <elliott> oh, to mock a mockingbird is that smullyan guy?
06:42:37 <Bike> yeah.
06:42:39 <zzo38> Bike: OK.
06:42:42 <Bike> big on crazylogic
06:45:44 <zzo38> My answer is: I would try to warn them (I know it says there is not time), and leave the switch alone. I don't know how serious problems would be made up if the train goes on the other track (maybe collisions? or maybe they just don't get to their proper destination?), and furthermore, those people on the track are making their own mistake and need not be saved.
06:46:08 <doesthiswork> zzo38: my answer I didn't evolve to answer such questions, ask me one which is within 2 standard deviations of the mode.
06:46:09 <zzo38> (Perhaps the one on the other track is smart since they know about the trains?)
06:47:17 <zzo38> Or, to answer the question more simply: I am not a train conductor.
06:47:40 <zzo38> doesthiswork: Which one of what?
06:47:56 <kmc> i would make the train wipe out the 10 children, then exploit the tragedy to get more railroad grade separations built, saving more lives in the long run
06:48:07 <kmc> except in the US it wouldn't go down like that
06:48:21 <kmc> instead we would ban trains and start handing out free assault rifles at the post office or something
06:48:45 <doesthiswork> the train questions are fun but most people that ask them forget about the shear uncertainty of life
06:48:46 <Bike> Anti-train firearms.
06:48:58 <Bike> zzo38: Does your question come with the related followup?
06:49:43 <zzo38> I happen to not put human dignity/life above absolutely everything else. Important is yes, the most important thing ever is no.
06:49:57 <zzo38> Bike: What related followup?
06:50:08 <Bike> The same question but with a hospital? Have you heard it?
06:50:24 <zzo38> Yes I have, but not in this book.
06:50:31 <doesthiswork> bike: http://what-if.xkcd.com/18/
06:50:50 <Bike> I think it's fun to follow the first with the second. Often people have more moral objections to organ harvesting for whatever reason.
06:50:57 <elliott> 06:47:56 <kmc> i would make the train wipe out the 10 children, then exploit the tragedy to get more railroad grade separations built, saving more lives in the long run
06:51:02 <elliott> thats like the biggest lie ive ever seen
06:51:18 <Bike> doesthiswork: I was thinking like, anti-materiel, but bb is good too
06:51:19 <zzo38> O, yes, that one is in the book but in a different section.
06:51:28 <doesthiswork> zzo38: which one of what of what?
06:51:30 <zzo38> I would ask the person if it is OK.
06:51:47 -!- hagb4rd has joined.
06:52:08 <pikhq> I would derail the train, thereby causing maximal misery. :P
06:52:45 <Bike> I think the best response I've heard to the question so far was an elaborate action movie combat sequence that ended with everybody safe and the train on fire.
06:52:52 <shachaf> zzo38: what if all of humanity is on one track
06:53:07 <zzo38> My answers are often different because I consider human dignity/life to be important but not above everything else.
06:53:30 <zzo38> shachaf: In that case nobody is operating the train, and I would try to destroy the train.
06:53:43 <Jafet> The cosmic train of plowing
06:53:51 <Jafet> @quote invisible.train
06:53:51 <lambdabot> kmc says: a monad is like an invisible train filled with jello traveling backwards in time
06:54:04 <shachaf> kmc did you really say that
06:54:04 <Bike> that is an awesome train
06:54:10 <kmc> who knows
06:54:15 <Bike> zzo38: good answer
06:54:28 <shachaf> @@ @@ @where quonochrom
06:54:28 <lambdabot> monochrom says: Dilbert's substitutability principle. A subclass's programmer should work as a drop-in replacement of his/her predecessor.
06:55:20 <zzo38> However, if there are a large number of people in the train, and everyone else other than myself on the track, my answer would be the same as the original question.
06:56:19 <zzo38> The train will probably eventually stop once they find out what happened or once the wheels get messed up and the train no longer works, so it still won't kill everyone, even if much larger than otherwise.
06:56:19 <hagb4rd> no we're not heading for the abyss
06:56:23 <Bike> It actually kind of bothers me, in the epistemological nightmare story, that the machine can answer a moral question.
06:56:25 <shachaf> zzo38: what if you are the train
06:56:34 <hagb4rd> we're just waiting for the impact
06:56:43 <shachaf> Bike: Man, you should read the other books.
06:56:45 <zzo38> shachaf: If I am operating the train, I would stop it temporarily.
06:56:48 <shachaf> They're "p.great"
06:56:56 <shachaf> zzo38: Not operating the train. are the train.
06:57:21 <zzo38> shachaf: OK. Would I be allowed to stop it, though, in such case?
06:57:47 <shachaf> I'm not sure.
06:57:53 <shachaf> Are trains allowed to stop themselves?
06:57:54 <zzo38> (If not, there is nothing to be done.)
06:58:55 <hagb4rd> here that's for all the people who get mad about spelling all the time: http://www.friends.hosted.pl/redrim/Reading_Test.jpg
06:59:34 <Bike> I wonder why that's always attributed to Cambridge.
06:59:39 <Bike> shachaf: I don't think that trains have intention.
07:02:12 <Sgeo> "I prefer to not pretend floats form any sort of structure amenable to reasoning."
07:05:19 <kmc> a wise policy
07:05:57 <zzo38> There are camels in all large cities. There are no camels in Germany. The city of B. is in Germany. Are there camels there or not?
07:06:32 <zzo38> This question was asked of a peasant who did not entirely understand.
07:07:16 <zzo38> It seems clear there shouldn't be, but apparently B. is a large city (the part about camels in large cities was from the peasant)
07:07:24 <Bike> Ooh, that's... shit, what's his name? The psychologist.
07:07:29 <zzo38> Yes.
07:07:48 <Bike> Ugh, I've been meaning to read his books forever too. Even if he had no ability to tell when Uzbek peasants were fucking with him.
07:08:07 <zzo38> A. R. Luria
07:08:32 <Bike> yeah, him. mostly i wanted to read the one about the soldier, see if that gets me into Vygotsky or whatever
07:10:17 <zzo38> The disclaimer in this book says many things, including "Contains a substantial amount of non-tobacco ingredients", "Avoid contact with skin", and "Abandon hope all ye who enter here".
07:10:21 <Bike> that particularly seems like a good example of not taking syllogistic reasoning too seriosuly.
07:12:06 <zzo38> What is the name of this book? What is the Name of This Book. I don't know, that's why I asked you.
07:13:04 <zzo38> (Something I wrote below a paragraph mentioning the other book)
07:15:29 <Sgeo> `slist
07:15:32 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
07:16:03 <shachaf> Sgeo: when are you going to start caring about us olisters
07:16:22 <Sgeo> shachaf, I believe I did recently olist for the recent OOTS
07:16:27 <Sgeo> `pastelogs `olist
07:16:32 <shachaf> You did.
07:16:38 <shachaf> But it's not updating often enough?
07:16:59 <HackEgo> No output.
07:17:11 -!- Sgeo has changed nick to NotRichBurlew.
07:20:38 -!- NotRichBurlew has changed nick to Sgeo.
07:39:07 <Sgeo> Erfworld list!
07:46:19 <zzo38> Can there be type systems (or types) involving temporal logic and doxastic logic and deontic logic and so on?
07:47:48 <Bike> i'm sure there's work on modal type theory.
07:48:19 <kmc> http://blog.sigfpe.com/2006/11/from-l-theorem-to-spreadsheet.html
07:48:42 -!- fftw has quit (Ping timeout: 264 seconds).
07:48:52 <Bike> that was fast.
07:49:06 <Bike> oh, of course they're functors
07:49:29 <shachaf> monadal logic
07:49:36 <shachaf> s/ l//
07:49:37 <kmc> comment says that neither □ nor ◊ is a functor
07:50:02 <zzo38> I have seen that and the comments.
07:50:09 <Sgeo> AFAIK □ is for system related variables and ◊ separates statements
07:50:21 <Sgeo> I... even ◊ is overloaded in different contexts
07:50:28 <Bike> wrong context sgeo
07:50:28 <Sgeo> Is there anything, whatsoever, that isn't?
07:50:44 <shachaf> Hmm, it has □(a -> b) -> □a -> □b, but not (a -> b) -> □a -> □b?
07:50:47 <Sgeo> Bike, I know, ◊ is APL and ... whatever kmc is talking about is some mathematical thing
07:50:53 <monqy>
07:51:08 <shachaf> elliott: What is that?
07:51:17 <Sgeo> Is there _anything_ which stays the same over all contexts that are typically described in English?
07:51:18 <Bike> shachaf: does a -> □a anyway
07:51:26 <Bike> Sgeo: pff no
07:51:29 <Sgeo> all in-use contexts.
07:51:30 <monqy>
07:51:50 <Bike> let me just consult my big ol' book of everything that anybody has ever meant to say
07:51:57 <Bike> ...nope, still a negative answer
07:52:17 <shachaf> monqy: more creativity plz
07:52:24 -!- fftw has joined.
07:52:37 <shachaf> :◊)
07:52:46 <shachaf> :□(
07:52:47 <monqy> :☃(
07:53:03 <shachaf> monqy: ÷ↁ
07:53:12 <Bike> that's a creepy-ass smiley dude
07:53:18 <monqy> =/ … ≠
07:53:40 <monqy> ±)
07:53:52 <shachaf> (∓
07:54:19 <shachaf> Bike: ↁ÷
07:54:26 <Bike> help
07:54:41 <monqy> :↵)
07:55:26 <shachaf> :∘∈
07:55:30 <Bike> «There *is* a nice interpretation of □ as something like C/C++'s 'const'. » kmc the dance floor is calling
07:55:40 <kmc> :3
07:55:58 <kmc> https://twitter.com/Horse_ebooks/status/149754124265721856
07:56:43 <Bike> everything happens so much
07:57:21 -!- Nisstyre-laptop has quit (Quit: Leaving).
07:58:42 <Sgeo> I'm confused.
07:58:55 <Sgeo> horse_ebooks is supposedly a genuine spambot, right?
07:59:00 <Bike> yeah
07:59:26 <Bike> it posts links sometimes
07:59:27 <Sgeo> But the website linked has books that are about horse_ebooks, and that seems to be aware of @horse_ebooks
07:59:33 <Sgeo> (In the profile)
07:59:52 <shachaf> Hmm, □ looks a lot like a comonad. :-(
07:59:57 <shachaf> I wonder what it is.
08:00:00 <Bike> shachaf: so it says in the comments.
08:00:11 <Bike> shachaf: do you mean like in boring old modal logic or what
08:00:36 <Bike> Sgeo: horse_ebooks has transcended marketing ebooks and can now market itself
08:01:20 <kmc> horse_ebooks is a dynamic, viral social media property
08:03:09 <shachaf> Hmm.
08:03:15 <shachaf> Maybe it's still salvageable.
08:03:35 <Bike> □?
08:09:36 <Sgeo> Apparently horse_ebooks changed
08:09:52 <Sgeo> "Multiple articles have been written about why @Horse_ebooks changed and started sucking (on September 14th, 2011.) This is possibly the weirdest example of the trope, considering that Horse_ebooks is a spambot on Twitter with a strange knack for Word Salad Humor."
08:10:08 <Bike> you are not reading tvtropes
08:10:50 <Sgeo> What's bad about tvtropes?
08:11:07 <Bike> i guess i probably shouldn't rant about it
08:11:29 <Sgeo> But then you fail to answer my question.
08:11:43 <Bike> yes, but i have other priorities than answering your question.
08:11:55 <Bike> so instead: you don't even have to read horse_ebooks directly, we have horse_ebooks and a billion fannish blogs to get horse ebooks from
08:12:53 <Sgeo> Oh, incidentally, the thing I quoted from TV Tropes isn't claiming that horse_ebooks started sucking, it's saying that there are people in the fandom shouting that it started sucking.
08:13:31 <Bike> the... horse_ebooks fandom
08:13:39 <Bike> horse_efandom?
08:16:09 <Bike> shachaf: so have you heard about lewis's thing with ◊
08:17:51 <shachaf> lewis?
08:17:59 <Bike> david
08:18:04 <Bike> big in modal logic crap
08:18:31 <Bike> way he figured it, every possible world literally exists in the same way ours does
08:18:59 <Bike> it's like many worlds in quantum except serious
08:19:47 <Sgeo> Bike, sounds like Tegmark
08:20:00 <Sgeo> Well, somewhat like Tegmark
08:20:26 <zzo38> If it is mathematical existence, then I would agree that every possible world is exists.
08:21:08 <Bike> Sgeo: tegmark might be broader and include impossible worlds
08:21:08 <fizzie> Are there horse_ebooks fanfics?
08:21:15 <Bike> there's horse_ecomics.
08:21:37 <Bike> @google horse_ebooks fanfiction
08:21:40 <Sgeo> If there is a mathematical structure in which a mind can be described and will, along some "time" dimension in the structure, exist within the structure, is that mind conscious, and thus make the structure "real"?
08:21:41 <lambdabot> http://horseebooks.tumblr.com/
08:21:41 <lambdabot> Title: horse_ebooks fanfics
08:21:54 <Bike> well then
08:22:15 <Bike> Sgeo: you sure the last clause follows from the second to last?
08:22:50 <Sgeo> Well, if the mind is conscious, then the mind would perceive the structure as "real"
08:23:10 <Bike> (a) that makes it real? (b) that's not necessary
08:23:22 <Bike> what if i make a gnostic AI, eh
08:24:03 <Bike> though, reminds me of that lem story
08:24:09 <Sgeo> If our universe is such a structure, and only exists because it's a possible mathematical description of entities with minds, then our universe is no more "real" than this other mind's universe.
08:24:13 <Sgeo> lem story?
08:24:59 <elliott> qqqqq
08:25:20 <Sgeo> elliott, it's your fault I'm interested in Tegmark.
08:25:28 <Bike> a story about a bunch of trash that gets hit in such a way that it assembles into a "robot"
08:25:41 <Bike> the robot however has no external sensory anything, so it can only think
08:25:57 <Bike> it figures that it's God and imagines a world
08:26:12 <elliott> cant a guy say q
08:26:25 <Bike> also i'm pretty sure tegmark should not try philosophy so, but he did cool stuff with orch-or so i can forgive him.
08:26:38 <Sgeo> orch-or?
08:26:42 <Bike> are there like, non-crazy cosmological theories somewhere
08:26:56 <Bike> Sgeo: penrose's thing about quantum brains
08:27:25 <Sgeo> I thought Penrose's brain stuff was considered crazy, but I never actually looked at it
08:27:30 <Bike> it is
08:27:43 <Bike> tegmark wrote a paper about how unlikely it was that quantum-scale effects could effect anything on the neuro scale
08:27:50 <kmc> Bike: that robot is like a boltzmann brain
08:28:01 <Bike> kmc: basically
08:28:28 <kmc> maybe i'm FreeFulling a bit here
08:28:51 <Sgeo> I don't have enough of a mental model of FreeFull to determine what is meant by "FreeFulling"
08:28:52 <Bike> except that it doesn't have itself as a member of its imagined universe
08:28:56 <Bike> neither do I
08:29:07 <elliott> kmc: its called anmastering
08:29:11 <elliott> where were you in 2008 motherfucker
08:29:14 <Sgeo> I know what zzo38ing is, and Sgeoing would presumably be looking at a bunch of languages in rapid succession
08:29:22 <Bike> also in the end of the story the robot gets hit by another piece of trash and ceases to be
08:29:25 <Bike> fun stuff
08:30:15 <shachaf> I think Sgeoing would be informing #esoteric of everything you do.
08:30:32 <Sgeo> Believe it or not I don't do that.
08:30:41 <Sgeo> Although I have the stereotype of doing that, admittedly.
08:30:43 <Bike> luckily biking is just a convenient mode of transportation
08:30:59 <Sgeo> And maybe I do do that when doing computer stuff.
08:31:09 <Sgeo> Well, no "computer stuff" is way too broad.
08:31:18 <shachaf> Bike: What about Biking?
08:31:20 <elliott> i remember the good old days when sgeo did actually inform #esoteric of everything he died :(
08:31:23 <elliott> ...
08:31:23 <elliott> did
08:31:57 <Bike> shachaf: Biking is just biking while starting a sentence
08:32:06 <elliott> elliotting is saying dumb fucking things all the time
08:32:09 <elliott> remember when i did that; i still do that
08:32:17 <Bike> r u ok
08:33:12 <elliott> no
08:33:20 <Bike> aww
08:33:23 <Bike> stop being not ok
08:33:29 <elliott> thanks you fixed everything
08:33:31 <elliott> bike for president
08:33:56 <Bike> president of the united states of elliott
08:34:19 <shachaf> elliott: is proof general being mean to you
08:36:28 <FreeFull> I have no idea what FreeFulling is myself
08:36:44 <elliott> that seems apropos
08:36:59 <Bike> kmc solve the mystery now
08:40:59 -!- impomatic has quit (Quit: impomatic).
08:51:28 -!- monqy has quit (Quit: hello).
09:01:09 <Sgeo> "Agda safety: we last proved false on April 18th 2012"
09:01:44 <Bike> snerk
09:02:35 <zzo38> Did they fix it?
09:02:46 <zzo38> Does it even need to be fixed?
09:03:19 <Bike> being able to prove an absurdity is often considered a problem, yeah
09:05:06 <zzo38> Well, yes, but I thought maybe they would use unsafe commands or something like that
09:07:14 <Sgeo> Probably if they used unsafe commands to do it, it would not be notable.
09:08:55 -!- FreeFull has quit.
09:09:42 <zzo38> OK
09:22:26 -!- DHeadshot has joined.
09:25:34 -!- epicmonkey has joined.
09:28:46 -!- Bike has quit (Ping timeout: 245 seconds).
09:30:31 -!- oerjan has joined.
09:31:43 <hagb4rd> confutatis
09:31:51 <hagb4rd> maledictis
09:31:58 <hagb4rd> flammis acribus addictis!
09:32:31 <hagb4rd> salve oerjan
09:34:40 * oerjan disrumpit hagb4rdum cum malleo =====||
09:35:50 <oerjan> dico, ave
09:48:09 -!- nooga has joined.
10:11:45 -!- Phantom_Hoover has joined.
10:13:56 <doesthiswork> you should have a look at my language http://pastebin.com/Njckq9v5
10:15:28 <oerjan> doesthiswork: btw have you seen Kayak
10:15:50 <doesthiswork> nope
10:15:53 <oerjan> there's also reversible brainfuck
10:16:17 <oerjan> well, in fact we have a reversible computing category
10:18:14 <oerjan> doesthiswork: typo: "programms"
10:18:23 <doesthiswork> thanks
10:21:00 <oerjan> ", so you are not allowed to do that." <-- is that actually enforced somehow?
10:23:23 <oerjan> the obvious thing after seeing kayak and reversible brainfuck is to make there be a test on exit as well, and the whole thing is a loop if the test doesn't pass
10:23:48 <doesthiswork> kayak looks fun
10:23:57 <doesthiswork> yes it is enforced
10:24:31 <doesthiswork> reversible brain fuck is in a different category
10:24:40 <doesthiswork> it stores it's history
10:24:59 <oerjan> um that's just the TC proof
10:25:03 <oerjan> (which i wrote up)
10:26:10 <doesthiswork> sorry I missunderstood
10:27:44 <oerjan> as long as there is no IO, there's an easy trick called a "cascade" to remove the history again - basically after doing a computation, copy the result elsewhere and then do the computation in reverse. you end up with the original input + the result, but no history.
10:28:23 <doesthiswork> yes, that would cost that many bits of entropy
10:28:42 <oerjan> no. that's still entirely reversible.
10:29:08 <elliott> i suspect differing definitions are being used.
10:29:27 <oerjan> the place you want to copy the result to needs to be something like an array of zero bits.
10:30:27 -!- azaq23 has joined.
10:30:35 -!- azaq23 has quit (Max SendQ exceeded).
10:30:37 <oerjan> well i'm going by http://en.wikipedia.org/wiki/Landauer%27s_principle plus the actual reversible circuit design and language i once read about
10:30:56 -!- azaq23 has joined.
10:31:02 <doesthiswork> those zeroed bits didn't just happen randomly, they were created or found somehow
10:31:16 <oerjan> which means that logical reversibility is the same as "implementable with arbitrary low entropy increase"
10:31:34 <elliott> note that i did not claim both definitions were correct.
10:31:55 <oerjan> doesthiswork: well ok. anything that is to be TC needs to have an infinite source of known bits to use.
10:32:34 <oerjan> but as long as the entire computation is known and reversible, no actual increase in entropy happens by using them
10:33:01 <doesthiswork> yes, not until copy the result
10:33:06 <doesthiswork> *you
10:33:13 <oerjan> no, the copy of the result is not irreversible.
10:33:42 <doesthiswork> but the place you put it just lost it's history
10:33:56 <oerjan> it's just doing a loop of xor's or +
10:34:14 <doesthiswork> xors lose information
10:34:15 <oerjan> doesthiswork: no it didn't. you are copying under the _assumption_ the target was known to be zero.
10:34:20 <oerjan> ...no they don't.
10:34:46 <doesthiswork> sorry I thought you meant setting it to 0 useing xors
10:34:53 <Phantom_Hoover> so i'm going to assume this discussion continued through the night
10:35:00 <oerjan> x = x xor y is an entirely reversible operation when x and y don't share
10:35:19 <oerjan> doesthiswork: no, just for the actual transfer of data.
10:37:17 <doesthiswork> the cost was paid when the bits were set to 0
10:37:45 <doesthiswork> and yes x = x xor y is reverseable
10:38:12 <shachaf> "don't share"?
10:38:28 <oerjan> shachaf: x = x xor x isn't very reversible, sadly
10:38:58 <oerjan> *alias may be the fancy term
10:39:06 <shachaf> Oh, sure.
10:39:27 <doesthiswork> it's why linear types are kinda cool
10:39:52 <oerjan> doesthiswork: well the cost of setting the bits to 0 might just be considered primordial, the cost of getting a low-entropy universe to compute in in the first place.
10:40:55 <doesthiswork> if I don't keep track of all the costs then it loses some appeal
10:41:26 <oerjan> well, like with reversible brainfuck you are assuming you start with an infinite tape of zeroes.
10:41:42 <oerjan> and there is no entropy cost _after_ the start of that.
10:41:54 -!- carado has joined.
10:43:51 <doesthiswork> I was thinking that the infinite tape of zeros was created lazily so that it was easier to keep track of how many bits you'd spent
10:44:03 <oerjan> doesthiswork: anyway the cascade means you use up much fewer bits than if you just kept the history.
10:44:20 <doesthiswork> yes it does
10:45:32 <oerjan> and moreover, if the copied output is used for computing something else, you can do a new cascade to get rid of the intermediate data.
10:45:55 -!- aloril has quit (Ping timeout: 256 seconds).
10:46:24 <oerjan> (i think that was somewhat intended in using the word "cascade", my memory is rather vague.)
10:47:14 <oerjan> kayak also seems to have somewhat lazy creation of zero bits.
10:48:07 <oerjan> as in, you can get a new stack of zeroes any time, and use whatever you want from it, but it has to contain all zeros when you discard it - but they might not be the "original" zeroes.
10:53:08 <oerjan> doesthiswork: btw you don't seem to have a syntax that is the reverse of using t and f
10:53:41 <oerjan> which means it's not obvious how to reverse an arbitrary function
10:55:24 <doesthiswork> t and f were a way to dynamically expand the the bitvector
10:55:40 <doesthiswork> they are represented in the output
10:56:47 <oerjan> doesthiswork: right, but it is useful to be able to reverse them to say "these bits are now in a clean state again, and can be used to allocate more t's or f's later"
10:57:35 <doesthiswork> I see what you mean
10:59:47 -!- aloril has joined.
11:02:37 <oerjan> btw one nice feature of that reversible circuit design i saw was that in it, the bit bucket could be an actual physical device - when you really _wanted_ to delete garbage bits, you had to do so explicitly.
11:03:17 <oerjan> while all the rest of the circuit still was subject to landauer's principle and could work with low energy
11:22:36 <zzo38> Are you mad at God for not existing?
11:23:44 <zzo38> 99% think conformity is wrong. Do you?
11:25:26 <oerjan> zzo38: no, but sometimes for doing so
11:26:40 <zzo38> To which question? Both?
11:26:46 <oerjan> the first one
11:27:00 <oerjan> as for the latter, 99% is obviously a joke
11:27:15 <oerjan> (well so was the former, i guess)
11:27:33 <oerjan> but i'm still wondering if the real number is hypocritically high
11:27:37 <zzo38> Both are joke, I think
11:27:54 <zzo38> Nevertheless it is possible to think about it.
11:33:41 <oerjan> http://www.neverworkintheory.org/ <-- i'd just like to point out that this blog page currently contains the phrase "Or that learning Befunge makes you a better programmer (seriously, I've heard that claim too)."
11:33:48 <oerjan> er
11:33:56 <oerjan> <doesthiswork> kmc : http://www.neverworkintheory.org/
11:34:27 <oerjan> (trying to make a line copying and pasting from two different sources simultaneously is a _pain_ in irssi. hth.)
11:35:46 <oerjan> fizzie: you might have some anecdotical evidence regarding that claim, i suppose?
11:36:06 <fizzie> I made a claim?
11:36:24 <fizzie> Oh, someone else's claim.
11:36:39 <oerjan> i don't know whether _you_ did, but someone apparently did so.
11:37:00 <fizzie> Well, I mean, it's obviously true, I doubt the matter really needs any discussion.
11:37:06 <oerjan> you're like a befunge star programmer, after all
11:37:41 <oerjan> (possibly the only one?)
11:38:29 <zzo38> Are you mad at yourself for not existing?
11:38:40 <fizzie> I don't consider myself much of a Befunge programmer; e.g. mooz was a lot more into it than I, at least a decade ago.
11:38:46 <oerjan> zzo38: no.
11:38:51 <oerjan> ah
11:40:46 <fizzie> Also I have this idiosyncratic style that's somewhere between Befunge-93 and Funge-98; I don't really take advantage of many -98 features (stack stack, ;...;, x) yet I don't follow -93 either. Arguably that's not a good.
11:43:25 <elliott> is mooz or mtve the person who doesn't exist
11:44:28 <oerjan> i think i've seen mtve speak
11:44:58 <fizzie> They're different people. I don't really know about their status with respect to existence.
11:45:10 <fizzie> I've seen mooz online in Skype the other month.
11:45:16 <oerjan> also i have some trouble distinguishing mooz and m00t.
11:48:31 <fizzie> He also made this thing not long ago http://mak.hsl.fi/ it's in Finnish only, but in general you give it a point and it draws a map denoting how many minutes it takes to get there over public transportation.
11:50:20 <elliott> and mtve just shows music videos?
11:50:32 <elliott> this website looks much too fancy for a befunge programmer
12:10:32 -!- nooodl has joined.
12:12:06 -!- jconn has quit (Ping timeout: 264 seconds).
12:13:18 -!- fftw has quit (Ping timeout: 264 seconds).
12:13:55 -!- fftw has joined.
12:19:49 <oerjan> <elliott> Bike: I think you will find that literally everyone on the planet wnats to annoy me <-- hey, you too?
12:21:06 <oerjan> i was all set for a cosy time of log reading and surfing, but someone _had_ to start some horrible low-frequency noise somewhere
12:21:35 <shachaf> oerjan: I don't want to annoy you!
12:22:12 <shachaf> I'm just incompetent at it.
12:22:21 <oerjan> ...darn, my housemate forgot to close his fridge door, that might be why.
12:23:12 <oerjan> he really is not good with doors.
12:23:37 -!- fenris_kcf has left ("ISON NickServ ").
12:24:51 <oerjan> he forgets to close all doors except those i've _told_ him should be open.
12:25:29 <oerjan> (ok, i guess that might just be confirmation bias - he could just be random about them all)
12:28:30 <oerjan> <elliott> okay I believe I have sufficient information to discount the hypothesis that doesthiswork is cpressey <-- he also doesn't seem much like fax. knock on wood.
12:29:01 <oerjan> (if (s)he is (s)he has got much better.)
12:29:50 <doesthiswork> you won't believe me if I say I've never met most of you before, will you.
12:30:12 <oerjan> nah, that explanation is just too ridiculously simple
12:30:56 <Phantom_Hoover> you're ineiros' illegitimate son?
12:31:25 <Phantom_Hoover> you're kallisti's alternate personality
12:31:55 <nortti> 2
12:31:58 <zzo38> To make temporal logic types might be something resembling: type Next x y = x (Maybe y); data Future x y = Now (x y) | Later (Future x (Maybe y)); data Globally x y = Globally (x y) (Globally x (Maybe y)); Is that it? (Perhaps not quite???)
12:32:42 <oerjan> zzo38: i've read somewhere that temporal logic is the curry-howard correspondence of functional reactive programming
12:32:53 <oerjan> there might be a "linear" in there too
12:34:18 <oerjan> zzo38: is x meant to be a Functor or something else?
12:34:44 <zzo38> oerjan: Something of kind (* -> *)
12:34:59 <zzo38> I don't even know if I did it right; it is just an idea I had
12:35:40 <oerjan> ok
12:37:55 <oerjan> 03:48:04: <kmc> is (or, and) a field?
12:37:55 <oerjan> 03:49:17: <Bike> pretty sure it is
12:38:11 <oerjan> no, it's not even a ring because there are no inverses
12:38:12 <Phantom_Hoover> is it...
12:38:14 <Phantom_Hoover> yeah
12:38:25 <Phantom_Hoover> (xor, and) is, of course
12:38:27 <oerjan> (xor, and) is a ring, and a field for a single bit
12:39:00 -!- epicmonkey has quit (Ping timeout: 248 seconds).
12:39:12 <oerjan> (or, and) is a distributive lattice
12:39:37 <oerjan> and a semiring
12:41:00 <oerjan> (xor, and) is a boolean ring
12:42:28 <oerjan> @tell kmc <kmc> is (or, and) a field? <-- no, it's not even a ring because there are no inverses. it is a distributive lattice and a semiring.
12:42:28 <lambdabot> Consider it noted.
12:49:14 <zzo38> What I have is probably not best, perhaps Next would be instead a type family taking * and resulting * (or anything both the same kind) is might be closer how temporal logic is working
12:49:48 <elliott> doesthiswork: wait I have a guess
12:49:52 <elliott> doesthiswork: are you -- I know this is out there --
12:49:55 <elliott> doesthiswork: are you doesthiswork
12:50:07 <doesthiswork> no
12:50:13 <elliott> fuck
12:50:58 -!- epicmonkey has joined.
12:52:03 <zzo38> And then you would have type Globally = Cofree Next, or something like that
12:54:52 <zzo38> (It also means Future = Free Next)
13:03:50 -!- doesthiswork has quit (Quit: Leaving.).
13:04:08 -!- jconn has joined.
13:05:58 <oerjan> <shachaf> Łem
13:06:14 <oerjan> apparently it's Stanisław Lem
13:06:51 <shachaf> oerjan: I know.
13:06:55 <oerjan> which is good, since it means not everyone is hideously mispronouncing "Lem"
13:07:26 <shachaf> I was hoping to get the "dirt on the screen" reäction without mentioning his first name.
13:07:36 <oerjan> unlike Wałęsa
13:08:40 <oerjan> the ł is pronounced like english w, but the w isn't...
13:14:55 -!- oerjan has quit (Quit: leaving).
13:49:30 <zzo38> What is the name of the philosophical idea that under no circumstances can you use the same logic for absolutely everything?
13:53:17 -!- zzo38 has quit (Remote host closed the connection).
13:55:14 -!- boily has joined.
14:04:14 <fizzie> Stanisław Lemmings.
14:04:33 <fizzie> (Isn't that one of the "Lemmings" series of games?)
14:30:48 -!- ais523 has joined.
14:31:30 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
14:38:28 -!- ais523 has quit (Ping timeout: 248 seconds).
14:40:13 -!- FreeFull has joined.
14:50:50 -!- KingOfKarlsruhe has joined.
15:03:59 -!- Frooxius has joined.
15:13:51 -!- ogrom has joined.
15:13:56 -!- upgrayeddd has quit (Ping timeout: 256 seconds).
15:41:31 -!- sirdancealot7 has quit (Ping timeout: 260 seconds).
15:41:52 -!- Regis_ has joined.
15:44:54 -!- Regis__ has joined.
15:46:11 -!- sirdancealot has joined.
15:47:56 -!- Regis_ has quit (Ping timeout: 255 seconds).
15:54:20 -!- ogrom has quit (Quit: Left).
15:58:29 -!- hagb4rd|lounge has joined.
16:09:45 <kmc> http://hamberg.no/erlend/posts/2013-02-18-static-array-indices.html article about that int foo[static 10] we know and love
16:09:46 <lambdabot> kmc: You have 1 new message. '/msg lambdabot @messages' to read it.
16:16:36 -!- DHeadshot has quit (Ping timeout: 248 seconds).
16:26:15 -!- Regis__ has quit (Ping timeout: 256 seconds).
16:44:28 -!- upgrayeddd has joined.
16:58:25 -!- carado has quit (Quit: Leaving).
16:58:32 -!- carado has joined.
17:03:39 <kmc> TIL that Peter Thiel is a hardcore libertarian who thinks that maybe letting women vote was a bad idea
17:03:42 <kmc> http://www.cato-unbound.org/2009/04/13/peter-thiel/the-education-of-a-libertarian/
17:04:48 <elliott> didn't we alraedy know peter thiel was kind of crazy
17:05:34 <kmc> i didn't know specifically
17:05:44 <kmc> that's why it's "today i learned" and not "today elliott learned"
17:07:14 <pikhq> Today elliott learned: cocks
17:07:19 <elliott> by we
17:07:21 <elliott> i mean #esoteric
17:07:26 <elliott> ah yes thiel is the seasteading guy
17:07:44 <kmc> anyway i'll file this away for the next person who tells me startupland is a magical progressive meritocracy
17:07:46 <pikhq> Oh, that particular crazy dude.
17:07:49 <elliott> have to say that I also quite support the idea of getting a great big boat and then putting all the libertarians on it and never hearing from them again
17:07:54 <elliott> go peter thiel!
17:08:11 <kmc> yeah it would be nice
17:08:28 <kmc> i look forward to the boat getting seized by somali pirates on the third day
17:08:32 <kmc> and all governments refusing to help
17:10:23 <kmc> i'm not entirely unsympathetic to libertarians though
17:10:35 <kmc> in fact I think the US might be better off if the Republican Party had more libertarian views
17:10:40 <kmc> i still wouldn't vote for them but
17:10:55 <kmc> right now they basically have only the worst parts of actually conservative ideology
17:12:10 <FreeFull> I say both major US parties suck balls
17:12:25 <pikhq> Seems to me only one will even go so far as sucking balls.
17:12:35 <pikhq> The other just says "gaaaaay".
17:12:52 <kmc> one sucks balls, the other sucks balls in private while grandstanding about the homosexual agenda publicly
17:13:16 <kmc> FreeFull: i agree with you but i don't agree with the usual conclusion "therefore it doesn't matter who i vote for"
17:13:22 <kmc> there's still such a thing as the lesser of two evils
17:13:38 <kmc> especially now that the Republicans might actually be doomed
17:13:51 <kmc> maybe we will get an actual left wing party
17:14:04 <elliott> how's your voting reform working out
17:14:15 <kmc> we have voting reform?
17:14:20 <elliott> I see
17:14:21 <kmc> elliott: how's your voting reform working out oh wait it failed
17:14:26 <elliott> kmc: actually we did reform
17:14:31 <elliott> we turned from a 3-party system to a 2-party system
17:14:35 <kmc> heh
17:14:40 <elliott> because now nobody will ever vote for the third one ever again
17:14:48 <kmc> womp womp
17:16:34 <FreeFull> kmc: Well, I can't vote for either, I'm not an US citizen
17:20:23 <kmc> fair enough
17:20:24 <Phantom_Hoover> <kmc> especially now that the Republicans might actually be doomed
17:20:30 <kallisti> Phantom_Hoover: we are all just alternative personalities of kallisti
17:20:41 <Phantom_Hoover> because they've rightwinged themselves right out of political relevance?
17:20:53 <kmc> basically
17:21:07 <kmc> they can't get anyone other than old white men to vote for them
17:21:08 -!- epicmonkey has quit (Ping timeout: 248 seconds).
17:21:13 <kmc> and the proportion of old white men is shrinking
17:21:23 <Phantom_Hoover> er... don't the old white women vote for them
17:21:27 <kmc> some
17:21:29 <FreeFull> I have a strong feeling the programming language I want to create already exists, but I'm not sure
17:22:38 <kmc> Phantom_Hoover: they're not irrelevant yet, because the country is geographically polarized enough to give them lots of solidly conservative seats in the house
17:22:42 <FreeFull> Wait a minute, IBNIZ seems very similar
17:22:56 <FreeFull> Except in IBNIZ everything but number literals is one character
17:22:56 <kmc> and in the senate you only need 40% to completely obstruct proceedings
17:23:23 <kmc> so we might just be doomed to dysfunction more than anything else
17:23:42 -!- Regis__ has joined.
17:24:41 <kmc> but yeah, they are in an ideological extremism death spiral
17:24:54 <kmc> losing elections because you're too extreme and concluding that the solution is to become more extreme
17:25:58 <mroman> I just noticed something awesome.
17:26:04 <mroman> Burlesque does type checks at runtime.
17:26:23 <mroman> But since it's lazy, it can actually detect type errors befor calculating stuff :)
17:26:32 -!- carado has quit (Ping timeout: 256 seconds).
17:26:32 <mroman> *before
17:28:05 <mroman> some type errors at least.
17:29:39 <kmc> that's neat
17:33:20 -!- kallisti has quit (Ping timeout: 255 seconds).
17:34:14 <mroman> Sadly it does not really have practical use.
17:34:27 <mroman> because you'd have to catch errors
17:34:30 <mroman> and nobody does that :)
17:35:28 <mroman> checking errors means you don't trust your code.
17:35:47 <FreeFull> I don't see why you'd want to delegate type checks to runtime unless you're doing metaprogramming
17:36:26 <mroman> because it's tedious to do static checking.
17:36:44 <mroman> blsq ) {1 2.0 3 4 5.0})pd
17:36:45 <mroman> {1.0 2 3.0 4.0 5}
17:36:52 <mroman> flips int -> double, double -> int
17:37:54 -!- Bike has joined.
17:38:13 <mroman> {1 2.0 3 4 5.0})pd0!!n! wouldn't type check
17:38:24 <mroman> because the type of the first element in the list is changed at runtime to double
17:38:34 <mroman> which you would have to statically check.
17:39:24 <mroman> that essentially allows you to du
17:39:38 <mroman> if collatz_conjecture true: return (double)input else return (int)input
17:39:41 <mroman> *to do
17:39:52 <mroman> and how would one possibly type check that before executing the program?
17:40:09 -!- Arc_Koen has joined.
17:41:04 <mroman> static type checking would require more restrictions
17:41:15 <mroman> _would have required_
17:41:58 <mroman> I'm pretty sure you can't statically type check non-homogenous lists?
17:42:53 <mroman> Because a list might be [Int,Double,String,Maybe Int]
17:43:16 <mroman> and you could do stuff like if something_weird true: rotate left; else rotate right;
17:45:28 <mroman> unless you declare each element's type
17:45:29 <mroman> like
17:45:48 <mroman> rotate :: [Int,String,Maybe Int] -> [String,Maybe Int,Int]
17:48:17 <mroman> hm
17:48:27 -!- WeThePeople has joined.
17:48:28 <mroman> is there actually a GHC extension which would support that?
17:51:01 <FreeFull> You possibly could do it with typeclasses?
17:51:15 <mroman> quantithingy types?
17:51:16 <FreeFull> rotate :: rotatable a => [a] -> [a]
17:51:24 <FreeFull> Rotatable*
17:51:43 <mroman> the problem with that is you probably can't use
17:51:51 <mroman> (head ls)*5 then
17:52:14 <mroman> unless Rotatable implies Num
17:54:52 -!- carado has joined.
17:56:49 <kmc> http://venturebeat.com/2013/02/13/silicon-valley-salaries-developers-make-big-bank-in-2012-infographic/
17:56:58 <kmc> "The average salary of a Silicon Valley developer jumped about $4,300 in 2012 to reach $118,900"
17:56:59 <mroman> asTypeOf (0 :: Int) $ head ls
17:57:05 <mroman> that's probably impossible then.
17:57:39 <FreeFull> mroman: You could add a num constraint to rotate or rotatable
17:57:49 <mroman> yes
17:58:03 <mroman> but it still does not allow me to extract "concrete" types out of the list afterwards
17:58:17 <mroman> whatever the official term is for what I mean with "concrete" type
17:58:19 <FreeFull> As in, check what the type is?
17:58:28 <FreeFull> Or get the type you want?
17:58:31 <Bike> kmc: what, seriously
17:58:38 -!- augur has quit (Remote host closed the connection).
17:58:49 <mroman> well
17:58:54 <mroman> head ls is then Rotatable a
17:59:06 <mroman> -a
17:59:15 <FreeFull> What's ls
17:59:21 <mroman> the list
17:59:35 <mroman> you pass to your rotate :: Rotatable a -> [a] -> [a]
17:59:43 <mroman> *=>
18:00:06 <kmc> Bike: apparently
18:00:08 <FreeFull> Ah
18:00:16 <FreeFull> And asTypeOf is?
18:00:17 <kmc> photo: a young white guy in a bathtub full of cash
18:00:18 <kmc> seems about right
18:00:23 <mroman> :t asTypeOf
18:00:24 <lambdabot> a -> a -> a
18:00:33 <kmc> Bike: then again i'm told rent in SF has gone up by about $600/mo in the past year
18:00:42 <mroman> it's like const
18:00:49 <Bike> geez
18:01:23 <mroman> you can use existentially quantified types
18:01:27 <mroman> and put them in a list
18:01:47 <mroman> like forall a. Num a -> MyThingy a
18:02:00 <kmc> i'm sure paying someone $120k to write mobile social local cow clicker games represents a fundamental value to the economy and is not in any way a bubble ready to pop
18:02:00 <mroman> and you can use Num stuff on elements
18:02:12 <Bike> that just seems crazy high
18:02:15 <mroman> but you can't put a String into it
18:02:26 <mroman> nor can you get an Int out of the List
18:02:31 <FreeFull> So it returns the first value and causes the static typer to fail if the second isn't of the same type
18:02:48 <mroman> > asTypeOf (5 :: Int) 0
18:02:49 <lambdabot> 5
18:03:16 <mroman> > data Foo = forall a. Num a => NumFoo a
18:03:17 <lambdabot> <hint>:1:1: parse error on input `data'
18:03:23 <mroman> worth a try :)
18:03:31 <FreeFull> Actually, rotate shouldn't take a list, just an element
18:04:26 <FreeFull> Hmm, class Rotatable a { rotate :: (Rotatable b) => a -> b } errors out
18:04:58 <mroman> Prelude> data Foo = forall a. Show a => NumFoo a
18:05:05 <mroman> Prelude> let ls = [NumFoo 5, NumFoo 3.14159]
18:05:17 -!- glogbackup has joined.
18:05:18 <mroman> Prelude> :t head ls
18:05:19 <mroman> head ls :: Foo
18:07:08 <FreeFull> Oh, I forgot the where
18:07:40 <mroman> bottom line
18:07:46 <mroman> you can't to squat with the elements in the list.
18:08:59 <FreeFull> That's using a datatype though
18:09:33 <mroman> map (\(NumFoo x) -> NumFoo $ x*3) [NumFoo 3, NumFoo 4.5]
18:09:36 <mroman> ^- that you can do
18:09:41 <mroman> but you can't get x out of NumFoo
18:10:12 <mroman> FreeFull: rotate :: Rotatable a => [a] -> [a]
18:10:18 <mroman> ^- that's pointless anyway
18:10:33 <mroman> you can use rotate :: [a] -> [a] either way
18:10:52 <mroman> unless you wan't a version of rotate which only work with Rotatable
18:10:56 <mroman> *want
18:13:20 <FreeFull> Apparently I can't define instance Rotatable (Maybe Int) without -XFlexibleInstances
18:13:27 -!- sebbu has quit (Ping timeout: 252 seconds).
18:14:18 <kmc> that's not including perks either
18:14:34 <kmc> free meals at work, cleaning service for your house, free testicle wash, endangered animal pet of your choice
18:15:28 <kmc> FreeFull: yup
18:15:55 <kmc> FreeFull: standard Haskell instances must be of the form (C a b ...) where C is a single type constructor and a,b,... are variables
18:16:00 <mroman> whatever
18:16:23 <mroman> it's a fact that no Haskell function can return a different type depending on some input
18:16:31 <boily> kmc: hmm... free and delicious endangered pet. where can I apply?
18:17:57 <FreeFull> kmc: Means I can't do Ratio either
18:18:08 <FreeFull> Well, Ratio Int
18:18:13 <kmc> and the constraints on the instance must be type classes applied to just those type variables
18:19:08 <kmc> these restrictions make it very easy for a compiler to find instances, just by structurally taking apart types
18:19:16 <kmc> FreeFull: -XFlexibleInstances is a fine extension though
18:20:07 -!- Arc_Koen has quit (Quit: The struct held his beloved integer in his strong, protecting arms, his eyes like sapphire orbs staring into her own. "W-will you... Will you union me?").
18:20:36 <mroman> without it Ord [a] wouldn't even be possible, right?
18:20:57 <mroman> which makes it non standard to have Ord [a]?
18:20:59 <kmc> Ord [a] has the standrad form
18:21:05 <mroman> hm.
18:21:10 <kmc> (Ord a) => Ord ([] a)
18:21:22 <kmc> [] is just a funny name for a type constructor
18:21:32 <mroman> but
18:21:41 <mroman> instance Ord String would be illegal?
18:21:48 <mroman> wel
18:21:49 <mroman> obviosuly
18:21:51 <mroman> *well
18:21:53 <kmc> yes
18:22:14 <kmc> Text.Printf has that IsChar hack for this reason
18:22:26 <kmc> instance (IsChar c) => PrintfType [c]; instance IsChar Char
18:22:28 <mroman> it's actually illegal because of two reasons
18:22:32 <mroman> TypeSynonyms
18:22:37 <mroman> and FlexibleInstances
18:22:40 <mroman> if I remember correctly
18:23:12 <mroman> Printf has so many Typehacks I don't understand anything about it
18:23:19 <kmc> it's pretty gross
18:23:22 <Bike> hm
18:23:25 <Bike> what's the type of printf?
18:23:32 <mroman> Printable r => r or
18:23:35 <mroman> :t printf
18:23:36 <Bike> is it variadic?
18:23:36 <lambdabot> PrintfType r => String -> r
18:23:41 <FreeFull> instance Integral a => Rotatable (Ratio a) seems to be allowed but not Integral a => Rotatable a
18:23:41 <mroman> it is variadic
18:23:42 <mroman> somehow.
18:23:43 <kmc> in a language like Haskell you should not still be specifying formats using strings, the worst datatype
18:23:52 <Bike> "somehow" means some gross thing doesn't it
18:24:20 <kmc> it's not that complicated
18:24:39 <mroman> kmc: What do you mean @strings?
18:24:55 <kmc> i mean that you should use typed combinators to express formatting
18:24:56 <Bike> "The PrintfType class provides the variable argument magic for printf. Its implementation is intentionally not visible from this module." cool
18:25:09 <kmc> rather than a string containing "%d %s" whatever that the compiler knows nothing about
18:25:12 <kmc> @quote stark
18:25:12 <lambdabot> AlanPerlis says: The string is a stark data structure and everywhere it is passed there is much duplication of process. It is a perfect vehicle for hiding information.
18:25:37 <FreeFull> Stringly typed things are a nightmare
18:25:56 <kmc> class Foo a where foo :: a
18:25:59 <kmc> instance Foo () where foo = ()
18:26:06 <kmc> instance (Foo a) => Foo (b -> a) where foo x = foo
18:26:26 <kmc> this gives you a "variadic function" foo which will take any number of arguments, ignore them, and produce ()
18:27:09 <FreeFull> What was that language that had a statically-typed compile-time printf?
18:27:11 <mroman> freaky
18:27:21 <mroman> FreeFull: gcc
18:27:25 <mroman> ;P
18:27:35 <FreeFull> No =P
18:27:42 <Bike> yeah if the format string is known ahead of time it's not that hard to verify
18:28:00 -!- ais523 has joined.
18:28:14 <mroman> FreeFull: Using strings?
18:28:39 <kmc> FreeFull: ocaml
18:28:53 <mroman> printf((if rnd(): "%d"; else: "%lf"),6.5) <- can it do that?
18:28:54 <FreeFull> Seems Fortran was what I was thinking of
18:29:13 <kmc> you can do it in Haskell too with TH
18:29:27 <kmc> write a macro to expand a format string into a format combinator expression, the thing I was saying you should write anyway
18:29:32 <mroman> I meant: Can it type check that
18:29:42 <kmc> ocaml can't i think
18:29:58 <kmc> Bike: you can also do variadic function like things without type classes
18:30:06 <kmc> data Nom a b = Moar (a -> Nom a b) | Kthx b
18:30:18 <Bike> ~_~
18:30:19 <kmc> this is kind of weird because the 'function' decides, at runtime, how many arguments it wants
18:30:29 <kmc> and can decide based on the values of previous arguments
18:30:35 <kmc> dependently variadic!
18:30:49 <kmc> of course it's not that different from the lowly [a] -> b
18:31:11 <FreeFull> Moar (\_ -> Kthx 3)
18:31:36 <FreeFull> Moar (\x -> Kthx x)
18:31:40 <FreeFull> But what is it good for?
18:31:45 <Bike> nothing!
18:32:45 -!- augur has joined.
18:32:48 <mroman> it can NomNomNom
18:33:09 <mroman> oh btw
18:33:33 <mroman> I'd like a haskell module with a function which calls a pure function and terminates it after 30s
18:33:37 <mroman> :)
18:34:29 <FreeFull> mroman: Probably exists
18:34:40 <kmc> http://lambda.haskell.org/hp-tmp/docs/2011.2.0.0/ghc-doc/libraries/base-4.3.1.0/System-Timeout.html
18:34:42 <mroman> I'd like to add a time limit to my interpreter
18:34:46 <FreeFull> The outer function would of course be impure
18:34:49 <FreeFull> So in IO
18:34:52 <mroman> but everything runs in a simple State Monad
18:34:54 <kmc> gggggggggggofgggfgfgffyffff
18:35:03 <FreeFull> You'll probably need StateT IO
18:35:07 <kmc> function types involving IO are not "impure"
18:35:14 <mroman> Can't use StateT IO
18:35:23 <kmc> (a -> IO b) is a PURE FUNCTION returning an IO ACTION which is also an INERT FIRST-CLASS VALUE
18:35:27 <FreeFull> kmc: I use impure to mean needs RealWorld here
18:35:28 <mroman> I don't want to rewrite my whole interpreter
18:35:35 <kmc> what the fuck with this RealWorld bullshit
18:35:38 <kmc> whatever
18:35:43 <kmc> calm down kmc, this isn't #haskell
18:35:43 <FreeFull> I guess the function itself isn't impure
18:36:01 <kmc> mroman: so use timeout in conjunction with Control.Exception.evaluate
18:36:31 <olsner> hmm, "British Railway Journeys: Killarney to Cobh" was exactly as boring as the name would suggest
18:36:34 <mroman> why Control.Exception?
18:36:46 <kmc> mroman: timeout puts a timeout on the execution of an IO action
18:36:55 <kmc> (return x) takes no time to execute, even if it would take some time to subsequently evaluate x
18:37:03 <kmc> so you need (evaluate x)
18:37:17 <mroman> so
18:37:20 <FreeFull> So timeout 30 $ evaluate puresomething
18:37:32 <mroman> timeout (return $ reverse [1..]) would do what?
18:37:33 <kmc> or maybe even evaluate (rnf x)
18:37:37 <kmc> to evaluate it deeply
18:37:48 <kmc> mroman: executing that IO action will immediately finish and produce a thunk
18:37:52 <mroman> return Just $ reverse[1..]
18:37:55 <kmc> that thunk, if evaluated, would loop forever
18:37:58 <mroman> and when I print it my interpreter goes boomboom
18:38:11 <mroman> ic.
18:38:14 <mroman> I thought so.
18:38:20 <mroman> and evaluate does some magic to prevent that.
18:38:22 <mroman> neat.
18:38:27 <kmc> main = do x <- return (reverse [1..]); return ()
18:38:36 * FreeFull looks up the definition of evaluate
18:38:40 <olsner> ooh, they said hexham on TV!
18:38:47 <kmc> (evaluate x) is an IO action that, when executed, evaluates x to whnf before finishing
18:38:49 <coppro> olsner: ooh
18:38:54 <kmc> there are plenty of other IO actions that evaluate stuff
18:38:59 <kmc> like putChar
18:39:05 <kmc> has to figure out what the character is before printing it
18:39:18 <mroman> ok
18:39:19 <mroman> thx.
18:39:22 <mroman> I'll try that.
18:39:34 <kmc> as the docs point out, (evaluate x) is different from (return $! x) aka (x `seq` return x) as well
18:39:38 <FreeFull> kmc: Well, once putChar's action is executed, there is nothing to do but evaluate
18:39:55 <Bike> :t ($!)
18:39:56 <lambdabot> (a -> b) -> a -> b
18:39:59 <kmc> because if you simply *evaluate* (evaluate (reverse [1..])) as opposed to executing it, nothing blows up
18:40:02 <Bike> deep
18:40:03 <FreeFull> $! is strict $
18:40:05 <Bike> :t seq
18:40:07 <lambdabot> a -> b -> b
18:40:27 <kmc> the difference between evaluation and execution is really really really really important and anyone who goes on about 'pure vs impure' functions should stop doing that and learn about evaluation vs. execution instead
18:41:21 <FreeFull> Does evaluating (evaluate (reverse [1..])) always give you a thunk?
18:41:35 <kmc> evaluating anything never gives you a thunk
18:41:47 <kmc> a thunk is something that is not evaluated yet
18:41:47 <FreeFull> What does it give you then?
18:41:51 <kmc> evaluating it gives you a value
18:42:12 <FreeFull> So what sort of value does that give you?
18:42:12 <kmc> (evaluate foo) is an expression that evaluates to an IO action
18:42:20 <kmc> as is (putStr "hi world")
18:42:22 <FreeFull> Oh, it gives you an IO action
18:42:26 <kmc> an IO action is a value like any other
18:42:27 <FreeFull> Ok, that makes more sense
18:42:36 <kmc> you can pass them to functions, return them from functions, store them in datastructures, and nothing special happens
18:42:51 <kmc> they just describe side effects that could be performed
18:42:54 <FreeFull> I wonder if you could make an evaluate that works with State rather than IO
18:42:58 <kmc> the only effect which is actually performed is the one named 'main'
18:43:01 <FreeFull> Except you couldn't do the timeout thing
18:43:03 <Bike> so how do you perform th- oh
18:43:33 <Bike> wait, so main has to return for anything to happen?
18:44:08 <FreeFull> Bike: Well, main gets evaluated lazily
18:44:39 <FreeFull> Otherwise main = getChar >>= putchar . map something wouldn't work
18:45:26 <FreeFull> I don't know when exactly the IO actions get performed though
18:46:11 <kmc> FreeFull: it doesn't matter when main gets evaluated
18:46:19 <kmc> in fact it's nonsense to say "main gets evaluated lazily"
18:46:38 <kmc> like any other value in Haskell, it's not evaluated until it's needed
18:46:40 <kmc> which is immediately
18:46:48 <Bike> i'm just asking when or how IO actions are actually performed
18:46:59 <kmc> right and FreeFull is confusing you by talking about evaluation rather than execution
18:47:16 <Bike> execution means performance, right?
18:47:22 <kmc> Bike: to run a haskell program: evaluate 'main' and then perform the action so described
18:47:38 <Bike> whereas evaluation is "just" reduction to whnf
18:47:43 <kmc> an (IO t) is a data structure describing how to perform actions
18:47:43 <kmc> yes
18:47:50 <Bike> makes sense
18:48:08 <FreeFull> I see
18:48:19 <FreeFull> main gets evaluated to a single IO a action
18:48:28 <FreeFull> And then that IO a action gets executed?
18:48:35 <kmc> data IO t = Return t | PutChar Char (IO t) | GetChar (Char -> IO t)
18:48:39 <kmc> here's one model of what IO might look like
18:48:49 -!- sebbu has joined.
18:48:52 <kmc> or it might be data IO t = [JVMBytecode]
18:48:56 <kmc> or data IO t = CProgramAsAString
18:48:58 <kmc> it doesn't matter
18:49:04 <kmc> what matters is that it supports:
18:49:07 <kmc> * return and (>>=)
18:49:13 <kmc> * primitives like putChar, getChar, etc
18:49:23 <kmc> IO is an abstract data type; you're not supposed to know or care what's inside
18:49:26 <kmc> the point is
18:49:28 <kmc> it's just a data structure
18:49:34 <Bike> yeah, that makes sense
18:49:37 -!- nooga has quit (Ping timeout: 248 seconds).
18:49:51 <FreeFull> Is it possible to cause the evaluation itself to never complete, therefore nothing executing?
18:49:55 <kmc> a Haskell program computes such a data structure -- a pure computation -- and then hands it off to the runtime system, which performs those actions
18:49:58 <kmc> FreeFull: sure
18:49:59 <kmc> main = main
18:50:26 <Bike> so i am guessing there's no "perform" function to runtime it for you
18:50:34 <kmc> not in standard Haskell
18:50:39 <FreeFull> kmc: I am thinking something like main = putChar 'x' >> main except I think that would actually execute as much as it can
18:50:40 <kmc> that's what unsafePerformIO does in GHC
18:50:47 <Bike> oh, neat
18:50:48 <kmc> FreeFull: that just puts 'x' over and over
18:50:55 <FreeFull> Yeah, it would
18:50:57 <kmc> FreeFull: you can totally evaluate that 'main' to WHNF
18:51:08 <kmc> in our model above, you get (PutChar 'x' (PutChar 'x' (PutChar 'x' ...
18:51:11 <Bike> will unsafePerformIO will do the performance during evaluation?
18:51:12 <kmc> a data structure
18:51:17 <FreeFull> What can't you evaluate to WHNF?
18:51:31 <kmc> FreeFull: something that doesn't produce a constructor in finite time
18:51:46 <kmc> like (reverse [1..]) or (let x = x in x)
18:51:55 <kmc> if i ask you "what's the first constructor" you can't answer
18:52:04 <FreeFull> So reversing an infinite list or bottom
18:52:06 <kmc> whereas the first constructor of [1..] or (map (+1) [1..]) is (:)
18:52:13 <kmc> FreeFull: anything that can't be evaluated is bottom
18:52:22 <kmc> denotationally, all expressions that can't be evaluated are equivalent
18:52:32 <kmc> whether the actual result is a runtime error or an infinite loop or whatever
18:52:35 <Bike> is the constructor of (reverse [1..]) not (:)?
18:52:48 <kmc> Bike: no
18:52:51 <FreeFull> But simply plopping them in the middle of your IO action means that some of it gets evaluated to WHFN and can get executed, and the rest never will?
18:52:52 <kmc> @src reverse
18:52:52 <lambdabot> reverse = foldl (flip (:)) []
18:52:57 <kmc> well that's not super illuminating
18:53:09 <kmc> but anyway, you have to perform an infinite number of recursive steps before you spit out a (:)
18:53:14 <Bike> oh.
18:53:22 <kmc> FreeFull: i don't understand the question
18:53:23 <kmc> but anyway
18:53:32 <kmc> weak head-normal form means only that the *first* constructor is known
18:53:34 <kmc> the outermost
18:53:53 <kmc> which is why you can evaluate [1..] or (PutChar 'x' (PutChar 'x' (PutChar 'x' ...))) to WHNF
18:53:54 <FreeFull> kmc: If I have f = a >> b >> c
18:54:01 <FreeFull> a can get executed no matter what b is, right?
18:54:13 <kmc> what does that have to do with WHNF and evaluation?
18:54:19 <kmc> are you conflating evaluation and execution again?
18:54:39 <kmc> "a >> b >> c" just evaluates to a datastructure which describes the act of doing a, then b, then c
18:54:43 <FreeFull> Because f needs to get evaluatede
18:54:51 <FreeFull> But b is something that you can't evaluate
18:55:14 <FreeFull> Like bottom
18:55:52 <kmc> i don't know whether the Haskell report specifies whether IO's (>>) is strict in both arguments
18:55:56 <kmc> it probably isn't
18:56:14 <kmc> because (a >> b) is supposed to be equivalent to (a >>= (\_ -> b))
18:56:28 <kmc> and even if (>>=) forces both arguments, forcing (\_ -> undefined) is fine
18:56:47 <kmc> so it would only happen that (>>) is strict in both args if someone explicitly defines a "more efficient" version of (>>)
18:57:05 <mroman> hm
18:57:16 <mroman> kmc: Does Control.OldException.evaluate the same?
18:57:18 <kmc> but again, whether (>>) evaluates a or b now or later has no bearing on when the effects described by a or b are actually performed
18:57:22 <kmc> mroman: dunno
18:57:30 <FreeFull> I see
19:01:51 -!- blsqbot has joined.
19:02:03 <mroman> !blsq 50 2B!
19:02:04 <blsqbot> "110010"
19:02:11 <mroman> !blsq 1R@<-
19:02:27 -!- blsqbot has quit (Read error: Connection reset by peer).
19:02:30 <mroman> hm
19:02:31 <mroman> ok
19:02:37 <mroman> that timeout is too high :)
19:02:52 <boily> oh! a new bot!
19:03:14 -!- blsqbot has joined.
19:03:20 <mroman> !blsq 1R@<-
19:03:37 -!- blsqbot has quit (Read error: Connection reset by peer).
19:03:42 <mroman> hm.
19:05:32 <mroman> Timeout does not work the way it should.
19:07:22 <mroman> or it just allocates too much memory way too fast.
19:08:15 <mroman> but it takes 10s for out of memory to appear
19:08:26 <mroman> timeout should've killed it already by then.
19:08:41 <FreeFull> Is it me or is Racket the best you can get Scheme/Lispwise
19:09:16 <Bike> it's you and probably a good number of people who use racket
19:10:02 <FreeFull> Is it also the best you can get for DSLs?
19:11:20 <mroman> ah well.
19:12:06 <kmc> FreeFull: it's just you
19:12:56 -!- monqy has joined.
19:14:02 <FreeFull> kmc: Racket's DSLs are rather nice, although I don't know how much you can embed them into programs written in a different language
19:14:17 <shachaf> kmc: Do you know if it'd be valid for GHC to assume strict fields are tagged pointers to evaluated values?
19:14:43 <shachaf> Or whether the GC/something else makes that invalid.
19:17:25 -!- NuclearMeltdown has joined.
19:18:05 <quintopia> fizzie: aren't you sange.fi? or am i confused
19:20:23 <quintopia> oh it looks unmaintained, i must be wrong
19:22:00 <quintopia> oh fizzie is zem,fi
19:22:48 <quintopia> elliott: do you know who had esoteric.sange.fi
19:24:57 <mroman> kmc: It does not work if the program returns an infinite list
19:25:03 <mroman> because haskell does not evaluate it
19:25:32 <mroman> because it don't need to.
19:26:46 <kmc> shachaf: i don't know
19:27:00 <mroman> It works as it should.
19:27:23 <coppro> what is "133mXe" and why is it different from 133Xe?
19:27:52 <FreeFull> coppro: For what? Java flags?
19:28:06 <Bike> sounds pretty leet
19:28:44 -!- blsqbot has joined.
19:28:53 <mroman> !blsq 1 10r@++
19:28:53 <blsqbot> 55
19:28:59 <mroman> !blsq 1R@<-
19:29:19 <mroman> !blsq 6 -.^^0\/r@\/'0\/.*'1+]\/{\/{rt}\/E!XX}x/+]m[sp
19:29:20 <blsqbot> 1 0 0 0 0 0
19:29:25 <mroman> neat.
19:29:41 <mroman> !blsq "Go nuts!"sh
19:29:41 <blsqbot> Go nuts!
19:30:16 <boily> ~echo !blsq "`echo Bot chain!"sh
19:30:16 <mroman> !blsq "Hello, World"R@
19:30:17 <blsqbot> {"" "H" "e" "He" "l" "Hl" "el" "Hel" "l" "Hl" "el" "Hel" "ll" "Hll" "ell" "Hell" "o" "Ho" "eo" "Heo" "lo" "Hlo" "elo" "Helo" "lo" "Hlo" "elo" "Helo" "llo" "Hllo" "ello" "Hello" "," "H," "e," "He," "l," "Hl," "el," "Hel," "l," "Hl," "el," "Hel," "ll," "Hll," "ell," "Hell," "o," "Ho," "eo," "Heo," "lo," "Hlo," "elo," "Helo," "lo," "Hlo," "elo," "Helo," "llo," "Hllo," "ello," "Hello," " " "H " "e " "He " "l " "Hl " "el " "Hel " "l " "Hl " "el
19:30:29 <FreeFull> R is permutations?
19:30:38 -!- cuttlefish has joined.
19:30:41 <boily> ~echo !blsq "`echo Bot chain!"sh
19:30:41 <cuttlefish> !blsq "`echo Bot chain!"sh
19:30:45 <coppro> FreeFull: isotopes of Xenon
19:30:58 <fizzie> quintopia: atehwa.
19:30:59 <mroman> R@ is all subsequences
19:31:01 <fizzie> quintopia: Is sange.fi.
19:31:04 <mroman> !blsq {1 2 3}R@
19:31:05 <blsqbot> {{} {1} {2} {1 2} {3} {1 3} {2 3} {1 2 3}}
19:31:07 <boily> !blsq "test?"sh
19:31:08 <blsqbot> test?
19:31:08 <quintopia> fizzie: thanks
19:31:12 <boily> ~echo !blsq "`echo Bot chain!"sh
19:31:13 <cuttlefish> !blsq "`echo Bot chain!"sh
19:31:22 <boily> darn.
19:31:33 <FreeFull> no, seems to be combinations actually
19:31:50 -!- ChanServ has set channel mode: +o ais523.
19:31:53 <mroman> no
19:31:55 <ais523> I want to try to infinite-botloop
19:31:58 <mroman> !blsq {1 2 3}3cb
19:31:59 <blsqbot> {{1} {2} {3} {1 1} {1 2} {1 3} {2 1} {2 2} {2 3} {3 1} {3 2} {3 3} {1 1 1} {1 1 2} {1 1 3} {1 2 1} {1 2 2} {1 2 3} {1 3 1} {1 3 2} {1 3 3} {2 1 1} {2 1 2} {2 1 3} {2 2 1} {2 2 2} {2 2 3} {2 3 1} {2 3 2} {2 3 3} {3 1 1} {3 1 2} {3 1 3} {3 2 1} {3 2 2} {3 2 3} {3 3 1} {3 3 2} {3 3 3}}
19:31:59 <ais523> so I'm getting ready to +m to stop it
19:32:04 <mroman> ^- that's combinations
19:32:09 <Bike> everybody brace yourselves
19:32:10 <mroman> variations
19:32:12 <mroman> to be exact.
19:32:15 <FreeFull> Not combinations, subsequences
19:32:27 <mroman> !blsq {1 2 3}r@
19:32:27 <blsqbot> {{1 2 3} {2 1 3} {3 2 1} {2 3 1} {3 1 2} {1 3 2}}
19:32:28 * boily straps himself to his desk with some CAT5 cable
19:32:32 <mroman> ^- permutations
19:32:35 <FreeFull> > subsequences [1,2,3]
19:32:37 <lambdabot> [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
19:32:39 <nortti> #writefile foo ~echo #cat foo
19:32:42 <nortti> #cat foo
19:32:42 <oonbotti> ~echo #cat foo
19:32:43 <cuttlefish> #cat foo
19:32:43 <oonbotti> ~echo #cat foo
19:32:43 <cuttlefish> #cat foo
19:32:44 <oonbotti> ~echo #cat foo
19:32:44 <cuttlefish> #cat foo
19:32:45 <oonbotti> ~echo #cat foo
19:32:45 <cuttlefish> #cat foo
19:32:46 <oonbotti> ~echo #cat foo
19:32:46 <cuttlefish> #cat foo
19:32:48 <oonbotti> ~echo #cat foo
19:32:48 <cuttlefish> #cat foo
19:32:49 <oonbotti> ~echo #cat foo
19:32:49 <cuttlefish> #cat foo
19:32:50 <oonbotti> ~echo #cat foo
19:32:50 -!- cuttlefish has quit (Remote host closed the connection).
19:32:53 <Bike> this is a boring botloop
19:32:56 <Bike> needs more porn
19:33:01 <nortti> #rm foo
19:33:01 <boily> had to ^C my bot. sorry.
19:33:06 <ais523> boily: I could have stopped it
19:33:10 -!- cuttlefish has joined.
19:33:11 <ais523> that's why I opped myself
19:33:20 <Gregor> #echo Another shellbot?
19:33:21 <oonbotti> Another shellbot?
19:33:21 <FreeFull> #cat foo
19:33:25 <Gregor> #env
19:33:25 <mroman> !blsq 14 1 0rn
19:33:26 <blsqbot> {1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1
19:33:44 <FreeFull> mroman: What is that
19:33:58 <ais523> hmm, what language is !blsq anyway?
19:34:01 <FreeFull> Infinite list of random balues?
19:34:21 <boily> `? balue
19:34:27 <HackEgo> balue? ¯\(°_o)/¯
19:34:32 <mroman> I should probably add a take 100
19:34:35 <mroman> to not float irc :)
19:34:41 <mroman> !quit
19:34:41 -!- blsqbot has quit (Quit: Exiting).
19:34:46 -!- ais523 has set channel mode: -o ais523.
19:35:03 <nortti> Gregor: not shellbot, just implement some fs functions
19:35:25 -!- blsqbot has joined.
19:35:29 -!- GreyKnight has quit (Ping timeout: 248 seconds).
19:35:31 <mroman> !blsq 14 1 0rn
19:35:32 <blsqbot> {1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1
19:35:33 <FreeFull> balue = value
19:35:45 <mroman> FreeFull: rn is Random number in range
19:36:01 <mroman> !blsq 3 14 0 10rn.+
19:36:02 <blsqbot> {6 7 7}
19:36:04 <mroman> !blsq 3 14 0 10rn.+
19:36:04 <blsqbot> {6 7 7}
19:36:08 <mroman> 14 is the seed ;)
19:36:09 <FreeFull> What's 14 here? The initial seed?
19:36:12 <FreeFull> Ah
19:36:28 -!- ais523 has left ("<fungot> fizzie: it makes demons fly out of my window, washing the windows api").
19:36:36 <FreeFull> .+ is take?
19:36:37 -!- ais523 has joined.
19:36:49 <ais523> "interesting typo", not "ragepart"
19:36:55 <mroman> FreeFull: Yes.
19:37:03 <mroman> Hm.
19:37:10 <mroman> But now somebody might force blsqbot to produce 80 newlines
19:37:17 <mroman> then take 100 would not suffice.
19:37:19 <mroman> !quit
19:37:19 -!- blsqbot has quit (Client Quit).
19:37:38 <shachaf> @localtime ais523
19:37:39 <lambdabot> Local time for ais523 is Wed Feb 20 19:37:39 2013
19:37:47 <FreeFull> I don't think the arguments to .+ are in the right order, it'd make more sense for the number to take to be second to me
19:38:48 -!- blsqbot has joined.
19:39:00 -!- oerjan has joined.
19:39:01 <mroman> !blsq "hello\nyou"sh
19:39:01 <blsqbot> hello
19:39:14 <mroman> !blsq {1 2 3 4}4.+
19:39:14 <blsqbot> ERROR: Burlesque: (.+) Invalid arguments!
19:39:21 <mroman> !blsq 4{1 2 3 4}.+
19:39:22 <blsqbot> {1 2 3 4}
19:39:43 <FreeFull> Damn you whoever invented .+
19:39:51 <mroman> It was me :)
19:40:08 <FreeFull> mroman: Why did you put the number first in its arguments
19:40:53 <FreeFull> Makes it less composable than the swapped version
19:41:05 <mroman> yeah.
19:41:12 <FreeFull> !blsq 3 4 s
19:41:13 <blsqbot> ERROR: (line 1, column 6):
19:41:20 <FreeFull> !blsq 3 4 .s
19:41:21 <blsqbot> ERROR: Unknown command: (.s)!
19:41:30 <mroman> !blsq "FreeFull"F:u[vv^^{1\/?/2\/LG}m[?*++
19:41:32 <FreeFull> Can I have a look at the language spec or something?
19:41:33 -!- blsqbot has quit (Remote host closed the connection).
19:41:53 -!- doesthiswork has joined.
19:41:55 <mroman> hu
19:42:00 <mroman> now it crashed o_O
19:42:05 <mroman> FreeFull: http://mroman.ch/burlesque/lref.html
19:42:38 -!- blsqbot has joined.
19:42:41 <mroman> !blsq "FreeFull"F:u[vv^^{1\/?/2\/LG}m[?*++
19:42:51 <mroman> well that's interesting.
19:42:52 -!- blsqbot has quit (Remote host closed the connection).
19:42:58 <FreeFull> Should be Str a, Int b Block a, Int b
19:46:06 -!- blsqbot has joined.
19:46:09 <mroman> !blsq "FreeFull"F:u[vv^^{1\/?/2\/LG}m[?*++
19:46:19 <FreeFull> What's the code meant to do?
19:46:19 -!- blsqbot has quit (Remote host closed the connection).
19:46:30 <mroman> calculate the entropy of your nick.
19:47:24 -!- blsqbot has joined.
19:47:24 -!- blsqbot has quit (Remote host closed the connection).
19:47:36 <mroman> I have no idea
19:47:42 <mroman> ghci just terminates on that program
19:48:22 <FreeFull> No error or anything?
19:48:36 <mroman> nope
19:48:45 <FreeFull> What about ghc?
19:49:08 <mroman> #tutbot-testing
19:49:09 <mroman> 20:47 < mroman> !blsq "FreeFull"F:u[vv^^{1\/?/2\/LG}m[?*++
19:49:09 <mroman> 20:47 < blsqbot> 2.25
19:49:18 <mroman> ^- it works in #tutbot-testing
19:49:27 <mroman> This channel is cursed!
19:49:50 <FreeFull> Maybe the IRC layer is giving it something extra
19:49:51 -!- gs2bot has joined.
19:49:59 <nooodl> !gs2 48
19:50:00 <gs2bot> "Hello, world!\n"
19:50:05 <nooodl> mroman: ^ :)
19:50:12 <FreeFull> What's that? Ghostscript?
19:50:17 <nooodl> golfscript 2
19:50:20 <FreeFull> Ah
19:50:23 <FreeFull> !gs2 1
19:50:23 <gs2bot> "\n"
19:50:28 <FreeFull> !gs2 3
19:50:29 <gs2bot> "\n"
19:50:29 <shachaf> :☝)
19:50:30 <nooodl> there's a little "parser"
19:50:33 -!- blsqbot has joined.
19:50:40 <FreeFull> !gs2 4
19:50:40 <mroman> !blsq "FreeFull"F:u[vv^^{1\/?/2\/LG}m[?*++
19:50:41 <gs2bot> "\n"
19:50:41 <blsqbot> 2.25
19:50:45 <FreeFull> !gs2 4848
19:50:45 <gs2bot> "Hello, world!Hello, world!\n"
19:50:54 <nooodl> for actual ascii code, you need "". anything else is parsed as byte values
19:50:58 <nooodl> so
19:50:59 <mroman> now it works :)
19:51:01 <nooodl> !gs2 "2 2+"
19:51:02 <gs2bot> "4\n"
19:51:14 <nooodl> !gs2 32 20 32 2B
19:51:14 <gs2bot> "4\n"
19:51:18 <nooodl> ^ those are equivalent
19:51:19 <FreeFull> And what's byte 48?
19:51:27 <mroman> probably "print hello world"?
19:51:37 <nooodl> just the string value hello world, actually
19:51:46 <nooodl> which gets printed after the end of the program
19:51:56 <nooodl> you could reverse it first, though
19:51:57 <mroman> !blsq 88fC
19:51:58 <blsqbot> {2 2 2 11}
19:51:59 <nooodl> !gs2 "HR"
19:52:00 <gs2bot> "\n"
19:52:02 <nooodl> oops
19:52:04 <nooodl> !gs2 "Hr"
19:52:04 <gs2bot> "!dlrow ,olleH\n"
19:52:07 <nooodl> ^
19:52:18 <nooodl> (r is reverse)
19:52:33 <mroman> !blsq "Hello, World!")<-<-
19:52:34 <blsqbot> "!DLROw ,OLLEh"
19:53:05 <FreeFull> How do you loop?
19:53:06 <mroman> !blsq "Hello, World!"F:
19:53:07 <blsqbot> {{0.23076923076923078 'l} {0.15384615384615385 'o} {7.692307692307693e-2 'r} {7.
19:53:17 <mroman> FreeFull: loop?
19:53:22 <mroman> Burlesque has a while loop
19:53:34 <mroman> but usually you wan't an implicit loop
19:53:37 <mroman> like map, reduce, filter
19:53:43 <mroman> *want
19:53:48 -!- SirCmpwn has quit (Excess Flood).
19:53:55 <FreeFull> Well, I was thinking loop or recurse
19:53:56 <nooodl> i think burlesque is also partially based on golfscript?
19:54:19 <mroman> It's actually based on J
19:54:22 <mroman> well
19:54:28 <mroman> you see
19:54:34 <FreeFull> If it has while, then it probably is turing complete
19:54:37 <mroman> I'm too dumb to learn J
19:54:48 <mroman> so I created my own weird looking weird version of it ;)
19:54:52 <mroman> FreeFull: It is turing complete.
19:55:00 <nooodl> pfff, J is easy, just type a bunch of emoticons and #$%&.:
19:55:16 <mroman> You can translate Underload to blsq
19:55:17 <nooodl> you'll have a mandelbrot plotter in no time
19:55:22 <mroman> and recently I wrote a Brainfuck interpreter
19:55:35 <FreeFull> !blsq { } { 1 } w!
19:55:35 -!- blsqbot has quit (Remote host closed the connection).
19:55:57 <nooodl> hmm, someone give me something really easy to write in GS2
19:56:07 <nooodl> like, easier than fizzbuzz
19:56:08 <mroman> :FreeFull!~freefull@defocus/sausage-lover PRIVMSG #esoteric :!blsq { } { 1 } w!
19:56:09 <FreeFull> nooodl: infinite loop of a
19:56:11 <mroman> El resulto: *Main>
19:56:12 <mroman> see
19:56:16 <mroman> it just returns to Main
19:56:18 <mroman> no error, nothing.
19:56:27 <nooodl> that might actually crash the bot :')
19:56:27 <mroman> maybe PRIVMSG :
19:56:29 <nooodl> let's find out
19:56:30 <mroman> is invalid irc syntax?
19:56:31 <FreeFull> mroman: Would have to see the implementation
19:56:44 <mroman> i.e sending an empty string?
19:56:53 <mroman> I'm not sure whether it expects at least a space after : ?
19:57:00 <mroman> lemme try
19:57:18 <FreeFull> mroman: You'd get an error from the server at least if you sent something wrong
19:57:54 <mroman> hm. right.
19:58:07 -!- blsqbot has joined.
19:58:11 <mroman> well. try again.
19:58:24 <FreeFull> !blsq { }
19:58:25 <blsqbot> ~ {}
19:58:25 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
19:58:30 <FreeFull> !blsq { } { 1 }
19:58:31 <blsqbot> ~ {1}
19:58:31 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
19:58:34 <FreeFull> !blsq { } { 1 } w!
19:58:34 -!- blsqbot has quit (Remote host closed the connection).
19:58:38 <Phantom_Hoover> hahaha
19:58:38 <FreeFull> Maybe it's the !
19:58:40 -!- SirCmpwn has joined.
19:58:54 <Bike> good bot
19:59:34 <nooodl> i doubt this is going to work --
19:59:35 <nooodl> !gs2 "{°aP1}D"
19:59:53 <nooodl> !gs2 "2 2+"
19:59:54 <gs2bot> "4\n"
20:00:02 <nooodl> oh it just didn't output anything
20:00:06 <nooodl> wait
20:00:17 <nooodl> !gs2 "{" B0 "aP1}D"
20:00:26 -!- blsqbot has joined.
20:00:28 <mroman> !blsq { } { 1 } w!
20:00:29 -!- blsqbot has quit (Remote host closed the connection).
20:00:40 <mroman> ok.
20:00:46 <mroman> it crashes before writing to the network handle
20:00:48 <nooodl> it's running that thread forever
20:00:53 <nooodl> and never returns any output
20:00:56 <nooodl> whoops.
20:01:08 <FreeFull> I want to try something
20:01:48 -!- blsqbot has joined.
20:01:49 <nooodl> this bot was hacked together in 10 minutes or so...
20:01:49 <mroman> let me try :trace main
20:01:53 <mroman> !blsq { } { 1 } w!
20:01:53 -!- blsqbot has quit (Remote host closed the connection).
20:02:03 <FreeFull> mroman: I wanted to try !blsq !
20:02:08 <mroman> oh.
20:02:20 -!- blsqbot has joined.
20:02:22 <mroman> go on
20:02:24 <FreeFull> !blsq !
20:02:24 <blsqbot> ~ ERROR: (line 1, column 2):
20:02:25 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:02:28 <FreeFull> !blsq w!
20:02:28 <blsqbot> ~ ERROR: Burlesque: (w!) Invalid arguments!
20:02:28 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:02:32 <FreeFull> I see
20:02:41 <boily> hm. I really need to update my bot.
20:02:42 <mroman> !blsq 1R@<-<>
20:02:42 -!- blsqbot has quit (Remote host closed the connection).
20:02:45 <FreeFull> !blsq { } { 0 } w!
20:02:55 <mroman> It apparently crashes on timout.
20:03:17 <FreeFull> So timeout is reached, and then it crashes rather than doing the right thing?
20:03:27 <mroman> :D
20:03:31 <mroman> I'm such a dumbass
20:03:37 <mroman> head
20:03:41 <mroman> > head ""
20:03:42 <lambdabot> *Exception: Prelude.head: empty list
20:03:46 <mroman> Yeah.
20:03:50 <FreeFull> Lol
20:03:55 <mroman> Damn you unsafeHead!
20:04:10 <mroman> > ("~ "++) . take 80 . head . lines $ ""
20:04:12 <lambdabot> "~ *Exception: Prelude.head: empty list
20:04:28 <mroman> how uncool.
20:04:36 <mroman> :t head'
20:04:38 <lambdabot> Not in scope: head'
20:04:38 <lambdabot> Perhaps you meant one of these:
20:04:38 <lambdabot> `head' (imported from Data.List),
20:05:08 <boily> ~eval head mempty
20:05:08 <FreeFull> You want something that for [] returns [], and for [[a]] returns [a], right?
20:05:09 <cuttlefish> Error (1): No instance for (GHC.Show.Show a0)
20:05:09 <cuttlefish> arising from a use of `M8322072285244073253.show_M8322072285244073253'
20:05:09 <cuttlefish> The type variable `a0' is ambiguous
20:05:09 <cuttlefish> Possible fix: add a type signature that fixes these type variable(s)
20:05:09 <cuttlefish> Note: there are several potential instances:
20:05:10 <cuttlefish> instance GHC.Show.Show GHC.Types.Double
20:05:10 <cuttlefish> -- Defined in `base:GHC.Float'
20:05:11 <cuttlefish> instance GHC.Show.Show GHC.Types.Float
20:05:11 <cuttlefish> -- Defined in `base:GHC.Float'
20:05:12 <mroman> > ("~ "++) . take 80 . head . lines . (++"WHAT") $ ""
20:05:12 <cuttlefish> instance (GHC.Real.Integral a, GHC.Show.Show a) =>
20:05:12 <cuttlefish> GHC.Show.Show (GHC.Real.Ratio a)
20:05:13 <cuttlefish> -- Defined in `base:GHC.Real'
20:05:13 <lambdabot> Terminated
20:05:25 <mroman> > ("~ "++) . take 80 . head . lines . (++"WHAT") $ ""
20:05:25 <boily> yeah. really, really need to update my bot.
20:05:26 <lambdabot> "~ WHAT"
20:05:35 <mroman> > ("~ "++) . take 80 . head . lines . (++" ") $ ""
20:05:37 <lambdabot> "~ "
20:05:39 <mroman> ah
20:05:42 <mroman> dummy space will do
20:05:44 <FreeFull> boily: bind . take 1 I think this will work
20:06:14 <FreeFull> Wait, not bind
20:06:15 <FreeFull> join
20:06:26 -!- blsqbot has joined.
20:06:33 <FreeFull> :t join . take 1
20:06:34 <lambdabot> [[a]] -> [a]
20:06:42 <mroman> !blsq { } { 1 } w!
20:06:43 <blsqbot> ~
20:06:43 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:06:46 <mroman> hehe
20:06:48 <mroman> perfect
20:06:49 <boily> FreeFull: I'm looking at System.Plugins' docs. planning to rewrite just about everything, now that just about every lib I use is outdated, and I can't SSL my bot.
20:07:05 <mroman> !blsq {{1 2 3}{4 5 6}}tp
20:07:06 <blsqbot> ~ {{1 4} {2 5} {3 6}}
20:07:06 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:07:08 -!- augur has quit (Read error: Connection reset by peer).
20:07:12 <mroman> !blsq {{1 2 3}{4 5 6}}tp)++
20:07:13 <blsqbot> ~ {5 7 9}
20:07:13 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:07:24 <Bike> ~metar
20:07:24 <cuttlefish> --- ~metar station
20:07:25 <FreeFull> boily: I meant to say that to mroman, I don't know why I said it to you
20:07:28 <mroman> !blsq {{1 2 3}{4 5 6}}tp)++2?^++<-
20:07:28 <blsqbot> ~ 551
20:07:29 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:07:33 <mroman> oh
20:07:33 <Bike> ~yi
20:07:33 <cuttlefish> Your divination: "Enveloping" to "Stripping"
20:07:35 -!- augur has joined.
20:07:37 <mroman> sry
20:07:40 <mroman> !quit
20:07:40 -!- blsqbot has quit (Client Quit).
20:07:41 <Bike> Whoa there, cuttlefish.
20:07:49 <mroman> ~is already taken by someone :)
20:07:50 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:07:50 <FreeFull> mroman: So are you using the space workaround or join . take 1
20:08:03 <boily> FreeFull: it may have applied. I still have much haskell to learn, and who knows, perhaps a bind or a join is the right thing to do.
20:08:15 <boily> mroman: ~ is my cuttlefish's prefix.
20:08:50 <boily> Bike: I'm not responsible for that, only your subconscious.
20:09:18 -!- blsqbot has joined.
20:09:29 <mroman> !blsq "boily: ic"sh
20:09:30 <blsqbot> boily: ic
20:09:36 <FreeFull> There should be an official bot list
20:09:38 <mroman> !blsq "~ huhu"sh
20:09:39 <blsqbot> ~ huhu
20:09:43 <FreeFull> And all bots are meant to use that list to ignore each other
20:09:49 <Bike> boily: is it i ching or what
20:10:09 <mroman> my bot adds a safety space before printing stuff
20:10:13 <boily> Bike: it is i ching indeed.
20:10:16 <mroman> that's the usual convention on other channels.
20:10:22 <Bike> cool
20:10:35 <Bike> mroman: i should write a bot with space as the command character
20:10:44 <FreeFull> !blsq 3
20:10:44 <blsqbot> 3
20:10:56 <mroman> And I would call you idiot then
20:11:12 <Bike> :(
20:11:15 <FreeFull> I once wrote an useless bot in s-lang
20:11:18 <mroman> !blsq {)}
20:11:18 <blsqbot> {)}
20:11:19 <boily> Bike: that's more evil thant ørjan and/or elliott!
20:11:27 <FreeFull> S-lang's sockets are nicer than C's
20:11:31 <boily> (that being implementing a space-bot.)
20:11:51 <mroman> !blsq }:)
20:11:51 <blsqbot>
20:12:05 <mroman> I love how smilies are valid programs.
20:12:10 <mroman> !blsq :)
20:12:10 <blsqbot> ERROR: Unknown command: (:))!
20:12:15 <FreeFull> !blsq (:
20:12:15 <blsqbot> ERROR: (line 1, column 3):
20:12:21 <mroman> not all of them
20:13:46 <mroman> !blsq {12 15 14 16 14 25}{16 16 16 16 16 16}ct5 0.95cq.<{"The die is ok!""The die is probably not ok!"}chsh
20:13:46 <blsqbot> The die is ok!
20:14:05 <mroman> I think it starts turning unfair on 29 sixes
20:14:12 <mroman> !blsq {12 15 14 16 14 29}{16 16 16 16 16 16}ct5 0.95cq.<{"The die is ok!""The die is probably not ok!"}chsh
20:14:12 <blsqbot> The die is probably not ok!
20:14:15 <mroman> yeah.
20:14:25 -!- gs2bot has quit (Read error: Connection reset by peer).
20:15:40 <mroman> !blsq {81 22 100 201 227 0 87 159 74 100 64 32}{2B!8'0P[}\m6co{L[6==}f[{2B!32.+L[}\m
20:15:41 <blsqbot> "419DR>, 5Y]*9$ @"
20:15:55 <mroman> Thanks. That's so sweet of you to say.
20:16:50 <mroman> my bf interpreter is probably too long.
20:17:12 <mroman> !bf_txtgen ABC
20:17:17 <EgoBot> ​39 ++++++++[>++++++++>+>><<<<-]>+.+.+.>++. [72]
20:17:17 -!- blsqbot has quit (Remote host closed the connection).
20:17:17 <mroman> `bf_txtgen ABC
20:17:19 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: bf_txtgen: not found
20:17:48 <mroman> EgoBot killed my bot!
20:18:15 <Gregor> lul
20:18:43 <mroman> it sent me a privmsg
20:18:54 <mroman> :EgoBot!codu@codu.org PRIVMSG #esoteric :â*Main>
20:20:12 -!- blsqbot has joined.
20:20:31 <mroman> !bf_txtgen ABC
20:20:33 <EgoBot> ​39 +++++[>+++++++++++++>++>><<<<-]>.+.+.>. [41]
20:20:33 -!- blsqbot has quit (Remote host closed the connection).
20:20:42 <mroman> lulz.
20:21:04 <mroman> hPutChar :D
20:22:51 -!- blsqbot has joined.
20:22:55 <mroman> !bf_txtgen ABC
20:22:56 <EgoBot> ​39 +++++++++[>+++++++>+>><<<<-]>++.+.+.>+. [183]
20:22:56 -!- blsqbot has quit (Remote host closed the connection).
20:23:10 <mroman> yeah. It just can't print the darn thing to stdout
20:23:23 <oerjan> <mroman> dummy space will do <-- takeWhile (/= '\n') instead of head . lines perhaps?
20:24:36 -!- blsqbot has joined.
20:24:42 <mroman> !bf_txtgen ABC
20:24:44 <EgoBot> ​39 ++++++++[>++++++++>+>><<<<-]>+.+.+.>++. [152]
20:24:48 <mroman> hehe
20:24:49 <FreeFull> oerjan: I suggested join . take 1 . lines
20:24:56 <mroman> !blsq "I'm still here"sh
20:24:57 <blsqbot> I'm still here
20:25:07 <mroman> > join. take 1 . lines $ ""
20:25:10 <lambdabot> ""
20:25:16 <mroman> > join. take 1 . lines $ "Muh\nmuh"
20:25:18 <lambdabot> "Muh"
20:25:24 <mroman> neat.
20:25:27 <FreeFull> takeWhile (/= '\n') would work too
20:25:31 <FreeFull> And is probably more obvious
20:25:38 <mroman> yep
20:26:09 <FreeFull> takeWhile (const True) ""
20:26:11 <FreeFull> > takeWhile (const True) ""
20:26:13 <lambdabot> ""
20:26:37 <FreeFull> Yeah, should work
20:27:11 <boily> FreeFull: you heretic! how *dare* you praise obviousness in this channel!
20:27:18 <mroman> !blsq "Muh\nmuh"{"\n"[-!=}tw
20:27:18 <blsqbot> ERROR: Burlesque: (tw) Invalid arguments!
20:27:22 <mroman> hm.
20:27:37 <FreeFull> boily: He's writing it in Haskell
20:27:51 <mroman> ah.
20:27:57 <FreeFull> If it was some super esoteric language, then sure, I'd encourage obscurity =P
20:27:59 <mroman> reversed arguments.
20:28:14 <mroman> !blsq {"\n"[-!=}"Muh\nmuh"tw
20:28:14 <blsqbot> "Muh\nmuh"
20:28:16 <boily> you got a point here.
20:28:42 <mroman> !blsq "\n"[-**
20:28:42 <blsqbot> ERROR: Burlesque: (**) Invalid arguments!
20:28:48 <mroman> !blsq "\n"-]**
20:28:48 <blsqbot> 10
20:28:54 <mroman> !blsq {"\n"-]!=}"Muh\nmuh"tw
20:28:55 <blsqbot> "Muh"
20:29:46 <mroman> Sometimes arguments are reversed just to punish people
20:30:57 <mroman> !blsq "http://esolangs.org""http://"?/
20:30:57 <blsqbot> "esolangs.org"
20:31:28 <mroman> !blsq "1 500000000r@2?^++"
20:31:28 <blsqbot> "1 500000000r@2?^++"
20:31:34 <mroman> !blsq "1 500000000r@2?^++"e!
20:31:35 <blsqbot> ERROR: Burlesque: (e!) Invalid arguments!
20:31:41 <mroman> how dare you
20:31:45 <mroman> !blsq "1 500000000r@2?^++"to
20:31:45 <blsqbot> "Str"
20:31:50 <mroman> !blsq "1 500000000r@2?^++"pe
20:31:51 <blsqbot>
20:31:58 <mroman> !blsq "1 50r@2?^++"pe
20:31:58 <blsqbot> 42925
20:32:08 <FreeFull> !blsq 3 3 .*
20:32:08 <blsqbot> 9
20:32:14 <FreeFull> !blsq 3 3 .^
20:32:15 <blsqbot> ERROR: Unknown command: (.^)!
20:32:19 <FreeFull> !blsq 3 3 .**
20:32:20 <blsqbot> ERROR: (line 1, column 8):
20:32:20 <oerjan> > ([] :: [String]) ^. _head
20:32:24 <lambdabot> ""
20:32:25 <mroman> !blsq 3 3 **
20:32:25 <blsqbot> 27
20:32:29 <FreeFull> Ah
20:32:35 <oerjan> > (["test", "ho"] :: [String]) ^. _head
20:32:38 <mroman> or ?^
20:32:38 <lambdabot> "test"
20:32:42 <mroman> !blsq 3 3 ?^
20:32:43 <blsqbot> 27
20:32:46 <mroman> !blsq 3 3.0 ?^
20:32:47 <blsqbot> 27.0
20:32:59 <oerjan> boily: ok is _that_ obscure enough?
20:33:11 <mroman> !blsq 5 3mo.+
20:33:12 <blsqbot> {3 6 9 12 15}
20:33:13 <boily> oerjan: it is.
20:35:25 <mroman> !blsq "rrrrrlllleee"gw
20:35:26 <blsqbot> {{5 'r} {4 'l} {3 'e}}
20:35:49 <mroman> !blsq "rrrrrlllleee"gw)?+
20:35:49 <blsqbot> {ERROR: Burlesque: (.+) Invalid arguments! {5 'r} ERROR: Burlesque: (.+) Invalid
20:35:56 <mroman> hm.
20:35:57 <mroman> yeah.
20:36:13 <mroman> !blsq "rrrrrlllleee"gw{Sh?+}\m
20:36:14 <blsqbot> {ERROR: Burlesque: (_+) Invalid arguments!}
20:36:19 <mroman> !blsq "rrrrrlllleee"gw{Sh?+}m[
20:36:19 <blsqbot> {ERROR: Burlesque: (.+) Invalid arguments! "[5, r]" ERROR: Burlesque: (.+) Inval
20:37:51 <mroman> !blsq "rrrrrlllleee"gw{^pSh?+}\m
20:37:52 <blsqbot> "5r4l3e"
20:38:21 <mroman> !blsq "rrrrrlllleee"gn
20:38:22 <blsqbot> {'r 'l 'e}
20:38:27 <mroman> !blsq "rrrrrlllleee"gn\[sh
20:38:27 <blsqbot> rle
20:39:50 <mroman> blsqbot please do quit
20:39:50 -!- blsqbot has quit (Quit: Exiting).
20:42:17 <Sgeo> Fuck thi computer
20:44:35 <FreeFull> Hot computer sex
20:48:02 <nooodl> monqy: do you minecraft
20:48:13 <monqy> no
20:48:23 <monqy> (hi)
20:48:25 <nooodl> aw
20:48:25 <nooodl> hi
20:48:33 <Sgeo> I do
20:48:39 <Sgeo> Except computer is a pita
20:48:40 <monqy> i uh gosh what do i do
20:48:46 -!- Regis__ has changed nick to GOMADWarrior.
20:49:32 <Bike> gonad warrior
20:50:00 <FreeFull> gonads are the best punctional fondlegramming squishcture
20:50:05 <monqy> maybe sometime i should watch that bad monads talk
20:50:15 <Sgeo> bad monads talk?
20:50:17 <monqy> the one by the bad javascript guy
20:51:08 <boily> `learn gonads are the best punctional fondlegramming squishcture.
20:51:12 <HackEgo> I knew that.
20:51:13 <FreeFull> http://www.youtube.com/watch?v=dkZFtimgAcM This one
20:51:27 <Bike> That doesn't sound like much fun to watch.
20:51:53 <monqy> on second thought, i dont want to watch that at all ever
20:52:18 -!- carado has quit (Ping timeout: 264 seconds).
20:53:08 <FreeFull> The top youtube result for monads
20:53:16 <monqy> :(
20:56:01 -!- carado has joined.
20:57:25 -!- Nisstyre-laptop has joined.
21:05:17 -!- Taneb has joined.
21:06:41 <Taneb> ais523, I'm sorry, but Birmingham did not feel for me.
21:07:01 <ais523> Taneb: hmm
21:07:09 <shachaf> Oh boy, that video has YouTube comments now?
21:07:27 <Taneb> That is, I did not feel that the University of Birmingham is for me
21:07:28 <ais523> incompetence? malice? the shadow of a previously industrial age that is now collapsing in ruins because it's no longer economically viable?
21:08:24 <ais523> ah, OK
21:08:25 <ais523> that makes sense
21:08:32 <ais523> I don't know much about what the maths department is like
21:08:44 <ais523> apart from it has a weirdly quirky building and I once sat an exam on the bridge
21:09:13 <shachaf> Birmingham, Alabama, right?
21:09:18 <ais523> shachaf: UK
21:09:19 <shachaf> "the true birmingham"
21:09:29 <ais523> the /original/ Birmingham
21:10:14 <hagb4rd|lounge> they have predicted and proven their own nemesis. and so now they go for it
21:10:21 -!- hagb4rd|lounge has changed nick to hagb4rd.
21:10:27 <hagb4rd> consquently
21:10:39 <ais523> but yeah, the way universities work, different universes will be better for different people
21:10:50 <hagb4rd> somehow like lemmings
21:11:10 <shachaf> IN AN ALTERNATE UNIVERSITY: the same universes are better for the same people
21:11:40 <hagb4rd> `addquote <shachaf>IN AN ALTERNATE UNIVERSITY: the same universes are better for the same people
21:11:41 <nooodl> thanks for making a stupid "universe" joke so i don't have to, shachaf
21:11:44 <HackEgo> 965) <shachaf>IN AN ALTERNATE UNIVERSITY: the same universes are better for the same people
21:11:48 <shachaf> `revert
21:11:51 <HackEgo> Done.
21:11:59 <shachaf> nooodl: It's what I do.
21:12:34 <ais523> yeah, that quote was awful
21:12:40 <shachaf> It was.
21:12:49 <shachaf> Then again, so is hagb4rd.
21:12:53 <boily> say, has anywhere in the quotes' history have we reached number 1000?
21:13:07 <hagb4rd> i liked it :(
21:13:16 <ais523> shachaf: no random insulting of people, please
21:13:30 <ais523> like, if you have a good reason, you can talk it through
21:13:37 <ais523> but random insults just make the heartfelt ones cheaper, in a way
21:14:19 <shachaf> `pastelogs hagb4rd
21:14:22 <nooodl> how did that automatically get quoted
21:14:31 <ais523> nooodl: it didn't, hagb4rd added it
21:14:34 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12727
21:14:35 <hagb4rd> i have been isulted?
21:14:39 <nooodl> oh i'm blind
21:14:45 * hagb4rd starts crying
21:15:03 <ais523> if we wanted someone to randomly repeat past lines from the log, we'd bring back optbot
21:15:10 * Sgeo insults everyone who ever insults
21:15:56 <ais523> (optbot was awesome, btw)
21:16:53 <hagb4rd> what are you talking about.. i just have seen beauty where you have not
21:16:56 <Phantom_Hoover> no
21:16:58 <hagb4rd> maybee
21:16:59 <Phantom_Hoover> optbot was bad
21:17:20 <Sgeo> I don't remember optbot.
21:17:31 <boily> was it badder than cuttlefish?
21:17:33 <ais523> it was ages ago
21:17:37 <Phantom_Hoover> <ais523> but random insults just make the heartfelt ones cheaper, in a way
21:17:39 <ais523> it basically just randomly repeated past lines from the log
21:17:41 <Sgeo> ais523, I've been here for ages :<
21:17:42 <Phantom_Hoover> h4gbard is awful
21:17:44 <ais523> and changed the topic occasionally
21:17:47 <ais523> Sgeo: ageser
21:17:48 <Phantom_Hoover> and that's from the heart
21:18:23 <Sgeo> Early hagb4rd reminds me of itidus. No offense to either.
21:18:48 <kmc> keep running the test suite until it passes
21:18:51 * boily happily smacks Phantom_Hoover with a miniature, porcelain cow that wasn't made in china but in a nearby country by a slightly underpaid local artisan
21:18:52 <ais523> itidus is awesome, at least
21:19:13 <kmc> artisinal cows that celebrate craftsmanship
21:19:22 <Phantom_Hoover> Sgeo, i think hagb4rd may have brought iti here
21:19:23 <shachaf> `pastelogs perdito
21:19:29 <Phantom_Hoover> you'd have to check the logs
21:19:37 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.22247
21:20:55 <Sgeo> How does "thumb mature" scare off the other kind of esotericer?
21:21:11 <boily> ~duck thumb mature
21:21:12 <cuttlefish> --- No relevant information
21:21:37 <hagb4rd> okay
21:21:40 -!- DHeadshot has joined.
21:21:44 <Bike> the ways of elliott are mysterious, sgeo.
21:21:44 <hagb4rd> take care
21:21:48 <hagb4rd> i'm out
21:21:53 -!- hagb4rd has left.
21:22:16 <boily> `pastelogs itidus
21:22:29 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.2494
21:22:56 <oerjan> #esoteric rage part #184
21:22:56 <oonbotti> Nothing here
21:23:21 <ais523> oerjan: you're counting? :)
21:23:28 <oerjan> MAYBE
21:23:28 <ais523> actually, rage parts sound quite hard to automatically count
21:23:37 <oerjan> (no)
21:24:29 <oerjan> what's with wikipedia's eagle theme
21:25:37 <Sgeo> o.O at hagb4rd=perdito
21:26:55 -!- ais523 has left ("<fungot> fizzie: it makes demons fly out of my window, washing the windows api").
21:26:59 -!- ais523 has joined.
21:27:08 <ais523> accidental ragepart count today: 2
21:27:13 * oerjan wonders what ais523 is typoing
21:27:31 <ais523> oerjan: that was attempting to close another tab, succeeding, and repeating the command by mistake
21:27:38 <oerjan> aha
21:27:49 <ais523> the first time I tried to close a tab in Firefox, pressed control-q by mistake, then immediately corrected it to control-w
21:27:59 <ais523> and the correction hit Konversation because Firefox had already closed at that point
21:36:45 <doesthiswork> I'm no longer a fan of spelling c-words with a k after the Candy Cake Company tried it
21:37:16 <Bike> is "kake" a slur or something
21:37:47 <boily> someday we'll behold the merger between CDE and KDE. all new projects will begin with a letter halfway between C and K.
21:38:04 <boily> (unicode probably has something like that somewhere. I wonder in which block...)
21:38:47 <FreeFull> candy cace
21:39:11 <FreeFull> ais523: I have ctrl+q disabled in my firefox
21:39:30 <FreeFull> Because I sometimes hit it instead of ctrl+w
21:39:34 <ais523> boily: <?
21:39:45 <FreeFull> I use http://kb.mozillazine.org/Keyconfig_extension to do that
21:40:01 <kmc> ku klux kake kompany?
21:42:17 -!- WeThePeople has quit (Quit: Leaving).
21:42:42 <boily> ais523: the glyph is good.
21:45:05 -!- augur has quit (Remote host closed the connection).
21:45:38 -!- augur has joined.
21:47:51 <boily> ais523: but then, I feel it's not C-ish enough. what about a curly ≺?
21:48:19 <ais523> boily: well < is closer to C than your \leq is
21:48:21 -!- impomatic has joined.
21:48:23 <ais523> err, not \leq
21:48:26 <ais523> \prec
21:48:34 <ais523> \leq is ≤
21:49:01 <boily> I wanted to emulate the roundity of C, even if the curvature is opposite to the desired effect.
21:50:24 -!- augur has quit (Ping timeout: 276 seconds).
21:50:28 -!- augur_ has joined.
21:51:13 -!- TeruFSX2 has joined.
21:51:13 -!- TeruFSX has joined.
21:57:38 -!- augur_ has quit (Remote host closed the connection).
21:58:12 -!- augur has joined.
21:59:18 -!- SirCmpwn has quit (Ping timeout: 244 seconds).
22:02:26 -!- augur has quit (Ping timeout: 255 seconds).
22:02:40 -!- TeruFSX2 has quit (Quit: Leaving).
22:02:40 -!- SirCmpwn has joined.
22:02:58 -!- azaq23 has quit (Quit: Leaving.).
22:06:54 -!- boily has quit (Quit: Poulet!).
22:06:59 -!- cuttlefish has quit (Remote host closed the connection).
22:08:29 <ais523> bleh, I can't read Cyrillic
22:08:38 <ais523> at least being able to pronounce it would help
22:12:17 <oerjan> Да
22:17:25 <ais523> actually I suspect this in French but dubbed into Russian
22:17:29 <ais523> but it doesn't make it any easier to follow
22:20:53 -!- DHeadshot has quit (Ping timeout: 255 seconds).
22:21:51 <ais523> oh good, some text on screen, and it's /definitely/ in French; this clears it up
22:21:56 <ais523> apparently they didn't dub text, just voice
22:25:59 <oerjan> трэс бен
22:26:05 <kmc> hacked by french
22:26:49 <ais523> kmc: so the theory is that it was originally Russian
22:26:55 <ais523> and just the /text/ was changed to French?
22:27:25 <oerjan> hint: look if the lips match the words
22:27:39 <quintopia> !bfjoust brachiation >->(-)*5>(+)*5>>>(>[<<<(+)*7<<(+[<{}>++++[<(-)*50(>)*7(>[-[-[-[>>>(+)*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*5<(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
22:27:41 <ais523> but they're in Russian
22:27:51 <EgoBot> ​Score for quintopia_brachiation: 0.0
22:27:55 <quintopia> what
22:28:06 <oerjan> sorry, *match the sounds
22:28:08 <quintopia> where's the mismatch
22:28:36 <oerjan> quintopia: i recommend an editor with bracket matching hth
22:28:47 <ais523> yeah, they don't match at all
22:28:49 <quintopia> oerjan: it doesn't usually, but thanks
22:28:59 -!- WeThePeople has joined.
22:29:13 <olsner> oerjan: does that match the brackets with the words or the sounds?
22:29:19 <quintopia> it should be identical to the last one i submitted yesterday, except with a few more characters shaved
22:29:44 <oerjan> the ) before the last *22 doesn't match anything
22:30:02 <ais523> olsner: you match brackets to pauses
22:30:08 <ais523> they're negative sapace
22:30:10 <ais523> *space
22:30:21 <ais523> hmm, can that posibly be used as an esolang idea?
22:30:37 <olsner> probably
22:30:38 <oerjan> and () and [] don't nest
22:30:40 -!- augur has joined.
22:30:52 <quintopia> oh the one i submitted yesterday was broken too
22:30:54 <kmc> i'm told that on PA-RISC, branch delay slots can have branches in them
22:31:08 <kmc> you run one instruction from the target of the first branch, and then control continues at the target of the second
22:31:40 <olsner> does the second branch also have a delay slot?
22:31:49 <quintopia> !bfjoust brachiation >->(-)*5>(+)*5>>>(>[<<<(+)*7<<(+[<{}>++++[<(-)*50(>)*7(>[-[-[-[>>>((+)*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*5<(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
22:31:52 <EgoBot> ​Score for quintopia_brachiation: 38.4
22:32:07 <quintopia> wonders what fixing a bug can do
22:32:30 * oerjan belatedly swats olsner -----###
22:32:55 <olsner> oerjan: why must you swat me so?
22:33:21 <oerjan> <olsner> oerjan: does that match the brackets with the words or the sounds?
22:33:29 <oerjan> therefore
22:34:31 <ais523> btw, something I learnt in Canada: it's surprisingly hard for me to understand something spoken in English if it's accompanied by French subtitles
22:35:20 -!- DHeadshot has joined.
22:35:28 <oerjan> quel horreur
22:36:11 <olsner> you've been at Canada? did it exist?
22:36:30 <ais523> on the other hand, I've do really well at Stroop tests…
22:36:37 <ais523> olsner: I think at least Ottawa exists
22:36:47 <ais523> it's quite hard to get firm evidence for the rest of it from inside Ottawa
22:37:09 <olsner> good news for Ottawa
22:37:35 <ais523> I guess it's theoretically possible that Ottawa, despite clearly existing, is not inside Canada
22:38:09 <olsner> pretty sure it's in america ... mexico perhaps?
22:38:35 <Taneb> I am fairly sure Montana exists, if it is any help
22:40:13 -!- ais523 has quit (Remote host closed the connection).
22:40:33 <oerjan> it stands to reason that if you wanted to fake a country you'd fake a capital first
22:41:08 <oerjan> also, i think i've confirmed before that canada existed back in 1995 or so
22:41:09 -!- ais523 has joined.
22:41:33 <ais523> X crashed, interface looks subtly different after it restarted
22:41:37 <ais523> theory: GPU crash
22:41:38 <oerjan> <oerjan> it stands to reason that if you wanted to fake a country you'd fake a capital first
22:41:42 <oerjan> <oerjan> also, i think i've confirmed before that canada existed back in 1995 or so
22:43:13 <oerjan> also the main opponent at my dissertation was a professor in ottawa.
22:43:28 <ais523> hmm, there is now a file called intel_gpu_abrt.tar in my home folder, except it's owned by root and dated october 17
22:43:35 <ais523> oerjan: you have competitive dissertations?
22:43:37 <oerjan> although i've not personally been in that city
22:44:01 <ais523> and compiz is working harder than usual
22:44:23 <oerjan> i think that may have been the wrong word
22:44:53 <ais523> [ 16530.600] (EE) intel(0): Detected a hung GPU, disabling acceleration.
22:45:03 <ais523> GPU crash it is
22:45:26 <ais523> what crashed /X/ is apparently that I pressed control-alt-F1 and it didn't switch
22:45:33 <ais523> and if that happens, it exits as a failsafe
22:46:46 -!- GreyKnight has quit (Quit: zzz for real).
22:47:19 <oerjan> ok i think i actually meant "defense"
22:48:16 <Taneb> Oooh, on that note!
22:48:24 <Taneb> My new graphics card arrived
22:48:33 <Taneb> I need to go to the post office tomorrow and pick it up
22:49:01 <quintopia> !bfjoust brachiation >->(-)*5>(+)*5>>>(>[<<<(+)*7<<(+[<{}>++++[<(-)*50(>)*7(>[-[-[-[>>>((+)*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*5<(>-[(-)*50(>)*7(>[(-)*9([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3(>-[(-)*50(>)*7(>[(-)*9([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7(>[(-)*9([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
22:49:04 <EgoBot> ​Score for quintopia_brachiation: 33.7
22:49:07 <quintopia> !bfjoust brachiation >->(-)*5>(+)*5>>>(>[<<<(+)*7<<(+[<{}>++++[<(-)*50(>)*7(>[-[-[-[>>>((+)*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*5<(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
22:49:09 <EgoBot> ​Score for quintopia_brachiation: 38.4
22:49:14 <Taneb> And then finally the Chinese Fake Graphics Card Fiasco will finally be over
22:49:15 <oerjan> ah maybe there's some kind of cosmic balance here: at any given time, one #esoteric regular must have a broken graphics card
22:49:46 <Taneb> ais523, if what oerjan suggests is true, I am very, very sorry
22:49:59 <quintopia> if only there were some way to drop in an ifzero in bf
22:50:59 <quintopia> i know that finding a +9 on the tape means it's probably safe to jump 3 to the right, but i can't exploit it without ballooning the program length
22:51:02 <oerjan> none sufficiently atomic for bfjoust, i suspect
22:51:27 <ais523> quintopia: is this some sort of decoy setup detection? :)
22:51:52 <quintopia> basically. brachiation leaves a +9 three behind where it poked
22:52:15 <ais523> quintopia: oh I see
22:52:29 <ais523> so it's only confused if the opponent tears down that +9 and sets another +9 nearer
22:52:46 <FreeFull> quintopia: I wonder if an ifzero would be possible
22:52:50 <FreeFull> Should be somehow
22:53:05 <ais523> FreeFull: it's easy, you just have to duplicate it once for each set of nested brackets you're inside
22:53:07 <quintopia> ais523: well, that's the only way to force it to suicide, but it's improbable enough that it would be worth using if it were possible
22:53:11 <ais523> if you want to do it in one cycle
22:53:18 <ais523> quintopia: yeah
22:53:44 <ais523> you're good at writing programs that have theoretical weaknesses but would require a stupidly tuned-to-that-program enemy to exploit them
22:53:55 <FreeFull> !bfjoust nothing
22:53:55 <EgoBot> ​Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:54:00 <FreeFull> !bfjoust nothing
22:54:01 <EgoBot> ​Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:54:04 <quintopia> put a dot
22:54:09 <FreeFull> !bfjoust nothing ""
22:54:11 <EgoBot> ​Score for FreeFull_nothing: 3.8
22:54:16 <FreeFull> Heh
22:54:38 <ais523> quintopia: btw, if you want some fun, watch waterfall3 versus omnipotence
22:54:42 -!- willowsbrook has joined.
22:55:05 <oerjan> `welcome willowsbrook
22:55:07 <HackEgo> willowsbrook: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:55:09 <ais523> probably the only time ever that a previously hill-topping program falls off its /own/ end of the tape
22:55:25 <quintopia> ais523: link me a length and polarity
22:55:34 <ais523> quintopia: 25 sieve, IIRC
22:55:44 <ais523> haven't done it for a while, and can't do anything CPU-intensive right now
22:55:59 <ais523> I'm more likely to have the polarity wrong than the tape
22:56:05 <quintopia> the nop program beats 5 others
22:56:14 <quintopia> but beating a suicide program doesn't count
22:56:20 <quintopia> so four
22:56:54 <ais523> quintopia: all with "off enemy end", I guess?
22:57:31 <quintopia> ais523: probably. although who knows what happens with olsner_kuskelar_a_clatsop_man
22:57:46 <ais523> indeed, that program makes no sense
22:57:47 <quintopia> man i wish gregor would install the fixed point scoring
22:57:53 <quintopia> so it can die
22:57:54 <ais523> I generally don't bother trying to beat it
22:58:04 <ais523> and just rely on fate
22:58:12 -!- willowsbrook has quit (Quit: Page closed).
22:58:33 <oerjan> quintopia: you've finished it and Gregor is refusing to install it?
22:58:39 -!- ais523 has quit.
22:58:55 <quintopia> ah, yeah kuskelar falls off enemy's end as well
22:59:06 <quintopia> oerjan: i gave it to him some six months ago
22:59:16 <oerjan> wat.
22:59:23 * oerjan swats Gregor -----###
23:02:30 -!- ais523 has joined.
23:02:54 <ais523> sorry, CPU
23:03:02 <ais523> the GPU is busy doing its job again, you don't have to take over any more
23:03:11 <quintopia> ais523: kuskelar falls off the enemy's end also :)
23:03:24 <ais523> quintopia: well it would be either that, or zero its own flag
23:03:41 <quintopia> or fall off its own end
23:03:52 <ais523> (that seems implausible
23:04:10 <ais523> )
23:04:24 <ais523> the ( was a typo but I couldn't leave it unmatched )
23:04:31 <quintopia> true
23:05:00 <quintopia> the only < in the program is immediately followed and preceded by a >
23:05:16 <ais523> another hilarious matchup is omnipotence versus anticipation2
23:05:26 <oerjan> [(]([)
23:05:40 * oerjan whistles innocently
23:05:56 <ais523> I'm not even entirely sure how it happens, but normally anticipation zeroes its own flag, and leaves it there for two cycles, when omnipotence hasn't even got anywhere near in its clear
23:06:04 <ais523> I think it's confused by the enemy being so slow
23:06:37 <ais523> !bfjoust the_other_death_to_defence (>)*8(>[(.)*20+])*21
23:06:40 <EgoBot> ​Score for ais523_the_other_death_to_defence: 6.4
23:06:57 <ais523> a variant of the first counter-defence program I ever wrote
23:07:17 <quintopia> ais523: the tape length you said didn't have any suiciding on waterfall3's part
23:07:20 <ais523> (as you can see, it doesn't actually work very well)
23:07:22 <ais523> quintopia: bleh
23:07:26 <ais523> let me quickly do a full run
23:08:21 <ais523> quintopia: at 25 it falls off its own end at one polarity, at 26 it falls off its own end on both
23:08:24 <ais523> so try it with 26
23:08:37 <ais523> or any longer length
23:08:39 <ais523> it happens on very long tapes
23:08:53 -!- augur has quit (Remote host closed the connection).
23:09:28 -!- augur has joined.
23:13:25 <ais523> btw, how do you test your BF Joust programs? I can run a complete set of lengths and polarities in a second, except where slow locks are being used
23:13:41 <ais523> and I thought that performance was typical
23:14:12 <FreeFull> Values wrap around at 255, right?
23:14:29 <FreeFull> And you don't know what value your flag starts at?
23:14:33 -!- augur has quit (Ping timeout: 276 seconds).
23:14:53 <ais523> FreeFull: your flag always starts at 128
23:14:58 <ais523> or -128, depending on your point of view
23:14:59 <FreeFull> Ah
23:15:03 <ais523> as does the enemy's
23:15:07 <ais523> the values in between are always 0
23:15:15 <FreeFull> So it starts at the best value
23:15:19 <ais523> not necessarily
23:15:34 <FreeFull> depends on the strategy of your enemy I suppose
23:15:45 <ais523> !bfjoust simple_turtle (>)*8(>[(+)*128>])*21
23:15:48 <EgoBot> ​Score for ais523_simple_turtle: 2.7
23:16:06 <ais523> err
23:16:09 <ais523> !bfjoust simple_turtle (>)*8(>[(+)*128.>])*21
23:16:12 <EgoBot> ​Score for ais523_simple_turtle: 15.7
23:16:15 <FreeFull> Lol
23:16:23 <fizzie> It takes me 15.5 wallclock seconds to run the hill (that hasn't been updated in a while), FWIW, re "typical performance".
23:16:23 <FreeFull> I was thinking "It did worse than doing nothing"
23:16:38 <ais523> most programs have countermeasures against that sort of thing nowadays
23:16:44 <ais523> but it really stormed the hill when it was first invented
23:17:11 <ais523> it'd do better with decoys
23:17:25 <ais523> !bfjoust simple_turtle (>(+)*12)*8(>[(+)*128.>])*21
23:17:28 <EgoBot> ​Score for ais523_simple_turtle: 11.5
23:17:39 <ais523> but they'd need to be set intelligently
23:18:05 <ais523> !bfjoust simple_turtle (>)*4((+)*8<)*3(+)*8(>)*7(>[(+)*128.>])*21
23:18:08 <EgoBot> ​Score for ais523_simple_turtle: 11.3
23:18:11 <ais523> hmm
23:18:17 <ais523> obviously I can't set them intelligently :)
23:18:33 <ais523> !bfjoust simple_turtle (>)*5(+)*5<((+)*64<)*3(+)*64(>)*7(>[(+)*128.>])*21
23:18:36 <EgoBot> ​Score for ais523_simple_turtle: 6.7
23:18:48 * ais523 stops trying
23:18:53 <ais523> !bfjoust simple_turtle <
23:18:56 <EgoBot> ​Score for ais523_simple_turtle: 0.0
23:19:08 <FreeFull> That's the first time I saw 0.0
23:19:34 <ais523> it's really easy, that's how you delete a prorgam
23:19:36 <ais523> *program
23:21:14 <FreeFull> !bfjoust suicide [-]
23:21:17 <ais523> by making it lose to everything but copies of itself, possibly with text afterwards
23:21:18 <EgoBot> ​Score for FreeFull_suicide: 8.1
23:21:23 <ais523> you can't die faster than going off your own end of the tape
23:21:37 <ais523> btw, your suicide does better than a nop because it can end up locking itself on an enemy rush program
23:21:37 -!- sivoais has changed nick to JonesTheDolphin.
23:21:39 <ais523> leading to a draw
23:21:52 <quintopia> i do not understand omnipotence's tape clear at all
23:22:06 -!- NuclearMeltdown has quit (Ping timeout: 245 seconds).
23:22:26 <ais523> quintopia: it's a full tape clear, except on the first tape element, it tries to clear values nearer 128 faster
23:22:38 <ais523> then it just keeps clearing for a while in case it's playing against a defence program
23:22:47 <quintopia> yeah but what the hell is the back-and-forth clear for
23:22:48 -!- JonesTheDolphin has changed nick to sivoais.
23:23:05 <ais523> quintopia: it's basically because as it has no tripwire, it can end up trying to full-tape clear against an enemy lock
23:23:14 <FreeFull> !bfjoust survival >[-]
23:23:14 <ais523> so it's designed to defeat locks
23:23:16 <EgoBot> ​Score for FreeFull_survival: 4.6
23:23:17 <ais523> the same idea as a timer clear
23:23:31 <ais523> FreeFull: exits after the [ because the tape element will be 0 there
23:23:38 <ais523> you want something like >([-])*-1
23:24:36 <FreeFull> What's ()
23:24:43 <ais523> FreeFull: run length encoding
23:24:50 <ais523> so (+)*100 is equivalent to typing out 100 copies of +
23:24:52 <FreeFull> Ah
23:24:58 <ais523> it's just sugar, but very useful sugar
23:25:21 <ais523> *-1 gives you enough copies that the program would hit the time limit before it stopped running
23:25:22 <ais523> hmm…
23:25:28 <ais523> !bfjoust mischief ()*-1+
23:25:33 <EgoBot> ​Score for ais523_mischief: 4.6
23:25:40 <ais523> haha, the interpreter checked for it :)
23:26:04 -!- GOMADWarrior has quit (Ping timeout: 240 seconds).
23:26:19 <FreeFull> !bfjoust survival >([-]>)*-1
23:26:21 <EgoBot> ​Score for FreeFull_survival: 14.8
23:26:26 <FreeFull> This one does commit suicide
23:26:48 <ais523> that's not even survival really more, it's a fast rush program
23:26:52 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90 [Firefox 19.0/20130215130331]).
23:26:56 <FreeFull> !bfjoust survival >([-])*-1
23:26:59 <EgoBot> ​Score for FreeFull_survival: 3.7
23:27:04 <ais523> those historically don't do as well as slow rush programs, but they'll beat programs that are hyperoptimized against slow rush programs
23:27:54 <quintopia> ais523: and what does waterfall3 do that it thinks it a good idea to back off its end of the tape
23:28:20 <ais523> quintopia: it's doing an inline clear, so it zeros a cell behind the opponent to remember where its flag is
23:28:32 <ais523> and omnipotence unzeros it again :)
23:28:59 <FreeFull> !bfjoust survival >(+[-])*-1
23:29:02 <EgoBot> ​Score for FreeFull_survival: 1.8
23:29:09 <FreeFull> Lol, that did even worse
23:29:33 <ais523> FreeFull: protip: actually attacking is usually a good idea
23:29:38 <quintopia> that's like a vibrate on cell1
23:29:42 <ais523> yeah
23:29:47 <ais523> only a slow one
23:29:48 <FreeFull> !bfjoust survival >
23:29:51 <EgoBot> ​Score for FreeFull_survival: 3.8
23:29:57 <ais523> and the whole point of vibrating is to cause the opponent to miss your flag
23:29:57 <FreeFull> !bfjoust survival <
23:30:00 <EgoBot> ​Score for FreeFull_survival: 0.0
23:30:09 <ais523> causing the opponent to miss your /decoys/ is a new and untested strategy
23:30:12 <ais523> and for good reason ;)
23:30:12 <quintopia> survival!=suicide
23:30:29 <quintopia> actually its not new
23:30:34 <ais523> quintopia: huh, really?
23:30:51 <quintopia> i used it in an older version of space_hotel to beat counterpoke
23:31:18 <ais523> !bfjoust optimism (>)*9((+)*64<)*9(>)*8(>[(+)*20[-]])*21
23:31:21 <EgoBot> ​Score for ais523_optimism: 5.4
23:31:31 <quintopia> lol
23:31:35 <ais523> did I screw up the counting there
23:31:37 <ais523> or does it just suck?
23:31:38 <quintopia> did you just clear your own decoy
23:31:54 <ais523> err, yes
23:31:59 <ais523> it might be the enemy flag
23:32:02 <ais523> optimism!
23:32:06 <quintopia> lol
23:32:19 <ais523> !bfjoust optimism (>)*8((+)*64<)*8(>)*8(>[(+)*20[-]])*21
23:32:22 <EgoBot> ​Score for ais523_optimism: 16.5
23:32:24 <ais523> OK, slightly less insane version
23:32:49 <quintopia> works REALLY WELL on one polarity i bet
23:32:55 <quintopia> and long tapes
23:33:09 <ais523> yeah, the pattern is that it wins on long tapes on one polarity
23:33:15 <quintopia> make it 6 and see
23:33:16 <ais523> and loses on short tapes and the other polarity
23:33:24 <ais523> !bfjoust optimism (>)*6((+)*64<)*6(>)*8(>[(+)*20[-]])*21
23:33:27 <EgoBot> ​Score for ais523_optimism: 21.6
23:33:46 <quintopia> what's with those pint-sized decoys? make them 85!
23:33:47 <ais523> I'd prefer to mess about with the decoy setup so it's not cleared quickly on one polarity
23:33:52 <ais523> !bfjoust optimism (>)*6((+)*86<)*6(>)*8(>[(+)*20[-]])*21
23:33:55 <EgoBot> ​Score for ais523_optimism: 20.3
23:34:02 <quintopia> heh
23:34:08 <ais523> quintopia: I was thinking about the "85 is the largest sensible size for a decoy" thing
23:34:22 <ais523> I've decided it's wrong, because of /programs that check for size 85 decoys/
23:34:25 <ais523> they don't exist yet
23:34:29 <ais523> but they /could/!
23:34:51 <quintopia> i'm unconvinced
23:35:04 <ais523> !bfjoust optimism (>)*8(((+)*85<)*2((-)*85<)*2)*2(>)*8(>[(+)*20[-]])*21
23:35:05 <ais523> so am I :)
23:35:07 <EgoBot> ​Score for ais523_optimism: 19.4
23:35:30 <ais523> as expected, this version gets a lot more outright wins
23:35:34 <ais523> but does a lot worse when it loses
23:35:54 <ais523> this seems more in the spirit of being optimistic
23:36:03 <ais523> !bfjoust optimism (>+)*8(((+)*85<)*2((-)*85<)*2)*2(>)*8(>[(+)*20[-]])*21
23:36:06 <EgoBot> ​Score for ais523_optimism: 19.3
23:36:16 <ais523> huh, I thought that would make more difference
23:36:21 <ais523> !bfjoust optimism (>+++)*8(((+)*85<)*2((-)*85<)*2)*2(>)*8(>[(+)*20[-]])*21
23:36:22 <quintopia> it doesn't build as many decoys as it used to
23:36:23 <EgoBot> ​Score for ais523_optimism: 19.7
23:36:29 <quintopia> oh
23:36:29 <quintopia> nvm
23:36:45 <quintopia> try alternating
23:36:45 <ais523> actually getting to tape element 9 quickly is important
23:36:54 <ais523> so that it can build before the opponent gets there
23:37:03 <ais523> !bfjoust optimism (>)*8(((+)*85<)*1((-)*85<)*1)*4(>)*8(>[(+)*20[-]])*21
23:37:06 <EgoBot> ​Score for ais523_optimism: 18.9
23:37:13 <ais523> less good
23:37:16 <quintopia> eenterest
23:37:19 <ais523> !bfjoust optimism (>)*8(((+)*85<)*2((-)*85<)*2)*2(>)*8(>[(+)*20[-]])*21
23:37:22 <EgoBot> ​Score for ais523_optimism: 19.4
23:37:28 <ais523> probably because opponents have alternating clears sometimes
23:37:35 <ais523> !bfjoust optimism (>)*8(((+)*85<)*3((-)*85<)*1)*2(>)*8(>[(+)*20[-]])*21
23:37:37 <quintopia> not often
23:37:38 <EgoBot> ​Score for ais523_optimism: 18.8
23:37:53 <ais523> !bfjoust optimism (>)*8(((+)*85<)*2((-)*85<)*2)*2(>)*8(>[(+)*20[-][+.++]])*21
23:37:56 <EgoBot> ​Score for ais523_optimism: 19.7
23:38:06 <ais523> huh, antishudder did nothing
23:38:09 <ais523> let me antivibrate too
23:38:11 -!- nooodl has quit (Ping timeout: 248 seconds).
23:38:19 <ais523> !bfjoust optimism (>)*8(((+)*85<)*2((-)*85<)*2)*2(>)*8(>[(+)*20[-][+.++[+.++]]][-.--[-.--]])*21
23:38:23 <EgoBot> ​Score for ais523_optimism: 25.9
23:38:35 <ais523> that's the sound of it resoundingly beating anticipation2, I bet
23:38:46 <quintopia> huh
23:38:54 <ais523> yeah
23:38:58 <quintopia> now resoundingly beat omnipotence
23:39:08 <ais523> quintopia: anticipation2 is fundamentally flawed
23:39:13 <ais523> that simple change can make /any/ rush program beat it
23:39:25 <quintopia> i know
23:39:26 <ais523> just nobody was bothering with antivibrate at the time
23:39:40 <quintopia> which is why you are probably wondering why i haven't added it to space_hotel yet
23:39:56 <quintopia> the answer is simple: meeeehhhhhhh
23:39:57 <ais523> I actually have no idea whether or not anticipation2 beats space_hotel
23:40:16 <ais523> also I'm becoming an increasing fan of that 5/3-cycle clear
23:40:46 <ais523> it pretty resoundingly beats every lock in existence, with no currently known countermeasure
23:40:53 <ais523> so it's a great thing to switch to if you suspect defence
23:41:06 -!- NuclearMeltdown has joined.
23:41:29 <FreeFull> Clearly the countermeasure is being faster
23:41:34 <ais523> I had to resort to such crazy measures to beat vibrate/shudder/lock all at the same time
23:41:37 <ais523> FreeFull: well, yes
23:41:46 <ais523> which is actually how omnipotence works
23:42:04 <ais523> you can defeat that, though, with a simple decoy that doesn't have size 1, 2, 3, or 5
23:42:30 <quintopia> which is lame and shameful :P
23:42:41 <ais523> the 1, 2, and 3 are the standard strategy
23:42:54 <FreeFull> So, 4?
23:42:55 <ais523> the 5 is the shameless special case for space_hotel :)
23:43:13 <quintopia> s/shameless/shameful/
23:43:20 <ais523> btw, I think we can declare 4-84 the official range of "medium decoys"
23:43:28 <ais523> quintopia: oh, omnipotence itself has no shame
23:43:31 <ais523> it's a BF Joust program
23:43:39 <quintopia> you should be ashamed
23:43:52 <ais523> quintopia: when you have a program /that/ hill-topping
23:43:59 <quintopia> i'm being silly of course
23:44:02 <ais523> you want to eke out a few extra points so that it's more impressive when you submit it
23:44:14 <ais523> just like I spent ages getting waterfall3 to 100% wins
23:44:15 <quintopia> i planar more shameful when i get back in the fall
23:44:20 <quintopia> lag
23:44:24 <quintopia> *i plan on being
23:44:25 <quintopia> far
23:44:50 <ais523> actually, the first instance of blatant shamelessness is waterfall3 against… lead_acetate_philip, I think
23:44:56 <ais523> let me check that it is that matchup
23:45:13 <quintopia> s/shamelessness/shamefulness/
23:45:30 <ais523> try it on 25 sieve, and you'll see what I mean
23:45:35 <quintopia> bfjoust: a game that will change as soon as shamefulness is maximized
23:45:50 <ais523> (summary: waterfall3 actually deletes its own decoys to prevent it changing strategy)
23:46:17 <quintopia> ah so that's what that deletion is about
23:46:32 <ais523> yeah it doesn't matter in any other matchup
23:46:41 <ais523> and mostly doesn't happen in other matchups
23:46:44 <ais523> only when it detects turtles
23:47:00 <ais523> (it can't know it's against lead_acetate_philip in particular, but the other turtles lose anyway)
23:47:11 <Sgeo> I guess there's no such thing as a universally good strategy that doesn't depend on detecting other strategies?
23:47:23 <ais523> Sgeo: if there is, it'd make the game very boring
23:47:33 <ais523> I thought that the ffspg/slowpoke/space_elevator strategy was that
23:47:45 <ais523> but it subsequently turned out that there are ways to take advantage of it
23:47:54 <ais523> ais523_stealth, for instance, beats programs like that quite effectively
23:48:03 <ais523> although doesn't do so well against other things
23:48:03 <quintopia> the only thing those have in common is poking afaict
23:48:18 <ais523> quintopia: poke + breadcrumb
23:48:25 <ais523> they all try to detect fast rushes
23:48:37 <quintopia> space_elevator does no breadcrumbing
23:48:43 <ais523> quintopia: huh, I thought it did
23:48:52 <quintopia> it does detect fash rushes, but it switches to a more defensive strategy
23:48:58 <ais523> yeah
23:49:07 <ais523> anyway, the point of stealth is that it's a fast rush that tries to be detected as a slow rush
23:49:19 <ais523> it's the opposite of omnipotence, which is a defence program that tries to be detected as a fast rush
23:49:47 <ais523> I guess now we need a slow rush that tries to be detected as defence
23:50:15 <ais523> but I can't think of a way to make that work, or figure out why it'd win if it did
23:51:06 <Sgeo> Wonder if a BF Joust-like game could be made with similar/same strategic concerns but easier to write code in than BF
23:51:19 <ais523> Sgeo: I considered making a very cut-down version
23:51:22 <Sgeo> Perhaps a BF derivative that's an easy mode for BF?
23:51:28 <Sgeo> Like BFC
23:51:33 <ais523> where you just abstractly went "poke. decoy. decoy. rush"
23:51:42 <ais523> and there were rules for what beat what
23:51:48 <ais523> it might be a good way to get started
23:52:13 <FreeFull> Maybe a stack-based alternative, where there is your stack and the opponent's stack, but you don't know which one's which
23:52:15 <ais523> part of the problem with that method is that there'd be only one fundamentally different fast rush program
23:52:20 <ais523> unless you count frsc, and that's ridiculous
23:52:46 <ais523> people keep proposing variants/"improvements" to BF Joust without understanding the fundamentals of what makes it BF Joust
23:52:58 <ais523> I think I'd say that something needs decoys to be considered remotely similar to it strategy-wise
23:53:05 <ais523> (necessary condition, not sufficient)
23:53:25 -!- WeThePeople has quit (Ping timeout: 256 seconds).
23:53:52 <FreeFull> Of course you need decoys
23:53:59 <FreeFull> Maybe stacks aren't the best data structure
23:54:00 <FreeFull> Hmm
23:54:06 <quintopia> the only changes i propose are to fix fundamental flaws. everything else i suggest is completely different bf-based games
23:54:11 <ais523> yeah, indeed
23:54:21 <ais523> do you think there are any fundamental flaws atm?
23:54:26 <quintopia> yes
23:54:28 <FreeFull> Two-dimensional would be too complex
23:54:35 <ais523> the existence of timer clear is worrying me, that's what I see as the biggest problem
23:54:36 <FreeFull> Unless you made the playfields small enough
23:54:39 <quintopia> the combination of determinism and finite hill size
23:54:44 <quintopia> is the main one
23:54:50 <FreeFull> 2D sounds good actually
23:54:54 <ais523> quintopia: oh, it's the hill you dislike rather than the game rules?
23:55:00 -!- Taneb has quit (Quit: Leaving).
23:55:20 <quintopia> ais523: a finite hill is fine in a nondeterministic games, so it really is the combination of the two
23:55:33 <quintopia> also i really want to see the fixed point scoring added
23:56:04 <ais523> 2D BF Joust: commands are north, south, west, east, dig (tells you the number of mines in the 8-neighbourhood, kills you if the current square is mined, wins if you're on the enemy flag), toggle presence of mine
23:56:34 <ais523> I meant that as a joke but it doesn't seem completely unviable
23:56:37 <quintopia> lol
23:56:46 <FreeFull> I'm not sure about the mines
23:56:51 <quintopia> a minesweep solver written in BF?
23:56:51 <ais523> presumably you'd start on a randomly-sized rectangle
23:57:00 <ais523> with the whole exterior full of mines, the interior originally non-mined
23:57:36 <FreeFull> ais523: Why not a toroidal playfield?
23:57:39 <quintopia> ais523: so i just completely surround my flag with mines right off, then keep extending the perimeter of my mine fence
23:57:46 <ais523> FreeFull: because you have to have some method to locate the enemy flag
23:58:05 <quintopia> (perhaps you could make mine placement trigger explosion if placed on a mine also)
23:58:21 <ais523> quintopia: so the problem using that is that because the playfield is rectangular, the enemy can locate your flag without even getting near your decoys
23:58:22 <FreeFull> ais523: Transverse the field somehow
23:58:25 <FreeFull> Maybe leaving marks
23:58:39 <ais523> you'd want to draw a line all the way across the field
23:58:57 <ais523> and perhaps mine under the opponent just as they tried to dig the square they thought was your flag
23:59:02 <ais523> (flags should be nonminable, obviously)
23:59:15 <quintopia> ais523: how? i don't have to make my mine base symmetrical? and if you don't know where in my giant rectangle of mines my flag is, you're reduced to guessing and dying
23:59:26 -!- nooga has joined.
23:59:28 <ais523> quintopia: well the playfield is rectangular
23:59:43 <ais523> so I measure the distance from my flag to each of the near corners
23:59:49 <ais523> (your flag being in the far corner)
23:59:53 <nooga> i'm trying to crack this in haskell: http://projecteuler.net/problem=21
23:59:53 -!- Sanky has quit (Ping timeout: 255 seconds).
23:59:58 <quintopia> ais523: i could make the area around my flag indistinguishable from the edge of the playing field
2013-02-21
00:00:00 <ais523> then that tells me where the far corner is
00:00:15 <ais523> quintopia: you have to make the area around the corners with no flags indistinguishable from the edge
00:00:17 <quintopia> who said flags are in the corners
00:00:20 <ais523> oh
00:00:25 <ais523> I didn't, but I meant to
00:01:01 <nooga> i got let d n = [ x | x <- [1..n-1], n `mod` x == 0 ] and let sd n = sum $ d n
00:01:13 <ais523> I guess the next step in the strategy would be attempting to mine under the non-flag corners as the opponent tried to measure them
00:01:15 <quintopia> but yeah, even in that case: build borders on the two sides near my flag moving towards the enemy flag. make the rectangle smaller and smaller
00:01:32 <ais523> quintopia: yeah, that corresponds to the "slow rush", I think
00:01:38 <nooga> but [(x,y) | x <- [1..10000], y <- [1..10000], x /= y, sd x == y, sd y == x] seems inefficient
00:01:46 <ais523> might have to tweak the timings to stop that being /too/ effective
00:02:04 <ais523> also, the opponent would probably be able to outpoke that
00:02:17 <quintopia> if they know where to poke
00:02:18 <ais523> I'm not convinced that this works, but I can't think of an obvious breaking strategy
00:02:31 <ais523> quintopia: well you're doing move, check, mine, move, check, mine…
00:02:37 <ais523> I'm doing move, check, move, check…
00:02:44 <ais523> so I reach the corner first, if we're aiming for the same corner
00:02:57 <quintopia> i was think reverse mining from the corner
00:03:02 <ais523> reverse decoy setup :)
00:03:07 <quintopia> obv
00:03:22 <quintopia> but if you pick the wrong corner
00:03:41 <ais523> yeah
00:03:42 <quintopia> i could make several borders on the other side
00:03:47 <quintopia> and
00:03:48 <quintopia> boom
00:04:00 <ais523> also if the playfield is approximately square
00:04:04 <quintopia> well
00:04:08 <quintopia> i'm assuming it isn't
00:04:08 <ais523> I'll see an unexpected 4 when I was looking for 3s and 5s
00:04:14 <quintopia> because that would be too easy then
00:04:15 <FreeFull> nooga: I started with the primes library
00:04:15 <ais523> I'm assuming it has a random chance to be
00:04:19 <ais523> but usually isn't
00:04:49 <FreeFull> My solution is a bit slow though, takes 3 seconds
00:05:06 <nooga> my takes minutes
00:05:12 <nooga> i know it's really naive
00:05:20 <quintopia> anyway, i like zzo's old idea for modifying bfjoust
00:05:31 <ais523> the one with a doubling cube?
00:05:31 <FreeFull> I wrote an isAmicable function and then filtered on it
00:05:36 <quintopia> where , reads in a random number to the current cell
00:05:46 <ais523> actually I don't know if he had that idea, but he should have done
00:05:54 <ais523> quintopia: that wasn't actually the idea, his , read the opponent's .
00:05:58 <ais523> but reading in random does indeed make sense
00:06:00 <quintopia> and . writes out yeah that
00:06:04 <quintopia> it was both actually
00:06:05 <nooga> uh
00:06:07 <nooga> bbl
00:06:19 <ais523> part of the problem is that [,] seems like the best clear loop ever
00:06:21 <FreeFull> Maybe for the 2D bfjoust you could actually have something where all your movements are mirrored
00:06:38 <FreeFull> Or rather rotated 180°
00:06:40 <quintopia> ais523: well, i had several ideas for how to modify it
00:06:49 <FreeFull> So that you basically have two players at once
00:06:54 <quintopia> but that idea doesn't work
00:07:00 <quintopia> if the random number is never zero
00:07:02 <ais523> it's as fast as a 2-cycle clear on average, and is immune to all types of lock
00:07:13 <ais523> hmm
00:07:28 <ais523> I'd actually like to see something like a ± instruction that randomly increments or decrements the current cell
00:07:39 <ais523> that's good for making random /decisions/, but doesn't exceed any sort of speed of light
00:07:52 <ais523> and [±] is a valid, hard-to-lock clear loop, but a very slow one
00:07:54 <quintopia> yep that's what i was thinking too
00:08:05 <quintopia> that , would read in a 1 or -1
00:08:11 <quintopia> and add it to the current value
00:08:40 <quintopia> but also
00:08:49 <quintopia> i thought it might be cool to leave the bf as it is
00:09:00 <quintopia> and make the randomness in the meta parts of the syntax
00:09:01 <ais523> I was wondering about that too
00:09:09 <ais523> oh, I thought you meant 1/0/-1
00:09:16 <ais523> you mean a ()*?
00:09:17 <ais523> or whatever?
00:09:20 <quintopia> yeah
00:09:35 <ais523> I'm not sure I like 0-cycle randomness
00:09:48 <ais523> control structures having a cost is what prevents them just being spammed everywhere
00:09:59 <quintopia> huh
00:10:02 <quintopia> you lost me
00:10:19 <FreeFull> How about being able to plant a mine that teleports you or your opponent to a random spot when dug up
00:10:39 <FreeFull> Too good?
00:10:55 <quintopia> (+)*/0,60/ could output up to 60 plusses and those 60 plusses will take 60 cycles to execute
00:11:15 <FreeFull> Maybe planting the mine could teleport you to a random spot too
00:11:20 -!- augur has joined.
00:12:00 <ais523> FreeFull: it doesn't sound as good as a mine that just makes you win the game when it's dug up
00:12:15 <ais523> quintopia: I'm thinking in terms of (one strategy)*/0,1another strategy
00:12:21 <ais523> err, missing slash, but you know what I mean
00:12:29 <FreeFull> ais523: Then you'd just plant it and dig it up
00:12:33 <FreeFull> How about moveable flags?
00:12:46 <quintopia> ais523: i don't see any problem with that
00:12:58 <ais523> quintopia: you're making the decision in 0 cycles
00:13:00 <ais523> it feels like it should take 1
00:13:16 <ais523> FreeFull: flags in BF Joust can't be moved, for good reason
00:13:18 <Sgeo> Is bfc maintained...
00:13:23 <Sgeo> why would bfc need to be maintained
00:13:25 <ais523> otherwise you'd wait for the opponent to rush
00:13:30 <ais523> then move your flag to behind them
00:13:39 <ais523> I imagine something similar would happen in Minesweeper Joust
00:14:01 -!- Sanky has joined.
00:14:10 <quintopia> ais523: a game doesn't usually hang in the balance of a single cycle, or even five cycles
00:14:14 <ais523> also it might lead to a theoretically unbeatable triplock variant
00:14:26 <FreeFull> I see
00:14:27 <ais523> quintopia: yeah but when it does it's awesome
00:14:46 <FreeFull> ais523: Even if the flag is always moved to where your opponent currently is?
00:15:01 <ais523> FreeFull: then you move the flag on the first cycle
00:15:09 <FreeFull> Unless the opponent is on their own flag
00:15:09 <ais523> now your opponent can't possibly win via flag zeroing
00:15:12 <FreeFull> Then it fails silently
00:15:47 <ais523> now it's not obviously broken, but I'm still not convinced it's interesting to play
00:16:06 <quintopia> ais523: i'm fine with , randomly adding either 1 or -1, then. then you can do a strategy choice as +,[strategy]otherstrategy
00:16:09 <ais523> part of the problem: say you flag-teleport during the enemy decoy setup, now you can only be beaten if the opponent zeros their own decoys
00:16:22 <ais523> say you /don't/ do that, now you're probably going to win if the opponent zeros their own decoys
00:16:25 <ais523> quintopia: yeah
00:16:47 <quintopia> ais523: do you see anything that anyone could complain about with having that command?
00:16:56 <quintopia> besides elliott
00:17:03 <quintopia> he doesn't play anyway
00:17:21 <FreeFull> What if you are able to teleport the enemy's flag to random place instead?
00:18:59 -!- DH____ has joined.
00:19:55 <oerjan> <nooga> but [(x,y) | x <- [1..10000], y <- [1..10000], x /= y, sd x == y, sd y == x] seems inefficient <-- you definitely don't want that y <- [1..10000], you _know_ y should be = sd x if it fits at all.
00:20:18 -!- DHeadshot has quit (Ping timeout: 252 seconds).
00:20:27 <ais523> quintopia: I'd like a separate hill for it, it'd play out very differently
00:20:43 <ais523> something as simple as a random polarity on the clear would make defence rather harder to write
00:20:56 <quintopia> okay we'll set it up as soon as i ruin the current hill
00:20:57 <ais523> also it being unclear whether one program beat another or not would hurt
00:21:17 <ais523> quintopia: I'm not 100% convinced that it's possible to always beat everything via special-casing
00:21:47 <quintopia> well, i'm still going to try
00:21:54 -!- carado has quit (Ping timeout: 256 seconds).
00:22:30 <ais523> quintopia: btw, I thought up a hilarious optimism variant
00:22:38 <ais523> you attempt to lock the enemy on cell 9
00:22:43 <ais523> and use the lock to complete your decoy setup
00:22:46 <quintopia> beating everything 90% of the time would be good enough, right?
00:22:50 <ais523> only /then/ do you clear :)
00:23:11 <ais523> quintopia: well… the problem is
00:23:28 <ais523> suppose I write ill_bet_you_have_three_decoys
00:23:43 <ais523> and the matching programs for two and one (zero and four have already been written)
00:23:51 <ais523> and five and six and seven and eight and so on
00:24:04 <ais523> one of those programs will beat pretty much any non-defence program you could write
00:24:07 <ais523> and defence has its own issues
00:24:14 <quintopia> finite hill
00:24:17 <ais523> which one, of course, will depend on your decoy setup
00:24:20 <quintopia> good luck keeping all of them on it
00:24:29 <ais523> and there's room for all the programs from 0 to 29 on the hill
00:24:55 <quintopia> you don't think it's possible to beat all of them at once?
00:25:12 <ais523> !bfjoust ill_bet_you_have_twentynine_decoys (>)*29((+)*110[+][-.--[-.--]])*-1
00:25:15 <EgoBot> ​Score for ais523_ill_bet_you_have_twentynine_decoys: 0.0
00:26:23 <ais523> huh, it beats every other program on tape length 30 but atewah_test_rush (and on one polarity, david_werecat_ill_take_the_stairs)
00:26:26 <quintopia> anyway, a metastrategy that requires 29 programs teaming up to beat it is pretty much the definition of ruining the hill so unless you've got something better, you've proved my point
00:26:39 <ais523> quintopia: well it's an existence proof
00:26:59 <ais523> and it needs far fewer programs to do it in practice
00:27:10 <ais523> because you can't set 29 decoys and do even remotely well against pretty much anything
00:27:12 <FreeFull> You only should be allowed to have 3 programs at a time
00:27:47 <quintopia> FreeFull: or as many as you want at a time! infinite hill!
00:27:49 <ais523> really I just wanted to write a program called ill_bet_you_have_twentynine_decoys
00:28:02 <ais523> FreeFull: I have more than 3, but they're pretty varied in how they work
00:28:13 <ais523> we have a sort of informal agreement not to spam the hill with similar variants of the same program
00:28:52 <quintopia> but no such informal agreement against special casing the hell out of some battles
00:28:55 <ais523> quintopia: the other thing is that a program that gets a 100% record purely through excessive tweaking will tend to fall very quickly
00:29:13 <ais523> when it's beaten by all the random programs that get submitted
00:29:26 <ais523> unless it has a very solid core strategy and just tweaks against its bad matchups
00:29:45 <quintopia> ais523: this is exactly why i came up with the alternate idea of giving programs extra credit for time spent on the hill
00:29:55 <ais523> quintopia: I like that idea
00:30:17 <ais523> it might be interesting to have any program that had ever topped the hill permanently on the hill, barring deliberate attempts at hill manipulation
00:30:28 <ais523> plus a fixed number of newcomers, 30 or so
00:30:29 <quintopia> and not a multiplier. an exponentially decaying constant bump
00:30:40 <Phantom_Hoover> "A South African inventor brought the Blaster car mounted flamethrower to market in 1998 as a security device to defend against carjackers.[39] It has since been discontinued, with the inventor moving on to pocket-sized self-defence flamethrowers.[40]"
00:30:48 <Phantom_Hoover> [[wp:flamethrower]]
00:30:53 <ais523> but that would face a problem of people just tweaking against the permadenizens
00:30:59 <Phantom_Hoover> i know nothing about this person but already i love them
00:31:16 <ais523> Phantom_Hoover: South Africa is reasonably famous for allowing people to legally use deathtraps to protect their own property
00:31:18 <quintopia> like, one years gets you 25 extra points, 2 years gets you 37.5 extra points, 3 years gets you 43.75 extra points etc.
00:31:41 <ais523> quintopia: yeah, but that would probably lead to programs that were actually theoretically unbeatable
00:31:49 <ais523> except by another program that stayed on the hill with them for 10 years
00:31:52 <Phantom_Hoover> yeah but like a /self-defence/ flamethrower??
00:31:59 <ais523> unless there was an actual concerted effort to take them down
00:32:07 <ais523> Phantom_Hoover: it's probably less effective than a gun
00:32:08 <quintopia> ais523: how so? that sequence tops out at 50 extra points.
00:32:15 <ais523> quintopia: yeah, but 50 points
00:32:15 <Phantom_Hoover> that's just the result of a mind convinced to solve all of life's problems with flamethrowers
00:32:20 <quintopia> you could set the excess at any value
00:32:23 <ais523> imagine trying to beat, say, space_hotel by 50 points
00:32:35 <ais523> that's a really neatly designed puzzle
00:32:39 <ais523> err, program
00:32:47 <ais523> it resists most of my attempts to beat it via non-cheesy means
00:32:55 <quintopia> in the fixed point algorithm scores are higher and more varied
00:33:03 <ais523> hmm, OK
00:33:15 <quintopia> but again, set it to any total you like
00:33:18 <quintopia> 15 extra points
00:33:19 <quintopia> whatever
00:33:55 <ais523> quintopia: anyway I don't see any fun in repeatedly making mindblowingly tweaked gimmick programs
00:34:09 <ais523> doing it once would be great
00:34:20 <ais523> but after that you'd expect the author to get bored
00:34:27 <ais523> and get back to regular play
00:35:01 <quintopia> or to keep doing it until it becomes impossible! TROLOLOLOLOL!!!!!
00:35:33 <ais523> quintopia: well we reverted the hill after I wrote a program that beat everything, and elliott submitted 48 copies of it and pushed everything else off the hill
00:35:36 <ais523> which was admittedly a neat exploit
00:35:38 -!- doesthiswork has quit (Quit: Leaving.).
00:35:45 <ais523> but really against the spirit of things
00:36:25 <ais523> the "correct" way to defend against excessive tweaking, and the method actually used in Original BF Joust (which only ever ran one round, IIRC), is to put a time lag between programs being submitted and them hitting the hill
00:36:34 <ais523> so the submissions are made without knowledge of each other
00:36:40 <ais523> but that'd be less fun in terms of the community aspects
00:37:04 <quintopia> yeah that misses one major point
00:37:50 <ais523> what point?
00:38:10 <quintopia> the process of incrementally adding new strategies
00:38:22 <quintopia> which i reeeeaallly think should include mixed strategies!!!!!
00:39:14 <ais523> quintopia: mixed strategies have nasty game-theoretic implications, really
00:39:27 <ais523> like, if you have three programs A, B, and C, which are the only legal deterministic programs
00:39:31 <ais523> and you can randomly choose between them
00:39:37 <ais523> what's the best random mix?
00:39:53 <quintopia> there isn't one
00:39:55 <quintopia> so what
00:40:01 <ais523> (the game theory answer is "they're all equally good on average, and if the opponent produces something that has no disadvantages, it has no advantages either and it doesn't matter what you run")
00:40:27 <ais523> so what would actually happen would depend a lot on the actual random numbers
00:40:28 -!- sebbu has quit (Ping timeout: 272 seconds).
00:40:33 <quintopia> we have far more than 3 strategies
00:40:36 <ais523> unless you averaged over all possible randomnesses, which would be very slow
00:40:40 <ais523> quintopia: I know, that's just an example
00:40:41 <quintopia> and we are humans
00:41:05 <quintopia> and we could get so much more complexity by tinkering with the distributions like that
00:41:44 <ais523> basically I'm thinking in terms of the game being more interesting in knowing which strategies beat which other strategies
00:41:50 <ais523> or to put it another way, I don't play BF Joust to win
00:41:55 <ais523> I play it to know more about the game
00:42:03 <ais523> I enjoy finding winning strategies
00:42:05 <ais523> but don't mind if their beaten
00:42:22 <ais523> and the vast majority of my good programs have had things that just beat them outright
00:42:26 <ais523> (all the defence programs, for instance…)
00:42:53 -!- augur has quit (Remote host closed the connection).
00:43:27 -!- augur has joined.
00:43:43 -!- carado has joined.
00:44:15 <ais523> I actually suspect that the BF Joust ruleset itself is flawed, even ignoring any hill effects
00:44:20 <ais523> just we haven't broken it yet
00:45:06 <ais523> the thing that has me most worried is death_to_defence, and poking to a lesser extent
00:46:52 <quintopia> i don't think you should be worried
00:46:54 -!- DH____ has quit (Read error: Connection reset by peer).
00:46:56 <quintopia> and i think you are wrong
00:47:10 -!- DHeadshot has joined.
00:47:22 <quintopia> i think for every strategy there is a counterstrategy (that may be much more complicated)
00:47:24 <ais523> wrong in what respect? the basic ruleset?
00:47:55 -!- augur has quit (Ping timeout: 260 seconds).
00:48:18 -!- oerjan has quit (Quit: leaving).
00:48:49 <quintopia> for instance, maybe there is a clear that can defeat every lock
00:49:11 <quintopia> but we can be certain said clear will take a hell of a lot of time to accomplish said clearing
00:49:23 <ais523> quintopia: what about timer clears?
00:49:55 <Sgeo> Hum. The inactive Active Worlds wikia was vandalized by someone in the Active Worlds community to point to their own wiki.
00:49:57 <quintopia> so then we develop a quicker sort of full tape clear that only requires it to be locked for so many cycles...not forever
00:49:59 -!- augur has joined.
00:50:03 <Sgeo> I don't know whether to leave it there or not
00:50:34 <Phantom_Hoover> it's wikia
00:50:36 <Phantom_Hoover> who gives a shit
00:50:36 <quintopia> Sgeo: no one cares!
00:50:45 <Phantom_Hoover> it's activeworlds
00:50:46 <quintopia> just leave it
00:50:48 <Phantom_Hoover> who gives a shit
00:51:20 <ais523> if it's wikia, just leave it
00:51:35 <ais523> that place needs to become a ghost town
00:52:03 <Sgeo> The MSPA wiki is on wikia
00:52:28 <ais523> Wikia used to be OK, but it's got increasingly evil over time
00:53:17 <Phantom_Hoover> the mspa wiki is when i really started hating wikia
00:53:33 <Phantom_Hoover> an interstitial for every. single. link. to the actual comic
00:54:04 <Sgeo> Clicking the green thing next to the link helps
00:54:14 -!- augur has quit (Remote host closed the connection).
00:54:51 -!- augur has joined.
00:54:56 * Sgeo kind of trolled ##wikia just now
00:55:02 <Sgeo> <Sgeo> I apologize to the Creatures community, the NetHack community, and the Active Worlds community, for my decisions to start those wikis on Wikia.
00:55:02 <Sgeo> <Sgeo> That is all
00:55:48 <ais523> Sgeo: that was possibly a bad idea
00:56:01 <Sgeo> :/ Creatures wiki is still on Wikia
00:56:20 <Sgeo> But... Wikia wasn't oblivious to our hate, were they?
00:56:33 <ais523> no
00:56:37 <ais523> but we'd prefer to let things die
00:56:39 <ais523> than stir them up
00:56:51 <ais523> I had considered reporting Wikia to Google for black hat SEO
00:56:55 <ais523> but am not sure how or if it's worthwhile
00:57:18 <ais523> (the links between all the individual wikias at the bottom seem to exist only for SEO purposes and not for actual people who'd want to use the wikis)
00:59:10 <ais523> IMO search engines should also deprioritise sites for obnoxious advertising
00:59:15 <ais523> but Google clearly wouldn't do that
00:59:35 -!- augur has quit (Ping timeout: 260 seconds).
01:00:40 <kmc> you can't apologize to A by going up to B and saying "I apologize to A"
01:00:53 <Sgeo> http://pastie.org/private/ojojgjppm6diios6tfxxkg
01:00:56 <Sgeo> the replies
01:01:02 <Sgeo> (from before PH joined)
01:01:15 <Phantom_Hoover> sgeo does not really understand things like 'who he's talking to'
01:02:50 * Sgeo was intending mostly to troll.
01:02:56 <Sgeo> But maybe I should go apologize
01:03:00 <Sgeo> To those communities
01:03:07 <Phantom_Hoover> you are literally the worst troll
01:03:16 <Phantom_Hoover> do you want, like, lessons
01:03:18 <Phantom_Hoover> in being a dick
01:04:44 -!- madbr has joined.
01:04:46 <madbr> sup
01:05:51 <madbr> ok, VLIW processing unit design is hard
01:06:00 <madbr> the problem is long feedback loops
01:06:57 -!- pikhq has quit (Remote host closed the connection).
01:08:45 <Bike> who's trolling? did i get trolled?
01:10:37 <madbr> one cycle feedback? awesome, just asign a register to that instruction kthnx
01:11:04 <madbr> two cycle -> complexity balloons up and the design becomes monstruous kinda fast
01:11:13 -!- Nisstyre-laptop has quit (Quit: Leaving).
01:11:26 <Phantom_Hoover> so i was thinking
01:11:42 <Phantom_Hoover> can you make a language super-tc just by expanding the amount of data it can operate on
01:12:07 <Bike> sure, include a halting oracle as data
01:12:25 <Phantom_Hoover> like, as in expanding it to operate on an infinite amount of data in finite time
01:13:06 <Bike> sure, that's a real computer
01:13:17 <Bike> or a zeno machine probably
01:13:20 <Sgeo> That means it could answer the halting problem in finite time
01:13:21 <Sgeo> ?
01:13:35 <quintopia> Phantom_Hoover: you could use that to solve NP problems in P time
01:13:36 <Sgeo> Oh, misunderstood what Bike meant by real computer.
01:13:44 <Bike> a real numbers computer, i mean
01:13:49 <Phantom_Hoover> right
01:13:57 <Bike> not a computer i actually have, alas
01:14:01 <quintopia> but you could not use it do decide undecidable problems
01:14:35 <Phantom_Hoover> but chaitin's constant etc.
01:16:26 <madbr> x86 keeps living on (ps4 is x86)
01:16:44 <madbr> by now it's probably going to survive forever
01:17:17 <Phantom_Hoover> the other thing i was thinking involved splitting a tc system down into sub-tc components in some sense, like in ais523's proof of that thing
01:18:00 <quintopia> that thing that is in his nick :P
01:19:54 <kmc> oh is that where 523 comes from
01:20:04 <Phantom_Hoover> no
01:20:07 <Phantom_Hoover> the other thing
01:20:16 <quintopia> which other thing
01:20:23 <Phantom_Hoover> the 523 was the thing his university added to his username so he stuck with it
01:20:30 <Phantom_Hoover> quintopia, the wolfram thing
01:21:04 <quintopia> huh, i always assumed he added the 523 himself referencing that TM
01:21:14 <Bike> what does that tm have to do with 523
01:21:39 -!- DHeadshot has quit (Ping timeout: 276 seconds).
01:23:59 <quintopia> the (2,3) TM simulates a cyclic tag system using 5 systems
01:24:44 -!- pikhq has joined.
01:25:04 -!- nooga has quit (Ping timeout: 240 seconds).
01:26:03 -!- madbr has quit (Quit: Radiateur).
01:26:20 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:42:17 -!- GOMADWarrior has joined.
01:46:29 <ais523> quintopia: 6, really, they're numbered starting from 0
01:46:38 <ais523> (one thing the paper reviewer disliked)
01:50:10 -!- constant has changed nick to trout.
02:09:19 -!- monqy has quit (Quit: hello).
02:09:21 -!- Nisstyre-laptop has joined.
02:13:35 <quintopia> ais523: that doesn't answer the question. did the uni assign your nick?
02:16:56 <ais523> quintopia: yes
02:16:59 <ais523> they did
02:17:14 <ais523> I thought that was obvious, did you expect PH to be lying about that for no reason?
02:34:13 -!- doesthiswork has joined.
02:40:26 -!- FreeFull has quit (Ping timeout: 255 seconds).
02:40:57 -!- FreeFull has joined.
02:50:56 -!- augur has joined.
02:55:00 -!- augur has quit (Remote host closed the connection).
02:55:07 -!- augur has joined.
03:01:55 -!- GOMADWarrior has quit (Ping timeout: 260 seconds).
03:06:51 <quintopia> ais523: no i gave about equal odds he was right and that he was mistaken and you handpicked your nick for some inscrutable reason
03:07:09 <ais523> fair enough
03:07:13 <ais523> it's random, not handpicked
03:07:22 <ais523> although I suspect the "ais" is a reference to my initials
03:13:46 <Sgeo> `list
03:13:48 <Sgeo> `slist
03:13:54 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti
03:13:54 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
03:16:16 <ais523> `mlist
03:16:18 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: mlist: not found
03:16:28 <ais523> we should notify people about new mezzacotta too
03:16:30 <ais523> just to be complete
03:20:58 <tswett> We should also notify people about new tweets.
03:21:33 <tswett> All new tweets.
03:31:59 <quintopia> i just tweeted in my pants
03:36:25 <kmc> shachaf: did you solve cruptopizzles #14?
04:05:06 -!- jix has quit (Ping timeout: 244 seconds).
04:06:40 -!- jix has joined.
04:45:35 -!- Sgeo has quit (Read error: Connection reset by peer).
04:46:52 -!- Sgeo has joined.
04:55:39 -!- Digital_Versicol has joined.
04:55:52 -!- Digital_Versicol has left.
05:09:15 -!- Frooxius has quit (Ping timeout: 260 seconds).
05:14:54 * pikhq finally has cause to play with mosh; yay.
05:15:06 -!- carado has quit (Ping timeout: 264 seconds).
05:15:08 <pikhq> So far my impression is "neat".
05:16:36 <quintopia> what is mosh
05:16:58 <pikhq> http://mosh.mit.edu/
05:17:21 -!- TeruFSX has quit (Ping timeout: 248 seconds).
05:17:41 <pikhq> SSH, but more tolerant of things like "dropped connection" or "moving IP addresses".
05:20:35 * kmc is a Mosh developer and would be happy to ramble on about how it works :)
05:20:41 <kmc> we also have #mosh
05:21:08 <pikhq> I'm just noting that it's actually quite neat.
05:21:23 <kmc> cool :)
05:21:28 <pikhq> Admittedly I am not testing it in one of the environments where it's heavily needed...
05:21:43 <pikhq> I am SSHing from laptop to desktop over home Wifi right now.
05:21:59 <pikhq> i.e. pretty near ideal latency.
05:22:34 <pikhq> But, I can suspend this sucker and have the connection still going.
05:22:39 <kmc> until someone turns on the microwave oven :)
05:22:40 <pikhq> Which is nice.
05:23:04 <pikhq> Also, the reason I'm doing this is really silly.
05:23:09 <pikhq> mplayer remote control. :P
05:25:48 <kmc> you should run mplayer -vo caca over Mosh
05:25:51 <kmc> it works much better than over SSH :)
05:27:02 <pikhq> I'm sure.
05:27:13 <pikhq> Let me guess: it actually works in a meaningful sense.
05:28:49 <kmc> not that well
05:28:52 <kmc> just better than SSH :)
05:28:58 <pikhq> Hah.
05:33:41 -!- Nisstyre-laptop has quit (Remote host closed the connection).
05:35:45 -!- Nisstyre-laptop has joined.
05:40:31 -!- monqy has joined.
05:47:22 <kmc> '“ISO 2022 locking escape sequences oh flying spaghetti monster please kill me now.” — actual USENIX peer review on reading the Mosh paper.'
05:48:34 <pikhq> Hah. :)
05:48:57 <monqy> thanks usenix
05:51:23 <kmc> thusenix
05:55:22 <Sgeo> Google is advertising the Chromebook inside the new tab thing on Chrome
05:56:52 <kmc> tacky
05:57:36 <Bike> hm, chromium still just shows me a destroying vision of my innermost self
06:10:10 -!- ais523 has quit.
06:17:06 <doesthiswork> kmc: I didn't know that people even made "look around you" references
06:17:53 <kmc> :)
06:21:17 <doesthiswork> delimited continuations are weird, you're evaluating along minding your own business when suddenly the next form turns inside out and is gobbled up by it's stomach
06:22:05 <pikhq> doesthiswork: We do here.
06:22:16 <pikhq> <3 Look Around You.
06:23:13 <doesthiswork> actually come to think of it, that makes perfect sense that this channel would like look around you
06:25:33 <Bike> sardonic mockery with lots of nice big words
06:33:49 <quintopia> now using mosh on irssiconnectbot
06:37:52 <quintopia> and now configured to be usable
06:39:02 <quintopia> and it looks like i have keyboard access to symbols again?
06:39:06 <quintopia> hurray?
06:44:58 <kmc> hurrah
06:45:58 -!- kmc has set topic: PKCS#7 (pronounced like "punshki") IS ENOUGH | http://codu.org/logs/_esoteric/.
06:49:14 -!- evincar has joined.
06:59:01 <mroman> pkcs?
07:02:56 <kmc> pkcs or it didn't happen
07:10:59 -!- FreeFull has quit (Quit: bye).
07:34:41 -!- blsqbot has joined.
07:34:50 <mroman> !blsq 5 5 .+
07:34:50 <blsqbot> 10
07:35:00 <mroman> !blsq 1R@<-
07:35:00 <blsqbot>
07:37:10 <Sgeo> `slist
07:37:14 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
07:37:27 <mroman> I just hope it does not crash my server :)
07:38:02 <mroman> I'm rather short on memory.
07:38:10 <mroman> I don't even have 100MB
07:39:01 <mroman> !blsq 1R@1R@z[
07:39:02 <blsqbot>
07:39:46 <mroman> !blsq 1R@1R@z[<>R@_+
07:39:46 <blsqbot>
07:42:28 <Sgeo> 'We shall shorthand that to "PH".
07:42:28 <Sgeo> Then, whenever he's prominently in a panel, we can call out "The PH levels are off the chart!"'
07:42:32 <Sgeo> (from Reddit)
07:44:27 <doesthiswork> `olist
07:44:29 <HackEgo> shachaf oerjan Sgeo
07:44:52 <Sgeo> No?
07:53:06 -!- epicmonkey has joined.
08:17:30 -!- fftw has quit (Ping timeout: 264 seconds).
08:24:11 -!- fftw has joined.
08:26:50 -!- sebbu has joined.
08:30:17 <shachaf> oerjan: What does it take to get me taken off `list?
08:30:22 <shachaf> People keep putting me back on.
08:31:17 <shachaf> I've clearly requested not to be on the list -- have had my name removed from the list multiple times -- and they just revert it. What shall I do about it?
08:32:34 <oklopol> what is it?
08:32:36 <shachaf> kmc: Nope. OK, I'll actually work on it tomor^H^H^Hday.
08:33:03 <shachaf> oklopol: It's a list of people who've run `list.
08:33:06 <shachaf> Which I haven't.
08:34:30 -!- evincar has quit (Quit: leaving).
08:35:28 -!- Bike has quit (Quit: no such place).
08:42:35 <oklopol> cool
08:42:38 <oklopol> `list
08:42:46 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti
08:42:49 <oklopol> ?olist
08:42:50 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
08:42:52 <oklopol> `olist
08:42:53 <HackEgo> shachaf oerjan Sgeo
08:42:56 <oklopol> ...
08:43:01 <oklopol> are you sure it's that
08:43:09 <oklopol> because it's double broken then
08:43:23 <oklopol> also what's list
08:43:58 <monqy> list is the list of people who have used `list..no idea what olist is
08:44:22 <Sgeo> `help
08:44:22 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
08:45:22 <oklopol> `list
08:45:26 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
08:45:46 <oklopol> haha that's genius
08:45:50 <doesthiswork> `I lost the game
08:45:51 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: I: not found
08:46:02 <shachaf> Would you stop it?
08:46:03 <Sgeo> `liste
08:46:05 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: liste: not found
08:46:08 <oklopol> stop what
08:46:09 <shachaf> You're all obnoxious people.
08:46:13 <Sgeo> shachaf, I am looking to see who to blame
08:46:14 <shachaf> What does it take to get taken off the list?
08:46:34 <Sgeo> Every change to HackEgo is recorded.
08:46:59 <shachaf> Sgeo: Who is to blame is bad code.
08:47:05 <Sgeo> Looks like elliott's fault
08:47:05 <Sgeo> http://codu.org/projects/hackbot/fshg/index.cgi/rev/6077517c1381
08:47:28 <shachaf> OK then.
08:48:03 <shachaf> elliott: You in particular are being obnoxious about this. Why do you do it? What would it take to get you to stop?
08:48:07 <Sgeo> `sed -ie "s/ shachaf//" bin/list
08:48:08 <HackEgo> Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... \ \ -n, --quiet, --silent \ suppress automatic printing of pattern space \ -e script, --expression=script \ add the script to the commands to be executed \ -f script-file, --file=script-file \ add the contents of script-
08:48:14 <Sgeo> `run sed -ie "s/ shachaf//" bin/list
08:48:17 <HackEgo> No output.
08:48:20 <shachaf> (Note: If Sgeo's comment was made in error, please disregard previous message.)
08:48:27 <shachaf> monqy: order of the stick updates
08:48:50 <shachaf> Sgeo: Thanks.
08:48:54 <shachaf> Let's see how long it lasts.
08:49:00 <doesthiswork> `olist
08:49:01 <HackEgo> shachaf oerjan Sgeo
08:49:10 <Sgeo> shachaf, you're welcome
08:49:11 <doesthiswork> :D
08:49:16 <shachaf> doesthiswork: You should stop running `olist when there aren't actually updates.
08:49:32 <shachaf> It's disappointing to see it run and then see that no update actually happened.
08:49:40 <doesthiswork> I wanted to see if it worked
08:50:01 <oklopol> ohh
08:50:19 <Sgeo> `olist is just a fixed list of people
08:50:20 <HackEgo> shachaf oerjan Sgeo
08:50:21 <Sgeo> ...dammit
08:50:23 <oklopol> i read `olist as `list in shachaf's message
08:50:26 <oklopol> erm
08:50:28 <oklopol> the other way around
08:50:31 <shachaf> You "checked if it worked" one hour ago.
08:50:45 <oklopol> so olist does what it's supposed to do and list is just an annoying command for luls
08:51:21 <Sgeo> `list
08:51:24 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
08:51:25 <monqy> `smlist wow get ready for 30 days of mega again!!!!!
08:51:27 <HackEgo> shachaf monqy elliott
08:51:55 <oklopol> so what is olist, as i meant to ask before
08:52:12 <monqy> i hear it's an "order of the stick" list
08:52:23 <monqy> i guess the o stands for "of" there
08:52:59 <shachaf> monqy: do you read "order of the stick"
08:53:02 <monqy> no
08:53:06 <monqy> i read super mega though
08:53:10 <shachaf> why not
08:53:14 <shachaf> yes i saw the update, thx
08:53:31 <doesthiswork> shachaf : I though Sgeo was supressing your name from hackego's output and so ran olist to see if I had guessed right
08:53:52 <doesthiswork> vampirism was a surprise
08:54:08 <monqy> imo suppress curse words from hackego's output because of #esoteric is family friendly
08:54:28 <shachaf> what are some good curse words to suppress
08:54:32 <shachaf> is "shachaf" a curse word
08:54:43 <doesthiswork> pole smoking
08:55:13 <monqy> that's a good example, doesthiswork
08:55:59 <monqy> "shachaf" is more like one of those things a cartoon would say instead of a curse. we could replace all "p*** s******" with "shachaf"
08:56:30 <doesthiswork> catamorphism, anamorphism, bijection, surjection
08:57:28 <doesthiswork> I've got the best curse word to censor "("
08:58:25 <doesthiswork> and "->"
08:59:14 <monqy> i find :) offensive please replace with ☺
09:06:48 <shachaf> ÷)
09:07:00 <shachaf> monqy: what about :☺)
09:07:09 <monqy> ☺bscene
09:08:12 <shachaf> ☺rjan
09:08:32 <shachaf> monqy: is the cons operator in haskell offensive when sectioned
09:10:18 -!- epicmonkey has quit (Ping timeout: 272 seconds).
09:10:58 -!- Zerker has joined.
09:11:02 <monqy> what sort of section are we talking here
09:13:01 <shachaf> like ( : )
09:13:05 <shachaf> but without spaces
09:13:11 <shachaf> or (1 : )
09:13:17 <shachaf> that second one
09:13:33 <monqy> ( :[ ])
09:13:48 <shachaf> (☺
09:14:06 -!- sebbu has quit (Ping timeout: 272 seconds).
09:21:23 -!- nooga has joined.
09:21:50 -!- epicmonkey has joined.
09:23:05 <shachaf> monqy: do you know anything about mage tower
09:23:25 -!- Zerker has quit (Quit: Colloquy for iPad - Timeout (10 minutes)).
09:24:47 <monqy> nope
09:36:00 -!- Taneb has joined.
09:36:26 <doesthiswork> the card game?
09:36:51 <Taneb> No, the latin swear word
09:37:18 <Taneb> Hang on, what were we talking about?
09:37:31 <Taneb> Because that only makes sense if we are talking about one reasonably obscure card game
09:37:50 <monqy> mage tower???
09:39:18 <Taneb> No, Sopio
09:39:36 <Taneb> Awesome card game
09:42:40 <Taneb> Anyone know any funny variants on the "when all you have is a hammer" quote
09:42:45 <Taneb> Said by famous people
09:45:20 <doesthiswork> when all you have is a nail, everything looks like a hammer
09:45:28 -!- DHeadshot has joined.
09:50:18 <Taneb> doesthiswork, that doesn't work
09:50:19 <Taneb> :P
09:50:37 <doesthiswork> “The civil rights movement in America turned around the corner with Martin Luther King’s 'If I Had a  Hammer’ speech.”
09:51:53 <Taneb> https://www.google.co.uk/search?q=when+all+you+have+is+a+hammer+it's+time+to+seriously+reevaluate+your+life&oq=when+all+you+h&aqs=chrome.0.59j57.2330&sourceid=chrome&ie=UTF-8#hl=en&safe=active&sclient=psy-ab&q=when+all+you+have+is+a+hammer+it%27s+time+to+seriously+reevaluate+your+life&oq=when+all+you+have+is+a+hammer+it%27s+time+to+seriously+reevaluate+your+life&gs_l=serp.3...3170.3693.1.3948.2.2.0.0.0.0.71.139.2.2.0.les%3B..0.0...1c.1.4.p
09:51:53 <Taneb> sy-ab.DZf566slBdc&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&bvm=bv.42661473,d.d2k&fp=874b575464b2f52f&biw=1301&bih=682 doesn't give any relevant links at all
09:52:03 <doesthiswork> software engineering is all about using the right wrench to hammer in the screw
09:52:11 <Taneb> I don't think I need most of that url
09:52:21 <doesthiswork> *nail works better than "hammer"
09:53:35 <Taneb> Basically, I'm giving someone a hammer for their birthday
09:54:37 <doesthiswork> get them a beer too
09:55:01 <doesthiswork> and a yoyo for their dog
09:56:18 <doesthiswork> so they can get hammered while they hammer
09:57:43 <doesthiswork> "remeber that time e played hammer tag?" 'no...' "Yeah, I won"
10:01:46 <Jafet> When all you have is O'Neil
10:04:12 -!- monqy has quit (Quit: hello).
10:07:21 <doesthiswork> ``All parts should go together without forcing. You must remember that the parts you are reassembling were disassembled by you. Therefore, if you can't get them together again, there must be a reason. By all means, do not use a hammer.'' -- IBM maintenance manual (1925)
10:07:22 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `All: not found
10:07:27 <doesthiswork> woops
10:09:11 -!- Nisstyre-laptop has quit (Ping timeout: 255 seconds).
10:36:52 -!- nooga has quit (Ping timeout: 252 seconds).
10:45:05 -!- carado has joined.
10:52:51 -!- nooga has joined.
10:53:51 -!- Taneb has quit (Quit: Leaving).
11:25:34 -!- copumpkin has quit (Ping timeout: 240 seconds).
11:26:06 -!- copumpkin has joined.
11:53:46 -!- oerjan has joined.
11:55:49 <oerjan> <Sgeo> ...dammit <-- I TAKE IT THIS WAS A FALSE ALARM
11:57:43 <oerjan> `rm bin/liste
11:57:46 <HackEgo> No output.
11:58:21 <oerjan> Sgeo: IT'S NOT sed -ie DAMMIT
11:58:39 <fizzie> Taneb: "You gots hammer? Bhaal once drop hammer on big godly toe. Jump around and swear for days, he did." -- Cespenar the Imp.
11:58:46 <fizzie> (Searched Wikiquote for "hammer".)
11:59:16 <oerjan> a favorite story among imps, i assume
12:00:49 <Sgeo> So that's what that liste thing is!
12:01:01 <oerjan> yep!
12:01:34 <Sgeo> What does sed -ie do exactly?
12:01:57 <fizzie> Edis in-place, makes "e" the backup file suffix.
12:02:20 <Sgeo> Ah
12:03:14 <oerjan> and it's easy not to notice because the actual -e option is so _optional_.
12:05:08 <fizzie> `run ls */*e
12:05:10 <HackEgo> bin/addquote \ bin/define \ bin/delquote \ bin/fortune \ bin/fueue \ bin/google \ bin/hyfinate \ bin/pastaquote \ bin/paste \ bin/quine \ bin/quote \ bin/relcome \ bin/resume \ bin/shove \ bin/translate \ bin/wehlcohme \ bin/welcome \ factor/factor.image \ ibin/befunge \ ibin/kipple \ ibin/linguine \ ibin/malbolge \ interps/Makefile \ share/awesome
12:05:25 <fizzie> Those all seem reasonable.
12:05:30 <oerjan> fizzie: i think i got the rest last time i checked :P
12:05:43 -!- doesthiswork has quit (Quit: Leaving.).
12:06:01 <fizzie> `relcome just_testing
12:06:03 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/relcome: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/relcome: cannot execute: Permission denied
12:06:05 <oerjan> and i've taken to look at the repository listing for strange things occasionally. (and for whoever asked the other day, no it's not because of shachaf.)
12:06:35 <oerjan> *looking
12:06:42 <fizzie> `sh bin/relcome
12:06:44 <HackEgo> No output.
12:06:57 <fizzie> I don't quite know what's up with that.
12:07:08 <shachaf> `cat bin/relcome
12:07:09 <HackEgo> ​#!/bin/sh \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())"
12:07:16 <shachaf> `relcome 13
12:07:17 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/relcome: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/relcome: cannot execute: Permission denied
12:07:26 <oerjan> i think it's supposed to make it renglish, but it's broken somehow
12:07:28 <shachaf> Hmm, that doesn't even use the argument like that.
12:07:30 <shachaf> It should.
12:07:41 <shachaf> imo relcome 13 should rot13
12:07:44 <oerjan> er, *ingrish
12:08:25 <fizzie> It needs to relcome the person relcomed, though.
12:08:57 <fizzie> Oh, so it's a rainbow-welcome, I see.
12:10:40 <oerjan> `run chmod a+x bin/relcome
12:10:43 <HackEgo> No output.
12:10:46 <oerjan> `relcome What about now?
12:10:48 <HackEgo> ​/bin/sh: Can't open \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())"
12:11:01 <oerjan> wat
12:11:23 <oerjan> `cat bin/relcome
12:11:24 <HackEgo> ​#!/bin/sh \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())"
12:11:55 <oerjan> `run sed -i 's/ \\ /\n' bin/relcome
12:11:56 <HackEgo> sed: -e expression #1, char 9: unterminated `s' command
12:12:06 <oerjan> `run sed -i 's/ \\ /\n'' bin/relcome
12:12:07 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
12:12:11 <oerjan> argh
12:12:15 <oerjan> `run sed -i 's/ \\ /\n/' bin/relcome
12:12:19 <HackEgo> No output.
12:12:27 <oerjan> `relcome Testing ho
12:12:30 <HackEgo> Testing: Welcome to the international hub for esoteric programming language design and deployment! For
12:12:33 <oerjan> finally
12:12:53 <shachaf> Oh.
12:12:57 <shachaf> That's much better.
12:13:05 <shachaf> `relcome oerjan
12:13:08 <HackEgo> oerjan: Welcome to the international hub for esoteric programming language design and deployment! For m
12:13:10 <oerjan> i suspect somewhat had just copy/pasted HackEgo's output back into the file, thus turning newline into " \ "
12:13:22 <oerjan> MAYBE
12:14:02 <oerjan> that seems cut off, is it just because of the extra length of the color codes?
12:14:03 <fizzie> The length limits hit that thing pretty hard.
12:14:18 <oerjan> yeah
12:15:34 <fizzie> `run echo $(welcome someone | wc -c) $(relcome someone | wc -c)
12:15:38 <HackEgo> 242 814
12:15:42 <fizzie> Nasty business.
12:16:38 <shachaf> Business
12:16:40 <shachaf> Er.
12:16:42 <shachaf> Nusiness
12:17:03 <oerjan> `yes
12:17:05 <HackEgo> y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y
12:17:56 <oerjan> still at 350
12:20:43 <shachaf> There should be a randomized relcome.
12:20:46 <oerjan> > 350/242
12:20:48 <lambdabot> 1.4462809917355373
12:20:58 <oerjan> > 350%242
12:21:00 <lambdabot> Not in scope: `%'
12:21:00 <lambdabot> Perhaps you meant `R.%' (imported from Data.Ratio)
12:21:05 <oerjan> > 350 R.% 242
12:21:07 <lambdabot> 175 % 121
12:21:15 <oerjan> > 350 R.% 240
12:21:17 <lambdabot> 35 % 24
12:21:58 -!- Phantom_Hoover has joined.
12:23:07 -!- Taneb has joined.
12:23:59 <oerjan> `python --version
12:24:00 <HackEgo> Python 2.7
12:24:11 <Taneb> `ghc --version
12:24:14 <HackEgo> The Glorious Glasgow Haskell Compilation System, version 7.6.1
12:24:39 <oerjan> Taneb: we just need Gregor to install lens, and we'll be all set
12:24:49 <Taneb> `cabal --version
12:24:50 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: cabal: not found
12:25:02 <Taneb> `run ghc-pkg list | paste
12:25:09 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.4130
12:25:32 <oerjan> even if cabal were there, it wouldn't get out of the sandbox since hackage isn't on the whitelist, and besides it would probably timeout anyway.
12:26:19 -!- azaq23 has joined.
12:26:27 -!- azaq23 has quit (Max SendQ exceeded).
12:28:06 <oerjan> > (350-250)/4
12:28:07 <lambdabot> 25.0
12:28:12 -!- azaq23 has joined.
12:29:29 <oerjan> > length . concat $ [chr 3 : show i | i <- [0..15]]
12:29:31 <lambdabot> 38
12:29:53 <oerjan> > 38/16
12:29:56 <lambdabot> 2.375
12:30:15 <oerjan> > 100/3.375
12:30:17 <lambdabot> 29.62962962962963
12:30:37 <oerjan> oh wait
12:30:42 <oerjan> > 100/2.375
12:30:44 <lambdabot> 42.10526315789474
12:31:23 <oerjan> > [length . concat $ [chr 3 : show (i `mod` 16) | i <- [0..i]] | i <- [40..50]]
12:31:26 <lambdabot> [94,96,99,102,105,108,111,114,116,118,120]
12:31:39 <oerjan> ok 42 looks about right
12:32:00 <oerjan> > 250/42
12:32:01 <lambdabot> 5.9523809523809526
12:33:25 <oerjan> `run welcome | ghc -e 'interact (show . length . words)'
12:33:33 <HackEgo> 30
12:33:44 <oerjan> `welcome
12:33:46 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:34:41 <oerjan> `cat bin/relcome
12:34:43 <Jafet> Just copy 300 bytes of lens at a time until all of it is in hackbot
12:34:43 <HackEgo> ​#!/bin/sh \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())"
12:35:10 <nortti> `relcome
12:35:12 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more info
12:35:15 <nortti> ah
12:35:23 <oerjan> Jafet: the problem is we would have to break up the actual compilation into small enough pieces
12:35:27 <oerjan> not to timeout
12:35:41 <Jafet> Compile and the copy it
12:35:45 <oerjan> and i'm not sure cabal supports it
12:35:54 <Jafet> It might timeout whenever you try to load it, though
12:36:14 <oerjan> Jafet: someone who has ghc on a linux machine would have to do that
12:36:17 <oerjan> (i.e. not me)
12:36:57 <Jafet> This sounds complicated. Perhaps we should ask fungot.
12:36:58 <fungot> Jafet: i wonder if i'm evil and fnord to soon??? or later??
12:37:15 <olsner> fungot: yes you are
12:37:16 <fungot> olsner: and there are primitives in postscript, so i should use
12:37:45 <fizzie> `reelcome shachaf
12:37:47 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:37:48 <oerjan> `run sed -i 's/\(raw_input[(][)]\)/string.split(\1)/ bin/relcome
12:37:49 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
12:38:11 <oerjan> fizzie: hey i was just going to that. except i thought splitting on actual words
12:38:40 <oerjan> maybe white should be left out :P
12:38:48 <Jafet> You should pick a sensible palette
12:38:55 <fizzie> I just shuffled in int((350-len(w))/3) color-changes in random locations.
12:39:14 <oerjan> fizzie: ah
12:39:20 <fizzie> It does mean it almost always starts with the default color, though.
12:39:26 <olsner> leaving out black-on-black might be an idea too
12:39:26 <Jafet> > (350 - 242) `div` 3
12:39:27 <lambdabot> 36
12:39:45 <Jafet> `run welcome | wc
12:39:47 <HackEgo> ​ 1 30 233
12:40:02 <oerjan> fizzie: well you could "just" make sure the start is always one of the positions
12:40:13 <fizzie> It seems that I managed to break the "put nick in front" bit, though. If it ever worked.
12:40:29 <fizzie> `cat bin/reelcome
12:40:31 <HackEgo> ​#!/bin/sh \ welcome | python -c "import random; w=raw_input(); p=list('x'*len(w)+'C'*int((350-len(w))/3)); random.shuffle(p); i=(c for c in w); print ''.join(i.next() if c=='x' else chr(3)+str(random.randrange(1,16)) for c in p)"
12:40:38 <fizzie> Oh, I just left the $@ out.
12:41:25 <fizzie> `run sed -i -e 's/welcome/welcome $@/' bin/reelcome # I like the -e.
12:41:29 <HackEgo> No output.
12:41:32 <Jafet> `run python -c "print ''.join(chr(3) + str(i) + ':-) ' for i in range(0,16))"
12:41:34 <HackEgo> :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
12:41:52 <fizzie> Oh, so black is color 1.
12:42:01 <fizzie> I left 0 out, because I thought that was black.
12:42:13 <oerjan> um i asked you to leave out white
12:42:25 <oerjan> so that's ok i guess
12:42:28 <fizzie> Yes, but also black.
12:42:32 <fizzie> Oh, that was olsner.
12:42:33 <Jafet> `run python -c "print ''.join(chr(3) + str(i) + '(-:' + str(i) + ' ' for i in range(0,16))"
12:42:34 <HackEgo> (-:0 (-:1 (-:2 (-:3 (-:4 (-:5 (-:6 (-:7 (-:8 (-:9 (-:10 (-:11 (-:12 (-:13 (-:14 (-:15
12:42:49 <fizzie> All you o-folks look so similar, it's a natural mistake.
12:42:54 <Taneb> `run python -c "print" ''.join(chr(3) + str(i) + ':-) ' for i in range(2,15))"
12:42:55 <HackEgo> bash: -c: line 0: syntax error near unexpected token `(' \ bash: -c: line 0: `python -c "print" ''.join(chr(3) + str(i) + ':-) ' for i in range(2,15))"'
12:43:05 <Taneb> `run python -c "print ''.join(chr(3) + str(i) + ':-) ' for i in range(2,15))"
12:43:07 <HackEgo> :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
12:43:19 <shachaf> Jafet: plz golf me a up a utf8 encoder/decoder
12:43:34 <fizzie> `run sed -i -e 's/1,16/2,15/' bin/reelcome
12:43:38 <HackEgo> No output.
12:43:39 <Jafet> There should be one in the blah logs somewhere.
12:44:02 <shachaf> Oh.
12:44:12 <shachaf> I don't have blah logs.
12:44:37 <fizzie> `run sed -i -e 's#/3#/3+1#' -e "s/in p/in 'C'+p/" bin/reelcome
12:44:41 <HackEgo> No output.
12:44:42 <fizzie> `reelcome someone
12:44:45 <HackEgo> Traceback (most recent call last): \ File "<string>", line 1, in <module> \ TypeError: cannot concatenate 'str' and 'list' objects
12:44:48 <fizzie> ...
12:45:02 <shachaf> `reelcome
12:45:04 <HackEgo> Traceback (most recent call last): \ File "<string>", line 1, in <module> \ TypeError: cannot concatenate 'str' and 'list' objects
12:45:21 <fizzie> `run sed -i -e "s/'C'+p/['C']+p/" bin/reelcome
12:45:24 <HackEgo> No output.
12:45:25 <fizzie> Forgot it was a list.
12:45:28 <fizzie> `reelcome someone
12:45:30 <HackEgo> someone: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:45:40 <shachaf> `reelcome HackEgo
12:45:43 <HackEgo> HackEgo: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:45:57 <shachaf> That's good!
12:46:09 <shachaf> fizzie: Can you spin it out into its own script, like h?
12:47:49 <fizzie> `run cp bin/reelcome bin/colorize
12:47:52 <HackEgo> No output.
12:48:04 <fizzie> `run sed -i -e 's/welcome $@ | //' bin/colorize
12:48:08 <HackEgo> No output.
12:48:14 <fizzie> `run echo testing, testing | colorize
12:48:16 <HackEgo> testing, testing
12:48:22 <Jafet> `run bin/welcome | python -c "import random; w=raw_input().split(' '); r=[4,7,8,9,2,13,6]; s=random.randrange(0, len(r)); print ' '.join(chr(3) + str(r[(i+s)%len(r)]) + w[i] for i in range(len(w)))"
12:48:24 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:48:57 <fizzie> The word-based and fixed-color thing is perhaps a bit more rainbowy.
12:49:28 <oerjan> excellent
12:49:32 <fizzie> ^rainbow2 is also a selected palette
12:49:32 <fungot> ...too much output!
12:49:35 <oerjan> `cat bin/reelcome
12:49:36 <HackEgo> ​#!/bin/sh \ welcome $@ | python -c "import random; w=raw_input(); p=list('x'*len(w)+'C'*int((350-len(w))/3+1)); random.shuffle(p); i=(c for c in w); print ''.join(i.next() if c=='x' else chr(3)+str(random.randrange(2,15)) for c in ['C']+p)"
12:50:10 <oerjan> `run reelcome hm now what
12:50:13 <HackEgo> hm: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:50:27 <oerjan> `cat bin/welcome
12:50:29 <HackEgo> ​#!/usr/bin/perl -w \ if (defined($_=shift)) { s/ *$//; s/ +/ @ /g; exec "bin/@", $_ . " ? welcome"; } else { exec "bin/?", "welcome"; }
12:51:38 <fizzie> Man, there's so many moving parts in there.
12:51:49 <oerjan> `run sed -i 's/[$][@]/"$@"/;s/python.*/colorize/' bin/reelcome
12:51:53 <HackEgo> No output.
12:51:54 <fizzie> Anyway, I scriptized Jafet's thing too.
12:51:58 <fizzie> `run welcome | rainwords
12:51:59 <oerjan> `cat bin/reelcome
12:52:00 <HackEgo> ​#!/bin/sh \ welcome "$@" | colorize
12:52:01 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:52:43 <shachaf> `run ? HackEgo | colorize
12:52:46 <HackEgo> HackEgo, also known as HackBot, is a bot that runs arbitrary commands on Unix. See `help for info on using it. You should totally try to hax0r it! Make sure you imagine it's running as root with no sandboxing.
12:52:57 <oerjan> `cat bin/relcome
12:52:58 <HackEgo> ​#!/bin/sh \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())"
12:53:15 <oerjan> `run mv bin/r{e,}elcome
12:53:19 <HackEgo> No output.
12:53:29 <oerjan> it was broken anyhow
12:53:34 * shachaf geese to sleep
12:53:51 <fizzie> `run ls bin/*come
12:53:53 <HackEgo> bin/relcome \ bin/welcome
12:54:03 <fizzie> Oh, right, the others mostly deal with capitalization.
12:56:45 <fizzie> So, there's... welcome, WELCOME, WELCOME, WeLcOmE, wehlcohme, emoclew and relcome. Did I miss any?
12:56:56 <fizzie> This must be one of the most welcoming channels in freenode.
12:57:01 <oerjan> `run (echo '#!/bin/sh'; echo 'welcome "$@" | rainwords') >bin/rwelcome
12:57:05 <HackEgo> No output.
12:57:10 <fizzie> Except for people looking the "wrong kind of esoterica", of course.
12:57:21 <oerjan> `rwelcome everyone
12:57:22 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/rwelcome: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/rwelcome: cannot execute: Permission denied
12:57:33 <oerjan> `run chmod a+x bin/rwelcome
12:57:35 <HackEgo> No output.
12:57:36 <oerjan> `rwelcome everyone
12:57:38 <HackEgo> everyone: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:58:23 <Jafet> > let utf8 :: Char -> [Word8]; utf8 c = let n = ord c in map toEnum $ if n < 0x80 then [n] else let (x:xs) = reverse $ map (`mod`0x40) $ takeWhile (>0) $ iterate (`shiftR` 6) n in 256 - 2^(7-length xs) + x : map (0x80+) xs in map (utf8 . chr) [0x0, 0x100..]
12:58:26 <lambdabot> [[0],[196,128],[200,128],[204,128],[208,128],[212,128],[216,128],[220,128],...
13:01:56 <oerjan> 0x40 ?
13:02:29 <oerjan> i think maybe you want 0x3f
13:03:03 <Jafet> > let utf8 :: Char -> [Word8]; utf8 c = let n = ord c in map toEnum $ if n < 0x80 then [n] else let (x:xs) = reverse $ map (`mod`0x40) $ takeWhile (>0) $ iterate (`shiftR` 6) n in 256 - 2^(7-length xs) + x : map (0x80+) xs in utf8 $ chr 0x100000
13:03:04 <lambdabot> [244,128,128,128]
13:03:15 <Jafet> Looks correct
13:03:23 <oerjan> oh wait duh
13:03:38 <oerjan> somehow i read `mod` as .&.
13:03:50 <Jafet> I think .&. was ambiguous in lambdabot for some stupid reason
13:03:55 <Jafet> :t (.&.)
13:03:57 <lambdabot> Bits a => a -> a -> a
13:05:00 <fizzie> One from Data.Bits and another from QuickCheck, I think.
13:05:04 <fizzie> Maybe it's been sensiblized?
13:05:14 <Jafet> Actually golfing that is left as an exercise to shachaf.
13:05:18 <oerjan> it has to happen occasionally
13:09:17 <oerjan> :t bits
13:09:18 <lambdabot> (Applicative f, Bits b, Indexable Int p) => p Bool (f Bool) -> b -> f b
13:18:54 <oerjan> <ais523> we should notify people about new mezzacotta too
13:19:01 <oerjan> has he been thinking about feather again
13:21:51 -!- DHeadshot has quit (Ping timeout: 276 seconds).
13:22:26 -!- KingOfKarlsruhe has joined.
13:42:42 -!- myndzi has quit (Ping timeout: 264 seconds).
13:43:48 <elliott> 08:48:03 <shachaf> elliott: You in particular are being obnoxious about this. Why do you do it? What would it take to get you to stop?
13:43:55 <elliott> shachaf: You in particular are being obnoxious about this. Why do you do it? What would it take to get you to stop?
13:44:08 <elliott> In fact I didn't do anything since the last time you decided to waste an hour trolling the channel about it. But for the unwarranted accusation,
13:44:18 <elliott> `undo 2196
13:44:23 <HackEgo> patching file list \ Hunk #1 FAILED at 1. \ 1 out of 1 hunk FAILED -- saving rejects to file list.rej \ The next patch, when reversed, would delete the file liste, \ which does not exist! Ignore -R? [n] \ Apply anyway? [n] \ Skipping patch. \ 1 out of 1 hunk ignored
13:44:41 <elliott> Ugh.
13:44:53 <elliott> I wish people knew how to use sed.
13:45:25 <elliott> `run echo '#!/bin/sh' >>bin/liste; echo 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol' >>bin/liste
13:45:29 <HackEgo> No output.
13:45:31 <elliott> `undo 2196
13:45:34 <HackEgo> patching file list \ Hunk #1 FAILED at 1. \ 1 out of 1 hunk FAILED -- saving rejects to file list.rej \ The next patch, when reversed, would delete the file liste, \ which does not exist! Ignore -R? [n] \ Apply anyway? [n] \ Skipping patch. \ 1 out of 1 hunk ignored
13:45:41 <elliott> Hmm, interesting.
13:45:49 <elliott> `undo 2196
13:45:51 <HackEgo> patching file list \ Hunk #1 FAILED at 1. \ 1 out of 1 hunk FAILED -- saving rejects to file list.rej \ The next patch, when reversed, would delete the file liste, \ which does not exist! Ignore -R? [n] \ Apply anyway? [n] \ Skipping patch. \ 1 out of 1 hunk ignored
13:45:51 <oerjan> elliott: what the heck are you doing now
13:46:03 <elliott> oerjan: Good question.
13:46:17 -!- myndzi has joined.
13:46:18 -!- iamcal_ has quit (Ping timeout: 264 seconds).
13:46:20 <elliott> `run mv bin/liste liste
13:46:23 <HackEgo> No output.
13:46:27 <elliott> `undo 2196
13:46:33 <HackEgo> patching file list \ Hunk #1 FAILED at 1. \ 1 out of 1 hunk FAILED -- saving rejects to file list.rej \ patching file liste \ Unreversed patch detected! Ignore -R? [n] \ Apply anyway? [n] \ Skipping patch. \ 1 out of 1 hunk ignored -- saving rejects to file liste.rej
13:46:50 <elliott> Hmm.
13:46:52 <Sgeo> elliott, are you trying to undo the removal of shachaf?
13:47:04 -!- Frooxius has joined.
13:47:08 <oerjan> elliott: bin/liste is not supposed to exist, also i already deleted it
13:47:17 <elliott> oerjan: Yes, but reversing a patch wanted to make it exist.
13:47:20 <elliott> `run rm list.rej liste.rej liste
13:47:24 <HackEgo> No output.
13:47:54 <elliott> `run hg cat -r 2195 bin/list >bin/list
13:47:59 <HackEgo> No output.
13:48:02 <elliott> Maybe there should be an `undofile ors omething.
13:48:04 <oerjan> elliott: also shachaf has already been removed
13:49:05 <fizzie> oerjan: Well, he had been removed; elliott just added him back.
13:50:05 <oerjan> ic
13:50:49 <oerjan> `revert 2220
13:50:51 <HackEgo> Done.
13:51:18 <elliott> `revert
13:51:20 <HackEgo> Done.
13:51:22 <elliott> For a start that adds a list.rej file.
13:51:43 <oerjan> elliott: this has gone on far enough, and although shachaf _has_ been obnoxious deleting bin/list entirely, you are being obnoxious too if you keep this on
13:51:47 <elliott> For another, as far as I can tell shachaf just likes to complain about whatever the bots are doing and will use it as an excuse to whine no matter no matter what, so I don't see any reason to just make him move on to something else.
13:51:59 <oerjan> `revert
13:52:01 <HackEgo> Done.
13:52:20 <elliott> oerjan: So when he was demanding to be kicked all the time the non-obnoxious thing would have been to do that?
13:52:33 <elliott> He gets pinged 10x more than `list actually would just by whining about it all the time.
13:53:26 <elliott> I don't know why he likes kicking up a fuss in #esoteric and nowhere else but it's blatantly obvious he does and I don't see that spinning the what-he-kicks-up-a-fuss-about roulette is productive at all.
13:53:57 <elliott> If his behaviour is obnoxious in #esoteric it's been so longer than `list.
13:54:18 <oklopol> i don't see how that's an argument against removing him from `list, just an argument for banning him perhaps
13:54:41 <oklopol> hmm
13:54:54 <elliott> oklopol: I don't see why you would hack around the problem (and defeat the whole point of `list). It's just pandering.
13:55:03 <elliott> Especially since he got on `list by specifically trying to mess with it himself.
13:55:46 <fizzie> Incidentally, what is the whole point of `list? It's never been exactly clear to me.
13:55:58 <oklopol> it's genius
13:56:00 <oerjan> elliott: i think you are being equally childish
13:56:03 <oklopol> best thing ever
13:56:08 <oklopol> that's the point
13:56:33 <oklopol> (i think he's being more childish)
13:56:42 <elliott> oerjan: You can do something about my behaviour if you'd like too.
13:57:59 <oklopol> like, perhaps, tell you you are being childish
13:58:41 * Sgeo looks for the commit in which shachaf was first placed on the list
13:58:51 <oklopol> erm
13:58:55 <elliott> oklopol: Is the idea to work as well as telling shachaf he's being obnoxious?
13:59:00 <oklopol> presumably that happened when he used the command?
13:59:41 <fizzie> oklopol: It happened somewhat circuitously. It's not exactly a foolproof command, after all.
14:00:01 <oklopol> k, just extrapolating from the fact i'm now on it
14:00:09 <elliott> oerjan: Anyway if we're just going to make random exceptions for people whose reasons are clearly bunk then removing it entirely *is* the right thing to do.
14:00:39 <oklopol> i don't get what people have against being pinged
14:00:50 <elliott> I think the fact that one person has kicked up so much gigantic fuss over a tiny pointless thing says something, though. (Yes, yes, the obvious rebuttal is "two people", but that's unfair since I'm hardly the only person who asked him to stop and reverted it a bunch when he was just removing it rather than getting Sgeo to run sed for him.)
14:02:31 <Sgeo> http://codu.org/projects/hackbot/fshg/index.cgi/rev/49d044dabc89
14:02:33 <fizzie> I don't quite get what this whole thing about "exceptions" is. Am I somehow not allowed to do `list and then subsequently remove myself from it?
14:02:42 <Sgeo> This is the first time that shachaf appears on the list.
14:03:03 <elliott> fizzie: If the point of `list is to keep track of the number of people who have got themselves on `list...
14:03:13 <oerjan> elliott: i am not convinced that allowing people to remove themselves from bin/list is incompatible with it existing at all
14:03:26 <elliott> (Of course it's pointless and it doesn't matter who's on `list. That's sort of the point.)
14:03:38 <oerjan> and admittedly it _was_ annoying that shachaf couldn't manage to do it himself.
14:03:44 <elliott> Sgeo: I don't see what the point of doing detective work is when both me and oerjan were there at the time.
14:03:56 <elliott> oerjan: Couldn't manage to or didn't *want* to because it was too easy?
14:04:06 <elliott> Just removing it causes 10x the fuss.
14:04:08 <oerjan> whatever
14:04:12 <oerjan> yes.
14:04:14 <elliott> This is hardly an uncommon pattern with shachaf's use of the bots in here.
14:04:30 <nooga> http://projecteuler.net/problem=21 my solution: let sd n = sum [ x | x <- [1..n-1], n `mod` x == 0 ] in sum [x | x <- [1..10000], x /= sd x, (sd $ sd x) == x]
14:04:50 <nooga> i feel that it's a lame solution, though
14:04:55 <elliott> nooga: sd (sd x) == x is probably nicer than (sd $ sd x)
14:04:56 <oerjan> the thing is, most of the changes to list recently have been either shachaf deleting the list, other people trying to remove him cleanly, or you reverting both shachaf and the other people
14:05:21 <nooga> elliott: doesn't change a fact that it's SLOOOOOW
14:05:28 <nooga> and I think i know why
14:05:49 <nooga> but i don't know haskell too well and can't find more optimal solution
14:06:22 <elliott> oerjan: Let's see, there's also you reverting shachaf removing the list, ais523 reverting shachaf removing the list, ais523 reverting shachaf running obviously broken sed on the list (followed up by shachaf deleting the list),
14:06:33 <elliott> you reverting shachaf removing the list,
14:06:39 <elliott> ais523 reverting shachaf removing the list,
14:07:04 <elliott> OK, that looks like all.
14:07:27 -!- boily has joined.
14:07:31 <elliott> (And no, most of those reverts were not followed by an attempt to cleanly remove.)
14:08:00 <elliott> Anyway maybe it should just be deleted at this point since it's wasting so much time; isn't it a shame when people spoil the fun?
14:08:43 <Sgeo> And you're not spoiling the fun by vetoing "keep shachaf's name removed but keep the list"?
14:09:05 <elliott> I think I have even less desire to argue this with you than with shachaf, especially since you weren't even there when this bullshit started.
14:09:09 <elliott> *than with oerjan
14:10:34 <elliott> Anyway I've said all I care to, at least until this starts up again.
14:10:37 <oerjan> <elliott> (And no, most of those reverts were not followed by an attempt to cleanly remove.) <-- true. i was also annoyed by shachaf's obnoxiousness in removing the list and so didn't fix it. but i _still_ think it is time to end this back-and-forth in hopefully a reasonably amicable manner.
14:10:43 <elliott> oerjan: You probably want to rm list.rej if you're keeping this revision.
14:10:48 <Phantom_Hoover> you know you should probably either explain why shachaf has to be on the list no matter how much he complains
14:10:55 <Phantom_Hoover> or just let him be taken off
14:10:55 <oerjan> also shachaf doesn't seem to be here at the moment
14:11:00 <oerjan> `rm b/list.rej
14:11:02 <HackEgo> rm: cannot remove `b/list.rej': No such file or directory
14:11:06 <oerjan> wat
14:11:08 <elliott> `rm list.rej
14:11:12 <HackEgo> No output.
14:11:27 <elliott> Phantom_Hoover: see above reply to Sgeo. (Can we just adopt a world-wide policy that people don't try and join in things they don't know the context of?)
14:11:35 <Phantom_Hoover> no, elliott
14:11:36 <oerjan> oh the b was just a tag
14:11:51 <Phantom_Hoover> because your petty little squabble is intruding onto the channel that everyone else shares
14:12:03 <elliott> oerjan: Well, think of it this way: if something like this starts again you have pretty clear proof of a pattern.
14:12:20 <elliott> I wish the obnoxiousness wasn't there too. (On my part too.0
14:12:22 <elliott> *)
14:12:33 <elliott> Phantom_Hoover: I think you should probably just shut up.
14:12:42 <Sgeo> I fully agree with Phantom_Hoover.
14:12:42 <Phantom_Hoover> if shachaf wants off the list then just /let him off the fucking list/
14:12:43 <elliott> Or log-read maybe? But at least don't say stupid untrue things.
14:12:49 <elliott> He's off the list?
14:12:52 <elliott> Stop being idiots.
14:13:24 <Phantom_Hoover> you know, you're an extremely unpleasant person when anyone else tries to call you out on your behaviour
14:14:25 <elliott> Are you going to dig further into the realms of cluelessness or recognise that you maybe don't have a full understanding of any situation just by jumping into it on IRC days after everything happens and then either stop flinging accusations or actually research it?
14:14:34 <elliott> This casting of everything into an X-vs.-Y is ridiculous.
14:14:44 <elliott> You should know better, considering how much you complained about oerjan's handling of cheater.
14:15:13 <elliott> IRC is such a waste of time.
14:16:45 <Sgeo> My understanding is that shachaf accidentally got on the list when he tried to get fungot on the list. He did not realize that this happened immediately after it happened.
14:16:45 <fungot> Sgeo: hmm... doesn't seem to work
14:19:40 <Sgeo> The bot does not indicate that a person got on the list for the `list that put them on.
14:20:12 <Sgeo> As such, when the `list that put shachaf on got executed, shachaf's nick was not visible on it. `list would not be executed again until much later.
14:20:42 <oerjan> hm rm list.rej doesn't show up in the repository listing. and there was a similar case recently with another empty file. istr that HackEgo before didn't include empty files in the repository at all, but now it's just not always shown in the history...
14:20:59 <elliott> oerjan: ?
14:21:00 <elliott> oerjan: http://codu.org/projects/hackbot/fshg/index.cgi/rev/8087af320e07
14:21:03 <elliott> Shows up for me
14:21:34 <elliott> `rm run~
14:21:37 <oerjan> oh duh
14:21:38 <HackEgo> No output.
14:22:01 <oerjan> i was looking at a subpage showing just bin/list :P
14:22:10 <fizzie> Uh... what's that radio.php?... doing?
14:22:24 <oerjan> there _was_ such a case some days ago, though... it was pretty old too i think
14:23:03 <oerjan> hm...
14:23:07 <oerjan> `cat bin/list
14:23:08 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
14:23:13 <elliott> fizzie: You'd have to ask hagb4rd.
14:23:39 <elliott> fizzie: http://codu.org/logs/log/_esoteric/2013-02-19#211727hagb4rd
14:24:08 <fizzie> I... see. (I don't.)
14:24:40 <oerjan> `run sed -i 's/; echo /; tail -1 bin/list; exit\n/' bin/list # I think this might be less insidious
14:24:41 <HackEgo> sed: -e expression #1, char 25: unknown option to `s'
14:24:50 <oerjan> if i could make it work, that is
14:25:12 <fizzie> oerjan: I think the insidiousness was also part of the genius? Maybe. I'unno.
14:25:21 <fizzie> oerjan: These are deep waters.
14:25:21 <mroman> I hate to ask this but what's 'the list'?
14:25:37 <elliott> oerjan: I like the echo thing.
14:25:40 <fizzie> mroman: It's a list of who will be shot first, when the revolution comes.
14:25:44 <elliott> I wonder what on earth .hg_archival.txt.
14:25:44 <oerjan> OH WELL THEN
14:25:46 <elliott> is.
14:25:54 <Sgeo> oerjan, what does your change do (if it worked)
14:26:15 <Sgeo> mroman, it's a list of people who ran `list
14:26:22 <Sgeo> (for the most part)
14:26:37 <oerjan> Sgeo: it makes it show the changed list immediately
14:26:43 <Sgeo> Yay!
14:27:07 <elliott> it was intentional that it did not do so on ais523's part, btw
14:28:18 <Sgeo> @ask ais523 How would you feel about `list displaying the changed list immediately? Would it ruin the effect you were going for?
14:28:18 <lambdabot> Consider it noted.
14:28:52 <elliott> Um, I specifically said it was weird and he said it was intentional at the time.
14:46:17 -!- Taneb has quit (Ping timeout: 244 seconds).
14:50:37 <Phantom_Hoover> Sgeo, look, shachaf's off the list. So long as it stays that way just let it be.
14:51:01 <elliott> Such a noble defence force.
14:51:24 <Sgeo> Phantom_Hoover, ok, I'm fine with that.
15:01:49 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90 [Firefox 19.0/20130215130331]).
15:02:35 -!- augur has quit (Remote host closed the connection).
15:06:38 -!- GOMADWarrior has joined.
15:10:24 -!- impomatic has quit (Ping timeout: 276 seconds).
15:20:12 -!- oerjan has quit (Quit: leaving).
15:43:39 -!- nooodl has joined.
15:46:46 -!- augur has joined.
15:48:57 <mroman> !blsq "1001011"F:u[vv^^{1\/?/2\/LG}m[?*++
15:48:57 <blsqbot> 0.9852281360342514
15:51:10 <mroman> !blsq "1223334444"F:u[vv^^{1\/?/2\/LG}m[?*++
15:51:10 <blsqbot> 1.8464393446710157
15:51:11 <quintopia> pikhq: i only have to install mosh-server on my server to make all this work right?
15:53:41 -!- carado_ has joined.
15:56:40 -!- iamcal_ has joined.
15:58:09 <elliott> quintopia: if "this" is mosh then yes
16:09:12 -!- epicmonkey has quit (Ping timeout: 276 seconds).
16:12:31 -!- oklopol has quit (Ping timeout: 245 seconds).
16:30:56 <kmc> you don't even need to install it; you can build it from source in your home directory and just use mosh --server=/home/whatever/...
16:31:03 <kmc> but installing is easiest and we have packages for lots of OSes
16:31:28 -!- carado has quit (Ping timeout: 256 seconds).
16:41:36 <pikhq> quintopia: Right, though mosh just needs to be somewhere in the PATH of the user you're logging in as.
16:45:04 <nooga> bllobloblobloblob
16:48:10 <kmc> well said
17:33:41 -!- sebbu has joined.
17:33:54 -!- sebbu has quit (Changing host).
17:33:54 -!- sebbu has joined.
17:50:16 -!- augur has quit (Remote host closed the connection).
17:58:25 -!- sebbu has quit (Ping timeout: 248 seconds).
18:00:12 -!- FreeFull has joined.
18:02:33 <boily> blobblobblobblobblob (hi all!)
18:02:47 <FreeFull> Can someone show me a typical use of profunctors?
18:04:01 <quintopia> can someone show me a regex that will harvest strings from a source file
18:04:29 <quintopia> i suspect its easy, but i dont remember how to make it match the shortest length string
18:05:33 <FreeFull> quintopia: Special-case it?
18:05:48 <FreeFull> That's not a good use for regex
18:05:50 -!- sebbu has joined.
18:19:45 -!- augur_ has joined.
18:23:10 <Gregor> Somebody posted on craigslist at 10:30 in the morning, today. I replied at about 11:30. They replied to me, saying that it sold yesterday. wut.
18:23:39 <mroman> At least he was honest.
18:23:52 <Gregor> It's honest to put a listing on craigslist for something that's already been sold?
18:23:58 <mroman> No.
18:24:07 <mroman> It's honest saying he sold it yesterday.
18:24:17 <mroman> He could've lied and told you he sold it 11:29:59
18:24:44 <mroman> or yesterday is figurative speech.
18:25:11 <Gregor> Yesterday can't be a figure of speech for "a half an hour ago" X-D
18:25:33 <elliott> maybe they are in a different timezone!
18:26:33 <Gregor> ... this is craigslist. I know what city they're in X_X
18:26:38 <kmc> quintopia: you mean string literals?
18:29:37 <kmc> In [12]: print re.search(r'"([^"]|\\")+?(?<!\\)"', r'abcd "foo\"bar" baz').group(0)
18:29:40 <kmc> "foo\"bar"
18:30:51 <elliott> Gregor: they can be in that city remotely.
18:30:55 <elliott> remotely.?
18:30:56 <kmc> probably not the best way
18:31:04 <Gregor> X_X
18:31:10 <Gregor> It lists the post time in terms of the city where it's posted.
18:31:17 <Gregor> Not in terms of whatever retarded way you think it lists it.
18:31:31 <elliott> have you noticed im not being serious
18:31:35 <Gregor> YES I HAVE
18:31:36 <elliott> and also know how craigslist works
18:33:09 -!- olsner has quit (Read error: Operation timed out).
18:33:35 -!- olsner has joined.
18:35:01 -!- dessos has quit (Quit: leaving).
18:35:17 -!- sebbu2 has joined.
18:35:18 -!- sebbu2 has quit (Changing host).
18:35:18 -!- sebbu2 has joined.
18:36:26 -!- dessos has joined.
18:38:23 -!- FreeFull has quit.
18:38:37 <boily> FreeFull: profunctors weird me. you have dimap :: p b c -> p a d, where a -> b goes back in time, and c -> d goes forward. how is that even possible?
18:38:42 -!- sebbu has quit (Ping timeout: 276 seconds).
18:38:58 <boily> @tell FreeFull profunctors weird me. you have dimap :: p b c -> p a d, where a -> b goes back in time, and c -> d goes forward. how is that even possible?
18:38:58 <lambdabot> Consider it noted.
18:42:24 -!- FreeFull has joined.
18:42:46 <kmc> hm maybe just ([^"]|\\")+?[^\\]
18:43:12 <FreeFull> What about a single " in a comment?
18:43:12 <lambdabot> FreeFull: You have 4 new messages. '/msg lambdabot @messages' to read them.
18:44:24 <kmc> then you're fucked
18:48:14 <FreeFull> I wonder why elliott linked those cellular automata rules to me
18:50:36 -!- sebbu2 has changed nick to sebbu.
18:54:08 <nortti> http://tech.slashdot.org/story/13/02/21/0358238/us-stealth-jet-has-to-talk-to-allied-planes-over-unsecured-radio
18:55:32 <kmc> FreeFull: parsing multiline comments and string literals is tricky
18:55:48 <kmc> OCaml disallows unbalanced quotes inside comments
18:56:03 <kmc> Haskell allows them, but this means there are valid Haskell expressions you can't comment out
18:56:08 <kmc> {- print "-}" -}
18:57:47 <elliott> IIRC D has both nesting and non-nesting comments
18:57:58 <elliott> /* ... */ and /+ ... +/; I forget which is which
18:58:20 <kmc> for this reason?
19:03:27 <elliott> No idea the reason.
19:04:22 <kmc> in lua you can comment as --[[ .. ]] or --[=[ ... ]=] or any other number of = signs
19:04:38 <kmc> they don't nest but each level can contain the smaller ones
19:04:53 <kmc> also if you drop the -- then the brackets by themselves are a multiline string literal
19:05:11 <elliott> Lua is so weird
19:05:27 <pikhq> In several ways.
19:05:42 <kmc> it seems pretty reasonable
19:05:47 <kmc> from what little i've seen
19:05:53 <Gregor> So pikhq, you gonna mine and craft?
19:05:55 <pikhq> Float-only sucks.
19:05:58 <pikhq> Gregor: Maybe.
19:06:12 <pikhq> Right now I am watching Minecraft LP's, actually.
19:08:10 <nortti> why are you watching Minecraft LP
19:08:17 <nortti> +s?
19:08:18 <pikhq> Cause.
19:08:43 <pikhq> In my defense, it's a guy who plays with nearly every mod in existence.
19:08:48 <pikhq> Otherwise this would be boring as fuck.
19:09:09 <nortti> who?
19:09:15 <pikhq> direwolf20
19:09:56 -!- monqy has joined.
19:10:08 <nortti> the only minecraft lp I can tolerate is far lands or bust
19:10:12 <kmc> pikhq: eh
19:10:19 <Deewiant> /+ +/ nests, the other was just to make copy-pasting C easier
19:10:20 <kmc> float-only sucks, but machine ints also suck
19:10:26 <kmc> and 64-bit floats gives you 32-bit ints
19:10:36 <kmc> maybe languages should just have two numerical types: "fast" and "correct"
19:10:59 <pikhq> At least the integers mod 2^32-1 are actually numbers.
19:11:05 <kmc> yeah
19:11:09 <elliott> kmc: Lua indexes lists from 1!!!!
19:11:14 <kmc> elliott: ow my brain
19:22:55 -!- impomatic has joined.
19:30:52 <mroman> neat
19:30:53 -!- atehwa_ has joined.
19:31:01 <mroman> let's make a language that indexes lists from i
19:31:06 <mroman> (where i = sqrt(-1))
19:31:24 -!- atehwa has quit (Read error: Operation timed out).
19:31:50 <Slereah> But imaginary numbers have the same structure as real numbers
19:31:51 <mroman> also the haskell syntax highlighter on rosettacode is wrong.
19:31:55 <Slereah> So it would be identical
19:32:44 <pikhq> I'm a little surprised to find that mosh actually is pulling out predictions at times.
19:32:54 <pikhq> I am literally connecting over a LAN.
19:33:04 <pikhq> Guess sometimes it lags slightly anyways?
19:33:08 <kmc> did you pass one of the --predict=... flags?
19:33:11 <pikhq> No.
19:33:15 <kmc> huh
19:33:15 <pikhq> Just the defaults.
19:33:24 <kmc> so not only is it predicting, but it's lagging enough to show the underline on predictions
19:33:24 <pikhq> It's predicting like a single character though.
19:33:28 <pikhq> Yes.
19:33:34 <pikhq> But not often.\
19:33:38 <kmc> (it will predict without underline if the lag is sufficiently small)
19:33:55 <kmc> (because Keith thought that underline appearing and disappearing is distracting. but probably it's better marketing if it always underlines!)
19:34:10 <elliott> just don't ruin the game
19:34:25 <pikhq> Meh, guess that just means mosh has benefits even over a LAN.
19:34:36 <pikhq> Admittedly, Wifi.
19:34:53 <pikhq> Everybody's favorite variable-lag LAN technology.
19:36:33 <mroman> nah
19:36:42 <mroman> LAN over power is much worse.
19:37:35 <pikhq> Really, that's laggy too?
19:37:57 <pikhq> Figured that'd be vaguely reasonable, aside from being a bus.
19:38:49 <mroman> My experiences with it are pretty bad.
19:39:30 <mroman> It works fine.
19:39:44 <mroman> unless someone uses his vacuum cleaner, the heater or something else
19:40:18 <mroman> or somebody is using the stove in the kitchen
19:40:21 <mroman> it's pretty bad then.
19:40:31 <mroman> but that was 5 years ago.
19:40:39 <mroman> Maybe it's better these days.
19:41:04 <pikhq> Kinda impressed you'd get interference like that from stuff aside from microwaves.
19:41:13 <pikhq> Isn't that stuff using the 2.4GHz band?
19:42:00 <kmc> hm did pikhq discover the game yet
19:42:24 <pikhq> Which game?
19:43:19 <nortti> pikhq: the game
19:43:39 <pikhq> nortti: Oh, fuck you guys.
19:43:53 * pikhq lost the game
19:44:03 * nortti too
19:44:53 <kmc> not that one actually
19:45:02 <kmc> there's a game you can play if you're using irssi in mosh
19:45:08 <kmc> probably other programs in mosh as well
19:45:57 <pikhq> Certainly have not heard of it.
19:46:20 <kmc> it's more fun if you figure out what tha game is
19:46:25 <kmc> but i'll tell you if you insist
19:46:41 <kmc> it requires a bit of lag
19:46:45 <elliott> Has anyone actually discovered the game independently before being given any information on it?
19:46:50 -!- Taneb has joined.
19:46:53 <kmc> i think shachaf and i both did
19:47:10 <elliott> I think the game is probably very hard to play on a LAN.
19:48:44 <kmc> not with netem!
19:48:54 <kmc> actually a dumb way to simulate lag is to run mosh-server in valgrind :)
19:49:47 <elliott> Run mosh-server in weboflies!
19:51:04 <kmc> i forgot what that does
19:52:10 <elliott> kmc: It's kind of tricky to explain, but operationally it makes a program run slower.
19:52:28 <elliott> kmc: Basically the idea is to make Linux programs reproducible through incredible amounts of sandboxing.
19:52:42 <elliott> It was intended for TASing
19:52:43 <pikhq> Its intent is to let you do tool-assisted speedruns of Linux games.
19:52:48 <kmc> oh dear
19:52:49 <pikhq> e.g. nethack
19:52:53 <kmc> "linux games"
19:52:59 <pikhq> kmc: Nethack.
19:53:08 <Gregor> Team Fortress 2???
19:53:10 <elliott> It wasn't for NetHack, was it?
19:53:18 <elliott> he NetHack TAS uses DOS.
19:53:19 <elliott> *The
19:53:21 <pikhq> elliott: Maybe not.
19:53:29 <pikhq> That's a good example at least.
19:53:33 <elliott> Also it has graphical support. (Enigma???)
19:53:38 <elliott> Ask ais523, I guess.
19:53:45 <kmc> TAS of /usr/games/wump
19:53:51 <pikhq> Probably easier for anything with a DOS port to just do that.
19:54:02 <pikhq> Reproducible DOS is easy.
19:54:29 <elliott> Maybe it was for DNA Maze!!!
19:57:18 <FreeFull> I wonder if sum . map fromEnum is a good idea for counting how many Trues are in a list, or if there is a better way
19:58:02 <kmc> i think «length . filter id» is more obvious
19:58:07 <kmc> :t length . filter id
19:58:08 <lambdabot> [Bool] -> Int
19:59:18 -!- oerjan has joined.
20:00:18 <boily> I like to think «foldr ((+) . fromEnum) 0» is faster, as it implies only a single pass on the list.
20:00:43 <elliott> if the whole notion of passes over a list existed, Haskell would be hideously inefficient
20:00:53 <elliott> length consumes the list as filter produces it there
20:01:58 <pikhq> boily: Yeah, but GHC optimizes length . filter id into a tiny little loop.
20:02:24 <boily> the combined magic of GHC and lazy evaluation at work again.
20:02:40 <boily> it's true that «length . filter id» looks like the obviest solution.
20:03:20 <FreeFull> length . filter id works too
20:04:51 <Taneb> boily, do Francophonics air-quote horizontally?
20:05:49 <boily> no, we rabbit-ears the same as anglophones.
20:06:06 <Taneb> Okay
20:06:06 <kmc> i would'nt really wory about which one is faster
20:06:17 <kmc> until you have some benchmarks (using criterion of course)
20:06:21 <Taneb> kmc, rethink apostrophe placement
20:06:54 -!- Bike_ has joined.
20:06:56 <elliott> I like would'nt
20:07:47 <boily> Taneb: but then, when we quote someone that said something stupid and/or unbelievable, we sometimes say «ouvrez les guillemets [INSERT QUOTE HERE] fermez les guillemets».
20:07:50 <FreeFull> How about join . take 1 for a safe head for lists of lists?
20:08:27 <Gregor> boily: I assume that translates roughly to "opening quote" <blerrr> "closing quote"?
20:08:44 <Gregor> Sort of like how Anglophones might say "Quote <stuff> unquote"
20:09:03 <Taneb> Gregor, is "blerrr" English for the French "INSERT QUOTE HERE"
20:09:08 <Gregor> Naturally.
20:10:13 <FreeFull> Is it possible to set fixity of an operator within ghci?
20:10:32 <Taneb> I don't think so, which is rather annoying
20:14:45 <oerjan> hm i thought ghci supported all declarations now
20:15:01 <oerjan> however, you need to set it in the same let as you put the definition
20:15:41 <oerjan> (the general rule is that a fixity declaration must be in the exact same scope as its corresponding definition)
20:16:31 <oerjan> and the let block of ghci, like the let of a do, presumably is such an "exact scope" region
20:16:39 <Taneb> Ah
20:16:44 <Taneb> That'll be where I'm going wrong
20:17:36 <oerjan> > let (+) = (Prelude.+); infixl 9 + in 1 + 2 * 3
20:17:38 <lambdabot> 9
20:19:16 <oerjan> (that also shows how you might redefine a fixity of something else, provided that something else is imported qualified. doesn't work for constructors, alas.)
20:20:00 <oerjan> also might need NoMonomorphismRestriction
20:20:38 <oerjan> (or an explicit type annotation as well)
20:20:58 -!- carado_ has quit (Ping timeout: 256 seconds).
20:21:39 <elliott> huh does it really not work for constructors
20:22:10 <oerjan> ...there's no way to define one constructor to be the same as another, is there?
20:22:50 <oerjan> note that you are defining the same name in a new scope, not changing the actual original fixity
20:23:01 <elliott> oh I meant redefining fixity
20:23:09 <elliott> > let infixl 9 + in 1 + 2 * 3
20:23:11 <lambdabot> The fixity declaration for `+' lacks an accompanying binding
20:23:12 <lambdabot> (The fixity...
20:23:15 <elliott> hm I thought that worked
20:23:16 <elliott> oh well
20:26:34 <oerjan> argh i opened the ghc user guide to check something, but i've forgotten what it was... :P
20:28:59 <oerjan> oh RULES it was
20:29:03 <kmc> MoMonomorphismRestrictionMoProblems
20:29:47 <boily> a momorphism is a morphism with a peachy smell.
20:29:59 -!- doesthiswork has joined.
20:30:55 <oerjan> i wanted to see which of length . filter id and foldl' ((+) . fromEnum) 0 is more likely to be optimized well. in fact i suspect it's the latter, because length is _not_ listed as a good consumer.
20:31:24 <oerjan> (disclaimer: anyone willing to look at actual core may find the _true_ answer.)
20:31:26 <kmc> why not?
20:31:35 <kmc> and isn't length a foldr, which makes it a good consumer?
20:31:39 <oerjan> no reason, it just isn't
20:32:00 <oerjan> length should certainly be a foldl or foldl' not a foldr
20:32:22 <elliott> oerjan: note that there is a rule to specialise length on Int/Integer to foldl' IIRC
20:32:24 <kmc> mm right
20:32:35 <elliott> oh wait length is monomorphic
20:32:37 <kmc> because you can't consume it incrementally
20:32:40 <elliott> so I guess it is foldl'
20:32:52 <elliott> kmc: well, you can for genericLength
20:32:56 <kmc> right
20:32:58 <elliott> which is foldl iirc :(
20:33:00 <elliott> or maybe not?
20:33:22 <kmc> so that's why foldr isn't better... but why is it worse?
20:33:24 * kmc rusty :(
20:33:28 <oerjan> oh and foldl' isn't a good consumer either, probably part of that "cannot fuse both foldr and foldl" problem i vaguely recall
20:35:20 <elliott> kmc: well you want something strict
20:35:24 <elliott> or you'll build up thunks
20:35:34 <oerjan> they settle on build/foldr fusion for lists, which somehow means the other way will blow up or something if you try to do it simultaneously
20:35:35 <elliott> and "strict foldr' is very silly, it eats up stack space
20:35:39 <elliott> *"
20:35:55 <elliott> (I think)
20:37:10 <boily> there should be a foldm for cases like this.
20:37:17 -!- kallisti has joined.
20:37:17 -!- kallisti has quit (Changing host).
20:37:17 -!- kallisti has joined.
20:37:24 <elliott> boily: you mean, monoid fold?
20:37:26 <kmc> ah yeah
20:37:29 <elliott> :t fold
20:37:31 <lambdabot> (Foldable t, Monoid m) => t m -> m
20:37:37 <boily> elliott: no, fold middle.
20:37:39 <elliott> > foldMap Sum [1, 2, 3]
20:37:40 <lambdabot> Sum {getSum = 6}
20:37:47 -!- ais523 has joined.
20:38:32 <elliott> ais523: what game did you make weboflies for?
20:40:52 <ais523> elliott: I didn't have one in particular in mind
20:40:52 <lambdabot> ais523: You have 1 new message. '/msg lambdabot @messages' to read it.
20:40:57 <ais523> @messages
20:40:57 <lambdabot> Sgeo asked 6h 12m 41s ago: How would you feel about `list displaying the changed list immediately? Would it ruin the effect you were going for?
20:41:14 <ais523> elliott: actually it went the other way round, I started seeking out Linux games as a way to test it
20:41:28 <ais523> Sgeo: the current version is a bit harder to figure out
20:48:44 <kmc> http://www.youtube.com/watch?v=eSRcvrVs5ug
20:49:18 <kmc> "No instructions were dispatched in the making of this demo (except to copy memory to the framebuffer). All computation is done in the MMU."
20:49:47 <Bike_> useful
20:49:52 -!- Bike_ has changed nick to Bike.
20:50:27 <Bike> wow, that is slow
20:51:09 <kmc> when 900 page faults you reach, run fast you will not
20:52:10 <nortti> ok. now I know what eso-os will run on
20:52:37 <oerjan> run, or run not; there is nSegmentation fault (core dumped)
20:55:39 -!- dessos has quit (Quit: leaving).
20:56:25 -!- Taneb has quit (Quit: Leaving).
20:58:27 -!- carado has joined.
21:03:12 -!- azaq23 has quit (Max SendQ exceeded).
21:04:07 -!- azaq23 has joined.
21:04:16 -!- azaq23 has quit (Max SendQ exceeded).
21:26:19 <shachaf> oerjan: Thanks.
21:29:18 <shachaf> elliott: I don't see why that was necessary -- "for the unwarranted accusation, \ `undo 2196" makes it obvious that putting me on the list is done vindictively, as some sort of punishment -- but I'm glad it's over.
21:29:48 <oerjan> please let it _be_ over. thx.
21:30:10 <elliott> shachaf: It was out of frustration. You're free to read what I said afterwards and not take it out of context, but somehow I doubt it is actually over.
21:30:27 <oerjan> *sigh*
21:30:42 <Bike> these things are important oerjan
21:30:59 <shachaf> OK.
21:31:17 <oerjan> _ _ _ _ _ _
21:31:17 <oerjan> _| || |_ _| || |_ _| || |_
21:31:17 <oerjan> _____ _____ _____ _____ _____|_ .. _|_ .. _|_ .. _|
21:31:17 <oerjan> |_____|_____|_____|_____|_____|_ _|_ _|_ _|
21:31:17 <oerjan> |_||_| |_||_| |_||_|
21:31:51 <Bike> bringing out the big guns huh
21:31:58 <shachaf> oerjan: Well having this long conversation about me while I'm not here and then not wanting me to talk about it is hardly fair!
21:32:04 <shachaf> But anyway there's not much point to saying anything.
21:32:19 <oerjan> shachaf: i think i implied that actually
21:33:32 <olsner> kmc: is that the result of that talk you linked to ages ago?
21:33:42 <Bike> it is
21:34:21 <olsner> if only the information was available without having to watch and listen to people talking about it
21:38:31 <boily> oerjan: that *is* one huge flyswatter.
21:39:11 <oerjan> nah it's just perspective
21:43:57 <kmc> i think the slides are going up sometime soon
21:44:08 <kmc> also you could just watch the video on mute and speed through the spaces between slides
21:44:12 -!- monqy has quit (Quit: hello).
21:44:54 <kmc> https://twitter.com/sergeybratus/status/303188668271714305 says "slides soon"
22:01:33 -!- TeruFSX has joined.
22:03:00 <kmc> that talk was cool not just for the turing tarpit at the end
22:03:22 <kmc> more for the useful tricks with x86 paging quirks that it discussed
22:03:37 <kmc> like using split instruction/data TLBs to emulate NX on chips that don't have it
22:04:03 <olsner> yes, but I got that part from hanging around here and letting you repeat most of the talk for me :P
22:04:16 <kmc> a service i provide gladly
22:04:18 <olsner> also from reading some document about PaX
22:04:26 <kmc> i don't really understand the details of the tarpit
22:04:41 <kmc> i think i'd need to read about 20 pages of Intel manual to understand it
22:04:48 <kmc> and i don't know that there's any deep insight buried under that
22:04:58 <olsner> sounds like the details would be tricky
22:05:17 <kmc> the PaX thing makes me pine for soft-filled TLBs
22:08:53 <olsner> sounds like the basic principle is to put the stack in specific locations such that it overwrites page tables and changes the conditions that will cause future traps
22:09:34 <olsner> could also overwrite the pointer to the stack
22:10:39 -!- boily has quit (Quit: Poulet!).
22:19:14 -!- carado_ has joined.
22:25:25 -!- carado has quit (Ping timeout: 246 seconds).
22:30:29 -!- Arc_Koen has joined.
22:31:32 <pikhq> https://github.com/jbangert/trapcc Slides
22:32:03 <kmc> nice
22:40:00 -!- impomatic has quit (Quit: impomatic).
23:00:48 <olsner> hmm, I think I understand how it works now
23:08:51 <olsner> it's seems more an x86 hardware task-switching hack than something to do with the MMU
23:09:33 <olsner> *its seams
23:09:38 <olsner> *it seems
23:10:07 -!- kallisti has quit (Ping timeout: 260 seconds).
23:13:39 -!- FreeFull has quit (Ping timeout: 244 seconds).
23:14:54 -!- FreeFull has joined.
23:15:21 <elliott> olsner: *itz eems
23:15:37 <oerjan> eems? where?
23:15:54 <olsner> eems upon eems! can you not see them?
23:16:19 <elliott> eems
23:16:20 <elliott> eem
23:16:22 <elliott> fuck
23:16:23 <elliott> eems
23:16:23 <elliott> eems
23:16:27 <elliott> ^ eems upon eems
23:16:43 <olsner> eem upon fuck
23:17:19 <elliott> yes
23:19:54 <oerjan> it looks like an eem possibility
23:20:50 -!- FreeFull has quit.
23:21:43 <olsner> the possibility is eemingly eem
23:22:53 -!- GOMADWarrior has quit (Ping timeout: 255 seconds).
23:31:07 <quintopia> kmc: thx
23:41:56 -!- nooga has quit (Ping timeout: 256 seconds).
2013-02-22
00:11:48 -!- quintopia has quit (Ping timeout: 248 seconds).
00:12:49 <doesthiswork> I'm thinking about making it so you have to explicitly bind the values returned from a function to variables. No more of this implicit replacement stuff. so %(41,3)(a,b){ rest of computation } will mod 42 by 3 returning (13,2) and within the brackets "a" will be 13 and "b" will be 2
00:13:42 <doesthiswork> there will also be more syntactical symmetry between function call and returns
00:14:05 <Bike> so, continuation passing style?
00:14:24 <oerjan> reminded me of IO
00:14:37 <doesthiswork> maybe, I don't know enough about continuation passing style
00:14:50 <doesthiswork> I just thought it would be properly annoying
00:15:06 <Bike> CPS is a bit annoying to program in yeah :P
00:15:34 <Bike> in CPS you'd have like lambda(a,b){ rest of computation } and %(41,3,that_lambda)
00:15:46 -!- quintopia has joined.
00:15:51 <Bike> except of course that the lambda itself takes a continuation
00:16:35 <doesthiswork> I see
00:16:53 <Bike> and then you can't just do a "normal return", you have to pass something to a continuation
00:17:18 <Bike> at some point you presumably have a semimagical continuation meaning "fuck this, print whatever and quit"
00:17:47 <elliott> it's not really that magical
00:17:50 -!- nooodl has quit (Ping timeout: 260 seconds).
00:18:19 <Bike> fine just kill the magic will ya
00:19:27 <Sgeo> Manually CPSed code is nicer to write in Haskell than in Javascript, imo
00:19:35 <doesthiswork> I was planing on makeing you write (((2 + 3) * 5) / (1-3)) as +(2,3)(a){ *(a,5)(b){ -(2,3)(c){ /(b,c)(d){ }}}} which does end up looking alot like continuations passing style
00:20:37 <doesthiswork> and has the nice benefit of making it sequential when it didn't have to be sequential before.
00:23:13 <Bike> +(2,3)(a,k){*(a,5)(b){-(2,3)(c){/(b,c)k}}}
00:23:20 <Bike> nicely ugly yeah
00:25:11 <elliott> the nice anti-benefit
00:25:34 <Bike> we have to talk about esolangs sometime elliott, or the opers will come down from on high
00:25:49 <elliott> do you mean ops or opers
00:25:58 <Bike> opers
00:26:01 <Bike> obviously the ops here don't care
00:26:13 <Bike> you have no standards
00:26:24 <elliott> we had an oper in here for like a month once :->
00:26:43 <doesthiswork> IO actually looks pleasent
00:26:45 <oerjan> horrible time
00:26:46 <Bike> how'd you chase 'em off?
00:26:51 <ais523> well, I care
00:26:54 <ais523> I just can't really do much about it
00:26:55 <oerjan> ruined all the bots, except fungot
00:26:56 <fungot> oerjan: i think the former evaluates the lambda with the up? girlfriend trouble?'. i refuse to believe you :p ( after all, so i can't be sure
00:27:12 <ais523> oerjan: did the oper just go around banning bots, then?
00:27:27 <oerjan> well, Gregor's bots
00:27:27 <Bike> good oper
00:28:06 <oerjan> until he rectified them
00:33:01 <elliott> he didnt actually ban
00:33:03 <elliott> afaik
00:33:31 <oerjan> he just gave Gregor an offer he couldn't refuse
00:34:33 <Bike> fire?
00:37:18 <doesthiswork> I think I will modify it so you don't need the curly brackets, because with the scope defining curly brackets it is identical to continuation passing style
00:42:41 <doesthiswork> and without brackets its identical to cps hmmm :|
00:59:18 <doesthiswork> IO has rather nice syntax too
01:02:07 -!- TeruFSX2 has joined.
01:02:47 -!- TeruFSX has quit (Ping timeout: 255 seconds).
01:05:56 <oerjan> :t state
01:05:58 <lambdabot> MonadState s m => (s -> (a, s)) -> m a
01:06:22 <elliott> wrong way around :(
01:06:24 <elliott> it should be (s, a)
01:08:18 <oerjan> note that the way it _is_ it fits into Lens using the (,) a Functor...
01:09:01 <shachaf> elliott has been possessed by the adjunction demon
01:09:06 <shachaf> Well, halfway possessed.
01:09:21 <oerjan> OKAY
01:09:23 <shachaf> He's not possessed enough to see tht (_,s) is totally a functor.
01:10:04 <oerjan> um i'm pointing out that (a,_) is a functor. i think.
01:10:22 <elliott> oerjan: well there is no s ->
01:10:32 <elliott> you need (s -> (a, s)) -> _ -> m a
01:10:39 <elliott> er rather
01:10:43 <elliott> you need (s -> (a, s)) -> _ -> (a, a)
01:12:29 <oerjan> elliott: what i'm saying is that Lens' s a has the restricted type (s -> (b, s)) -> a -> (b, a)
01:13:10 <elliott> right
01:13:30 <oerjan> which allows you to use it to change the state part
01:13:34 <shachaf> Not (a -> (b,a)) -> s -> (b,s)?
01:13:43 <oerjan> ...MAYBE
01:14:00 <oerjan> i haven't quite learned which goes where yet
01:14:14 <shachaf> There was a lens library that represented lenses as State x a -> State x s, I think
01:14:26 <shachaf> Unfortunately that doesn't let you do some things.
01:14:28 <elliott> @hackage lenses
01:14:28 <lambdabot> http://hackage.haskell.org/package/lenses
01:14:42 <elliott> oerjan: you can look to "traverse" for intuition
01:14:49 <elliott> (a -> f b) -> t a -> f (t b)
01:14:53 <elliott> so s is "bigger"
01:15:07 <oerjan> OKAY
01:15:15 <shachaf> s is the "subtype" hth
01:19:23 -!- carado_ has quit (Ping timeout: 246 seconds).
01:19:32 <oerjan> ARGH
01:19:49 <shachaf> also t is t b
01:19:54 -!- GOMADWarrior has joined.
01:42:16 -!- Phantom_Hoover has quit (Remote host closed the connection).
02:07:21 <Sgeo> `slist
02:07:29 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
02:09:47 <doesthiswork> does slist stand for sgeo's list?
02:09:57 -!- Arc_Koen has quit (Quit: Arc_Koen).
02:10:29 <shachaf> C++11 lets you declare functions with "auto foo(...) -> t" instead of "t foo(...)"?
02:11:35 <Sgeo> I have no idea what slist stands for
02:11:50 <shachaf> stupid list
02:11:51 <Bike> sucky
02:11:52 <shachaf> hth
02:14:28 <pikhq> shachaf: Yeah.
02:14:38 <pikhq> I don't recall the rationale.
02:15:40 <shachaf> The rationale seems to be that ... is in scope on the right side of the function.
02:23:34 <Gregor> Holy crap, Pringles sea salt and vinegar is surprisingly amazing. It's exactly the right mix of vinegar and potato.
02:26:53 -!- oerjan has quit (Quit: leaving).
02:27:01 <elliott> "exactly the right mix of vinegar and potato"...
02:30:07 <doesthiswork> I didn't know pringles had potato in them
02:35:59 <pikhq> doesthiswork: They're made using potato *flour*.
02:36:06 <pikhq> Gregor: That may be worth a try.
02:36:10 <pikhq> I love salt & vinegar.
02:38:37 <Sgeo> I love salt, don't really know what vinegar tastes like, except apparently ketchup is vinegary?
02:39:02 <ais523> Sgeo: it's actually surprisingly sweet
02:39:05 <pikhq> Ketchup isn't a very good comparison.
02:39:10 <ais523> it's pretty readily available, though, you could just try it to see if you like it
02:39:12 <pikhq> It's a vinegar, tomato, and sugar sauce.
02:39:30 <pikhq> A lot of sugar. A *lot*.
02:39:51 <ais523> fish and chip shops (which are a UK thing) put salt and vinegar on everything they sell (except salad) by default, if you don't want them you have to ask them not to put it on
02:40:03 <ais523> btw, I hardly ever add salt to food nowadays
02:40:21 <ais523> I do sort-of like it, but not enough for it to be worth the trouble, and it leaves my diet marginally better
02:40:32 <elliott> salt & vinegar salad
02:40:47 <pikhq> Salt & vinegar salad seems a bit much.
02:40:47 <ais523> elliott: well putting oil and vinegar on salad is very common
02:40:48 <ais523> but not salt
02:41:02 <ais523> salad dressing is basically just a mix of oil and vinegar
02:41:07 <elliott> no it's a salad actually made out of salt and vinegar
02:41:10 <pikhq> A vinaigrette, sure.
02:41:30 <Sgeo> I used to love garlic salt when I was a kid
02:41:36 <pikhq> ais523: Keep in mind the US uses mayonaisse-based salad dressings too.
02:41:54 <ais523> pikhq: so does the UK, but we just call it mayonnaise
02:42:04 <ais523> and it's a separate concept from "salad dressing"
02:42:04 <pikhq> I said "based".
02:42:08 <doesthiswork> which are just egg oil and some lemon juice
02:42:09 <ais523> ah, hmm
02:42:10 <pikhq> Ranch dressing ain't just mayo.
02:42:19 <ais523> yeah, that exists here too
02:42:20 <copumpkin> mayo just ain't aioli
02:42:31 <ais523> it's just that it's not called "salad dressing" unless it's an oil/vinegar mix, it's called something else
02:42:53 <pikhq> In the US, "salad dressing" refers to anything you could plausibly use as a sauce for salad.
02:43:37 <pikhq> Hence why it's ranch dressing, not ranch... i dunno
02:44:58 <pikhq> Also, for some reason Miracle Whip calls itself a salad dressing, but I've never even heard of anyone using it as such.
02:45:36 <doesthiswork> blech
02:45:51 <pikhq> Pretty much exclusively a sandwich spread thing.
02:46:08 <doesthiswork> also used for things like jello topping
02:58:41 <TeruFSX2> people put miracle whip on jello? ew.
02:59:10 <ais523> jello = jelly, right?
02:59:15 <ais523> I didn't realise people put any topping at all on that
02:59:33 <ais523> except when using it as an ingredient to make trifle
02:59:52 <pikhq> UK "jelly" yeah. Though calling it that will confuse Americans.
03:01:29 <ais523> fair enough
03:01:44 <ais523> I guessed from the similarity of names, but it's quite a hard substance to explain
03:02:02 <pikhq> US "jelly" is a particular type of fruit preserve.
03:02:39 <ais523> hmm… something like UK "marmalade"?
03:03:06 <pikhq> No, UK "marmalade" is US "marmalade".
03:03:42 <pikhq> US "jelly" generally is made with the fruit pulp strained out in the preperation.
03:03:57 <doesthiswork> jam is when it is left in
03:04:11 <pikhq> Yup.
03:04:27 <doesthiswork> aspic is jello that happens naturally and then has the peices strained out of it
03:05:36 <doesthiswork> what is "trifle" that people make with jello?
03:07:07 <doesthiswork> one dessert that uses jello,is made from miracle whip, cottage cheese mini marshmallows and lime jello
03:07:37 <doesthiswork> it doesn't taste nearly as bad as it sounds
03:08:42 <kmc> "Who eats braised ivy? And what was with that owl all smeared in mayonnaise?... A fox fighting an eel, suspended in aspic. It was like a Nine Inch Nails video."
03:10:07 <ais523> doesthiswork: trifle is basically a layered desert made out of lots of other deserts
03:10:26 <ais523> it's based around some sort of fruit, sponge, jelly[UK], custard, and cream
03:11:15 <ion> So it’s basically a monoid?
03:12:42 <doesthiswork> yes is is something like a trifle except shallower
03:13:29 <doesthiswork> and never includes anything that is made of flour
03:15:10 <ais523> ion: monads are like burritos, and monoids are like trifles?
03:15:29 <ion> A trifle satisfies the monoid laws.
03:15:30 <doesthiswork> 3 to four inches high instead of 6 to 8 inches, and no custard either, but can also have odd things like cottage cheese
03:18:43 <elliott> ion: law 1. be easy?
03:28:32 -!- dessos has joined.
03:38:45 -!- GOMADWarrior has quit (Ping timeout: 252 seconds).
03:49:45 -!- monqy has joined.
04:16:40 <kmc> http://robohub.org/video-throwing-and-catching-an-inverted-pendulum-with-quadrocopters/
04:16:59 <Bike> fucking inverted pendulums man
04:19:52 <kmc> https://www.youtube.com/watch?v=3CR5y8qZf0Y
04:19:56 <kmc> two quadcopters play tennis
04:19:58 <doesthiswork> how do they work?
04:20:41 <kmc> i wonder how many times they missed and completely wrecked one of the rotors
04:21:27 <doesthiswork> hopefully no times
04:21:42 <doesthiswork> because that wouldn't be such a great thesis
04:26:36 <kmc> https://www.youtube.com/watch?v=TI760jcFV2s
04:26:46 <kmc> nah
04:26:53 <kmc> some mistakes are inevitable as you refine the algorithms
04:26:59 <doesthiswork> oh, he said it wrecked a rotor quite a few time
04:27:44 <doesthiswork> and then they would have to recalibrate how that coptor moved to make the algorythm acurrate
04:27:49 <kmc> yeah
04:28:01 <elliott> algorhythm
04:28:13 <kmc> one of the other ETH flying machine videos says that the robots learn about rotor wear
04:28:19 <kmc> from crashes and from everyday use
04:32:09 <doesthiswork> https://www.youtube.com/watch?v=CJOubyiITsE&NR=1&feature=endscreen more robots
04:32:19 <doesthiswork> they got the girl to stay still by projecting cartoons onto the ceiling
04:34:31 <kmc> https://www.youtube.com/watch?v=TxMTKsiaLwg
04:34:40 <kmc> this is what we will see after the robots conquer humanity
04:34:43 <kmc> they will do a little dance
04:38:04 <Sgeo> Do surveillance drones look somewhat like that?
04:38:27 <Bike> Like quadcopters? No.
04:38:58 <kmc> doesthiswork: wow
04:39:01 <kmc> that is... quite something
04:39:10 <Bike> Predators are kinda huge. Dunno what's used domestically.
04:39:12 <doesthiswork> a guy I know uses a homebuilt quadracoptor to take photos of his farm
04:39:31 <kmc> there are all kinds of surveilance drones
04:39:38 <kmc> doesthiswork: that's excellent
04:39:59 <doesthiswork> he gives international talks about it
04:41:15 <Sgeo> At first I thought the robots were going to put the girl on top of them and then fly
04:41:31 <Bike> that'd be cool, but this is good too.
04:42:28 <doesthiswork> kmc: you think a quadcotor is cool? this is twice as cool https://www.youtube.com/watch?v=Uy4lXRaGCOU
04:43:26 <Bike> does it go quaternion:octonion::quadrotor:octorotor
04:43:48 <kmc> i can't argue with that
04:45:45 <doesthiswork> two rotor coptors must be complex then
04:45:58 <Bike> regular helicopters are pretty darn complex
04:47:25 <doesthiswork> are one rotor helicoptors even real?
04:48:49 <Bike> if i pirouette and jump off a building
04:49:00 <Bike> i think there are like, ones where you have one rotor but with two sets of blades on it?
04:49:33 <kmc> if the rotors are powered by tipjets then you don't need a tail rotor
04:49:47 <elliott> Bike: are you going to pirouette and jump off a building
04:50:05 <Bike> probably not, i'm no ballerino
04:50:21 <kmc> https://www.youtube.com/watch?v=s65MGR36tjE
04:50:49 <Bike> jesus.
04:51:10 <kmc> just think about the glorious VTOL rotodyne airliner future that never was
04:51:51 <Bike> uhhhhh 20 rotodynes cost as much as one fixed-wing? that's kinda hard to swallow
04:52:07 <kmc> where does it say
04:52:13 <Bike> the video?
04:52:23 <kmc> i don't remember that bit
04:52:34 <kmc> i thought
04:52:40 <kmc> they said it was a comparable cost
04:54:11 <Bike> oh, "equal to any" not "equal twenty"
04:54:22 <Bike> derr.
04:55:45 <kmc> heh
04:56:58 <Bike> But uh, doesn't it need the propellers to stay stable?
05:01:32 <kmc> https://www.youtube.com/watch?v=TDZelxNCLGk it's so cute
05:04:54 <Bike> haha, the eyes
05:16:53 <kmc> and how could i forget https://www.youtube.com/watch?v=rypyjJCtGBE
05:17:13 <kmc> don't miss the part with the cows
05:17:43 <Bike> sometimes i forget that someone actually fuckin did that
05:26:37 -!- Nisstyre-laptop has joined.
05:28:01 -!- Frooxius has quit (Ping timeout: 248 seconds).
05:28:35 <doesthiswork> he's bringing dutch culture to the world
05:52:47 -!- dessos has quit (Quit: leaving).
06:17:19 -!- TeruFSX2 has quit (Ping timeout: 244 seconds).
06:29:11 <ais523> found via reddit, definitely ontopic: https://github.com/jbangert/trapcc
06:29:35 <ais523> summary: someone managed to get the x86 MMU to run arbitrary code (and thus show it's a bounded-storage machine)
06:29:54 <Sgeo> Isn't that a thing that someone here linked to a presentation that ended with that?
06:30:04 <ais523> yeah, it might have been linked earlier
06:30:23 <ais523> yep, it seems pikhq linked it already
06:30:30 <Sgeo> I meant longer ago
06:30:37 <Sgeo> The CCC presentation
06:30:47 <Sgeo> That was all about... x86 ... stuff
06:30:49 <ais523> hmm
06:31:06 <shachaf> kmc was talking about it.
06:31:07 <Bike> kmc linked it a few weeks ago, i think
06:31:21 <shachaf> preflex: seen kmc
06:38:20 <kmc> hallo
06:38:36 <kmc> yeah i linked to the game of life demo earlier today
06:38:45 <kmc> and to the 29C3 talk when that video was posted a few months ago
06:38:48 <shachaf> kmc: Happy kmc++!
06:39:28 <kmc> thanks shachaf :)
06:39:49 <shachaf> Now we can finally have our answer to an age-old question.
06:40:06 <Bike> is this a weird way of saying it's kmc's birthday
06:40:30 <shachaf> I thought it was the standard thing to do on IRC.
06:40:31 <ais523> if it isn't, there's been a surprisingly large number of accidental puns that could be interpreted that way
06:40:35 <ais523> (1 is surprisingly large)
06:40:47 <shachaf> haskell/09.12.30:04:13:12 <kmc> ah, i don't perceive much of a gap between 21 and 25. maybe i will when i'm 25
06:41:17 <ais523> kmc: well I'm 25, and I don't see much of a gap except in terms of four years of learning
06:41:31 <ais523> like, I'm 4 years more experienced in teaching programming and in hardware compilation
06:41:36 <ais523> because that's what I've been doing these 4 years
06:41:41 <ais523> but apart from that, I feel pretty much the same
06:42:41 <shachaf> Shh, don't bias the jury.
06:43:20 <shachaf> I'm not sure "feel pretty much the same" is what "perceive much of a gap" means, though. Do you expect to not feel pretty much the same in, say, 40 years?
06:43:37 <shachaf> Or let's say 20 years.
06:45:29 <doesthiswork> I'm sure that as time goes on you'll see even less of a gap
06:45:41 <Sgeo> Keeping in contact with someone from my Senior Project was a bad idea
06:46:12 <Sgeo> "But first, you have to do this. Create a website of your resume. Use any language you know. Try to use all the skills you know."
06:46:28 <Bike> use php
06:46:32 <Sgeo> A lot of my knowledge is flat out inapplicable to a website dedicated to presenting a resume
06:46:42 <Bike> not if you use haskellscript.
06:46:57 <Sgeo> I had to google that. It exists.
06:46:57 <shachaf> adascript
06:47:56 <Sgeo> But it's probably a better idea to fix out senior project so I can actually link to it without being horrifically embarrassed.
06:48:08 <kmc> shachaf: i will think about it :)
06:48:23 <Sgeo> Also, making a website look good visually is not a skill I have.
06:48:45 <Bike> well yeah, you're a programmer, not a designer
06:49:46 <kmc> dammit jim
06:49:46 <shachaf> Sgeo is a programmer?
06:49:54 <kmc> maybe Sgeo is a sgeogrammer
06:50:15 <Bike> is sgeo the ideogrammation
06:50:17 <Bike> sgeogrammation
06:50:37 <Sgeo> shachaf, just because I spend 90% of my time talking about languages doesn't mean I don't spend some time actually writing programs.
06:51:11 <Sgeo> `resume
06:51:12 <HackEgo> rsum
06:51:58 <shachaf> resume the résumé, by cole porter
06:53:46 <Sgeo> Cole Porter? I get that that's a person, but I don't know who it is or why e would have relevance to the joke.
06:53:54 <Sgeo> *who e is
06:54:07 <Bike> isn't that a jazzist
06:54:38 <shachaf> https://en.wikipedia.org/wiki/Begin_the_Beguine
06:54:56 <Sgeo> Ah
06:55:38 <shachaf> Sgeo: are you using some variant of spivak pronouns here
06:55:44 <Sgeo> Yes
06:55:50 <Bike> just use singular they
06:56:07 <shachaf> singular they are the best
06:56:54 <Sgeo> I can assure you a number of people in here greater than 1 have used Spivak pronouns.
06:56:57 * pikhq blinks...
06:57:05 <pikhq> So, today I learned about Saint Josaphat.
06:57:17 <pikhq> Or, as you may be more familiar with him, Siddhartha Gautama Buddha.
06:58:02 <Bike> isn't some buddhist saint i forget considered an incarnation of Mary
06:58:16 <pikhq> Long game of telephone based on the Buddha.
06:58:36 <pikhq> Not a Buddhist, literally the Buddha.
07:06:04 <shachaf> literal operator suffixes not preceded by ‘_’ are reserved for future standardization
07:06:17 <Bike> good emote
07:06:46 <kmc> shachaf: i think i figured out cruptopizzles #14
07:06:59 <shachaf> Ugh, I was supposed to work on that today.
07:07:07 <kmc> have tested the algorithm by hand, but too sleepy to write the code tonight
07:07:09 <shachaf> I should go home and do it.
07:07:34 <shachaf> kmc: You're not doing it in assembly again, are you?
07:07:35 <kmc> it wasn't too hard, once i forced myself to sit down and think about it for a bit
07:07:52 <kmc> thinking about things where you have no idea how to proceed is scary
07:08:02 <shachaf> Yes, I don't think it's that difficult.
07:08:14 <shachaf> I had a partial solution.
07:08:25 <kmc> shachaf: i'm not doing it in assembly :)
07:14:10 <doesthiswork> do you have a link to cruptopizzles ?
07:16:21 <kmc> the best i have is https://twitter.com/tqbf/status/303964223485140992
07:16:32 <kmc> there's not a site, you just email the guy
07:18:19 <Sgeo> Someone posted a link to a weird image in another chatroom
07:18:26 <Sgeo> Now I'm wondering if that's one of those
07:18:31 <Bike> what
07:18:43 <kmc> there are several weird images on the internet
07:18:51 <Sgeo> http://i.imgur.com/xQsEVYE.png
07:18:55 <Sgeo> Any relevance?
07:19:04 <Bike> well that's a screenshot from a DS game
07:19:04 <kmc> don't think so
07:19:19 <Sgeo> Bike, ah
07:19:20 <Bike> also it looks like just a straight cipher?
07:21:05 <doesthiswork> thank you
07:29:06 <Sgeo> Gah. I see a comment referring to a book. I know the name of the book, but the comment is from 2010.
07:30:05 -!- copumpkin has quit (Ping timeout: 260 seconds).
07:30:35 -!- copumpkin has joined.
07:30:41 <shachaf> Oh, C++11 can let you say "char x{5};" but not "char x{256};"?
07:30:48 <monqy> Sgeo: gah?
07:31:01 <monqy> shachaf: good question
07:31:07 <shachaf> gah sundheit monqy
07:32:26 <Sgeo> The comment on here http://dilbert.com/strips/comic/1996-01-29/
07:32:43 <Bike> a comment from 2010 on a comic that's older than my brother
07:32:52 <Sgeo> Oh, they got the name right I think
07:33:00 <elliott> the real question is why you're reading a dilbert strip from 1996
07:33:03 <elliott> the real question is why you're reading a dilbert strip
07:33:29 <Bike> the real question is why
07:33:45 <Sgeo> I was reading a Dilbert strip from 1996 because someone commented on the most recent Dilbert strip and linked to that strip.
07:34:00 <Sgeo> I was practically raised by Dilbert.
07:34:10 <doesthiswork> you know scott adams says that that the creationists have a point
07:35:10 <elliott> scott adams says an awful lot of terrible things
07:35:11 <elliott> that said
07:35:15 <elliott> `addquote <Sgeo> I was practically raised by Dilbert.
07:35:25 <HackEgo> 965) <Sgeo> I was practically raised by Dilbert.
07:35:33 <Bike> so does thomas nagel and he's probably a smarter guy than adams
07:39:05 <Sgeo> o.O at how long ago 1996 was
07:39:29 <shachaf> > 1996 - 2016
07:39:31 <lambdabot> -20
07:39:34 <Sgeo> <insert observation that everyone makes here>
07:39:36 <shachaf> Hmm, that's quite a long time.
07:39:44 <Bike> hey sgeo you like animes right
07:39:47 <shachaf> Sgeo: What observation, that 1996 didn't really exist?
07:39:48 <Bike> http://www.amazon.com/gp/product/B0026ERPHO
07:39:51 <shachaf> I think it may have.
07:39:53 <Sgeo> Bike, at least some
07:39:56 <elliott> Bike: do i want to click this
07:40:02 <elliott> i mean i will, inevitably
07:40:04 <elliott> but will i regret it
07:40:05 <Bike> elliott: you know you do
07:40:21 <elliott> help
07:40:34 <monqy> i recommend clicking this link
07:40:38 <monqy> it improved my life
07:40:51 <elliott> its only 7 dollars
07:40:58 <elliott> i want to buy it and uncover the mystery
07:41:08 <Sgeo> There's a preview thing
07:41:14 <elliott> no sgeo
07:41:17 <elliott> that would be wrong
07:41:44 <monqy> Customers Who Viewed This Item Also Viewed Sadness and Sorrow - The Themes of Naruto
07:41:50 <Sgeo> I... do not understand what this thing is. All I know is that I could hear words when I took headphones off, it was that low
07:41:53 <Sgeo> loud
07:41:53 <elliott> monqy: good
07:42:44 <doesthiswork> what bad things does Thomas Nagel say?
07:42:59 <Bike> doesthiswork: creationism
07:43:48 <doesthiswork> I tried to read the wikipedia article about him but the way it's written it ardly makes any sense
07:43:55 <shachaf> Bike: noitdoesnot
07:44:30 <Bike> hello?
07:44:37 <shachaf> hi
07:44:48 <Sgeo> joke
07:44:51 <Sgeo> Bike's head
07:45:01 <Sgeo> I assume
07:45:03 <shachaf> Sgeo..................................................
07:45:07 <Bike> oh i get it
07:45:09 <Bike> thanks sgeo
07:45:13 <Bike> i am now "in" on the "joke"
07:45:24 <shachaf> oh no
07:45:39 <elliott> i dont get it
07:45:51 <shachaf> what else are you R"hi("in" on)hi"
07:46:00 <shachaf> (did i use correct C++11 syntax there)
07:46:22 <Bike> c11 has that synxtax?
07:46:25 <Sgeo> I have no idea how to tell when someone's being sarcastic and someone's serious
07:46:29 <Sgeo> At least, on the Internet
07:46:34 <doesthiswork> did any of you read "the emperor's new mind"
07:46:56 <Bike> i read a review of the emperor's new mind, does that count?
07:47:09 <shachaf> Bike: I don't think C11 does?
07:47:13 <doesthiswork> and get that uncomfortable feeling of, "wow you know so much more math than me but you're wrong for simple reasons"
07:47:23 <Sgeo> e.g. right now I can't tell if elliott genuinely does not get it, or if he's mocking me by pretending not to get it.
07:47:28 <Bike> doesthiswork: yeah that's what dennett said too, sorta
07:47:32 <doesthiswork> bike: yeah it pretty much counts
07:47:37 <elliott> iirc i like penrose because he's crazy
07:47:43 <Bike> "this sure is a project you're embarking on here! unfortunately, no"
07:47:47 <elliott> people who are right can often be really boring
07:47:54 <Bike> is penrose a cosmologist or just a physicist
07:48:01 <Bike> i'm reasonably sure there are no sane cosmologists
07:48:04 <shachaf> should i read "the road to reality"
07:48:08 <doesthiswork> he is just a mathmatician
07:48:15 <shachaf> 10:21 < ddarius> merijn: While I don't agree with much of what Penrose believes, "The Road to Reality" is a pretty amazing book. I can't believe he got it published.
07:49:00 <Bike> What's it about?
07:49:33 <shachaf> Maybe I should read: "Category Theory as Coherently Constructive Lattice Theory"
07:49:40 <shachaf> That's not a book, though, it's just a PDF.
07:50:22 <Bike> doesthiswork: http://ndpr.nd.edu/news/35163-mind-and-cosmos-why-the-materialist-neo-darwinian-conception-of-nature-%20is-almost-certainly-false/ re nagel
07:50:26 <doesthiswork> shachaf: that title scares the bejeebus out of me
07:50:31 <Bike> uh, except without the space.
07:50:53 <shachaf> renagel?
07:51:03 <shachaf> doesthiswork: It's not that scary!
07:51:08 <shachaf> It explains all the words it uses straight off.
07:51:23 <Bike> i think i understand all those words right now, gosh
07:51:28 <elliott> Bike: that header image is great
07:51:29 <doesthiswork> it doesn't help that I don't know catagory theory
07:51:30 <elliott> oh it's randomised
07:51:33 <Bike> (not that i'd understand the paper in any meaningful sense)
07:51:37 <elliott> what's a catagory
07:51:38 <shachaf> Bike: Don't worry, the actual text uses a whole lot more words.
07:51:40 <Bike> elliott: which image, then?
07:51:45 <shachaf> But it explains them too?
07:51:49 <doesthiswork> bike: thanks
07:52:01 <elliott> doesthiswork: we have a nice guide to category theory
07:52:04 <elliott> start from `? monad and work outwards
07:52:07 <elliott> Bike: i have no idea how to copy it
07:53:14 <Bike> oh it's a background image huh
07:53:17 <Bike> sux
07:53:46 <elliott> this nagel thing looks pretty dull
07:54:30 <Bike> the book or the review
07:54:43 <elliott> well the review gives me the information that it looks dull
07:55:03 <doesthiswork> for Nagel, if science can't come up with a theory of everything it has, in some deep sense, failed.
07:55:15 <doesthiswork> there is his problem
07:55:22 <Bike> there is one of his problems
07:55:36 <Bike> other problems include hegelian evolution crap
07:55:42 <elliott> seems more like his definition of "everything" includes ", plus the bit science can't do, by (my) definition"
07:56:00 <elliott> IM EXPERT IN THIS GUY AFTER HAVING READ THREE PARAGRAPHS ABOUT A BOOK HE WROTE
07:56:11 <doesthiswork> yup :)
07:56:14 <Bike> well he wrote "What Is It Like To Be A Bat"
07:56:20 <Bike> which I think shachaf has read maybe
07:56:53 <shachaf> You just think that because I read _The Mind's I_.
07:57:13 <Bike> obviously.
07:57:17 <Bike> I call it inference!
07:57:21 <shachaf> Bike: Did you read that one book?
07:57:27 <shachaf> _The Soul of Anna Klane_
07:57:36 <shachaf> _The Mind's I_ has two excerpts from it.
07:57:39 <Bike> No but I looked it up and was like ?? what
07:57:52 <Bike> yeah it's the one with the robot getting hammered right, and maybe the chimp on trial?
07:57:54 <shachaf> Oh, did you end up on that church website thing?
07:57:58 <shachaf> Yes, those two.
07:57:59 <Bike> i might have
07:58:02 <shachaf> They were good.
07:58:10 <Bike> have you read the one book?
07:58:26 <shachaf> Miedaner got mad because Hofstadter used the chapters to make the opposite point of the one he was trying to make.
07:58:38 <shachaf> Which book?
07:58:54 -!- Bike has quit (Quit: Reconnecting).
07:59:09 -!- Bike has joined.
07:59:19 <shachaf> Uh oh.
07:59:26 <shachaf> I guess you missed the last half hour of conversation?
07:59:44 <Bike> Yes. THat is what happened.
07:59:48 <Bike> Anna Klane I meant.
07:59:56 <shachaf> Yes, I read it.
08:00:11 <elliott> what church
08:00:13 <Bike> Was it good? Did whoever make a dumb point?
08:00:38 <shachaf> The Church of Physical Theology, Ltd.
08:00:55 <Bike> sounds like a reputable place to buy churching, yeah
08:00:56 <shachaf> http://beon-cpt.com/
08:00:57 <shachaf> enjoy
08:00:57 <elliott> that is a good name
08:01:13 <shachaf> Bike: I enjoyed it despite the author being a bit silly.
08:01:19 <Bike> good, good
08:01:30 <Bike> if i couldn't deal with silly authors i couldn't read anything
08:01:30 <Sgeo> What are those desktop computers that are a really small box?
08:01:47 <Bike> did you know that philip k dick once sent a letter to the FBI alleging that Lem was a committee of soviet propagandists
08:01:57 <elliott> Bike: um what about my books
08:01:59 <elliott> (I don't have books)
08:02:04 <Bike> (why not)
08:02:14 <elliott> (well what would i even write)
08:02:31 <shachaf> Bike: You should read it!
08:02:36 <elliott> btw can someone make an awful bf derivative please
08:02:42 <shachaf> Do you want to read my copy?
08:02:42 <elliott> like say Bike
08:02:46 <Bike> (a collection of erotic zzo38_ebooks fanfiction)
08:02:56 <Bike> shachaf: is it like online or what
08:02:57 <Sgeo> elliott, I have a bf derivative, don't know if it counts as awful
08:03:05 <elliott> (is it even possible to write that)
08:03:09 <elliott> Sgeo: no it has to be a new one
08:03:57 <Sgeo> It's almost trivial to make a Trustfuck derivative except the instruction set is shifted over. Does that help?
08:04:06 <shachaf> Bike: Not as far as I know.
08:04:10 <elliott> no
08:04:13 <shachaf> My copy of it is floating around somewhere in WA, though.
08:04:28 <Bike> here is my bf derivative: the program consists of a number. to execute the program, you find a bf program that halts with that number in the first cell, and execute that.
08:04:55 <Bike> shachaf: well, that's not much of a direction, but i'll be on the lookout for your distinctive lipstick on the cover?
08:05:04 <shachaf> Bike: Sounds like a plan.
08:05:25 <shachaf> Bike: It should be somewhere in the northern olympic peninsula, if that helps.
08:05:32 <elliott> Bike: that's too complex, sorry
08:05:49 <Bike> the peninsula? i thought that was like, rural
08:05:56 <monqy> remember that time i made a bf derivative? i never wrote it down but its logged
08:06:01 <monqy> ive probably made
08:06:02 <doesthiswork> shachaf: http://beon-cpt.com/ reiterates an incorrect story of Galileo, he didn't get in trouble for his ideas, he got in trouble for being an ass.
08:06:02 <monqy> like
08:06:02 <monqy> 2
08:06:04 <elliott> monqy: i forget was it good
08:06:04 <monqy> on the spot
08:06:16 <Bike> doesthiswork: everybody reiterates that wrong though
08:06:18 <elliott> monqy: & also can you put one on the wiki, pref. the dumbest & most trivial
08:06:21 <elliott> i wont judge
08:06:36 <Bike> yeah you will
08:06:50 <shachaf> Bike: Maybe?
08:06:56 <shachaf> It's a small town, <10000 people.
08:07:13 <Bike> did you like, sell it, or just leave it in the well
08:07:17 <shachaf> Assuming that's where my book is. I don't actually know.
08:07:22 <shachaf> I left it with my sister.
08:07:31 <shachaf> Who knows what she did to it.
08:07:37 * shachaf lived in WA for years, y'know.
08:08:29 <doesthiswork> up by sequim?
08:08:56 <Bike> man i don't even know the geography of my own state, i'm a failure
08:08:56 <shachaf> That general area.
08:09:09 <shachaf> Bike: You own WA?!
08:09:43 <Bike> i own dicks
08:12:11 <Sgeo> What's this about Worms?
08:12:41 <Bike> no worms
08:17:52 <doesthiswork> the northern olympic peninsula has native species of cacti
08:18:18 <Bike> and octopuses!
08:20:24 <doesthiswork> bike: yes http://zapatopi.net/treeoctopus/
08:32:57 -!- Nisstyre-laptop has quit (Quit: Leaving).
08:34:29 <shachaf> My laptop's lid-detection thing seems to be broken.
08:34:42 <shachaf> I'm used to closing it and putting it in my bag, though.
08:34:48 <shachaf> So it overheats and shuts off.
08:34:51 <shachaf> Alas.
08:37:25 <elliott> sounds like it's working
08:38:23 <shachaf> ?
08:39:09 <elliott> well you want it to shut off when you close it
08:39:11 <elliott> and it does
08:40:04 <mroman> runtime type checking has it's drawbacks :(
08:40:11 <mroman> !blsq {}pd
08:40:11 <blsqbot> ERROR: Burlesque: (r[) Empty list!
08:40:22 <mroman> the product of an empty list is generally defined as 1
08:40:35 <mroman> but I can't let product return 1 on empty lists.
08:40:40 <Bike> why not
08:40:44 <mroman> because
08:40:48 <mroman> What type is 1?
08:40:53 <mroman> !blsq {1}pd
08:40:53 <blsqbot> 1
08:40:54 <Bike> integer?
08:40:56 <mroman> !blsq {1.0}pd
08:40:56 <blsqbot> 1.0
08:41:00 <shachaf> No, I want it to suspend.
08:41:02 -!- impomatic has joined.
08:41:06 <mroman> is {}pd now 1 or 1.0?
08:41:09 <mroman> I don't know.
08:41:16 <Bike> just pick one and document it
08:42:00 <Bike> normally i'd say go with the integer because ha, ha, floats
08:42:08 <elliott> how about remove floats
08:42:21 <mroman> how about no ;)
08:42:33 <mroman> They are necessary.
08:42:41 <elliott> i don't believe you in the slightest
08:42:55 <Sgeo> In a practical language that's likely to be used for high-speed computation, maybe.
08:42:59 <mroman> !blsq 3 3.2pc
08:42:59 <blsqbot> ERROR: Burlesque: (pc) Invalid arguments!
08:43:08 <mroman> !blsq 3.0 3.2pc
08:43:08 <blsqbot>
08:43:12 <Bike> in a practical language, good topic
08:43:14 <mroman> damn you
08:43:15 <Bike> lol.
08:43:36 <Bike> anyway you could just have arithmetic functions be polymorphic like everyone else does
08:43:49 <mroman> they are
08:43:51 <mroman> but
08:43:53 <Bike> or whatever you call randomly "upgrading" everything
08:43:54 <mroman> what about
08:44:04 <Sgeo> Is BLSQ only described in logs?
08:44:07 <mroman> !blsq {4 5 6 7}{1}++!!
08:44:07 <blsqbot> 5
08:44:18 <mroman> !blsq {4 5 6 7}1.0!!
08:44:19 <blsqbot> ERROR: Burlesque: (!!) Invalid arguments!
08:44:22 <Bike> you realize i have no idea how this syntax works right
08:44:25 <mroman> list indices are not doubles
08:44:30 <mroman> well
08:44:42 <mroman> one might access an element in a list with (sum [])
08:44:42 <elliott> if you want doubles just have doubles
08:44:48 <elliott> they represent a reasonable range of ints perfectly
08:44:49 <mroman> > [4,5,6,7]!!sum[]
08:44:51 <lambdabot> 4
08:44:52 <elliott> eg 64 bit doubles give you 32 bit integer
08:44:53 <elliott> s
08:44:57 <mroman> > [4,5,6,7]!!1.0
08:44:59 <lambdabot> No instance for (GHC.Real.Fractional GHC.Types.Int)
08:44:59 <lambdabot> arising from the lit...
08:45:00 <elliott> however i dont see why you'd want doubles at all
08:45:20 <Sgeo> If it's not statically typed, why not rationals?
08:45:30 <Bike> what does that have to do with static typing
08:45:45 <Sgeo> Rationals might be... uh.. hmm, not sure what I was thinking
08:45:47 <mroman> !blsq 3.0 3.2pc
08:45:47 <blsqbot> 0.6472318897430834
08:45:48 <Sgeo> Oh
08:45:57 <Bike> you know i'm pretty sure it's impossible to do math in a programming language in a reasonable fashion
08:45:58 <Sgeo> Don't want to be able to use rationals to index things
08:45:59 <mroman> ^- That's what doubles are needed for.
08:46:06 <mroman> How else would you do poisson distributions?
08:46:26 <shachaf> Bike: is it possible to do a math in a reasonable fashion in general
08:46:27 <Sgeo> You lose type safety if your only numeric type is rationals
08:46:42 <Bike> Sgeo: imo just have rational indices filled in by linear interpolation
08:46:57 <Bike> shachaf: point
08:47:10 -!- ais523 has quit.
08:47:35 <Bike> esolang that doesn't have arrays, just functions that can represent them
08:48:00 <Bike> make an array 1,1,2,6,24,... and it becomes the gamma function
08:48:00 <elliott> and all functions are continuous?
08:48:02 <Bike> roll in the dosh
08:48:30 <Bike> actually i guess we need complexes for completeness
08:48:46 <Bike> make every function a "continuous" "matrix"
08:49:13 <Bike> bonus: function composition is now just matrix multiplication
08:49:48 <elliott> bike
08:49:49 <elliott> are you crazy
08:49:53 <elliott> also, put it on the wiki
08:50:23 <Bike> don't i have to make all the default matrices be []<>+-,. to satiate your lust for brainfucking first
08:50:41 <Bike> "really, when you think about it, isn't < a linear operator"
08:51:01 <elliott> no im "interested" in this separately
08:51:03 <elliott> make two languages
08:51:05 <elliott> i order it
08:51:14 <Bike> ok
08:58:04 <doesthiswork> bike: what is a reasonable fashon?
08:58:19 <doesthiswork> of doing numbers
08:58:45 <Bike> there isn't one, or else the much-cleverer-than-me people who design programming languages would have come up with one
08:59:15 <Bike> also this is a bad time for me to be thinking about how to get a holomorphic function out of a lattice/if that's even possible
08:59:38 <doesthiswork> That is a hilarious idea of linearly interpolating the results of non integer indices
08:59:53 <Bike> i bet you there's a language that actually does that shit
09:00:04 <c00kiemon5ter> fungot, what's your opinion on this ?
09:00:05 <fungot> c00kiemon5ter: feel free to write code simpler...)
09:00:14 <c00kiemon5ter> well said
09:01:38 <Bike> http://en.wikipedia.org/wiki/File:ModularGroup-FundamentalDomain-01.png so high
09:04:21 <doesthiswork> speaking of wacky arrays, one thing that has fascinated me is the progression from location addressable structures (lists and arrays) to key addressable structures (p-lists hash-tables objects) to content addressable structures that when you give them a value they give you back a canonical value. (coercing a number to be within certain bounds, finding the normal form of an expression, searching a string with a regular expression)
09:04:54 <Bike> i don't think a string regex search really constitutes an addressable structure
09:05:29 <doesthiswork> why not?
09:06:39 <Bike> i dunno, it just intuitively doesn't seem like it
09:06:46 -!- carado_ has joined.
09:07:02 <Bike> hm i guess if you have like, a string with information and... ok i see what you mean
09:07:58 <doesthiswork> I don't know if there is anything useful to this generalization. it's just a pattern I ran with
09:08:23 <Bike> an addressable structure isn't really a "thing" mathematically
09:08:47 <doesthiswork> each one can simulate a limited form of the next and simulate a slower version of the previous
09:09:08 <Bike> a multidimensional array is just a tensor, or a function Int[x,y]^n -> whatever
09:09:19 <doesthiswork> I heard of a guy who didn't know about array so stored number as prime powers
09:09:38 <Bike> gödelization is a bit different.
09:11:30 <doesthiswork> it would be fun to have arrays that only allowed you to refer to number sequences on the online encyclopedia of integer sequences
09:12:08 <doesthiswork> it would be enough for most mathematical purposes
09:12:39 <elliott> @hackage oeis
09:12:40 <lambdabot> http://hackage.haskell.org/package/oeis
09:13:09 <Bike> with a couple functions on arrays and enough clever slicing you could make any array out of those
09:13:54 <Bike> also now i'm going to be unable to sleep because i'll be thinking about how to get a unique analytic out of an countably infinite number of points
09:13:54 <doesthiswork> and if it isn't enough you could submit it to be added
09:14:13 <Bike> oeis 799817 order numbers at my kroger job
09:14:31 <doesthiswork> stick wool on the points and call them sheep
09:15:01 <Bike> it's not actually possible, is the problem
09:15:28 <doesthiswork> well that is simple.
09:15:49 <Bike> maybe it is possible if you're using gaussian integers instead but i doubt it
09:20:06 <Sgeo> "Note that the result is not in the IO monad, even though the implementation requires looking up information via the Internet."
09:20:50 <Bike> "from a practical point of view the function is referentially transparent" i love this library
09:22:25 <fizzie> > lookupSequence [1,2,5,14,42,132,429,1430,4862,16796]
09:22:28 <lambdabot> Just (OEIS {catalogNums = ["A000108","M1459","N0577"], sequenceData = [1,1,...
09:22:31 <fizzie> Ooh, it's in there.
09:22:31 <doesthiswork> oeis is not a site that changes rapidly
09:22:36 -!- monqy has quit (Quit: hello).
09:22:57 <doesthiswork> > lookupSequence [1,0,0,0]
09:23:01 <lambdabot> mueval-core: Time limit exceeded
09:23:04 <Bike> > extendSequence [1,2,5,14,42,132]
09:23:08 <lambdabot> mueval-core: Time limit exceeded
09:23:17 <Bike> :<
09:23:19 <Bike> > extendSequence [1,2,5,14,42,132]
09:23:22 <lambdabot> [1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9694845,35...
09:23:41 <Bike> > extendSequence [1,1,1]
09:23:45 <lambdabot> mueval-core: Time limit exceeded
09:23:54 <fizzie> > extendSequence [1,2,3,4,5] !! 20
09:23:56 <lambdabot> 21
09:23:58 <Sgeo> > extendSequence [1,1,1]
09:24:01 <lambdabot> mueval-core: Time limit exceeded
09:24:03 <doesthiswork> sorry but 1 1 1 is a really complex patter
09:24:20 <Bike> that's basically my favorite oeis sequence
09:24:36 <Bike> closely followed by gnu but that's actually complicated
09:25:34 <fizzie> "There are no side effects to speak of" is nicely put.
09:26:33 <mroman> the behaviour depeends on the internet connection.
09:26:38 <mroman> *-e
09:28:13 <doesthiswork> if the internet connection is down then the computer is practically worthless anyway
09:28:22 <doesthiswork> so there's no harm depending on it
09:28:43 <mroman> yeah. right.
09:31:35 <fizzie> Also if OEIS is down, the computer is also practically worthless.
09:31:47 <fizzie> (Because what else would you do with a computer?)
09:31:47 <doesthiswork> yup
09:31:50 -!- Taneb has joined.
09:32:29 <fizzie> In fact, in many dialects the term "OEIS-looker-upper" is used in place of "computer".
09:33:40 <doesthiswork> yes, the growth in home computers is directly tied to the growth of OEIS
09:37:40 -!- Bike has quit (Quit: dead so dead).
09:42:23 -!- nooga has joined.
09:42:54 <mroman> Without oeis how will school kids now how to count to ten?
09:42:59 <mroman> +k
09:44:18 <fizzie> @oeis 1,2,3,4,5,6,7,9,8
09:44:19 <lambdabot> In the number n, replace all (decimal) digits '8' by '9' and vice versa.
09:44:19 <lambdabot> [0,1,2,3,4,5,6,7,9,8,10,11,12,13,14,15,16,17,19,18,20,21,22,23,24,25,26,27,2...
09:44:24 <elliott> @ask bike are you dead
09:44:24 <lambdabot> Consider it noted.
09:45:03 <mroman> @oeis 1,2,88
09:45:18 <lambdabot> Plugin `oeis' failed with: thread killed
09:45:32 <mroman> That's the most important sequence of all
09:45:43 <fizzie> @oeis 1,2,3,4,5,6,8,7,9
09:45:43 <lambdabot> Table of n-almost-primes T(n,k) (n>=0, k>0), read by antidiagonals, starting...
09:45:44 <lambdabot> [1,2,3,4,5,6,8,7,9,12,16,11,10,18,24,32,13,14,20,36,48,64,17,15,27,40,72,96,...
09:46:04 <fizzie> Aw, I was hoping for a "replace all decimal digits '7' by '8' and vice versa."
09:46:27 <mroman> 1,2,88 is the sequence of repdigits which form together with the amount of factors also a repdigit
09:46:46 <mroman> (that is, 1 has 1 divisor, 2 has 2 divisors, 88 has 8 divisors)
09:47:22 -!- Taneb has quit (Quit: Leaving).
09:47:53 <doesthiswork> @oeis 1,2,3,5,4
09:47:58 <mroman> I'm guessing 88 is the highest such number but I was too lazy to prove it yet
09:48:03 <lambdabot> Decimal expansion of x<0 satisfying x^2+sin(x)=1.
09:48:03 <lambdabot> [1,4,0,9,6,2,4,0,0,4,0,0,2,5,9,6,2,4,9,2,3,5,5,9,3,9,7,0,5,8,9,4,9,3,5,4,7,1...
09:53:31 <mroman> is there an upper bound for divisors?
09:53:44 <mroman> except the obvious one.
09:54:58 <mroman> lower bound is probably more interesting.
10:00:26 <mroman> that is, given a number n, how many divisors does n at least contain
10:01:10 <doesthiswork> 1
10:01:25 <doesthiswork> because it might be a prime
10:01:50 <mroman> a prime has two divisors
10:01:56 <mroman> at lesat to my definition
10:01:58 <mroman> *least
10:02:11 <mroman> so yeah
10:02:13 <doesthiswork> ok, that's only a constant difference
10:02:37 <mroman> upper bound/lower bound for |divisors(n)| is 2 if n is prime
10:02:43 <mroman> but that does not help at all
10:03:07 <doesthiswork> do you want the average number of divisors as x grows?
10:03:37 <mroman> no
10:04:07 <mroman> I want an estimate of number of divisors for n
10:04:10 <mroman> as a range
10:04:28 <mroman> where the exact number of divisors MUST be somewhere in the range
10:04:36 <mroman> it MUST NOT be outside the range.
10:06:17 <mroman> What empirical evidence suggests is that a repdigit of the form 8..8 always has 16 divisors if number of 8 > 2
10:07:07 <mroman> but that's not real evidence
10:07:15 <mroman> especially because my computational power is weak :)
10:07:46 <mroman> at least 16 divisors
10:08:45 <doesthiswork> http://terrytao.wordpress.com/2008/09/23/the-divisor-bound/
10:09:07 <mroman> also it alsways seems to be a power of 2
10:09:40 <mroman> 4,8,16,16,16,128,16,64
10:10:30 <mroman> @oies 4,8,16,16,16,128,16,64
10:10:31 <lambdabot> Sequence not found.
10:10:38 <mroman> @oeis 4,8,16,16,16,128,16,64
10:10:39 <lambdabot> Sequence not found.
10:10:59 <mroman> ah well.
10:11:22 <carado_> @oeis 2,3,4,4,4,7,4,6
10:11:38 <lambdabot> Plugin `oeis' failed with: thread killed
10:11:40 <mroman> the next number is 48
10:11:44 <mroman> so not a power of two
10:12:03 <carado_> my bad
10:13:39 <Sgeo> The conatural numbers.
10:14:01 <Sgeo> People really seem to like the co- prefix
10:14:24 <Sgeo> Is there any way that "Conat"s are really "dual" to natural numbers? I mean, beyond being codata as opposed to data, I guess
10:15:21 <shachaf> coroutines are dual to routines
10:15:24 <shachaf> IN SOME CATEGORY SOMEWHERE
10:15:31 <doesthiswork> a comathmatician is a device for turning cotheorems into ffee
10:17:02 <Sgeo> `addquote <doesthiswork> a comathmatician is a device for turning cotheorems into ffee
10:17:09 <HackEgo> 966) <doesthiswork> a comathmatician is a device for turning cotheorems into ffee
10:17:47 <shachaf> Sgeo................
10:18:28 <Sgeo> Oh, that joke's been made before
10:18:43 <shachaf> a couple of times maybe
10:19:05 <doesthiswork> good
10:19:58 <mroman> !blsq '1'9r@{Sh8cb[-unps}\m><
10:19:58 <blsqbot>
10:20:05 <mroman> ah well.
10:20:12 <mroman> 100 microseconds is a tight timeout :)
10:20:45 <shachaf> tightout
10:22:38 <mroman> @oeis 2,4,4,6,4,8,4,8,6
10:22:48 <lambdabot> Number of cyclic subgroups of the group C_n X C_2 (where C_n is the cyclic g...
10:22:48 <lambdabot> [2,4,4,6,4,8,4,8,6,8,4,12,4,8,8,10,4,12,4,12,8,8,4,16,6,8,8,12,4,16,4,12,8,8...
10:23:05 <mroman> @oeis 2,4,4,6,4,8,4,8,6,12,8,12,8
10:23:09 <lambdabot> Sequence not found.
10:25:18 <mroman> ah well.
10:25:22 <mroman> let's run it to 20
10:25:29 <mroman> probably run for 2hours or so :)
10:26:20 <shachaf> @oeis 2047,65535,2097151
10:26:21 <lambdabot> Sequence not found.
10:26:29 <shachaf> @oeis 2048,65536,2097152
10:26:31 <lambdabot> 2^(5*n+1).
10:26:32 <lambdabot> [2,64,2048,65536,2097152,67108864,2147483648,68719476736,2199023255552,70368...
10:26:36 <shachaf> Hmph.
10:31:01 <Sgeo> http://mathoverflow.net/questions/1083/do-good-math-jokes-exist/2254#2254
10:32:22 <mroman> oh btw. I'm now in possesion of 'to mock a mockingbird'
10:34:34 <shachaf> (to mock a mockingbird-mocking mockingbird) -> (to mock a mockingbird)
10:34:39 <shachaf> | |
10:35:05 <shachaf> (mockingbird-mocking mockingbird) -> (mockingbird)
10:35:09 <shachaf> hi
10:35:36 <Slereah> It's a pretty good book
10:39:04 <doesthiswork> I didnt enjoy it
10:39:56 -!- epicmonkey has joined.
10:40:16 <doesthiswork> I wanted more cool devices made out of combinators
10:43:06 <Slereah> Then you should check out this totally rad thing : http://esolangs.org/wiki/Lazy_Bird
10:43:57 -!- Taneb has joined.
10:44:08 <doesthiswork> youre right I do
10:44:20 <doesthiswork> like this totally rad thing
10:44:41 <mroman> oh. neat.
10:52:23 -!- oerjan has joined.
10:53:06 <elliott> hello oerjan
10:53:39 <Slereah> Hello
10:54:21 -!- KingOfKarlsruhe has joined.
10:55:28 <elliott> are you oerjan
17:24:55 -!- esowiki has joined.
17:25:02 -!- esowiki has joined.
17:25:06 -!- esowiki has joined.
17:25:06 -!- glogbot has joined.
17:25:06 -!- esowiki has joined.
17:25:07 -!- glogbackup has left.
17:25:08 -!- glogbackup has quit (Excess Flood).
17:26:06 -!- Gregor has joined.
17:26:29 -!- Gregor has changed nick to Guest20222.
17:28:30 -!- Guest20222 has changed nick to Gregor.
17:28:53 -!- FreeFull has joined.
17:28:59 -!- Gregor has changed nick to Guest28688.
17:29:35 -!- Guest28688 has changed nick to Gregor.
17:34:44 -!- Deewiant has joined.
17:39:36 <FreeFull> Do you guys know what a tracker (music software) is?
17:39:57 <FreeFull> I'm thinking haskell might be a good language to write one in
17:40:18 <FreeFull> I don't know if anyone's ever written one before in haskell
17:41:05 <kmc> i do know
17:41:59 <kmc> i don't think Haskell would be a particularly good or bad langauge for writing one
17:42:14 <FreeFull> They're often written in C or ASM
17:42:27 <Lumpio-> User interfaces in Haskell, ugh
17:42:31 <Lumpio-> hacky much?
17:42:35 <kmc> Haskell is a fine language and you can write many codes in Haskell. However, if you want to use a different language, that is OK as well.
17:42:40 <FreeFull> I guess as long as the language isn't too bad and you've got good graphics/text manipulation libraries it doesn't really matter
17:42:44 <kmc> Lumpio-: shrug
17:42:51 <kmc> gtk2hs is fine
17:43:06 <FreeFull> I would write it so that you can plug interfaces on
17:43:12 <FreeFull> And the first interface would be a textmode one
17:43:52 <FreeFull> I was at first going to write it in C, before I knew any haskell, but now I'm not sure
17:44:11 <Lumpio-> What about audio
17:44:12 <kmc> C is a bad language for applications programming
17:44:12 <FreeFull> C seems less cumbersome for people to compile and stuff
17:44:18 <elliott> kmc: is that impression or quote
17:44:31 <kmc> yes if you use any language other than C, or use any libraries with C other than libc, users will hate you
17:44:40 <kmc> it's expected that each C project will implement all data structures from scratch
17:44:47 <FreeFull> Lumpio-: Probably would use some library for audio output or write my own library
17:44:53 <kmc> this i think actually explains much of the popularity of hash tables
17:45:05 -!- augur has quit (Remote host closed the connection).
17:45:08 <kmc> there are tree-shaped structures which are comparably nice
17:45:13 <kmc> but they are harder to reimplement from scratch
17:45:14 <FreeFull> kmc: You could always include the libraries with the project
17:45:17 <kmc> and C doesn't do code reuse
17:45:21 <FreeFull> Which some projects do
17:45:23 <kmc> FreeFull: then distros yell at you
17:45:29 <FreeFull> True
17:45:40 -!- augur has joined.
17:46:17 <FreeFull> C doesn't have any functional niceties either
17:46:22 <FreeFull> The best you get is function pointers
17:46:28 <kmc> elliott: impression
17:47:01 <kmc> of course C programmers turn reimplementing all datastructures into a virtue
17:47:10 <kmc> it's how you show that you're H4RDC0RE
17:47:24 <kmc> and of course everyone else's datastructures are shit
17:48:23 <FreeFull> Have fun debugging where your code involving dealing with multiple layers of pointers went wrong
17:49:29 <tromp_> at least it doesn't take much C to implement a purely functional language:)
17:50:12 -!- augur has quit (Ping timeout: 248 seconds).
17:53:02 <Gregor> “Les Misérables: Hugh Jackman delivers a star turn as Lester Misérables, the fanciest barber in Paris”
17:59:28 <Lumpio-> Haskell can do output!?
17:59:33 <Lumpio-> How impure of it
18:00:01 -!- Deewiant has quit (Ping timeout: 248 seconds).
18:00:14 <kmc> it's almost like Haskell is a programming language and not some kind of mathematical rhetorical arguing device
18:03:44 <Gregor> Nonsense.
18:07:44 <tromp_> Haskell can prescribe output to be performed by the runtime system
18:09:23 <kmc> haskell: a pretty cool guy?
18:11:36 <kmc> the execution semantics of IO actions are just as much part of the language standard "Haskell" as the evaluation semantics of lambdas and pattern matching
18:12:30 -!- Deewiant has joined.
18:12:45 <kmc> they are separated in a principled way rather than muddled together like every other language
18:12:54 <kmc> but people should stop trying to disown the former
18:12:59 <kmc> cause imperative programming in Haskell is nice
18:13:23 <kmc> this meme that Haskell is all about uncompromising purity is really dumb
18:14:13 <kmc> sigh
18:14:21 <Slereah> I don't think any big language is about purity
18:14:35 <Slereah> The really pure ones are always either academic or esoteric
18:15:25 <Gregor> There are probably some pure DSLs.
18:15:36 <kmc> "pure" is just a term that generates more heat than light
18:15:38 <Slereah> DSL?
18:15:48 <kmc> Haskell function evaluation is free of side effects, but it has another thing that does effects
18:15:51 <kmc> does this mean it's pure? who cares
18:16:09 <Gregor> Slereah: Domain-Specific Language.
18:16:15 <mroman> people using unsafePerformIO certainly not .
18:16:38 <kmc> yeah there's that too
18:16:48 <kmc> people break the "purity" rules all the time to get shit done
18:17:29 <mroman> understandable
18:17:30 <Slereah> I bet those guys care about purity : http://radified.com/gfx6/sicp_cover2.jpg
18:17:30 <kmc> it's fine
18:17:34 <kmc> it's a good programming language
18:17:38 <Slereah> If it is not pure, the magic doesn't work
18:17:41 <mroman> sometimes you do stuff without IO Monad
18:17:52 <kmc> it's not a fucking mathematical object from the platonic realm
18:17:53 <mroman> and then suddently you need some state in a function
18:17:56 <kmc> whatever
18:17:57 <mroman> or read a file or whatever
18:17:58 <kmc> end-of-rant
18:18:16 <mroman> either you rewrite the hole thing or saÿ "fuck it, i'll try unsef"
18:18:17 <kmc> i am so easy to troll
18:18:21 <mroman> :)
18:18:42 <Slereah> http://books.gentoomen.org/wizard.jpg
18:18:43 <Slereah> ahah
18:20:54 <mroman> http://cdn.memegenerator.net/instances/400x/35250381.jpg <- like that
18:20:58 <kmc> gentoo men...
18:21:11 <kmc> mroman: yes
18:39:13 <FreeFull> mroman: Why are you writing such a huge function
18:42:47 <mroman> FreeFull: You gonna have to supply me more context
18:44:32 <olsner> http://joaopizani.hopto.org/wp-content/uploads/2012/11/recursive_cats.gif
18:45:44 <olsner> it's a bit pointful though ... fix (cat:)?
18:45:57 <FreeFull> mroman: If you were writing smaller functions, adding state or whatever wouldn't be difficult
18:46:29 <mroman> like hell it would
18:47:17 <FreeFull> Give me a concrete example of what sort of code you'd write
18:47:19 <mroman> if you have function a which calls b which calls c which calls d which calls e which calls f
18:47:28 <mroman> and f is not Int but IO Int now.
18:47:48 <mroman> that means a,b,c,d,e, all land in IO too
18:47:51 <FreeFull> Give me a concrete code example
18:48:14 <mroman> every function calling an IO function has to be in IO too
18:48:34 <mroman> I don't need a concrete example for that.
18:48:58 <FreeFull> You can do debugging without any monads, if that's what you're embedding IO in for
18:49:13 <mroman> I'm awary of Debug.Trace
18:49:17 <mroman> *aware
18:49:18 <mroman> but
18:49:23 <FreeFull> I want example of code where that would need embedding a monad suddenly so deep in
18:49:27 <mroman> Debug.Trace uses unsafePerformIO actually ;)
18:49:34 <olsner> I'd say the problem is that you're trying to add side-effects to something five levels deep in the first place, not that it's painful to do so
18:49:44 <kmc> there's no such thing as an "IO function"
18:50:00 <kmc> it's a pure function that returns an IO action
18:50:14 -!- Bike has joined.
18:50:14 <mroman> olsner: That's the problem yeah.
18:50:28 <mroman> But still, it would be trivial in most imperative languages
18:50:39 <kmc> the "IO function" analogy is pretty bad and breaks down for a lot of things, like IO Int -> Int, IO (Int -> Int), or IO (IO Int)
18:50:58 <FreeFull> Yes, it would be trivial, and it could very easily lead to buggy code that messes around with state without one of the programmers knowing
18:51:10 <FreeFull> And then it's a pain to understand and fix if it breaks
18:51:35 <mroman> https://github.com/FMNSSun/Burlesque/blob/master/Burlesque/Eval.hs
18:51:38 <mroman> ^- concrete example
18:51:40 <kmc> the nice thing about imperative state in Haskell is that, even if code is an IO action, it can't manipulate any IORef unless it was passed that ref
18:51:50 <mroman> let's say I want to add a builtin that reads a file
18:51:59 <mroman> also I would like to add some registers instead of just passing a stack
18:52:03 <FreeFull> kmc: You can't have an IO Int -> Int without unsafePerformIO or something equivalent to const value, right?
18:52:16 <mroman> (I don't want to do that, but I if would do it
18:52:21 <mroman> it's going to be a nightmare to do so)
18:52:43 <kmc> FreeFull: well you can imagine other primitives that are neither of those
18:52:49 <kmc> like "count the number of (>>=)s in this IO action"
18:53:03 <kmc> the point is, the IO action is a data structure that can be manipulated without performing IO
18:53:04 <mroman> the problem is that the code for map/filter so much depend on only passing a stack
18:53:10 <mroman> this is not really haskell's fault
18:53:21 <mroman> but my fault not to write code I can hack I/O in later.
18:53:23 <FreeFull> I can see IO (IO Int), m (m a) isn't that uncommon
18:53:27 <mroman> or other state
18:53:41 <kmc> IO actions returning functions are also very useful
18:54:11 <FreeFull> mroman: mapM or mapM_ might be useful to you if you're mapping over a list of monadic values
18:55:01 <FreeFull> That code looks a bit big
18:55:25 <kmc> my 'spawn' library has pool :: Int -> IO (IO a -> IO a)
18:55:27 * FreeFull looks up BlsqState
18:55:42 <kmc> "Given n, produces a function to wrap IO actions. No more than n wrapped actions will be in progress at one time."
18:56:09 <kmc> in many languages you would explicitly return a data structure representing a semaphore or something
18:56:20 <kmc> but in Haskell it's natural to close over all those implementation details
18:56:22 -!- blsqbot has quit (Ping timeout: 246 seconds).
18:56:30 -!- epicmonkey has quit (Ping timeout: 264 seconds).
18:57:05 <FreeFull> mroman: I think you might be able to change BlsqState's definition to use StateT IO and not have stuff break, not sure though
18:57:11 <FreeFull> kmc: Do you think that'd work?
18:57:24 <kmc> what would?
18:58:36 <FreeFull> Changing BlsqState from State BlsqStack () to StateT BlsqStack IO ()
18:58:52 <kmc> i have no idea
18:58:55 <kmc> not having looked at the code
19:01:38 <Sgeo> "Junk snack food (chips/crisps) doesn't actually taste good. It's only 'enjoyable' (and I use that word with skepticism) because consumerism has force-fed you it for so long, developing your 'taste' for it through advertising and social pressure."
19:02:01 * Sgeo is quite skeptical about that claim
19:02:30 <kmc> taste is subjective
19:02:44 <kmc> sometimes health nuts convince themselves that junk food tastes bad
19:02:45 <olsner> Sgeo: have you tried eating with a tin foil hat on? it really does change the experience
19:03:28 <kmc> i would say that the junk food companies do develop the product through advertising and social pressure but also through extremely careful engineering to make it tasty as hell
19:03:29 <Sgeo> Potato chips are salty, and salt tends to taste good, which used to make good sense for our bodies.
19:03:52 <FreeFull> Sgeo: I like the flavouring too, salted potatoes on their own are quite dull
19:03:52 <kmc> there was a NYT article about this recently but I am too lazy to read it or find the link
19:03:58 <FreeFull> Cheese and onion is good
19:04:35 <Sgeo> I should eat something, I felt really weird and horrible waking up and don't know if I'm sick or if I just really haven't been eating enough
19:04:44 <Sgeo> I'm scared
19:04:49 <Phantom__Hoover> well look at it this way
19:04:53 <kmc> it's also amusing when people tell you that junk food is horrible, but the same amount of fat/salt/whatever is wonderful as long as it's all expensive local organic ingredients
19:04:57 <Phantom__Hoover> if you're sick, not eating isn't going to do you any good
19:05:13 <Phantom__Hoover> kmc i have to ask
19:05:42 <kmc> Sgeo: weird / horrible in what way?
19:05:52 <kmc> and how much have you been eating?
19:05:53 <Phantom__Hoover> lightheaded?
19:06:18 <kmc> what do you have to ask Phantom__Hoover
19:06:23 <Phantom__Hoover> i forget
19:06:55 <kmc> cool
19:06:57 <Phantom__Hoover> it was something to do with the way you're always complaining about other people's opinons
19:07:02 <Phantom__Hoover> *opinions
19:07:11 <Phantom__Hoover> (the opinon, the fundamental particle of opinions)
19:07:15 <kmc> hey sgeo started it
19:08:42 <olsner> (opinions are charged opinons)
19:09:05 <olsner> [up an ion]
19:09:44 <olsner> somewhere in the world, there ought be someone who mispronounces opinion like that
19:10:01 <Sgeo> Phantom__Hoover, I didn't eat the entire box of pasta last night, and don't think I had breakfast yesterday
19:10:16 <Phantom__Hoover> i think you meant kmc there
19:10:23 <olsner> not eating the entire box of paste is normal
19:10:41 <Phantom__Hoover> but like i said, if you're not feeling well eating more is a sensible thing to do
19:12:38 <Sgeo> kmc, I woke up feeling like I was trying to vomit but couldn't. Was difficult to catch my breath. Stomach felt hungry too
19:13:02 <olsner> "stomach felt hungry" usually means you should eat
19:13:53 <Phantom__Hoover> i get the sense that Sgeo is basically trying to ignore every basic bodily instinct
19:14:11 <Sgeo> I'm eating.
19:14:57 <olsner> Phantom__Hoover: maybe it's one of these things where an alien assumes human form and has trouble figuring out how the body works
19:15:19 <Phantom__Hoover> that does explain many things about Sgeo
19:15:43 <Phantom__Hoover> maybe his dad made him go to farmingdale because if he went to a good university he'd be noticed and dissected?!
19:15:55 <Phantom__Hoover> IT EXPLAINS EVERYTHING
19:16:10 <Phantom__Hoover> Sgeo, q. is your skin naturally green
19:16:24 <olsner> actually the whole of farmingdale is populated by aliens disguised as farmers
19:16:37 <Sgeo> Phantom__Hoover, my skin does reflect green light.
19:16:48 <Phantom__Hoover> and that's why the name's so stupid!
19:16:50 <Sgeo> It reflects other light, but green light too.
19:17:19 <Phantom__Hoover> the aliens were like "pick the two farmingest words in the earthlings' tongue!"
19:19:31 <Bike> no one will believe a place called "farmingdale" actually exists
19:19:31 <lambdabot> Bike: You have 1 new message. '/msg lambdabot @messages' to read it.
19:19:34 <Bike> whoa
19:19:44 <Bike> elliott: imo yes
19:19:56 <Phantom__Hoover> what was the msg?????
19:20:06 <Bike> "are you dead"
19:20:49 <olsner> some sort of accidental genius there ... normal people would go to farmingdale, find it full of farmers, and then leave ASAP
19:20:53 <olsner> reminds me of http://24.media.tumblr.com/tumblr_libgu78N3U1qdep4ro1_500.png
19:21:26 <kmc> ++
19:21:32 <Bike> ha
19:21:37 <Phantom__Hoover> olsner
19:21:38 <Phantom__Hoover> this isn't
19:21:39 <Phantom__Hoover> fucking
19:21:40 <Phantom__Hoover> reddit
19:21:45 <olsner> Phantom__Hoover: sure it is
19:22:09 <Phantom__Hoover> i should've known your swedishness would shine through eventually
19:22:18 <Phantom__Hoover> for so long i thought you'd been abducted at birth
19:26:11 <Sgeo> Should I risk going back to sleep?
19:26:41 <Phantom__Hoover> well like
19:26:53 <Phantom__Hoover> if you're that ill you should probably actually get medical attention
19:27:10 <Phantom__Hoover> rather than asking for it in a channel full of computer scientists
19:28:55 <olsner> fungot: do you know anything about sleep?
19:28:55 <fungot> olsner: i dont know what that " code; 00000000 before first symbol" means, surely 0 is before any of the fnord
19:29:09 <Phantom__Hoover> he only knows about computer sleep
19:31:14 <kmc> Sgeo: are you worried that you will die
19:31:50 <Sgeo> Not really, although it does make me worried that the sensation was unfamiliar
19:32:27 <kmc> what is the risk of sleeping?
19:33:23 <Sgeo> The risk of having to feel that sensation again when I wake up?
19:33:48 -!- copumpkin has quit (Ping timeout: 264 seconds).
19:34:19 -!- copumpkin has joined.
19:38:01 -!- augur has joined.
19:39:49 <kmc> oh
19:39:56 <kmc> you feel bad specifically on waking and not in general?
19:40:37 <kmc> fungot: what should Sgeo do
19:40:38 <fungot> kmc: don't quit your day job"). this is a little stranger, because it just copies between on gc.
19:45:53 <Sgeo> kmc, still feel a little bad, but not as terrible as I did when I woke up
19:47:13 <Phantom__Hoover> did you actually eat a reasonable amount of food
19:48:18 <Sgeo> Does 2 pop-tarts count as a reasonable amount?
19:48:34 <Phantom__Hoover> no, sgeo
19:48:34 <olsner> if you fast for too long it'll take a while for the stomach to get used to food again
19:48:46 <Gregor> "Pop-tart" and "reasonable" do not belong in the same sentence.
19:48:53 <Phantom__Hoover> i defer to olsner's expertise on not eating
19:49:30 <olsner> Sgeo: those pop-tarts will be gone quite soon and you will become hungry again (at this time, eat)
19:49:33 <Sgeo> I wasn't fasting at any point.
19:49:50 <Sgeo> Just... not eating enough, perhaps
19:50:48 <olsner> maybe all those calls from mom asking whether I'm eating properly weren't quite as pointless as I thought
19:51:19 <Gregor> I've been eating twigs and clay for three weeks!
19:51:21 <Sgeo> I'll have two more pop-tarts soon
19:51:57 <olsner> you can't live on pop-tarts
19:52:10 <Phantom__Hoover> man cannot live by pop-tarts alone
19:52:42 <Sgeo> I can have pasta and cheese for dinner like always
19:52:58 <Gregor> Do you eat any protein whatsoever?
19:52:58 <Phantom__Hoover> do you like
19:53:02 <Phantom__Hoover> what Gregor said
19:53:38 <Sgeo> Doesn't cheese have some protein?
19:53:53 <Sgeo> Also, I do sometimes eat chicken sandwiches, though not as frequently as when I was in college
19:54:14 <Gregor> Life is made of protein, everything that's food has SOME protein, that's not really the same as eating a chickpea salad though.
19:54:37 <Phantom__Hoover> well i mean life is mostly phospholipids and water
19:54:48 <olsner> Sgeo: cheese has some protein, but most likely not enough to live on if you just have a little bit of cheese on pasta
19:55:12 <Sgeo> Maybe I should get Chinese food tonight?
19:55:38 <boily> Sgeo: chinese food is always a good idea.
19:55:51 <Gregor> I'm so glad that Sgeo exists to make me feel like I'm good at life management by comparison.
19:56:27 <Phantom__Hoover> i am thinking the exact same thing
20:07:59 -!- DHeadshot has joined.
20:09:15 <pingveno> Gregor!
20:10:05 <olsner> I'm feeling a bit guilty about wasting my life management skills by not cooking actual food as often as I could, though
20:13:08 -!- oerjan has joined.
20:15:00 <oerjan> @messages
20:15:01 <lambdabot> mroman said 5h 33m 21s ago: I got it down to 19B : ,1 9r@{8cb[-}\m><p^
20:15:01 <lambdabot> mroman said 5h 29m 58s ago: Now reading the logs that's your ro solution
20:16:29 <oerjan> why 8? i thought the question used 4
20:20:50 <oerjan> @tell mroman Um that looks like mine with 8 instead of 4 and an extra p^ at the end, how is that shorter?
20:20:50 <lambdabot> Consider it noted.
20:22:03 <oerjan> @tell mroman or do you mean the actual anagolf versions were slightly different (longer and with final formatting)?
20:22:04 <lambdabot> Consider it noted.
20:33:12 <oerjan> @tell mroman an 8...8 repdigit always has 4 times the number of divisors of the corresponding 1...1 repdigit. similar rules for 2...2, 4...4 and 5...5 since their digit can have no common prime factor with 1...1.
20:33:16 <lambdabot> Consider it noted.
20:36:13 <oerjan> > [gcd ((10^n-1)`div`9) 81 | n <- [1..]]
20:36:15 <lambdabot> [1,1,3,1,1,3,1,1,9,1,1,3,1,1,3,1,1,9,1,1,3,1,1,3,1,1,27,1,1,3,1,1,3,1,1,9,1...
20:37:25 <oerjan> > gcd 111111111111111111111111111 81
20:37:27 <lambdabot> 27
20:39:04 -!- Mathnerd314 has joined.
20:39:09 <oerjan> @tell mroman <mroman> also it alsways seems to be a power of 2 <-- it fails with 9 8's hth :P (this is because that has factor 27 but not 81)
20:39:09 <lambdabot> Consider it noted.
20:39:31 <oerjan> @tell mroman er *9 but not 27
20:39:31 <lambdabot> Consider it noted.
20:40:31 <oerjan> > gcd 111111111 81
20:40:33 <lambdabot> 9
20:46:09 -!- md_5 has quit (Ping timeout: 252 seconds).
20:49:21 <boily> ~metar CYQB
20:49:21 <cuttlefish> CYQB 222000Z 07007KT 20SM BKN021 BKN120 M03/M06 A3040 RMK SC5AC0 SLP299
20:51:10 <olsner> fungot: CYQB
20:51:10 <fungot> olsner: mainly because it supports both left- and right- recursion. the first variable with a state not completely linked bug? how lame.
20:51:23 <olsner> fungot > metar
20:51:23 <fungot> olsner: i beat you :-p thanks for the hint then
20:52:03 -!- md_5 has joined.
20:53:04 <oerjan> `addquote <kmc> it's almost like Haskell is a programming language and not some kind of mathematical rhetorical arguing device
20:53:14 <HackEgo> 967) <kmc> it's almost like Haskell is a programming language and not some kind of mathematical rhetorical arguing device
20:54:33 -!- monqy has joined.
20:54:43 <Sgeo> Dad might be bringing me some protein-y foods tonight
20:54:49 <Sgeo> hamburger or chicken
20:54:54 <Sgeo> Or possibly Chinese food
20:54:55 <kmc> beef jerky
20:54:59 <oerjan> tofu!
20:55:02 <Slereah> Most foods are protein-y
20:55:06 <oerjan> that's proteiny right
20:55:16 <Slereah> All life forms are made of proteins
20:55:24 <Phantom__Hoover> Slereah, we already had this discussion
20:55:30 <Slereah> Did we?
20:56:07 <Sgeo> Well, some foods might have more protein per ... something?
20:56:27 <Phantom__Hoover> per food
20:56:30 <Phantom__Hoover> per bite
20:56:35 <Slereah> yes
20:56:47 <Slereah> Also some foods are like
20:56:52 <Slereah> NOT MADE OF LIFEFORMS :o
20:57:04 <boily> salt is not food.
20:57:29 <Phantom__Hoover> but what of pepper
20:57:38 <Slereah> Pepper comes from a plant!
20:57:48 <kmc> i wonder if the co-op market will sell me organic salt
20:57:53 <kmc> MSG is like organic salt :D
20:58:00 <Slereah> Also some foods are made from lifeform-based products, but are not made of them
20:58:02 <Slereah> Like
20:58:03 <Slereah> Candy
20:58:14 <Sgeo> salt + carbon?
20:58:27 <Sgeo> (re. organic salt0
20:58:27 <Sgeo> )
20:58:34 <kmc> i ate a huge greasy chinese food meal and now i feel gross, it must be the MSG and not the fact that I ate a huge greasy meal
20:58:43 <Phantom__Hoover> kmc
20:58:47 <Phantom__Hoover> that one wasn't even prompted
20:58:52 <kmc> :D
20:58:56 <boily> in fact, msg is slightly less worse for your health than salt.
20:59:13 <Slereah> I think the whole MSG scare was from some study about like
20:59:24 <Slereah> Inhumane doses of MSG in rats or something like that
20:59:33 <Slereah> Nothing actually scary
20:59:34 <boily> it's only when your daily intake is larger than 5 grams that you get nasty symptoms, like: headaches, dehydration, stiff neck, bat hallucinations...
21:00:05 <kmc> we can't stop here!
21:00:51 -!- doesthiswork has joined.
21:01:13 -!- ogrom has joined.
21:01:50 -!- doesthiswork has quit (Client Quit).
21:02:26 <Sgeo> bat hallucinations?
21:02:28 -!- doesthiswork has joined.
21:03:40 <boily> Sgeo: not "hallucinations", but "hallucinations...". the ellipsis is important.
21:04:41 <olsner> Slereah: I think there was also a bunch of people claiming to get sick from MSG in chinese restaurants
21:05:01 <Slereah> Maybe it was bad cat meat
21:05:50 -!- zzo38 has joined.
21:07:58 <boily> a vicious cycle of msg overabundance, where insubstantial bats were eaten by cats you were about to eat.
21:08:53 <oerjan> olsner: i vaguely recall some of those getting busted when they were given some other kind of food that actually had more MSG
21:08:58 <Slereah> Do you mean like
21:09:00 <Slereah> Batcat
21:09:01 <Slereah> http://uploads.ungrounded.net/579000/579288_batcat.swf
21:09:38 <oerjan> also, triangle and robert.
21:10:08 <boily> fungot: bats and bad cats and triangles and roberts.
21:10:09 <fungot> boily: they're usually padded too, i think. :( i'd really not fancy restarting it. i got paid for all sorts of undefined things like that
21:10:41 <olsner> oerjan: yeah, afaik it was never confirmed that there was anything at all there except people getting paranoid and imagining stuff
21:12:05 <zzo38> What I did with temporal logic before is wrong but now I should do it better way. type family Next (x :: *) :: *; data Globally x = Globally x (Globally (Next x)); data Future x = Now x | Later (Future (Next x)); I think this is better?
21:13:13 <mroman> oerjan: Yes.
21:13:13 <lambdabot> mroman: You have 5 new messages. '/msg lambdabot @messages' to read them.
21:13:15 <mroman> @formatting
21:13:15 <lambdabot> Unknown command, try @list
21:13:18 <mroman> @messages
21:13:18 <lambdabot> oerjan said 52m 28s ago: Um that looks like mine with 8 instead of 4 and an extra p^ at the end, how is that shorter?
21:13:18 <lambdabot> oerjan said 51m 14s ago: or do you mean the actual anagolf versions were slightly different (longer and with final formatting)?
21:13:18 <lambdabot> oerjan said 40m 5s ago: an 8...8 repdigit always has 4 times the number of divisors of the corresponding 1...1 repdigit. similar rules for 2...2, 4...4 and 5...5 since their digit can have no common
21:13:18 <lambdabot> prime factor with 1...1.
21:13:18 <lambdabot> oerjan said 34m 9s ago: <mroman> also it alsways seems to be a power of 2 <-- it fails with 9 8's hth :P (this is because that has factor 27 but not 81)
21:13:20 <lambdabot> oerjan said 33m 47s ago: er *9 but not 27
21:13:36 <mroman> p^ pushes all elements of a list to the stack
21:13:47 <mroman> and the interpreter prints remaining elements linewise
21:14:01 <mroman> and the anagol version requires up to 8 digits, yes
21:14:13 <mroman> but 8 digits timed out on blsqbot
21:14:19 <oerjan> ok
21:15:05 -!- DHeadshot has quit (Ping timeout: 255 seconds).
21:15:07 <oerjan> mroman: btw when the prime factorization of a number is p_1^k_1*p_2^k_2*...*p_n^k_n, the number of divisors is sum k_i + n
21:15:25 <oerjan> wait
21:15:50 <oerjan> *product_{i=1}^n (k_i + 1)
21:15:52 -!- Taneb has joined.
21:16:02 -!- DHeadshot has joined.
21:16:33 <mroman> euler phi function?
21:16:54 <mroman> wait no.
21:17:17 <mroman> that's the amount of non divisors
21:17:23 <oerjan> no that is a different product. they are both multiplicative functions, meaning you can split them by prime factors
21:18:10 <mroman> Isn't n - phi(n) the number of divisors then?
21:18:20 <oerjan> no.
21:18:26 <mroman> ok
21:18:32 -!- wareya has joined.
21:18:35 <mroman> then I've mixed something up
21:19:02 <oerjan> it's the number of non-coprime numbers, but e.g. 8 is not coprime to 12 but still isn't a divisor
21:19:26 <Taneb> Today I saw X-Men 2
21:19:36 <wareya> So I happened to see <= put into an xml string, which is &lt;=, and I was like, what if that were a legit way of "or"ing boolean operators
21:19:42 <Taneb> In a room where both Patrick Stewart and Ian McKellan have been in at the same time
21:19:48 <Taneb> (as eachother, not with me)
21:20:18 <oerjan> as _eachother_? sounds freaky.
21:20:59 <mroman> !blsq 111fcL[
21:21:18 <mroman> who killed my bot?
21:21:23 <oerjan> not me
21:21:29 <mroman> oh
21:21:34 <mroman> my machine went to sleep
21:21:51 -!- blsqbot has joined.
21:22:00 <mroman> !blsq 111fcL[
21:22:00 <blsqbot> 4
21:22:00 <blsqbot> 0.145171s
21:22:04 <mroman> !blsq 1111fcL[
21:22:05 <blsqbot> 4
21:22:05 <blsqbot> 0.127619s
21:22:08 <mroman> !blsq 11111fcL[
21:22:09 <blsqbot> 4
21:22:09 <blsqbot> 0.121971s
21:22:13 <mroman> !blsq 111111fcL[
21:22:13 <blsqbot> Ain't nobody got time fo' dat!
21:22:13 <blsqbot> 0.130191s
21:22:33 <mroman> !blsq 11111fc
21:22:33 <blsqbot> {11111 271 41 1}
21:22:33 <blsqbot> 0.129492s
21:22:41 <mroman> !blsq 1111fc
21:22:42 <blsqbot> {1111 101 11 1}
21:22:42 <blsqbot> 0.119117s
21:22:59 <mroman> !blsq 1111fC
21:22:59 <blsqbot> {11 101}
21:22:59 <blsqbot> 0.109501s
21:24:59 <mroman> !blsq 111111111fC
21:24:59 <blsqbot> {3 3 37 333667}
21:24:59 <blsqbot> 0.130418s
21:25:29 <mroman> I probably should have invested more time into factors :)
21:25:32 <mroman> it's horribly slow.
21:25:48 <mroman> !blsq 111111111fc
21:25:49 <blsqbot> Ain't nobody got time fo' dat!
21:25:49 <blsqbot> 0.148128s
21:26:58 <mroman> !blsq 3fc
21:26:59 <blsqbot> {3 1}
21:26:59 <blsqbot> 0.130434s
21:27:05 <mroman> !blsq 4fc
21:27:05 <blsqbot> {4 2 1}
21:27:05 <blsqbot> 0.11808s
21:27:11 <mroman> !blsq 4fcpd
21:27:11 <blsqbot> 8
21:27:11 <blsqbot> 0.1266s
21:27:15 <mroman> !blsq 8fcpd
21:27:15 <blsqbot> 64
21:27:16 <blsqbot> 0.125477s
21:27:21 <mroman> !blsq 64fcpd
21:27:21 <blsqbot> 2097152
21:27:22 <blsqbot> 0.127684s
21:27:31 <mroman> !blsq 2097152fcpd
21:27:31 <blsqbot> Ain't nobody got time fo' dat!
21:27:32 <blsqbot> 0.113719s
21:27:32 <oerjan> mroman: i find it weird that the printing times are nearly the same regardless of whether it times out or not.
21:27:50 <mroman> Yeah.
21:27:57 <mroman> They are pretty useless
21:28:18 <mroman> The actual program is allowed to run 100 microsecond
21:28:40 <mroman> the time shown is start interpreter + run time
21:28:45 <mroman> blsqbot please do quit
21:28:45 -!- blsqbot has quit (Quit: Exiting).
21:34:43 -!- blsqbot has joined.
21:35:10 <mroman> !blsq 1337?s
21:35:11 <blsqbot> 36.565010597564445
21:35:21 <mroman> !blsq pi
21:35:23 <blsqbot> 3.141592653589793
21:35:43 <mroman> !blsq eepi?*
21:35:43 <blsqbot> 8.539734222673566
21:36:51 <mroman> !blsq {{1 0}{0 1}}{{1 0}{1 0}}mm
21:36:51 <blsqbot> {{1 0} {1 0}}
21:37:00 <mroman> !blsq {{1 0}{0 1}}{{1 0}{1 0}}mmSP
21:37:00 <blsqbot> "1 0\n1 0"
21:38:22 <mroman> !blsq {{-5 6}{6 -5}}1 11.0?/?/
21:38:22 <blsqbot> {{-55.0 66.0} {66.0 -55.0}}
21:38:31 <mroman> !blsq {{-5 6}{6 -5}}1 11.0?/?*
21:38:31 <blsqbot> {{-0.4545454545454546 0.5454545454545454} {0.5454545454545454 -0.454545454545454
21:38:42 <mroman> !blsq {{-5 6}{6 -5}}1 11.0?/?*{{5 6}{6 5}}mm
21:38:42 <blsqbot> {{0.9999999999999996 -4.440892098500626e-16} {-4.440892098500626e-16 0.999999999
21:38:55 <mroman> Damn you limited precision!
21:39:38 <mroman> blsqbot please do quit
21:39:38 -!- blsqbot has quit (Quit: Exiting).
21:39:45 <mroman> lemme fix that stupid scientific notation
21:39:53 <Taneb> > cosh 6 ^ 2 - sinh 6 ^ 2
21:39:55 <lambdabot> 1.000000000007276
21:40:06 <Taneb> > cosh 2 ^ 2 - sinh 2 ^ 2
21:40:08 <lambdabot> 0.9999999999999982
21:41:04 <boily> > cosh 3.14 ^ 2 - sinh 3.14 ^ 2
21:41:06 <lambdabot> 1.0000000000000284
21:41:22 <boily> > cosh 3.1415926535 ^ 2 - sinh 3.1415926535 ^ 2
21:41:24 <lambdabot> 1.0
21:42:07 <Taneb> "Their last Tory MP, Stephen Milligan, died from auto-asphyxiation while wearing stockings and suspenders in 1994."
21:42:11 <Taneb> Fun place to be
21:42:26 <Taneb> boily, cosh^2 a - sinh^2 a == 1
21:42:29 <zzo38> What is the English ordinal form of fractions?
21:42:54 <boily> Taneb: as is cos^2 a + sin^2 a.
21:43:01 <Taneb> Indeed, boily.
21:43:05 <Taneb> and 1
21:43:29 <Bike> zzo38: 4/5 -> the four-fifths-th
21:44:20 <zzo38> OK, I used that
21:44:23 <boily> ordinals of an integer divided by 12: twelfthsths?
21:45:04 <doesthiswork> taneb we were always told to make absolutely sure that our auto erotic asphyxiation apparatus released the pressure if you went unconscious
21:45:12 -!- DHeadshot has quit (Ping timeout: 264 seconds).
21:45:20 <Taneb> doesthiswork, this was 1994
21:45:54 <Taneb> He was using an orange
21:46:30 <boily> couldn't he just, you know, bite into it?
21:47:27 -!- boily has quit (Quit: la réponse à cette question, dans le prochain épisode!).
21:47:33 -!- cuttlefish has quit (Remote host closed the connection).
21:47:34 -!- blsqbot has joined.
21:47:41 <mroman> !blsq {{-5 6}{6 -5}}1 11.0?/?*{{5 6}{6 5}}mm
21:47:41 <blsqbot> {{0.9999999999999996 -4.440892098500626e-16} {-4.440892098500626e-16 0.999999999
21:48:03 <mroman> !blsq {{-5 6}{6 -5}}1 11.0?/?*{{5 6}{6 5}}3r_
21:48:03 <blsqbot> {{ERROR: Burlesque: (r_) Invalid arguments! 3 5 ERROR: Burlesque: (r_) Invalid a
21:48:12 <mroman> too bad.
21:48:24 <mroman> !blsq {{-5 6}{6 -5}}1 11.0?/?*{{5 6}{6 5}}mm3r_
21:48:24 <blsqbot> {{1.0 0.0} {0.0 1.0}}
21:48:33 <mroman> blsqbot please do quit
21:48:34 -!- blsqbot has quit (Client Quit).
21:50:25 -!- blsqbot has joined.
21:50:31 <mroman> !blsq {{-5 6}{6 -5}}1 11.0?/?*{{5 6}{6 5}}mm
21:50:31 <blsqbot> {{0.9999999999999996 -0.0000000000000004440892098500626} {-0.0000000000000004440
21:50:31 <FreeFull> blsqbot please do quit
21:50:31 -!- blsqbot has quit (Client Quit).
21:50:48 -!- yhojeyisaac has joined.
21:51:02 <yhojeyisaac> HELLO
21:51:06 <FreeFull> Hi
21:51:09 -!- yhojeyisaac has left.
21:51:12 <mroman> Hi.
21:51:13 -!- yhojeyisaac has joined.
21:51:23 <yhojeyisaac> HELLO
21:51:48 <zzo38> HELLO
21:52:11 <doesthiswork> `welcome yhojeyisaac
21:52:14 <HackEgo> yhojeyisaac: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
21:52:14 <mroman> He only comes back when you say please come back
21:52:15 <Taneb> `WELCOME yhojeyisaac
21:52:17 <HackEgo> YHOJEYISAAC: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.)
21:52:54 <doesthiswork> that is an amusing variation on the welcome command
21:53:46 <zzo38> The wiki does not accept the uppercase URL though
21:54:00 <mroman> `wElCOme muh
21:54:02 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wElCOme: not found
21:54:25 <oerjan> `relcome yhojeyisaac
21:54:28 <HackEgo> yhojeyisaac: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
21:54:29 <Taneb> elliott, fix it plz
21:54:30 -!- c00kiemon5ter has left.
21:56:56 -!- yhojeyisaac has quit (Quit: Leaving.).
21:57:09 <kmc> UK just lost its AAA Moody's bond rating
21:57:12 <kmc> welcome to the club, UK
21:57:14 -!- yhojeyisaac has joined.
21:58:36 <mroman> BEER in German is actually Bier.
21:59:53 <kmc> @yhjulwwiefzojcbxybbruweejw
21:59:53 <lambdabot> Just 'J'
22:00:20 <mroman> :)
22:00:51 <olsner> @yhjulwwiefzojcbxybbruweejw
22:00:51 <lambdabot> "\"\\\"\\\\\\\"\\\\\\"
22:01:12 <doesthiswork> @yhjulwwiefzojcbxybbruweejw
22:01:12 <lambdabot> "\"\\\"\\\\\\\"\\\\\\"
22:01:25 <mroman> funktion multipliziärDäScheiss(schtring a, schtring b) { intetschär ai = alsIntetschär(a); intetschär bi = alsIntetschär(b); retörn ai mol bi; }
22:02:37 <kmc> zahlen
22:02:39 <yhojeyisaac> SV6TRRXZD524R3
22:02:43 <kmc> @yhjulwwiefzojcbxybbruweejw
22:02:43 <lambdabot> "\""
22:02:43 <Bike> shit, now i want to see schönhage-strassen's algorithm written out in german
22:03:08 <kmc> Stönehenge-Strassen
22:06:42 -!- monqy has quit (Quit: hello).
22:10:31 -!- TeruFSX has joined.
22:13:10 -!- Zerker has joined.
22:13:16 -!- KingOfKarlsruhe has joined.
22:15:20 <oerjan> mroman: that translates as multiplyDatShit, right?
22:16:42 -!- DHeadshot has joined.
22:22:56 -!- Zerker has quit (Quit: Colloquy for iPad - Timeout (10 minutes)).
22:26:01 -!- reerfq has joined.
22:29:13 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90 [Firefox 19.0/20130215130331]).
22:34:01 -!- Taneb has quit (Quit: Leaving).
22:43:46 -!- DHeadshot has quit (Ping timeout: 245 seconds).
22:55:23 -!- DHeadshot has joined.
22:58:45 <oerjan> > let qualified = 1 in qualified
22:58:47 <lambdabot> 1
23:01:44 <oerjan> > let (as,hiding) = (1,2) in (as,hiding)
23:01:46 <lambdabot> (1,2)
23:10:17 -!- reerfq has quit (Ping timeout: 255 seconds).
23:13:14 <yhojeyisaac> HELLO
23:13:25 -!- yhojeyisaac has left.
23:14:11 -!- DHeadshot has quit (Ping timeout: 245 seconds).
23:14:15 <oerjan> i wonder why he keeps coming back when it's pretty clear no one here speaks spanish
23:22:53 -!- DHeadshot has joined.
23:34:06 <doesthiswork> hola
23:35:34 <DHeadshot> Hi guys...
23:35:43 <DHeadshot> If any of you like me spent your childhood playing the old Apogee/id DOS games (Commander Keen, Duke Nukem, Doom, Quake, Castle Wolfenstein 3D etc...), please consider backing the Kickstarter for a new game by legendary developer (of those games and more) Tom Hall! http://t.co/INXxTVj3Bp
23:36:42 <zzo38> Kickstarter is only for US and UK and I live at Canada so I won't.
23:36:57 <doesthiswork> 'welcome DHeadshot
23:37:18 -!- GOMADWarrior has quit (Ping timeout: 264 seconds).
23:37:56 <doesthiswork> damn I like playing with hackego
23:38:41 <Sgeo> `echo but you forgot the most important thing of all
23:38:42 <HackEgo> but you forgot the most important thing of all
23:38:52 <olsner> zzo38: why do you say "at" Canada? I thought it was supposed to be "in" Canada?
23:39:18 <Sgeo> I live on America
23:39:29 <olsner> (except to fill oerjan with mystery, that is)
23:41:27 <kmc> I live on, America
23:42:30 * kmc habla un poquito de español
23:43:06 <kmc> donde está la biblioteca
23:44:15 <Sgeo> http://www.reddit.com/r/netsec/comments/190i3u/hdcp_is_now_completely_useless_generate_your_own/
23:44:26 -!- DHeadshot has quit (Ping timeout: 256 seconds).
23:44:32 <olsner> looks easy enough, maybe I should learn some spanish some day
23:45:30 -!- DHeadshot has joined.
23:46:52 <oerjan> huh Data.Sequence doesn't use much more space than lists, and sometimes less...
23:50:32 <Bike> @src Data.Sequence
23:50:33 <lambdabot> Source not found. I can't hear you -- I'm using the scrambler.
23:51:10 <oerjan> @source Data.Sequence
23:51:10 <lambdabot> http://darcs.haskell.org/packages/containers/Data/Sequence.hs
23:51:21 <oerjan> that's pretty bitrotten link
23:52:18 <oerjan> http://lambda.haskell.org/platform/doc/current/ghc-doc/libraries/containers-0.4.2.1/Data-Sequence.html
2013-02-23
00:01:12 <Sgeo> `list
00:01:16 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
00:02:03 * oerjan gives Sgeo a gentle poke
00:02:28 <Sgeo> Hopefully not of death
00:02:32 <oerjan> THIS IS NOT THE `LIST YOU ARE LOOKING FOR
00:03:08 <oerjan> `cat bin/WELCOME
00:03:11 <HackEgo> ​#!/bin/sh \ welcome "$@" | perl -pe '$_ = uc'
00:03:15 <Sgeo> I wanted to be sure no unwanted names snuck on it
00:03:41 <Bike> just sgeo three times
00:04:00 <Sgeo> "i'm only on there twice?"
00:04:20 <Bike> not any more you aren't
00:04:23 <doesthiswork> how'd you get hackego on it?
00:04:30 <Bike> `run echo $(which list)
00:04:33 <HackEgo> ​/hackenv/bin/list
00:04:39 <Bike> wow that was dumb
00:04:42 <Bike> `run cat $(which list)
00:04:46 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
00:05:05 <Bike> oh, it has a check
00:05:25 <Sgeo> doesthiswork, it's not perfect
00:05:41 <olsner> what does it do?
00:06:07 <Bike> list? adds whoever's running it to itself
00:06:38 <olsner> ah, echo -n >> file doesn't add a newline so it ends up adding to the last line of the script?
00:07:18 <olsner> rather than adding a new line (which I think the script is lacking some code to handle)
00:11:43 -!- carado has quit (Ping timeout: 246 seconds).
00:14:26 -!- DHeadshot has quit (Ping timeout: 252 seconds).
00:15:36 -!- DHeadshot has joined.
00:21:26 <olsner> hmm, what was it that went in the bit left over by UTF-63?
00:21:43 <oerjan> cthulhu
00:21:44 -!- monqy has joined.
00:24:25 <Sgeo> olsner, are you talking about http://www.unicode.org/mail-arch/unicode-ml/y2001-m05/0425.html ?
00:25:00 <Sgeo> Distinguishes between ASCII and Unicode
00:25:55 <olsner> although (2^64)/(1114111^3) is actually 13.34, so there's a lot more than a bit left over
00:27:27 -!- TeruFSX has quit (Read error: Connection reset by peer).
00:27:28 <olsner> Sgeo: that's very similar to what I was talking about but not it
00:28:10 <oerjan> > 2^64/1114111^3 :: Double
00:28:12 <lambdabot> 13.339339806819668
00:28:38 <olsner> I wonder if there are unicode squiggly numerals to indicate approximations
00:29:20 <oerjan> > 2^64/1114112^3 :: Double
00:29:21 <lambdabot> 13.339303887645023
00:29:26 <oerjan> > 2^64/1114112^3 :: Rational
00:29:28 <lambdabot> 65536 % 4913
00:31:12 <Bike> combining squiggle above
00:32:35 <kmc> olsner: hm let's reserve it for pointer tagging
00:33:10 <kmc> we can have a language with heap pointers and primitive triples-of-unicode-codepoints as the basic datatypes
00:33:32 <olsner> apparently 10fffe and 10ffff are noncharacters (and so are xxfffe/ff for all the other planes)
00:33:48 <kmc> yeah
00:33:52 <olsner> > 2^64/1114110^3 :: Rational
00:33:54 <lambdabot> 2305843009213693952 % 172859889139941375
00:34:04 <olsner> > 2^64/1114110^3 :: Double
00:34:05 <Bike> good ratio
00:34:06 <lambdabot> 13.339375726123272
00:34:16 <kmc> also U+D800 through U+DFFF
00:34:29 <olsner> so much wasted space!
00:37:17 <olsner> ah, of course, 4913 is 17^3
00:38:26 <kmc> the secret illuminati numerology in unicode
00:38:29 <olsner> you can use 16 bit per character plus a somewhat compact encoding of the plane for each, and then have 64k/17^3 values left to play with
00:42:38 -!- nooga has quit (Ping timeout: 255 seconds).
00:44:46 -!- DHeadshot has quit (Ping timeout: 256 seconds).
00:47:42 -!- DHeadshot has joined.
00:56:49 <zzo38> I dreamt about a very strange chess variant, with multiple boards, each piece having four stats (strength, defense, intelligence, and teleport token), if your high priest entered your opponent's church then you gained control over eclipses, and there were various other rules
00:57:23 <Bike> control over eclipses sounds kickass
00:59:20 <zzo38> Also, pawns promoted into royalty
01:00:38 * quintopia promotes zzo38 to King
01:07:40 <doesthiswork> what did intelligence do?
01:07:54 <zzo38> I don't know.
01:08:08 <zzo38> A lot of these things I don't know.
01:14:36 -!- DHeadshot has quit (Ping timeout: 245 seconds).
01:14:37 <Phantom__Hoover> but can it be combined with continuous chess
01:15:07 <zzo38> I don't know.
01:16:15 <zzo38> What I did know is that if any of the stats other than teleport token reach zero, the piece is removed from the game.
01:16:45 <zzo38> Otherwise, all of them (including teleport token) which are damaged will recover by one point at the end of each frame.
01:19:18 <doesthiswork> how exactly does the teleport work?
01:20:03 <Sgeo> I want to learn how to play continuous chess
01:20:30 <zzo38> I don't know exactly, but you can teleport from one board to another, if you have the correct terrains on the board (maybe eclipses affects it too, I don't know for sure)
01:21:24 <quintopia> change intelligence to speed
01:21:37 <quintopia> make it the maximum number of spaces you can move
01:22:51 <zzo38> No, the movements have to do with what kind of pieces it is (like in chess); I think intelligence has something to do with what cards you can play, or something related to that
01:23:19 <zzo38> Actually I think strength and defense also have something to do with what cards you are allowed to play
01:23:30 <quintopia> oh cards
01:23:40 <quintopia> sounds complicated
01:23:53 -!- NuclearMeltdown has quit (Changing host).
01:23:53 -!- NuclearMeltdown has joined.
01:26:21 -!- dessos has joined.
01:27:36 <Phantom__Hoover> <Sgeo> I want to learn how to play continuous chess
01:27:42 <Phantom__Hoover> this consists of learning the rules
01:27:57 <Sgeo> Ok, where can I read them?
01:28:00 <Phantom__Hoover> although with a new revision, you can now move all your pawn as one
01:28:04 <Phantom__Hoover> er, trawl the logs
01:28:13 <Phantom__Hoover> or i guess i could actually write them up
01:28:32 <Sgeo> I will love you forever if you write them up
01:28:57 <Sgeo> (note: some/all of prior statement may be hyperbole or falsE)
01:34:36 -!- GOMADWarrior has joined.
01:39:44 <Phantom__Hoover> http://sprunge.us/ZDHO
01:39:45 <Phantom__Hoover> i give no guarantees that you will be able to make any sense of this
01:39:45 -!- azaq23 has quit (Quit: Leaving.).
05:24:15 -!- esowiki has joined.
05:24:16 -!- glogbot has joined.
05:24:17 -!- glogbackup has left.
05:24:18 -!- HackEgo has joined.
05:24:18 -!- EgoBot has joined.
05:24:19 -!- esowiki has joined.
05:24:19 -!- esowiki has joined.
05:24:20 -!- glogbackup has quit (Excess Flood).
05:25:40 -!- Gregor has joined.
05:25:40 -!- epicmonkey has joined.
05:25:50 <kmc> it's perverse that, when buying a SSL cert, you have no direct incentive to pick a CA with good security practices
05:26:03 -!- Gregor has changed nick to Guest2624.
05:26:47 <madbr> hmm
05:27:23 <kmc> if CA compromise implied customer compromise, would that actually be better for society?
05:27:30 <kmc> probably not because most cert buyers are clueless
05:27:35 <madbr> trace execution (when you have N extra RISC cores replicating what the first core did and you space memory IO so that only one core is really using it at the same time) needs instruction cache :(
05:27:46 <kmc> "wow gee 1024 bits"
05:27:55 <kmc> "twice as secure as 512"
05:28:08 <Bike> :o
05:29:12 <kmc> madbr is on a mission to eliminate caches
05:29:27 <madbr> or else once you do a memory op, that's like multiple memory ops
05:29:46 <madbr> and you can't keep your pipeline full unless you have the next instructions cached somewhere :(
05:31:22 <madbr> kmc : no cache = easier no? :D
05:34:26 <madbr> actually you could probably do a design without cache but if you have 8 units it stalls for 7 cycles every time you load something
05:37:45 <doesthiswork> http://quarkphysics.ca/humour/humor10.html
05:38:18 <Bike> this is some impressively dated humor
05:40:05 -!- TeruFSX has quit (Ping timeout: 255 seconds).
05:40:44 <madbr> yeah
05:43:48 -!- epicmonkey has quit (Ping timeout: 248 seconds).
05:44:13 <Sgeo> *sigh*
05:44:34 <Sgeo> The VP developer's response to "Any chance of documenting the protocol so I don't have to do C interop" is "Feel free to reverse-engineer the protocol"
05:44:52 <Bike> haha (jerk)
05:45:01 <Sgeo> (not literal phrasing of response)
05:45:07 <kmc> who's VP?
05:45:17 <Sgeo> Virtual Paradise
05:45:33 <Sgeo> It's a sort of AW clone
05:45:42 <Bike> advance wars?
05:45:52 <Sgeo> Active Worlds
05:48:03 <Sgeo> I don't think he'd be willing to open-source even the SDK
05:48:04 <Sgeo> though
05:48:06 <Sgeo> :(
05:48:16 <Sgeo> If he was, I wouldn't mind so much
05:48:25 <Sgeo> Well, he did give a bit of documentation
05:48:44 <Sgeo> " It's TCP, it sends a 16 bit unsigned int containing the length of a message followed by the message itself. The first byte in the message is the message type "
05:49:02 <Sgeo> Which I guess helps a little
05:50:56 <kmc> use KLEE to extract a protocol from the C library
05:51:00 <kmc> write PhD thesis
05:51:01 <kmc> profit
05:52:48 <shachaf> extract a PhD thesis from the C library directly
05:54:31 <kmc> PhDaaS
05:55:50 <shachaf> I get spam like that sometimes.
05:56:09 <kmc> a degree mill with a REST API
05:56:12 <kmc> that would be something
05:56:56 -!- Guest2624 has changed nick to Gregor.
05:56:57 <Bike> hm, the squamish language uses 7 as a glottal stop. and it's not a glyph that looks like a seven, it is in fact a seven
05:58:04 <madbr> typewriter orthography
05:58:48 <madbr> I think huron has "8" (actually a modern version of the greek "ou" ligature)
05:59:14 <kmc> Bike: o_o
05:59:43 <Bike> american languages are the best, man
05:59:54 <Bike> have you seen inukitut orthography? that shit is choice.
06:00:08 <Bike> i remember cherokee using like, a backwards B
06:00:44 <kmc> ᐃᓄᒃᑎᑐᑦ
06:00:48 <madbr> zhuang has 2-6
06:00:54 <pikhq> Cherokee's great.
06:01:11 <pikhq> Literally by a guy who only *saw* writing before.
06:01:27 <madbr> but later on they replaced Zhuang 2,3,4,5,6 with z,j,x,q,h
06:01:57 <Bike> where is zhuang spoken?
06:02:03 <madbr> china somewhere
06:02:16 <kmc> a lot of these languages were not written until fairly recently yeah?
06:02:29 <madbr> it's in the same family as thai
06:02:32 <madbr> dunno
06:02:49 <pikhq> kmc: Yeah, North American languages largely have *recent* writing systems.
06:03:07 <pikhq> There just weren't that many writing systems pre-Europeans.
06:03:16 <Bike> cherokee's alphabet was developed by a missionary i think?
06:03:19 <kmc> what determines whether a group of people develop writing or not
06:03:20 <Bike> or was it a newspaper
06:03:28 <pikhq> Neither.
06:03:33 <Bike> shit.
06:03:47 <Bike> invented by sequoyah, well now
06:03:47 <madbr> bike: no that's inuit
06:04:00 <kmc> http://en.wikipedia.org/wiki/Standard_Zhuang#Example
06:04:01 <kmc> "Latin script"
06:04:03 <kmc> yeah right
06:04:04 <Bike> "his was the only time in recorded history that a member of a non-literate people independently created an effective writing system." baller
06:04:10 <madbr> and the inuit one was originally developed for cree
06:04:10 <pikhq> Sequoyah was a Cherokee man who *saw* writing, thought it was a good idea, and made a writing system for Cherokee.
06:04:23 <Bike> that is awesome.
06:04:27 <Sgeo> "in recorded history"
06:04:42 <Sgeo> I suppose the earliest writing systems are on the edge of that
06:04:43 <Bike> what's wrong with that phrase?
06:05:08 <pikhq> Sgeo: It's generally believed most other writing systems evolved out of proto-writing, rather than being wholy invented.
06:05:08 <Bike> writing systems were developed rather a long time before history we still have is
06:05:33 <kmc> does written cherokee count as a conlang then
06:05:42 <pikhq> This is certainly what we see with e.g. Chinese script.
06:05:51 <pikhq> Which evolved basically out of a divination system.
06:05:58 <Bike> kmc: definitely a conscript.
06:05:58 <madbr> I can't remember what's the current status on phoenician vs egyptian vs cuneiform
06:06:08 <Bike> What do you mean the current status?
06:06:20 <Bike> kmc: and he hadn't even read zompist!
06:06:57 <kmc> heh
06:07:08 <madbr> well, what the currently accepted reseach says on how they were invented
06:07:10 <Slereah> You know who else wrote a script for savage people?
06:07:12 <Slereah> CYRILUS
06:07:16 <Slereah> Wayyy before
06:07:32 <madbr> oh yeah he came up with glagolithic no?
06:07:46 <Slereah> As far as I know the current theory is that cuneiform developed from a tally system?
06:07:47 <Slereah> Like
06:07:48 <madbr> which then got turfed out by a souped version of greek
06:07:50 <Slereah> counting marks
06:07:57 <madbr> yeah
06:07:59 <Bike> my favorite proto-writing is definitely the incan knots
06:08:14 <Slereah> Egyptian I think is unknown
06:08:22 <madbr> I think the current theory says that phonician was inspired by egyptian
06:08:28 <Slereah> It's not even known if there's a primitive form of egyptian
06:08:34 <Slereah> Or if it was created like that, bam
06:08:43 <Bike> wasn't it given to them by thoth
06:08:52 <Slereah> Obviously an ALIEN
06:09:10 * Bike learned Egyptian history from vague classicism
06:09:24 <madbr> woa
06:09:41 <madbr> zhuang had its own version of chinese characters before they switched to latin
06:09:45 <Slereah> Egyptian is still pretty spotty in places
06:09:47 <Slereah> Like
06:09:55 <Bike> madbr: I thought everything in the general area did.
06:09:56 <Slereah> The phonological reconstruction is pretty hard
06:10:04 <Bike> Like Vietnamese.
06:10:06 <Slereah> Although it has progressed a lot by looking at loans
06:10:25 <Slereah> Like how egyptians wrote foreign words and vice versa
06:10:40 <Slereah> Also coptic is descended from egyptian, so it helps
06:10:52 <pikhq> Bike: The degrees to which they were "their own" varied though.
06:11:26 <Slereah> (Although coptic itself is mostly extinct, so that's another problem)
06:11:29 <Bike> pikhq: you mean the use of hanzi? yeah, i suppose a lot of it was by imperial edict
06:11:47 <Bike> oh, Zhuang is spoken in Guanxi, didn't they have that massive earthquake last year?
06:12:16 <pikhq> Varying from "whole-sale adoption of the script" to "using the radicals to invent brand new characters" to "taking the concept, clearly having no idea what the radicals are, and making shit up".
06:12:24 <Bike> oh, well yeah.
06:12:53 <Bike> None of Japanese or Korean or Vietnamese are even Sino-Tibetan, are they?
06:13:22 <pikhq> Right, yeah.
06:13:50 <pikhq> Of those, Japanese and Korean use/used hanzi straight, while Vietnamese used the radicals to invent new characters.
06:13:53 <Bike> and i seem to remember kanji having different readings, based on a vaguely Chinese meaning map and a vaguely Japanese one
06:14:04 <Bike> on/kun or something?
06:14:31 <Bike> yeah, on'yomi and kun'yomi i guess
06:14:33 <pikhq> Yeah.
06:14:45 <pikhq> What's *great* is Tangut script.
06:14:55 <Bike> But... that's pronunciation and not meaning, huh.
06:15:06 <Bike> The more I learn about Japanese the more amazed I am anyone can figure it out...
06:15:41 <pikhq> Tangut used the *concepts* of Chinese script, and made it all up from there.
06:16:14 <pikhq> It's like someone saw Chinese once.
06:16:34 <pikhq> http://en.wikipedia.org/wiki/File:Bushell's_1896_decipherment_of_Tangut_characters.jpg Fucking crazy.
06:16:37 <Bike> "
06:16:39 <Bike> The [Tangut] language is remarkable for being written in one of the most inconvenient of all scripts, a collection of nearly 5,800 characters of the same kind as Chinese characters but rather more complicated; " i love it
06:17:20 <Bike> What, those are numbers?
06:17:23 <pikhq> 日本語はこんなに難しくないと思うんだって……
06:17:24 <pikhq> Yes.
06:17:30 <Bike> eleven strokes for the number four?
06:17:42 <pikhq> Yes.
06:17:56 <pikhq> Though I'm only counting 10.
06:18:01 <kmc> i guess chinese wasn't complicated enough?
06:18:06 -!- sebbu has quit (Read error: Connection reset by peer).
06:18:16 * Bike doesn't know how to count strokes
06:18:20 <pikhq> No, 11.
06:18:34 -!- sebbu has joined.
06:18:34 -!- sebbu has quit (Changing host).
06:18:34 -!- sebbu has joined.
06:18:58 <pikhq> It's a tiny bit hard to do with Tangut, because some of those strokes are fucking *strange*.
06:19:18 <pikhq> (how many strokes is that set that looks like ろ, anyways?)
06:19:24 <madbr> annihilated by genghis khan
06:20:17 <pikhq> I'm a bit amazed at the complete lack of pictographs.
06:20:48 <pikhq> Most of the really basic Chinese glyphs are pictographic in origin.
06:21:14 <Bike> I want to know how this Renrong guy came up with this. What was wrong with the Chinese numerals, for instance?
06:21:22 <pikhq> Though the pictographicness of stuff like 馬 or 虎 is hard to tell.
06:23:48 <Bike> oh nice, the vietnamese had a sort of dialect of Chinese script for writing Chinese, and then their own Chinese script for writing Vietnamese.
06:24:28 <doesthiswork> http://www.csd.uwo.ca/staff/magi/personal/humour/Computer_Audience/polyglot.%5Bcob|pas|f77|c|ps|sh|com%5D.html
06:24:38 <doesthiswork> 7 languages at once
06:24:52 <kmc> yeah that's a classic
06:24:53 <Bike> Are any of them Burman?
06:25:02 <Bike> nice comment delimiters
06:25:20 <kmc> someone here (Gregor?) wrote a crazy polyglot
06:26:27 <kmc> i did a shell/python/haskell/c/com/brainfuck one
06:26:35 <kmc> which is pretty short
06:26:53 <Bike> I liked that one where you ran it in Ruby and got a C program out, and then ran that and got a shell proram, or whatever, and so on.
06:26:59 <kmc> yeah
06:27:06 <Sgeo> How about a polyglot in esolangs that have no comments?
06:28:09 <Bike> you could probably make a brainfuck/befunge polyglot pretty easily, insofar as befunge lacks comments
06:28:12 <madbr> kinda wonder what programming would look like if it was invented by ppl that speak tonal languages
06:28:28 <kmc> i should shove C++ in too
06:28:36 <Bike> why would pronunciation matter?
06:28:42 <madbr> would probably all be stack based if it were invented by people that speak verb final languages :D
06:28:51 <kmc> oh right, can't easily
06:28:59 <madbr> bike : the character set would definitely be different
06:29:14 <Bike> what if they spoke a tonal language that uses the latin alphabet, huh??
06:29:28 <kmc> probably the most unpleasant thing about my polyglot is that it needs to start with a blank line
06:29:31 <madbr> like vietnamese? hm
06:29:54 <pikhq> Knowing how programming goes, the character set regardless of whatever it was would be hacked together and *just enough* to represent language, to start with.
06:30:09 <Bike> i don't thing how your natural language is pronounced is going to influence the basic ideas of recursive grammars
06:30:13 <Bike> but i'm not a linguist.
06:30:17 <madbr> might have just come up with sometehing like C but where tone marks count as part of identifiers
06:30:18 <pikhq> I'm imagining a crazy thing like Chinese script with *one* character of each pronunciation.
06:30:27 <pikhq> So you just use it as a god-damned weird syllabary.
06:30:46 <pikhq> Of course, Japanese folk would just shove in katakana.
06:30:48 <madbr> chinese used to be closer to that I think
06:30:49 <pikhq> Like they did.
06:31:00 <pikhq> madbr: Chinese script is still syllabic in nature.
06:31:03 <madbr> but then with time some characters became homophones
06:31:16 <pikhq> Each glyph is still exactly one syllable.
06:31:18 <madbr> yeah but there are a lot more homophones now
06:31:37 <pikhq> Yeah, but not as many as in Japanese.
06:31:39 <pikhq> Tone helps.
06:31:41 <Bike> It's also hard to draw conclusions about natural language -> formal language... I mean all European languages I know of are SVO but mathematical notation is pretty verb-initial, so to speak.
06:32:07 <madbr> supposedly classic chinese had about 5000 different syllables, down to about 3000 in cantonese, and down to 1200 in mandarin
06:32:16 <pikhq> madbr: Are you accounting for tones?
06:32:23 <Bike> is that even phonologically possible- oh, tones
06:32:25 <madbr> without tone mandarin is 400
06:32:41 <madbr> bike: english has like 5000+ syllables too
06:32:59 <pikhq> For comparison, Japanese has maybe 80 possible morae.
06:33:13 <pikhq> Yeah, English has a shit-ton of syllables.
06:33:17 <pikhq> Consonant clusters.
06:33:27 <pikhq> Remember, "strengths" is a single syllable.
06:33:38 * Bike bad at phonetics :(
06:34:49 <madbr> yeah english tends to be dense
06:35:02 <madbr> due to so many consonant + vowel + consonant syllables
06:35:25 <pikhq> And consonant clusters are entirely permissible, which adds to it.
06:35:28 <doesthiswork> English has an unusual amount of vowels
06:35:39 <pikhq> This too.
06:35:47 <pikhq> And moderately unusual consonants.
06:35:51 <madbr> doesthiswork : yeah but so do other northwestern european languages
06:35:51 <doesthiswork> and since that is a tigher limit raising it has the bigger effet
06:36:00 <pikhq> (though I don't think it's got too many consonants *in and of itself*...)
06:36:07 <madbr> pikhq: nah, the consonant inventory is actually pretty standard
06:36:16 <madbr> except for th and the weird variety of r
06:36:27 <doesthiswork> swedish has 9
06:36:32 <pikhq> madbr: th and th are both pretty weird.
06:36:45 <pikhq> Fuck it, þ and ð. There, that's better.
06:36:56 <madbr> yeah but they're like only 2 sounds
06:36:57 <Bike> thud
06:37:06 <kmc> icelandic 4 lyfe
06:37:20 <madbr> and the rest of the consonant inventory is like a list of all the most common consonants in the world
06:37:44 <doesthiswork> pikhq: θ and ð
06:38:02 <pikhq> doesthiswork: þ and ð are how you write them in (hilariously old) Germanic languages. :P
06:38:17 <doesthiswork> those two sigils were interchangeable
06:38:25 <pikhq> Bah, humbug.
06:38:28 <kmc> i had a math prof who wrote the days of the week as MTWΘF
06:38:41 <Bike> nerd
06:38:48 <zzo38> kmc: Not bad, that way you know the difference each one
06:38:55 <zzo38> I like that
06:38:59 <kmc> i like it too :)
06:39:00 <madbr> what did he do for saturday/sunday
06:39:06 <kmc> i don't think it came up
06:39:10 <madbr> sigma?
06:39:38 <zzo38> (I have also seen "R" for Thursday sometimes; it can be used in case you are using only English alphabets, for whatever reason)
06:39:41 <kmc> i don't know how you would spell those english words using greek orthography
06:39:51 <kmc> yeah, R is okay
06:40:16 <kmc> sadly I don't think contemporary english has any words containing þ
06:40:26 <kmc> even though we still have umlauts and diacritics in a few places
06:40:40 <pikhq> Yeah, þ died with the printing press.
06:40:43 <kmc> the þs turned into ys or something
06:40:50 <doesthiswork> yup
06:41:08 <doesthiswork> when you write trhorn really sloppy it looks like y
06:41:13 <doesthiswork> *thorn
06:41:15 <pikhq> 日月火水木金土 Man, CJK has it easier.
06:42:02 <kmc> i wonder how to type ð with compose key
06:42:06 <kmc> i can do đ but it's not the same
06:42:23 <Bike> i just do altgr-d like a sensible person
06:42:26 <kmc> boo
06:42:34 <kmc> do i really need compose *and* altgr?
06:42:39 <kmc> i could add it to my compose file
06:42:43 <pikhq> dh
06:42:49 <pikhq> Compose-d-h
06:42:58 <kmc> thanikhq!
06:43:01 <madbr> pikhq: that's japanese
06:43:10 <madbr> chinese has 1-7 :D
06:43:23 <pikhq> madbr: Chinese used to do that too.
06:43:36 <pikhq> 1-7 is a 20th century thing.
06:43:36 <madbr> or was it 1-6 with a special one of 7
06:43:39 <madbr> I can't remember
06:43:57 <madbr> yeah but they gave up on names... that would never happen in europe :D
06:49:23 <doesthiswork> One user complained that their program executed, but didn't do anything. The scon looked at it for twenty minutes before realizing that they'd commented out EVERY LINE. The user said, "Well, that was the only way I could get it to compile."
06:56:33 -!- epicmonkey has joined.
08:06:21 <mroman> doesthiswork: He obviously lied.
08:06:51 <mroman> echo > program.c && gcc -o program program.c && chmod +x program
08:08:54 <Bike> maybe it wasn't c?
08:09:14 <pikhq> mroman: That's actually not valid C.
08:09:44 <pikhq> I'm not 100% sure, it might be a valid *translation unit*.
08:10:38 <pikhq> But definitely not a valid program: does not have int main(int,char*) *or* int main().
08:11:00 <Bike> isn't that mroman's point
08:11:31 <pikhq> Ah, hrm.
08:11:45 <kmc> didn't IOCCC accept an empty program as a quine
08:11:54 <kmc> on the basis that some compiler would translate it to a no-op binary
08:12:19 <kmc> presumably the C spec allows implementation-defined alternatives to main()
08:12:21 <kmc> i,i WinMain()
08:17:09 <pikhq> It does permit implementation-defined entry points, yeah.
08:17:21 <pikhq> Actually, given that, it is conformant C, but not strictly conformant.
08:24:40 <zzo38> What was the 8-bit character set used in Amiga computer?
08:29:43 <pikhq> Are you thinking of PETSCII?
08:29:46 -!- Nisstyre-laptop has quit (Quit: Leaving).
08:30:18 <pikhq> I'm pretty sure the Amiga used normal ASCII though.
08:30:42 <zzo38> Actually, I mean whatever character set is used in .MOD on Amiga. I mean 8-bits, I know the 7-bits is ASCII
08:32:54 <Sgeo> Is it weird that I like Harry Potter fanfics even though I've only read the first four books?
08:33:07 <pikhq> Slightly.
08:33:09 <monqy> what sort of harry potter fanfics are we talking here
08:33:18 <pikhq> By the way, those are the weaker of the series.
08:34:55 <Sgeo> HPMOR and The Strange Disappearance of Sally-Anne Perks
08:35:13 <Sgeo> Still reading the latter
08:35:22 <zzo38> Is it possible to tell GCC to compile the newest files at first?
08:35:30 <pikhq> HPMOR is kinda-insanely spoiler heavy.
08:35:37 <zzo38> Can it be done in the shell scripting?
08:36:16 <Sgeo> pikhq, I'm fine with HP spoilers, have read some
08:36:43 <monqy> joke about someone killing someone else, double joke whereby
08:37:43 <Sgeo> After the 7th book came out, I searched for spoilers since I wanted to know how it ended. I'm a bit hazy on the details though
08:39:38 <Bike> iirc everybody except the mainest characters die
08:39:53 <pikhq> Bike: Not really.
08:40:09 <pikhq> Though it is definitely a "anyone can die" thing going on.
08:41:29 <shachaf> Hike
08:41:33 <shachaf> hho38
08:41:56 <Bike> hhhfsca
08:52:14 <Sgeo> I love how fanfic writers can take a little continuity error and just run with it
08:52:17 <Sgeo> This is awesome
08:53:20 <monqy> my favorite fanfic writer is hans von hozel
08:53:56 <Bike> ditto
08:56:07 <monqy> apparently hans von hozel doesnt exist on fanfiction.net anymore??? rest in peace :'( i hope his stories were archived
08:56:40 <shachaf> /whois hans von hozen
08:59:48 -!- madbr has quit (Quit: Radiateur).
09:08:11 -!- blsqbot has joined.
09:08:13 <mroman> !blsq ??
09:08:13 <blsqbot> "Burlesque - 1.7.1"
09:10:15 <doesthiswork> is that the one where sally ann perks is ariana dumbledore in disguise?
09:10:21 -!- impomatic has joined.
09:10:47 <shachaf> !bfgen Hello, World!
09:10:59 <shachaf> Hm.
09:12:12 <mroman> !bf_txtgen Hello, World!
09:12:17 <EgoBot> ​128 +++++++++++[>++++++>+++++++++>++++>+<<<<-]>++++++.>++.+++++++..+++.>.------------.<<+++++++++++++++.>.+++.------.--------.>+.>-. [574]
09:15:12 <shachaf> Ah.
09:20:48 <Sgeo> pikhq, I think there are things in HPMOR that I don't understand due to lack of canon knowledge
09:20:58 <Sgeo> e.g. Elder Wand references
09:21:04 <Sgeo> (Reading /r/hpmor)
09:30:02 <zzo38> GameBoy audio seems like difficult to program compared to Famicom audio, and has no software envelopes, apparently only hardware envelopes can be used
09:30:14 -!- aloril has quit (Ping timeout: 256 seconds).
09:36:35 -!- Bike has quit (Quit: sleep).
09:43:47 -!- aloril has joined.
09:58:42 -!- md_5 has quit (Ping timeout: 252 seconds).
10:04:44 <zzo38> Classical logic is not applicable for self reference statements. Do you agree?
10:06:01 <Lumpio-> You sure like to ask random questions out of the blue
10:06:26 <shachaf> zzo38: I don't know what you mean.
10:07:23 <zzo38> In GEB, Hofstadter is defining the system as inconsistent by having two statements X and ~X both theorems, but I didn't (and still don't) like that; shouldn't it be, it is inconsistent if all well formed strings are theorems? At least it seems better to me.
10:08:16 <shachaf> That's not always true, though.
10:08:24 <shachaf> https://en.wikipedia.org/wiki/Paraconsistent_logic
10:08:27 <Sgeo> "all well-formed strings are theorems -> inconsist" implies "x ^ ~x -> inconsistent"
10:08:49 <Sgeo> But "x ^ ~x -> inconsistent" does not imply "all well-formed strings are theorems -> inconsistent"
10:09:01 <Sgeo> Hmm, I really need to word that better
10:09:09 <zzo38> Sgeo: Yes, I know all that. I understand you.
10:09:45 <Sgeo> zzo38, so, you want a theory in which x ^ ~x can be proved, but as long as there's a statement which cannot be proved, it is not inconsistent?
10:09:50 <zzo38> shachaf: Example of classical logic not applicable to self reference, may be: [1] <any statement, here it says "God exists"> [2] Both statements are false.
10:10:35 <zzo38> Sgeo: I am not saying I do or do not want any of these things; I am simply saying that the definition of being inconsistent by having X and ~X seem not a good definition to me.
10:11:38 -!- oerjan has joined.
10:13:33 <zzo38> oerjan: Hello, which one do you want, today?
10:13:47 <Sgeo> Why are 1-20-13 stickers still being advertised?
10:13:49 -!- md_5 has joined.
10:13:49 <oerjan> the purple one
10:13:52 <Sgeo> Surely the ads cost money...
10:15:33 <zzo38> oerjan: What is *your* opinion of all of this "logic" stuff? (see logs)
10:16:19 <oerjan> zzo38: i don't think i'm in shape today to form an opinion on that kind of stuff
10:16:21 <Jafet> fungot defies logic. Checkmate.
10:16:22 <fungot> Jafet: but then your upload rate will always suck. :p i think that should work
10:16:36 <doesthiswork> my favorite self referential paradox is curry's paradox
10:16:39 <doesthiswork> 1.Tasmanian devils have strong jaws.
10:16:39 <doesthiswork> 2.The second sentence on The List is circular.
10:16:39 <doesthiswork> 3.If the third sentence on The List is true, then every sentence is true.
10:16:39 <doesthiswork> 4.The List comprises exactly four sentences.
10:16:45 <zzo38> No, not checkmate. It is just check.
10:17:41 <zzo38> doesthiswork: I didn't see that. Now I did.
10:18:14 <shachaf> fungot
10:18:14 <fungot> shachaf: the fastest i can get one from sörnäs too, if you write code in a library listening to music
10:18:18 <shachaf> ^stylle
10:18:19 <Sgeo> I don't see how that's a paradox
10:18:19 <shachaf> ^style
10:18:19 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
10:18:28 <Sgeo> There are several consistent resolutions to it
10:18:32 <shachaf> Sgeo: It's just the third sentence.
10:18:39 <Jafet> 5.The butler isn't the thief.
10:18:48 <Sgeo> Oh, I think I forgot the meaning of if
10:19:17 <oerjan> 2 and 4 are obviously true, 1 is plausible
10:19:28 <Sgeo> 3 being true seems to be consistent as long as the others are true.
10:19:50 <doesthiswork> yup that is the paradox
10:20:12 * Sgeo is trying to figure out whether 3 can be false
10:20:49 <Sgeo> f->f is t
10:21:48 <Sgeo> hmm, I see, I think.
10:22:21 <doesthiswork> it has some very odd properties
10:22:39 <doesthiswork> if you duplicate it on the list then it is able to be false
10:24:06 <doesthiswork> and the direction of causality seems to be backwards
10:27:57 <Sgeo> http://dailysciencefiction.com/fantasy/fairy-tales/dani-atkinson/said-the-princess
10:28:00 -!- ogrom has joined.
10:39:16 -!- epicmonkey has quit (Ping timeout: 248 seconds).
10:46:11 <mroman> Hm.
10:46:28 <mroman> !blsq 2222222222222222222222222222222222222222222222222222^^2\/?dr@.%{0==}ayn!
10:46:29 <blsqbot> Ain't nobody got time fo' dat!
10:46:36 <mroman> sometimes lazyness breaks :(
10:47:51 <mroman> !blsq 2222222222222222222222222222222222222222222222222222^^2\/?dr@.%-]
10:47:51 <blsqbot> 0
10:47:57 <mroman> ok
10:48:02 <mroman> modulo is lazy
10:48:09 <mroman> > any (==0) [0..]
10:48:10 <lambdabot> True
10:48:23 <mroman> !blsq 0R@{0==}ay
10:48:23 <blsqbot> Ain't nobody got time fo' dat!
10:48:41 <mroman> Burlesques any behaves different :(
10:49:23 <mroman> oh
10:49:26 <mroman> yeah :)
10:49:37 <mroman> it uses a foldl with or
10:49:53 <mroman> > foldl1 (||) $ map (==0)[0..]
10:49:58 <lambdabot> mueval-core: Time limit exceeded
10:49:59 <mroman> that can't work.
10:53:08 -!- nooga has joined.
11:17:00 -!- nooga has quit (Ping timeout: 264 seconds).
11:23:12 <oerjan> @src any
11:23:12 <lambdabot> any p = or . map p
11:23:18 <oerjan> @src or
11:23:18 <lambdabot> or = foldr (||) False
11:23:28 <oerjan> it needs to be a foldr to be lazy
11:24:01 <shachaf> it needs to be a foldMap to be easy
11:24:24 * oerjan mappends shachaf with the swatter -----###
11:25:23 <shachaf> I just wrote a response to a subcomment on the post that ended up being longer than the original post.
11:25:26 <shachaf> And it's about monads. :-(
11:25:40 <monqy> oooooooooooooooooooooops
11:25:52 <shachaf> monqy: "sry"
11:25:55 <monqy> should have made it about monoids maybe it'd be easier???????
11:26:11 <shachaf> monqy: dont you think the monoids/easy thing is a bit overdone
11:26:12 <oerjan> monads _are_ monoids. sheesh.
11:26:36 * Sgeo reddit-stalks shachaf and doesn't see a comment newer than 2 months old
11:26:47 <monqy> shachaf, oerjan, sgeo: :-)
11:26:53 <shachaf> Sgeo: did you know part of the internet exists that isn't reddit
11:27:34 <shachaf> monqy: : ———————————— ¦
11:27:52 <monqy> :¬/
11:28:05 * Sgeo vaguely wants to find a pdf -> epub converter that isn't Calibre
11:28:41 <shachaf> ⋰¬/
11:28:59 <shachaf> simplicity:
11:29:00 <shachaf>
11:29:18 <shachaf> Sgeo: anyway it's on "that other website"
11:29:29 <shachaf> monqy: ᓳ
11:29:51 <monqy>
11:29:58 -!- nooga has joined.
11:30:16 -!- DHeadshot has joined.
11:30:43 <shachaf> Hmm.
11:30:44 <monqy> other website??? sounds sketchy
11:30:44 <shachaf> 29FE TINY [⧾]
11:30:44 <shachaf> 29FF MINY [⧿]
11:31:13 <Sgeo> Nothing recent and relevant on either SO or Hacker News
11:31:34 <monqy> shachaf: idea: what if monoids being easy being overdone is overdone: what now/checkmate???
11:33:22 <shachaf> monqy: are you some kind of overdoneintuitionistperson
11:34:01 <monqy> an ideas man
11:34:07 <monqy> today my ideas is that
11:36:01 <shachaf> oh
11:36:07 <shachaf> i was waiting for you to finish that sentence
11:36:12 <shachaf> but the idea came already
11:36:36 <shachaf> btw today is already tomorrow so what's yesterdays/tomorrows ideas¿
11:37:00 <monqy> i dont think time works like that shachaf -an idea
11:37:32 <shachaf> wait
11:37:40 <shachaf> hang on one minute was that another idea
11:37:48 <shachaf> how many ideas do we get a day
11:38:10 <monqy> what if everything i say is an idea -an idea
11:38:19 <shachaf> oh no
11:38:25 <monqy> maybe thats why im an ideas man -an idea
11:38:36 <shachaf> if i give you my email address will you spam me with ideas
11:38:42 <monqy> no im not a spam man
11:38:48 <shachaf> oh
11:38:52 <shachaf> will you email me with ideas
11:38:59 <monqy> im not an email man either
11:39:28 <shachaf> oh no
11:39:37 <shachaf> if i give you my irc address will you irc me some ideas
11:40:28 <monqy>
11:40:55 <shachaf>
11:41:36 <monqy> is that a plant bulb
11:42:46 <shachaf> monqy dont be racist
11:43:14 <monqy>
11:43:57 <ion> The faces in U+2639–U+263B were designed to irritate my OCD.
11:44:42 <shachaf> ion: What about 261A-261F?
11:45:03 <ion> shachaf: heh
11:45:27 -!- DHeadshot has quit (Ping timeout: 276 seconds).
11:48:51 <mroman> !blsq 0R@0Fi
11:48:51 <blsqbot> 0
11:49:03 -!- Phantom_Hoover has joined.
11:49:08 <mroman> !blsq 2222222222222222222222222222222222222222222222222222^^2\/?dr@.%0Fi
11:49:09 <blsqbot> 0
11:49:17 <mroman> !blsq 13^^2\/?dr@.%0Fi
11:49:17 <blsqbot> -1
11:49:58 <mroman> !blsq 13^^2\/?dr@.%0Fi0<.{"Prime""Not so prime"}ch
11:49:58 <blsqbot> "Prime"
11:50:19 <mroman> !blsq 222^^2\/?dr@.%0Fi0<.{"Prime""Not so prime"}ch
11:50:20 <blsqbot> "Not so prime"
11:50:32 <shachaf> !blsq ??
11:50:32 <blsqbot> "Burlesque - 1.7.1"
11:50:35 <shachaf> !blsq hi
11:50:35 <blsqbot> ERROR: Unknown command: (hi)!
11:50:46 * shachaf looks up
11:50:59 -!- carado has joined.
11:51:17 <mroman> shachaf: http://mroman.ch/burlesque
11:55:08 -!- DHeadshot has joined.
11:56:18 <monqy> i'm getting some ursala-but-taking-itself-less-seriously vibes from some of this "about" stuff
11:57:05 <monqy> remember when i learned some ursala and never bothered to learn the rest? i forgot it all. probably easy to relearn. not going to bother
11:57:57 <mroman> ?
11:58:04 <shachaf> wait what's ursala
11:58:08 <shachaf> you've talked about it before....
11:59:33 <Sgeo> Some sort of language that people in here disliked
11:59:36 -!- copumpkin has quit (Ping timeout: 264 seconds).
11:59:36 <Sgeo> iric
11:59:37 <Sgeo> iirc
11:59:40 <monqy> disliked????
12:00:01 <monqy> i dont think its possible to dislike ursala
12:00:07 -!- copumpkin has joined.
12:00:59 <monqy> https://github.com/gueststar/Ursala/ / https://gitorious.org/ursala-manual
12:01:26 <monqy> looks like the manual's in the first repo too..
12:01:30 <monqy> probably more up to date thee
12:01:32 <monqy> there
12:02:06 <monqy> https://github.com/gueststar/Ursala/tree/master/contrib code examples!!
12:03:10 <Sgeo> I almost want to call it an esolang, but J isn't an esolang
12:05:24 <monqy> i suggest learning ursala as your next language
12:10:01 -!- monqy has quit (Quit: hello).
12:14:01 <doesthiswork> j doesnt count as esoteric?
12:16:29 <mroman> no
12:21:00 <mroman> oh
12:21:03 <mroman> that's ursala.
12:21:11 <mroman> Yeah. I've stumbled upon it years ago :)
12:23:01 <mroman> The manual is 500 pages long o_O
12:23:53 <mroman> hm
12:24:12 <mroman> is there a image library to render images without using I/O?
12:24:15 <mroman> for haskell.
12:25:52 -!- Arc_Koen has joined.
12:27:47 <shachaf> monqy: can i have one more idea
12:27:50 <shachaf> before i go to sleep
12:34:36 -!- copumpkin has quit (Ping timeout: 245 seconds).
12:35:07 -!- copumpkin has joined.
12:44:36 -!- DHeadshot has quit (Ping timeout: 276 seconds).
12:44:58 <mroman> !blsq {0 1}{^^++[+[-^^-]\/}1500.*\[e!vv
12:44:58 <blsqbot> Ain't nobody got time fo' dat!
12:45:02 <mroman> !blsq {0 1}{^^++[+[-^^-]\/}500.*\[e!vv
12:45:03 <blsqbot> Ain't nobody got time fo' dat!
12:45:07 <mroman> !blsq {0 1}{^^++[+[-^^-]\/}100.*\[e!vv
12:45:07 <blsqbot> Ain't nobody got time fo' dat!
12:45:13 <mroman> !blsq {0 1}{^^++[+[-^^-]\/}50.*\[e!vv
12:45:13 <blsqbot> 12586269025
12:46:02 <mroman> !blsq {0 1}{^^++[+[-^^-]\/750.*\[e!vv
12:46:03 <blsqbot> ERROR: (line 1, column 32):
12:46:14 <mroman> !blsq {0 1}{^^++[+[-^^-]\/}70.*\[e!vv
12:46:14 <blsqbot> Ain't nobody got time fo' dat!
12:46:35 -!- DHeadshot has joined.
12:50:14 <Sgeo> Help I'm scared to go to sleep
12:53:44 -!- copumpkin has quit (Ping timeout: 252 seconds).
12:54:14 -!- copumpkin has joined.
12:56:33 <Sgeo> I'm still feeling the same weird way I did when I woke up
12:56:42 <Sgeo> Scared what if I can't breathe when I wake up
12:56:48 <Sgeo> I felt horrible yesterday
13:03:04 <blsqbot> 3h 54m 59s
13:03:10 <Sgeo> ?
13:04:01 <mroman> He told you the time you have left to live
13:04:13 <mroman> afte that he's gonna kill you while you're sleeping.
13:05:04 <mroman> But no. Seriously.
13:05:04 <mroman> You woke up unable to breathe?
13:06:24 <blsqbot> I can talk o_O
13:08:37 <blsqbot> 4h 32s
13:08:49 <mroman> ^- also, the time is increasing. So no worry ;)
13:11:25 <Sgeo> mroman, I woke up feeling almost but not quite like I was trying to vomit, and having a bit of trouble breathing through that
13:13:04 <oerjan> Sgeo: while in general you seem to have a need to break off from your dad, i _do_ vaguely recall that he is a doctor. maybe you should call him, or otherwise get to another doctor.
13:13:56 <Sgeo> I did mention it to him, although I don't know if I really described what I went through last morning
13:14:24 <oerjan> i mean i'm not a doctor, but my hunch says it could be either anxiety or an actual heart problem
13:14:58 <Sgeo> It... felt more like a stomach problem
13:15:06 <oerjan> (of course it could be completely different)
13:15:08 <oerjan> ah.
13:16:08 -!- DHeadshot has quit (Ping timeout: 257 seconds).
13:20:01 <Vorpal> Lots of flu around this time of year too
13:20:01 <lambdabot> Vorpal: You have 1 new message. '/msg lambdabot @messages' to read it.
13:20:06 <Vorpal> @messages
13:20:06 <lambdabot> oerjan said 6d 3h 56m 53s ago: <Vorpal> also my PS3 controller on my desk random came to life and blinked the 4 LEDS a couple of times <-- probably just the google cloud trying to print
13:20:15 <Vorpal> oerjan, :D
13:23:44 <oerjan> IT'S THE OBVIOUS EXPLANATION
13:25:24 -!- doesthiswork has quit (Quit: Leaving.).
13:28:14 <Sgeo> Per my dad's suggestion, going to walk outside a bit before going to sleep
13:28:52 -!- atehwa_ has quit (Read error: Operation timed out).
13:35:34 <nooga> borp
13:39:23 -!- copumpkin has quit (Ping timeout: 252 seconds).
13:39:29 <oerjan> @hoogle a -> [b] -> (a -> b -> (c, a)) -> [c]
13:39:29 <lambdabot> No results found
13:39:51 <oerjan> @hoogle a -> [b] -> (a -> b -> (c, a)) -> ([c], a)
13:39:52 <lambdabot> No results found
13:39:53 -!- copumpkin has joined.
13:40:06 <oerjan> :t mapAccumL
13:40:08 <lambdabot> (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y])
13:40:51 <oerjan> i thought hoogle did better argument rearrangement than that
13:42:53 <Sgeo> Also would need tuple rearrangement?
13:42:57 <elliott> oerjan: have I mentioned that State is the wrong way around
13:42:59 <oerjan> well yeah
13:43:06 <oerjan> yes, yes you have
13:43:20 <Sgeo> :t state
13:43:22 <lambdabot> MonadState s m => (s -> (a, s)) -> m a
13:43:37 <Sgeo> Wrong way around? As in, the tuple?
13:44:02 <Sgeo> Hmm, why does it matter? Because of possibility or lack thereof of using (,)?
13:44:02 <elliott> yes
13:44:21 <elliott> inconsistent with mapAccumL, the Functor instance, etc.
13:44:32 <elliott> leading to many uses of "swap'
13:44:33 <elliott> *"
13:46:55 <ion> OTOH, “state . randomR” works.
13:47:35 <elliott> that's because Random is backwards too
13:51:37 <Sgeo> :t randomR
13:51:38 <lambdabot> (RandomGen g, Random a) => (a, a) -> g -> (a, g)
13:51:40 -!- azaq23 has joined.
13:51:45 <Sgeo> Or maybe everything else is backwards
13:51:56 -!- azaq23 has quit (Max SendQ exceeded).
13:52:10 <Sgeo> (Or is there an asymmetry?
13:52:13 <Sgeo> )
13:52:26 -!- azaq23 has joined.
13:52:34 -!- azaq23 has quit (Max SendQ exceeded).
13:53:06 -!- azaq23 has joined.
13:53:51 <elliott> Sgeo: yes, the Functor instance.
13:53:58 <elliott> you cannot give a Functor instance for (_,e) but you can for (e,_)
13:54:06 <ion> Ah, good point.
13:54:40 <elliott> and e.g. the fmap for the State monad matches the fmap for (e,_), which is opposite to (fmap.fmap) on its representation
13:54:51 <elliott> similarly mapping over the random value you generated is more useful than mapping over the resulting generator
13:56:00 <elliott> more uselessly you can express State as the adjunction between ((->) e) and ((,) e) in Haskell (directly, since they're both functors Hask -> Hask) whereas (_, e) of course doesn't work because of the Functor thing
14:01:25 <Sgeo> Maybe I'll set an alarm to wake me up in 4 hours, then go back to sleep
14:05:13 <oerjan> > "aaaabbc" \\ "abbcc"
14:05:17 <lambdabot> mueval-core: Time limit exceeded
14:05:19 <oerjan> > "aaaabbc" \\ "abbcc"
14:05:21 <lambdabot> "aaa"
14:07:34 <olsner> "<Sgeo> Not recommended to microwave (I forget the exact phrasing of the microwave bit)" <-- as a general rule nothing can be cooked in the microwave unless explicitly made for it
14:08:20 <Sgeo> fresh but refrigerated pizza isn't explicitly made for microwave cooking, is it?
14:09:26 <olsner> well, that was cooked before being refrigerated, right?
14:12:31 <olsner> if not I would say it's a clear example of something that requires non-microwave cooking
14:28:40 <mroman> !blsq "aaaabbc" "abbcc" \\
14:28:40 <blsqbot> "aaa"
14:29:08 -!- Phantom_Hoover has quit (Remote host closed the connection).
14:31:21 -!- Phantom_Hoover has joined.
14:31:42 -!- nooodl has joined.
14:37:02 <FreeFull> mroman: Is it supposed to return "abbc" ?
14:41:27 <mroman> Nope.
14:41:44 <mroman> > "aaaabbc" \\ "abbcc"
14:41:46 <lambdabot> "aaa"
14:41:53 <mroman> "aaa" is correct.
14:42:32 <oerjan> it's what i needed, anyway
14:42:52 -!- DHeadshot has joined.
14:43:38 <mroman> !blsq "aaaabbc"NB"abbcc" \\
14:43:38 <blsqbot> ""
14:48:51 * FreeFull looks up the definition of \\ again
14:50:20 <mroman> list difference
14:51:56 -!- GOMADWarrior has joined.
14:59:07 <FreeFull> Oh, difference, not intersection like I thought
15:14:08 -!- trout has changed nick to variable.
15:39:21 <GOMADWarrior> in brainfuck , accepts a number from 0 to 255?
15:39:57 <oerjan> that's common yes. although some implementations use -1 for EOF.
15:46:07 <Vorpal> oerjan, -1 would be 255, how could you tell the difference?
15:46:22 <Vorpal> assuming 2-complement at least
15:46:37 <nortti> Vorpal: there is no way
15:46:55 <Vorpal> nortti, exactly
15:47:14 <oerjan> Vorpal: you are assuming 8-bit
15:47:35 <oerjan> -1 makes more sense if you'e >8 bit
15:47:45 <Vorpal> oerjan, well yes, given the range 0 - 255 or -128 - 127
15:48:17 <oerjan> although i guess it may more often be just an artifact of using C getchar
15:48:17 <olsner> 255 is -1
15:48:35 <oerjan> ASSUMING 8 BIT i said
15:48:50 <olsner> ah, you already went past the whole 255 is -1 thing earlier, never mind
16:11:03 <GOMADWarrior> just made a brainfuck interpreter in lua http://bpaste.net/show/YJWGQ0DQRwuAs4EPjxP4/
16:13:29 -!- DHeadshot has quit (Ping timeout: 244 seconds).
16:18:32 -!- ogrom has quit (Quit: Left).
16:20:42 -!- oerjan has quit (Quit: Later).
16:25:09 -!- DHeadshot has joined.
16:46:25 <kmc> what language is that?
16:46:28 <kmc> oh you said lua
16:48:45 <mroman> Lua is creepy.
16:50:02 <kmc> how so
16:51:20 <mroman> Array indices.
16:52:19 <mroman> sym = C(S"+-*/") * V"ws",
16:52:26 <mroman> ^- and that looks Creepy
16:53:05 <mroman> I'm not saying it's bad.
16:53:47 <mroman> I don't know Lua well enough.
16:56:01 <nooodl> i made a brainfuck interpreter in TI-BASIC at school yesterday
16:56:12 <nooodl> i should type the code into a thingy
17:06:41 <mroman> hm
17:13:59 <nooodl> http://bpaste.net/raw/3PIANdqlzqCqcVs69upO/
17:14:23 <nooodl> the sample code asks for two numbers and multiplies them
17:14:42 <nooodl> i'm not sure how efficient it is (the bf code) but it takes like 20 seconds
17:15:06 -!- TeruFSX has joined.
17:16:09 <nooodl> oh it's pretty "optimal"
17:16:47 <Lumpio-> What's with all the unclosed parenthesis
17:16:54 <Lumpio-> I don't speak expensive calculators
17:25:40 <olsner> I guess all parens get closed automatically at the end of a line
17:26:22 <mroman> http://codepad.org/3sHWeRWi
17:26:27 <mroman> ^- that's freaky o_O
17:26:57 <mroman> (Q pushes the remaning code to the stack
17:27:11 <mroman> q pops code from the stack and replaces the left to execute code with it)
17:27:29 <mroman> Now I just need to find a use for it.
17:28:50 <FreeFull> mroman: Seems useful for code modification
17:29:06 <FreeFull> Maybe something like lisp macros but stacky
17:29:10 <mroman> You can already manipulate code on the fly by using eval
17:29:20 <FreeFull> Yeah but this is another way
17:29:26 <mroman> like
17:29:28 <mroman> but this is another way of doing it, yes
17:57:07 -!- Bike has joined.
18:07:14 -!- DHeadshot has quit (Ping timeout: 252 seconds).
18:28:14 <nooodl> olsner: indeed
18:28:53 <nooodl> and TI-BASIC code is faster when it's shorter! so that kind of thing is pretty common
18:30:07 -!- TeruFSX has quit (Ping timeout: 256 seconds).
18:30:21 <quintopia> i wrote a bf interpreter in ti-basic when i was in high school
18:30:29 <quintopia> with visualization
18:30:41 <quintopia> amazing what boredom with your classes can do
18:31:19 <nooodl> mine supports "visualization" too if you just add like "Output(1,1,L1" to the main loop
18:31:38 <nooodl> because it's so slow you can just see your code execute step by step
18:31:50 -!- TeruFSX has joined.
18:31:58 <nooodl> it's like 5 instructions per second
18:33:21 <quintopia> yeah no i meant real visualization, where it displays the part of the code being executed and points to the current command, and it displays the part of the tape being modified and points to the current cell
18:33:45 -!- kallisti has joined.
18:33:45 -!- kallisti has quit (Changing host).
18:33:45 -!- kallisti has joined.
18:34:10 <quintopia> also i dealt with the slow speed by adding an extra command: "a" which was equivalent to "++++++++++"
18:37:50 -!- kallisti has quit (Client Quit).
18:38:05 -!- kallisti has joined.
18:38:05 -!- kallisti has quit (Changing host).
18:38:05 -!- kallisti has joined.
18:52:08 -!- DHeadshot has joined.
18:54:12 -!- yiyus has quit (Ping timeout: 264 seconds).
18:55:46 -!- yiyus has joined.
18:57:19 <kmc> this cheese has a Data Matrix code printed on the rind
19:00:04 -!- Taneb has joined.
19:01:39 <kmc> in retrospect, TI-83 was a great platform for beginning to learn programming
19:02:03 <kmc> i spent a lot of time riding school buses and waiting for school buses
19:02:06 <kmc> it allowed me to use that time
19:02:18 <kmc> and it was unambiguously mine, unlike my parents' computer which i or they would worry about me breaking
19:02:53 <impomatic> My parents thought I might break the computer by programming and typing in the wrong stuff...
19:03:10 <kmc> and it could do enough things (drawing, graphing, easy text-based menus) to be interesting
19:03:17 <kmc> while still being very easy to dive in
19:03:21 <Taneb> I'm second generation. It's handy
19:03:43 <kmc> and you could share your stuff with your friends via link cable, which added a social component
19:03:57 <kmc> i think the last part is the biggest difference between now and when i was in middle / high school
19:04:06 <kmc> now kids will want to upload their TI programs to facebook
19:04:09 <Taneb> On the other hand, I have a Casio graphical calculator
19:05:05 <kmc> i did a 4-shade mandelbrot set renderer in TI-83 BASIC
19:05:09 <kmc> it took like an hour
19:06:12 -!- DHeadshot has quit (Ping timeout: 264 seconds).
19:06:15 -!- AnotherTest has joined.
19:06:27 <AnotherTest> Hello
19:06:27 <lambdabot> AnotherTest: You have 1 new message. '/msg lambdabot @messages' to read it.
19:07:03 <Taneb> AnotherTest, are you becoming the new me?
19:07:10 <Taneb> `pastelogs <Taneb> Hello
19:07:31 <AnotherTest> Taneb: I hope not :p
19:07:58 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.30174
19:08:43 <Taneb> AnotherTest, look at that
19:12:52 -!- augur has quit (Remote host closed the connection).
19:13:21 -!- TeruFSX has quit (Ping timeout: 245 seconds).
19:15:52 -!- doesthiswork has joined.
19:19:59 -!- KingOfKarlsruhe has joined.
19:21:35 -!- Nisstyre-laptop has joined.
19:26:42 -!- AnotherTest has quit (Quit: Leaving.).
19:26:49 -!- AnotherTest1 has joined.
19:30:22 <kmc> BASIC was just barely fast enough to do 4-color greyscale by quickly loading saved monochrome images in order
19:31:59 -!- oerjan has joined.
19:32:26 <elliott> oerjan: hi
19:32:43 <oerjan> hi elliott
19:34:33 <nooodl> i've considered making
19:34:39 <nooodl> TI-BASIC lisp
19:34:59 <nooodl> but it'd be really hard to make (though technically possible with lots of string bullshit)
19:35:23 <nooodl> but it'd be... so slow...
19:36:04 <mroman> The new TI are probably much faster.
19:36:17 <mroman> mine even has color display and touchscreen.
19:36:31 <mroman> not that a color display is something you'd want for a calculator.
19:36:48 <mroman> except for plotting multiple functions it is utterly useless.
19:38:40 <nooodl> wow i'm looking at a review for "axe parser" on ticalc.org
19:38:44 <nooodl> and this guy's scoresheet is
19:39:03 <nooodl> Syntax: 9/10 Speed: 10/10 Usability: 9/10 Practicality: 10/10 Learning curve: Y=2X
19:39:07 <nooodl> Overall: Y=2X+38/40
19:40:37 <elliott> axe parser
19:41:57 <AnotherTest1> mroman: can it plot functions with 2 input parameters?
19:42:33 <Taneb> ...can you add a constant to an equation like that? I don't think you can
19:43:35 <nooga> looks lame
19:43:58 <mroman> http://www.ticalc.org/archives/files/ss/804/80422.gif <- what's that?
19:44:24 <nooodl> game of life?
19:45:29 <AnotherTest1> I actually wrote a multiplayer TI game once. It was pretty bad but some kids actually played it
19:46:21 <AnotherTest1> I sort of had a singleplayer option, but it was pretty boring as you had to defeat the same monster over and over again
19:47:08 <AnotherTest1> which became impossible after a few level ups, because the monster strength calculation was done using a really bad formula
19:49:56 <nooodl> man, two years ago i wrote something kinda like an idle rpg
19:50:16 <nooodl> you had to mine for resources to sell them to buy upgrades to mine for better resources.
19:50:39 <elliott> so its minecraft
19:50:47 <nooodl> idle minecraft yes
19:50:51 <nooodl> with much more "tiers"
19:50:53 <nooga> http://datamuseum.dk/site_dk/rc/gierdoc/naur8.pdf
19:50:57 <Taneb> mindlecraft
19:51:15 <nooodl> it literally had iron/gold/diamond in it but it went on to all kind of ridiculous things
19:51:15 <nooga> mildly interesting
19:51:22 <AnotherTest1> someone should make a game were you attack guys using functions
19:51:36 <AnotherTest1> like I attack you with f(x) = 2x + 1
19:51:36 <nooodl> AnotherTest1: http://www.graphwar.com/
19:52:13 <nooodl> Graphwar is an artillery game in which you must hit your enemies using mathematical functions. The trajectory of your shot is determined by the function you wrote, and your goal is to avoid the obstacles and your teammates and hit your enemies. The game takes place in a Cartesian Plane.
19:52:20 <AnotherTest1> * someone should make a game not written in java
19:53:38 <mroman> someone should implement langton's ant in Burlesque
19:53:39 <nooodl> was this pretty much your idea, though
19:53:52 -!- augur has joined.
19:54:05 <nooodl> mroman: that sounds fun
19:55:10 <nooga> i attack you with omega combinator
19:55:11 <AnotherTest1> nooodle: well, it would have been nicer if it were not in a plane, but in three dimensions
19:55:24 <AnotherTest1> I attack you with an elipitic curve?
19:55:27 <AnotherTest1> *elliptic
19:55:38 <nooga> elliottic curve
19:55:49 <Taneb> nooga, sounds dangerous
19:55:53 <nooga> true
19:56:15 <nooodl> elliptic is elliott's alias
19:56:45 <AnotherTest1> Can you have moduli in the functions?
19:56:59 <AnotherTest1> also, can you do combined functions?
19:57:18 <nooodl> combined?
19:57:20 -!- DHeadshot has joined.
19:57:46 -!- ogrom has joined.
19:57:49 <AnotherTest1> sorry, bad translation from dutch
19:57:50 <AnotherTest1> um
19:58:11 <AnotherTest1> like a function which is different depending on a number of conditions
19:58:13 <AnotherTest1> eg. collatz
19:58:50 <AnotherTest1> It would be nice if you could have a list of functions
19:59:02 <AnotherTest1> then cast composition and iteration attacks
19:59:47 <nooodl> fyi i'm from dutch-speaking belgium
19:59:56 <AnotherTest1> same
19:59:57 <nooodl> oh god we both are
20:00:03 -!- AnotherTest1 has changed nick to AnotherTest.
20:00:07 <nooga> meh
20:00:17 <nooga> once I went to Maastricht
20:00:30 <nooga> it's near belguim i think
20:00:48 <nooga> and they didn't speak english there, only french and dutch
20:00:51 <nooga> beh
20:00:59 <Taneb> One of my friends is descended from dutch-speaking belgians, I think
20:01:10 <nooodl> it's right next to belgium
20:01:51 <AnotherTest> What I want to say is probably a function with a, in dutch, "meervoudig voorschrift"
20:02:07 <nooga> yeah, we had girls riding bikes from belgium to a party in maas
20:02:08 <nooodl> oh, right
20:02:35 <nooodl> it doesn't have that because it'd be really easy to cheat
20:02:46 <nooodl> because you could finetune your function to avoid all obstacles easily
20:02:57 <AnotherTest> Yes, probably
20:03:03 <AnotherTest> the obstacles should be moving
20:03:09 <AnotherTest> well, I guess if you predicted their movement
20:03:10 <kmc> google translates that as "piecewise"
20:03:19 <AnotherTest> The obstacles should be moving at random!
20:03:32 <AnotherTest> and the random number should be really random
20:03:40 <kmc> no you should have to buy entropy
20:03:46 <nooodl> man. i live like 20 minutes away from antwerp; where are you from AnotherTest
20:04:28 <nooga> antderp
20:04:30 <nooga> :D
20:04:39 <AnotherTest> nooodl: Flemish Brabant
20:04:56 <nooga> ant derp
20:05:12 <nooga> red pant
20:05:24 -!- epicmonkey has joined.
20:05:51 <nooga> trap ned
20:06:48 -!- DHeadshot has quit (Ping timeout: 264 seconds).
20:08:00 <mroman> hm
20:08:18 <mroman> !blsq "....\n..#.\n...."
20:08:19 <blsqbot> "....\n..#.\n...."
20:08:38 <mroman> !blsq "....\n..#.\n...."ln{1 2}d!
20:08:38 <blsqbot> '#
20:09:14 <FreeFull> !blsq Q
20:09:14 <blsqbot> ERROR: (line 1, column 2):
20:09:16 <FreeFull> !blsq q
20:09:16 <blsqbot> ERROR: (line 1, column 2):
20:09:17 <FreeFull> !blsq Qq
20:09:17 <blsqbot> ERROR: Unknown command: (Qq)!
20:09:19 <FreeFull> !blsq Q q
20:09:19 <blsqbot> ERROR: (line 1, column 2):
20:09:29 <mroman> oh
20:09:31 <AnotherTest> !blsq 5 5 +
20:09:32 <blsqbot> ERROR: (line 1, column 6):
20:09:37 <AnotherTest> :(
20:09:38 <mroman> I haven't updated the blsqbot yet.
20:09:43 <mroman> !blsq 5 5 .+
20:09:43 <blsqbot> 10
20:09:50 <AnotherTest> oh yeah teh dot
20:09:58 <AnotherTest> !blsq 5 5 .*
20:09:58 <blsqbot> 25
20:10:06 <mroman> FreeFull: Wait a sec.
20:10:43 -!- ais523 has joined.
20:11:04 <AnotherTest> !blsq "Test 123 1234"
20:11:04 <blsqbot> "Test 123 1234"
20:11:09 <blsqbot> "hi"
20:11:14 <AnotherTest> What?
20:11:22 <AnotherTest> oh
20:11:23 <nooodl> omg
20:11:27 <AnotherTest> Someone send a privmsg
20:11:30 <blsqbot> "i'm a robot beep boop"
20:11:48 <blsqbot> "This isn't funny man."
20:11:49 <nooodl> mroman: suggestion: have blsqbot respond to queries differently
20:11:57 <blsqbot> "Yes it is."
20:12:01 <blsqbot> "#esoteric: anonymous mode"
20:12:12 <blsqbot> "I'm a little teapot, short and stout."
20:12:17 -!- DHeadshot has joined.
20:12:26 <blsqbot> Are you mad?
20:12:31 <blsqbot> "o/` i'm an irc bot short and stout o/`"
20:12:36 <AnotherTest> !blsq { "hi" } 1 w!
20:12:36 <blsqbot> ERROR: Burlesque: (w!) Invalid arguments!
20:12:40 <AnotherTest> oh wait
20:12:41 <blsqbot> "blsqbot should do HTCPCP"
20:12:42 <AnotherTest> Ican do this
20:12:53 <AnotherTest> !blsq { "hi" } {1} w!
20:12:54 <blsqbot> Ain't nobody got time fo' dat!
20:12:57 <AnotherTest> :(
20:13:12 <FreeFull> !blsq "hi" "hi"
20:13:13 <blsqbot> "hi"
20:13:16 <kmc> HTCPCP?
20:13:18 <AnotherTest> !blsq { "hi" } {"hi" .=} w!
20:13:19 <blsqbot> ERROR: Burlesque: (w!) Invalid!
20:13:20 <kmc> "how to cook PCP"?
20:13:22 <AnotherTest> meh
20:13:31 <FreeFull> Hypertext coffee pot control protocol
20:13:50 <AnotherTest> !blsq { 1 } {50 .<} w!
20:13:50 <blsqbot> ERROR: Burlesque: (w!) Invalid!
20:13:56 <elliott> kmc: drugs, am I right
20:13:59 <elliott> drugs.
20:14:00 <FreeFull> http://www.ietf.org/rfc/rfc2324.txt
20:14:39 <blsqbot> I'm going to disney land
20:14:48 -!- blsqbot has quit (Quit: Exiting).
20:15:03 <AnotherTest> !blsq { "Why does this feel bad." 1 } {50 .<} w!
20:15:22 <AnotherTest> hm?
20:16:43 -!- blsqbot has joined.
20:16:56 <nooodl> mroman: is there a "negate" command? short for -1.*
20:17:05 <AnotherTest> !blsq { "Why does this feel bad. Yay!" 1 } {50 .<} w!
20:17:06 <blsqbot> ERROR: Burlesque: (w!) Invalid!
20:17:15 <AnotherTest> ok why
20:17:23 <AnotherTest> !blsq { 1 } {50 .<} w!
20:17:24 <blsqbot> ERROR: Burlesque: (w!) Invalid!
20:17:38 <nooga> anyway
20:17:45 <nooga> what is this burlesque toy?
20:17:51 <mroman> nooodl: You mean not?
20:17:53 <ais523> well, burlesque is an esolang
20:17:55 <mroman> !blsq 0n!
20:17:56 <blsqbot> 1
20:17:57 <ais523> so I guess blsqbot evaluates it
20:17:58 <mroman> !blsq 1n!
20:17:59 <blsqbot> 0
20:18:00 <nooodl> nah
20:18:06 <mroman> !blsq "I'm back"sh
20:18:07 <blsqbot> I'm back
20:18:18 <nooodl> !blsq 5 -1.*
20:18:18 <blsqbot> -5
20:18:42 <nooodl> could be "ng" or something, "Negate"
20:18:46 <blsqbot> nooga: I evaluate all your burlesque expressions
20:18:59 <mroman> nooodl: Oh. that negate
20:19:01 <AnotherTest> !blsq ps+
20:19:01 <blsqbot> ERROR: (line 1, column 4):
20:19:10 <nooodl> also what's "deepmap"
20:19:35 <nooodl> oh, nevermind
20:19:41 <mroman> It maps over blocks
20:19:49 <mroman> !blsq 0.5Tc
20:19:50 <blsqbot> 0.8775825618903728
20:19:56 <mroman> !blsq {0.5 0.5 0.4}Tc
20:19:56 <blsqbot> {0.8775825618903728 0.8775825618903728 0.9210609940028851}
20:21:00 <mroman> AnotherTest: There is nothing on the stack @ {1}{50.<}w!
20:21:18 <mroman> !blsq 1{}{50.<}w!
20:21:18 <blsqbot> Ain't nobody got time fo' dat!
20:21:25 <mroman> but it's an endless loop.
20:21:38 <mroman> !blsq 1{2.*}{50.<}w!
20:21:39 <blsqbot> 64
20:21:45 <mroman> !blsq 1{2.*}{100.<}w!
20:21:46 <blsqbot> 128
20:22:15 <mroman> !blsq 1R@2?*{100.>}fe
20:22:16 <blsqbot> 102
20:22:32 <mroman> !blsq 1R@2?^{100.>}fe
20:22:33 <blsqbot> 121
20:23:35 -!- nooodl_ has joined.
20:24:23 <Vorpal> ^source
20:24:23 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
20:24:47 <mroman> FreeFull: #Q pushes remaining code to the stack, #q pops code and replaces remaining code with it
20:24:57 <mroman> #j pops code from stack and prepends it to remaining code
20:25:02 <mroman> #J dose the same but appends
20:25:11 <mroman> !blsq #Q1 2 3#j
20:25:12 <blsqbot> 3
20:25:16 <mroman> !blsq #Q1 2 3#j#s
20:25:17 <blsqbot> {3 2 1 {1 2 3 #j #s}}
20:25:24 <mroman> (#s pushes the stack to the stack)
20:25:47 <mroman> !blsq #Q1 2 3#j.+#s
20:25:48 <blsqbot> {5 1 {1 2 3 #j .+ #s}}
20:26:14 <mroman> !blsq #Q#q
20:26:15 <blsqbot> No output!
20:26:22 <mroman> !blsq #Q#q#Q
20:26:23 <blsqbot> {}
20:26:28 -!- nooodl has quit (Ping timeout: 248 seconds).
20:26:29 <mroman> !blsq #Q#q#Q#q#q
20:26:30 <blsqbot> No output!
20:26:42 <Vorpal> fizzie, ping
20:26:42 <mroman> !blsq #Q"Hello, World"sh
20:26:43 <blsqbot> Hello, World
20:26:47 <mroman> !blsq #Q"Hello, World"sh#s
20:26:48 <blsqbot> {Hello, World {"Hello, World" sh #s}}
20:27:04 <FreeFull> !blsq #Q #q
20:27:04 <blsqbot> No output!
20:27:15 <Vorpal> @tell fizzie fizzie whatever happened to jitfunge?
20:27:15 <lambdabot> Consider it noted.
20:27:24 <Vorpal> err why did I write the nick twice?
20:27:27 <Vorpal> oh never mind
20:28:04 <mroman> FreeFull: I'm not sure what one can achieve with this.
20:28:58 <mroman> !blsq #Q#q#s
20:28:58 <blsqbot> {}
20:29:07 <FreeFull> mroman: There should be a way to stop #Q, so it doesn't change any code afterwards
20:29:22 <mroman> "stop"?
20:29:40 <FreeFull> So everything from #Q to #E gets pushed onto the stack
20:29:49 <FreeFull> And then the rest of the code gets executed normally
20:30:03 <mroman> well
20:30:06 <mroman> you can do that
20:30:13 -!- AnotherTest1 has joined.
20:30:14 <mroman> !blsq #Q5 5 .+
20:30:14 <blsqbot> 10
20:30:16 <mroman> !blsq #Q5 5 .+#s
20:30:17 <blsqbot> {10 {5 5 .+ #s}}
20:30:29 <nooodl_> burlesque is written in haskell, right?
20:30:35 <mroman> !blsq #Q5 5 .+\/5.+#s
20:30:35 <blsqbot> {{5 5 .+ \/ 5} 10}
20:30:41 <mroman> !blsq #Q5 5 .+\/3.+#s
20:30:42 <blsqbot> {{5 5 .+} 10}
20:30:52 -!- AnotherTest has quit (Read error: Connection reset by peer).
20:30:57 <mroman> ^- you can remove elements from the pushed code
20:31:11 <mroman> nooodl_: Right.
20:31:39 <nooodl_> hmm. i was interested to see how you handled the lazy lists
20:31:42 <nooodl_> but in haskell it's trivial
20:31:55 <mroman> I get lazyness for free ;)
20:32:06 <mroman> !blsq #Q5 5 .+\/3.+e!#s
20:32:07 <blsqbot> {10 10}
20:32:25 <mroman> !blsq #Q5 5 .+\/3.+e!.+#s
20:32:26 <blsqbot> {20}
20:32:34 <mroman> !blsq #Q5 5 .+\/3.+e!.+
20:32:34 <blsqbot> 20
20:34:00 <mroman> #Q does not stop code from being executed.
20:34:44 <mroman> nooodl_: It wouldn't be just infinite lists.
20:35:11 <mroman> I'd have to implement general lazyness.
20:35:16 <zzo38> There are no available nodes on X-Bit BBS for many hours already.
20:35:36 <nooodl_> i don't even know how haskell does it
20:35:40 <nooodl_> it's magic
20:36:36 <Bike> heap values are thunks, it's not that hard
20:37:32 <kmc> it might be useful to play with laziness in a strict language
20:37:47 <kmc> you can defer computation by wrapping it in a zero-argument lambda
20:37:52 <FreeFull> It'd be a learning exercise
20:37:55 <kmc> and then force it later just by applying that function
20:37:56 <kmc> although
20:38:00 <kmc> that's not actually lazy evaluation
20:38:03 <mroman> nope
20:38:06 <kmc> it has the same semantics (non-strict semantics)
20:38:09 <kmc> but much worse performance
20:38:36 <mroman> I actually was playing with the thought of creating a lazy assembler like machine
20:38:38 <kmc> under lazy evaluation you mutate that thunk so that the next time it's evaluated, the result is re-used
20:38:44 <mroman> *language
20:39:09 <mroman> just as an exercise to see how it could be done
20:39:32 <Bike> kmc: you can do that pretty easily with thunks too, though, it's just a few more lines to think about.
20:40:48 <Bike> mroman: how would that work?
20:41:04 -!- augur has quit (Remote host closed the connection).
20:42:06 <elliott> nooodl_: read ezyang's stuff
20:42:20 <elliott> http://blog.ezyang.com/2011/04/the-haskell-heap/
20:42:29 <elliott> + the follow-up posts it links
20:42:33 <elliott> it has pretty pictures
20:42:43 <Bike> elliott i have a confession
20:42:50 <elliott> we all do
20:42:53 <Bike> a matrix isn't enough to define an analytic function uniquely
20:42:54 <Bike> :(
20:42:55 -!- AnotherTest1 has quit (Ping timeout: 260 seconds).
20:42:57 <Taneb> Bike, are you actually a bicycle?
20:43:05 <Bike> dude it says "bike" are you blind
20:43:29 <mroman> Bike: Read/Writes to register/memory is not done immediately
20:43:50 <elliott> Bike: isn't that a bit obvious
20:44:16 <Bike> yes but i was still thinking about it
20:44:24 <doesthiswork> is there an algorithm for compressing joust programs optimally?
20:44:56 <elliott> compressing howso
20:45:06 <mroman> It's probably useless but ...
20:45:09 <elliott> if you mean to ()* ()% then yeah
20:45:17 <elliott> expanding those provably halts
20:45:24 <elliott> so you can just brute-force up to the length of the program
20:45:27 <nooodl_> elliott: this is very cute
20:46:41 <kmc> i wonder where Fiora went
20:46:52 <Bike> she got pissed after a talk about racism here
20:47:42 <kmc> yeah
20:47:44 <kmc> now i feel bad
20:47:46 <elliott> was that the awful one that i logread
20:47:55 <kmc> i wasn't involved in the discussion but I mean i feel bad generally
20:48:14 <elliott> she was cool, I miss the occasional cpu architecture babble
20:48:42 <kmc> yeah :(
20:48:57 <ais523> I missed that discussion too
20:49:44 <zzo38> Have you ever used the circle algorithm from HAKMEM?
20:49:51 <elliott> discussion is a bit of an overly charitable word for it
20:50:31 <ais523> zzo38: no
20:50:43 <ais523> elliott: is it the sort of thing that people should get banned over?
20:50:44 <doesthiswork> yes I have
20:50:53 <ais523> driving useful people from the channel is bad :(
20:51:01 <elliott> ais523: depends what your threshold for banning is
20:51:24 <elliott> probably not something you would ban over from what i know of your op policy
20:51:25 <doesthiswork> zzo38: it gave me a kinda elipse thing
20:51:35 <ais523> elliott: I guess one way to put it is, if the situation between two people has got bad enough that they refuse to be in the channel simultaneously
20:51:38 <ais523> then you ban whichever one is less useful
20:51:39 <elliott> probably something I would ban for but then I'd ban everyone who looks at me wrong
20:51:58 <elliott> btw you should op me
20:52:00 <elliott> so I can do that
20:52:09 * nortti looks at elliott wrong
20:52:24 <doesthiswork> elliott: =_=
20:52:35 <elliott> are you trying to get banned
20:52:38 <ais523> elliott: the problem is you're a bit too impulsive to make a good op, you'd make good decisions most of the time but harm the channel every now and then
20:52:57 <elliott> ais523: hey I've wanted to ban like three idiots on the esolang wiki and restrained myself!!
20:53:10 <ais523> elliott: for what? making bad BF derivatives?
20:53:11 <elliott> except for NSQX. but it turns out banning him doesn't actually work anyway
20:53:15 <kmc> Bike: if you still talk to her, maybe you can tell her that people here wish she would come back
20:53:18 <kmc> i mean if you want to
20:53:30 <Bike> kmc: ok.
20:53:48 <elliott> what kmc said
20:53:54 <ais523> kmc: in my case, its more that I'm upset that she was driven away for no good reason
20:54:09 <ais523> she doesn't have to come back if she doesn't want to, but whatever drove her away needs fixing
20:54:19 <ais523> or him, I guess
20:54:22 <ais523> female name, but…
20:54:24 <Taneb> What happened to tiffany and Madam_Konada or whatever her name was
20:54:46 <doesthiswork> what was this notorious racism discussion?
20:55:13 <elliott> it wasn't really notorious
20:55:19 <ais523> yeah, and how come none of the channel regulars were there?
20:55:26 <kmc> ais523: sure
20:55:28 <kmc> makes sense
20:55:29 <elliott> i just have a really good logreading memory
20:55:42 <ais523> like, the most plausible reason for "none of the channel regulars were involved" is "it was in a different channel", regardless of which channel you're talking about
20:55:45 <ais523> unless it has no regulars
20:55:59 <elliott> well bike and fiora were involved :P
20:56:15 <elliott> anyway it's probably not worth doing anything about N weeks later
20:56:21 <ais523> bike isn't the first person I'd think of when asked to list #esoteric regulars
20:56:34 <Bike> esoteric irregulars
20:56:37 <elliott> bike has been here like months now!
20:56:43 <elliott> can you believe taneb's been here since...
20:56:44 <elliott> `pastelogs taneb
20:56:48 <doesthiswork> ah the rlist
20:56:52 <ais523> yeah, taneb's in my head as a regular
20:56:52 <Taneb> August 2011, I think
20:56:57 <nortti> actually, who are consisdered regulars and who are not?
20:56:57 <kmc> the discussion is here if anyone cares http://codu.org/logs/_esoteric/2013-01-27.txt
20:57:07 <Bike> all i do is sit around not knowing haskell
20:57:08 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12059
20:57:10 <Bike> p. irregular imo
20:57:14 <ais523> elliott: which of us became a #esoteric regular earlier? was it me?
20:57:17 <ais523> I know Vorpal came later
20:57:20 * impomatic is irregular :-)
20:57:24 <Taneb> Crikey, 2010!?
20:57:26 <elliott> 2010-09-06.txt:20:39:56: -!- Taneb has joined #esoteric.
20:57:30 <elliott> you joined in 2010
20:57:32 <elliott> and then left
20:57:33 <nooodl_> when did i join
20:57:35 <elliott> until 2011
20:57:43 <nooodl_> it was probably like 2 days ago
20:57:45 <Vorpal> ais523, I joined a few months before I really began to talk much though
20:57:51 <elliott> iirc I joined in 2006
20:57:54 <elliott> (when I was 10!)
20:57:57 <elliott> but then disappeared until 2007
20:58:01 <impomatic> Hmmm... when did I join?
20:58:01 <elliott> without saying anything
20:58:03 <Taneb> I'm not sure if the first Taneb is actually me
20:58:07 <Bike> anyway the thing is that fiora is pretty much on high alert for various bad-isms, especially on freenode, land of the grognards
20:58:07 <elliott> iirc there were too many people on the user list and I got scared :(
20:58:09 <ais523> impomatic: later, definitely, I'm just not sure how much later
20:58:11 <nooodl_> how did you know about esoteric programming languages at age 10
20:58:23 <elliott> nooodl_: i spen[dt] a lot of time on the internet
20:58:25 <kmc> what's a grognards, well i guess i can tell from context
20:58:26 <ais523> Bike: yeah, a lot of people dislike bad-isms
20:58:35 <elliott> imo badness is actually good
20:58:41 <elliott> - controversial opinion
20:58:49 <Vorpal> Bike, what is a bad-ism?
20:58:54 <Taneb> I don't remember ever asking cpressey about Hackiki
20:58:55 <Bike> kmc: i originally heard it as slang for somebody who gets into long involved arguments about which edition of D&D is best
20:59:00 <elliott> Vorpal: it's when your aim gets hecked
20:59:01 <Bike> Vorpal: in this case racism
20:59:04 <kmc> i don't totally understand what in that discussion made it worth leaving the channel forever but, i have done the same thing in similar contexts
20:59:07 <mroman> Where's the discussion?
20:59:10 <Vorpal> Bike, I see
20:59:15 <mroman> There's no discussion. She just left
20:59:19 <Taneb> I remember the second incident on that log
20:59:26 <elliott> are we going to restart the discussion by proxy of discussing it for an hour
20:59:29 <elliott> because that seems unproductive
20:59:50 <Vorpal> Bike, also who is fiora?
20:59:54 <Bike> a good discussion
21:00:02 <Bike> Vorpal: someone i know from elsewhere. does a lot of x86 hacking.
21:00:10 <Vorpal> okay
21:00:29 <elliott> Taneb: I like how you were mentioned before you even joined
21:00:39 <Bike> she was here for a few... days? weeks? after reading kmc's article about injecting code into a packet filter JIT
21:00:41 <Taneb> Thanks, oerjan
21:00:50 <elliott> she was here over a month I think?
21:00:53 <elliott> it felt like a while anyway
21:01:00 <Bike> i am timeless
21:01:09 <kmc> it was a while
21:01:13 <elliott> well you are a bicycle
21:01:14 <elliott> they don't really age
21:01:20 <Taneb> They do tyre
21:01:30 <elliott> ais523: imo Taneb needs kicking for that
21:01:40 <ais523> elliott: what, bad puns?
21:01:42 <Taneb> ais523, I agree
21:01:46 <elliott> ais523: oerjan has a patent
21:01:47 <ais523> then we'd have to get rid of oerjan too
21:01:52 <elliott> see he even agrees
21:01:56 <elliott> it's the best thing for the channel
21:02:14 <elliott> Bike: btw you should learn haskell
21:02:16 <elliott> it'd be like coming of age
21:02:19 <Bike> imo agda
21:02:30 <Taneb> Anyway, I seriously do not remember the first time I appeared in those logs
21:02:40 <Taneb> I seem to remember asking that much later?
21:03:00 <Bike> maybe i should just implement barebones haskell 98 in a language i'm used to like a sensible person
21:03:04 <Bike> or is there a standard past 98
21:03:08 <olsner> was Taneb the first name you used here? istr you changed name a million times before becoming taneb
21:03:09 <kmc> 2010
21:03:11 <olsner> (but maybe it was actually after)
21:03:14 <Bike> haskell of the future
21:03:16 <kmc> not very different
21:03:16 <elliott> taneb was the first
21:03:21 <elliott> it's "retro" now
21:03:26 <kmc> they said they were going to do one spec per year
21:03:26 <Bike> did they like kill that n+k pattern thing
21:03:28 <Taneb> It went Taneb -> Ngevd -> atriq -> Taneb
21:03:32 <Bike> or whatever it was people yelled about
21:03:34 <kmc> but so far 2010 is the latest
21:03:35 <Taneb> With some switching back and forth
21:03:38 <ais523> starting out in a new community by lurking is common
21:03:38 <elliott> Bike: standard haskell is still kind of "a pain" to implement
21:03:42 <ais523> and the safest method, really
21:03:49 <Bike> elliott: so i would assume
21:03:50 <kmc> Bike: there's a paper "Typing Haskell in Haskell"
21:03:53 <Bike> awesome
21:03:57 <Taneb> ais523, I'm crap at lurking
21:03:57 <kmc> it's good
21:04:02 <ais523> the only other method that even has a moderately good success rate is starting by contributing
21:04:13 <Bike> i read a paper once about how you couldn't embed system fi n itself, or something
21:04:16 <kmc> if you read that and the original STG machine paper and "How to make a fast curry"
21:04:22 <kmc> then i think you can implement haskell pretty well
21:04:35 <kmc> http://www.haskell.org/pipermail/haskell/2009-November/021750.html ← differences between H98 and H10
21:04:45 <elliott> Bike: n+k patterns are gone yes
21:04:52 <Bike> fuckin' knew it
21:04:59 <elliott> kmc: well you can interpret haskell much more easily
21:05:07 <kmc> > let n+1 = 3 in n
21:05:07 <elliott> or even compile it dumbly
21:05:09 <lambdabot> n
21:05:11 <Bike> yeah but interpreters are boring
21:05:13 <elliott> with just dead simple thunking
21:05:17 <kmc> buh?
21:05:24 <elliott> thats not an n+k pattern
21:05:30 <elliott> thats a redefinition of (+)
21:05:34 <Bike> nice
21:05:36 <elliott> you're rusty kmc!!!!!
21:05:39 <elliott> or rather a shadowing
21:05:39 <kmc> > let f (n+1) = n in f 3
21:05:42 <lambdabot> <hint>:1:8: Parse error in pattern: n + 1
21:05:47 <Bike> awwwww snap
21:05:54 <elliott> imo implementing haskell is a really bad way to learn it because you'll get confused by operational details
21:06:00 <nooodl_> ) a.{~97+5?5
21:06:00 <jconn> nooodl_: aedbc
21:06:03 <Bike> details like what
21:06:05 <elliott> since you need to think at a much lower level (and specify much more) than you need to effectively code in haskell
21:06:11 <nooodl_> ) a.{~97+5?26
21:06:11 <Bike> well yeah
21:06:11 <jconn> nooodl_: oghyx
21:06:29 <nooodl_> "that's my taneb name generator"
21:06:33 <elliott> Bike: well the whole evaluation strategy is irrelevant when reasoning about haskell normally and thinking in low-level terms is a common impediment to people learning haskell
21:06:36 <elliott> esp. as it relates to non-strictness
21:06:47 <mroman> nooodl_: Is that gs2?
21:06:48 -!- DHeadshot has quit (Ping timeout: 264 seconds).
21:06:49 <Bike> i'm already reasonably familiar with laziness, i think
21:06:52 <nooodl_> that's J
21:06:59 <mroman> ah. Ic.
21:07:16 <elliott> Bike: non-strictness and laziness are not the same thing :)
21:07:32 <mroman> !blsq 1'a'zr\0 25rn5.+sish
21:07:32 <blsqbot> ERROR: Burlesque: (si) Invalid arguments!
21:07:34 <Bike> sigh
21:07:37 <Bike> what's the difference then
21:07:37 <mroman> meh :(
21:07:43 <elliott> (indeed, equating the two -- though generally harmless -- is a common example of operational details getting mixed up in haskell)
21:07:55 <mroman> !blsq 1'a'zr\0 0 25rn5.+sish
21:07:56 <blsqbot> dbham
21:07:59 <ais523> elliott: I still try to think about the order of program flow, if not evaluation order
21:08:04 <Taneb> Hang on
21:08:04 <elliott> Bike: non-strictness simply means you have functions f for which f _|_ is not _|_, it is a property solely about the denotational semantics
21:08:09 <ais523> as in, a $ b c means "evaluate b c, then run a on the result"
21:08:11 <Taneb> Hang on hang on hang on
21:08:15 <elliott> Bike: laziness is the implementation of non-strictness with call-by-need
21:08:16 <ais523> as a result I end up having to try to read Haskell programs right to left
21:08:16 <olsner> `pastelog olsner
21:08:20 <elliott> which gives you sharing
21:08:23 <Bike> elliott: oh, that's sensible.
21:08:25 <elliott> but e.g. call-by-name is also non-strict
21:08:25 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.13540
21:08:37 <nooodl_> [2] [6] [five] [make-array] <short-map> [rand] <short-map-2> [lowercases] [index]
21:08:40 <nooodl_> that's 9 bytes of GS2
21:08:44 <Taneb> This isn't the first time I've been told that I've interacted with something before I can remember having interacted with them
21:08:52 <mroman> :t ($|)
21:08:56 <lambdabot> (a -> b) -> Strategy a -> a -> b
21:09:06 <mroman> ais523: You can always use flip (.)
21:09:10 <mroman> it's defined somewhere
21:09:13 <mroman> :t (|)
21:09:14 <nooodl_> does [five] even exist :|
21:09:15 <lambdabot> parse error on input `|'
21:09:17 <elliott> 21:08:09 <ais523> as in, a $ b c means "evaluate b c, then run a on the result"
21:09:25 <elliott> ais523: the fact that that's inaccurate is a good argument against your reasoning process :)
21:09:46 <ais523> elliott: what it means in terms of program flow order
21:09:49 <mroman> > let ($|) = flip (.) in "abc" $| reverse $| take 2
21:09:51 <lambdabot> Couldn't match expected type `GHC.Types.Char'
21:09:51 <ais523> Haskell doesn't evaluate in that sequence
21:09:51 <lambdabot> with actual type...
21:09:56 <ais523> but that's what the result means
21:10:05 <ais523> evaluation order is irrelevant, program flow order sort-of isn't
21:10:06 <mroman> hm
21:10:15 <ais523> because it's hard to understand the program otherwise
21:10:15 <elliott> ais523: well, if (b c) is (error "foo"), then evaluating it throws an exception
21:10:23 <elliott> but evaluating (const () $ b c) doesn't
21:10:27 <nooodl_> isn't that like (?)
21:10:28 <nooodl_> :t (?)
21:10:29 <lambdabot> Not in scope: `?'
21:10:39 <ais523> elliott: I don't think of evaluating it as throwing an exception in Haskell
21:10:50 <ais523> just like ??? doesn't throw an exception in Perl 6
21:10:55 <nooodl_> > let (?) = flip ($) in "abc" ? reverse ? take 2
21:10:57 <lambdabot> "cb"
21:11:05 <elliott> if you define evaluation to do nothing, then I agree your reading is correct
21:11:11 <ais523> yeah
21:11:14 <elliott> it's inaccurate even if (b c) isn't _|_
21:11:18 <mroman> ah yeah.
21:11:21 <olsner> did anything ever happen to haskell2011?
21:11:22 <mroman> It's flip ($) not flip (.)
21:11:25 <elliott> it is _not_ evaluated to WHNF until a cases on its result
21:11:37 <Bike> haskell 2002, electric boogaloo
21:11:42 <ais523> elliott: I think I mentally elide the laziness
21:11:45 <ais523> as in, apply it at a different level
21:12:04 <ais523> hmm… I work with call-by-name a lot
21:12:17 <Bike> elliott: if it's remotely relevant i already know the case-is-evaluation thing from a spjones paper
21:12:37 <mroman> !blsq 1R@#q
21:12:38 <blsqbot> Ain't nobody got time fo' dat!
21:13:04 <Taneb> <oerjan> by some freak coincidence taneb is elliott's next door neighbor
21:13:10 <Taneb> oerjan, a prophet
21:13:17 <ais523> Taneb: did you check?
21:13:37 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90 [Firefox 19.0/20130215130331]).
21:13:40 <Taneb> ais523, I'm between old Mr Snowdon and the Bradshaws
21:13:43 <nooodl_> hey has anyone here tried http://scratch.mit.edu/
21:13:44 <Taneb> No room for the Hirds
21:13:46 <nooodl_> it's "an esolang"
21:13:52 <ais523> nooodl_: I've heard of it
21:13:54 <Taneb> nooodl_, yes, and it really isn't
21:14:09 <Taneb> Actually
21:14:44 * Bike looks through extensions
21:14:44 <Taneb> Hmm
21:14:48 <Bike> what's Language.Python do?
21:15:20 <elliott> Bike: extensions?
21:15:30 <Bike> Stuff added in 2010.
21:15:36 <Bike> (in this case, dots in module names)
21:16:12 <elliott> that was actually added in 2002
21:16:14 <elliott> but used much earlier
21:16:20 <Bike> yes, so I see.
21:16:30 <elliott> I don't know what you mean by Language.Python though, Haskell 2010 doesn't specify any such module :P
21:16:48 <Bike> It's in the wiki's article on hierarchical names as an example
21:17:10 <Bike> on hackage or whatever
21:17:17 <elliott> oh sure
21:17:25 <elliott> well
21:17:28 <elliott> argh
21:17:31 <elliott> well http://hackage.haskell.org/package/language-python
21:17:44 <Bike> I see.
21:18:07 <elliott> `hth'
21:18:08 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: hth': not found
21:18:12 <Bike> haha
21:18:57 <mroman> nooodl_: Are you going to implement langtons ant now?
21:19:00 <mroman> or should I do it tomorrow.
21:19:06 <nooodl_> oh right
21:19:08 <nooodl_> i was going to do that!
21:19:11 <nooodl_> it sounds fun
21:19:16 <mroman> Ok.
21:19:24 <mroman> cool.
21:19:37 <mroman> If you have questions just ask me :)
21:19:56 <mroman> You can put it on rosettacode now.
21:20:08 <mroman> I was so evil to add Burlesque there to troll everybody with it.
21:20:22 <Bike> my favorite part of rosetta code is the befunge examples
21:20:22 <mroman> eh
21:20:23 <mroman> not now
21:20:24 <mroman> *then
21:20:30 <mroman> :)
21:20:45 <mroman> my sometimes brain thing mixes up
21:21:37 <mroman> I'm probably going to have a look at conways game of life in burlesque tomorrow.
21:21:41 <mroman> If I have some time to waste.
21:22:07 <Taneb> iirc, the Haskell version of the Langton's ant was written by me, and really sucks
21:22:20 <Bike> don't be so mean to yoself :(
21:22:27 <mroman> yeah.
21:22:32 <mroman> We all write sucky code for rosettacode.
21:22:53 <mroman> I don't want to give away free codegolf solutions anyway :)
21:23:44 <elliott> be mean to yourself
21:23:46 <nooodl_> speaking of
21:23:52 <elliott> including Bike
21:23:53 <nooodl_> i made a scratch program for rosetta code
21:24:04 <Bike> If I'm mean to you, will you become myself?
21:24:12 <nooodl_> http://rosettacode.org/wiki/Mandelbrot_set#Scratch
21:24:23 <nooodl_> there's no output example :( rip
21:24:36 <Bike> nice though
21:24:39 <Taneb> Hang on
21:24:49 <Taneb> I once wrote a Mandelbrot set in Scratch
21:25:13 <Bike> other good parts of rosettacode include: not recognizing some of the languages
21:25:16 <nooodl_> cool
21:25:16 <Bike> like "seed7"
21:25:18 <Vorpal> is that a graphical programming language?
21:25:21 <nooodl_> it is
21:25:25 <Vorpal> wow that looks crazy
21:25:30 <Bike> "Based on the BASIC Version. Due to the TI-83's lack of power, it takes around 2 hours to complete at 16 iterations." also.
21:25:33 <Vorpal> how versatile is it though?
21:25:36 <Bike> Vorpal: it's for pedagogy iirc
21:25:44 <Vorpal> ah
21:25:44 <nooodl_> it's for kids. so not versatile at all
21:25:46 <nooodl_> also slow
21:25:46 <Bike> "The fact that you can create an image of the Mandelbrot Set with XSLT is sometimes under-appreciated."
21:25:56 <Vorpal> nooodl_, Logo isn't that limited iirc
21:26:06 <nooodl_> hmm yeah
21:26:09 <Vorpal> nooodl_, so it doesn't need to be bad just because it is for kids
21:26:21 <Vorpal> nooodl_, but it probably needs to be bad since it is graphic :P
21:26:23 <Bike> could be worse, it could be alice
21:26:33 <Bike> hey, there are cool graphical programming languages
21:26:46 <nooodl_> oh man. alice is used at my school to teach "programming"
21:26:53 <kmc> TIL that Python comes with a turtle graphics module
21:26:58 <nooodl_> i didn't ever use it though; not all classes got those lessons
21:27:02 <kmc> http://docs.python.org/2/library/turtle.html
21:27:07 <Bike> kmc: i used turtle in my freshman classes!
21:27:07 <Vorpal> nooodl_, what is "alice"?
21:27:22 <nooodl_> this http://www.alice.org/index.php
21:27:32 <Bike> it's less than good
21:27:38 <Vorpal> ah
21:27:56 <olsner> heh, the CVS article on wikipedia argues that non-atomic commits are mitigated by doing all work on branches and "the final merge is atomic, and performed in the data center by QA."
21:28:02 <Vorpal> also it references Alice in Wonderland. While that is a good book, there are way too many references to that already
21:28:10 <Vorpal> I say, with a nick referencing it...
21:28:18 <olsner> and the next point claims slow branching is fine because "CVS assumes that the majority of work takes place on the trunk, and that branches should generally be short-lived or historical."
21:28:29 <Vorpal> actually referencing Alice Through the Looking Glass, but whatever
21:28:57 <Vorpal> olsner, lol what
21:29:20 <Vorpal> is someone trying to defend CVS?
21:29:24 <Vorpal> *why*
21:29:58 <nooodl_> mroman: i'm installing burlesque locally atm
21:30:09 <elliott> olsner: in the data centre????
21:30:34 <elliott> 21:25:46 <Bike> "The fact that you can create an image of the Mandelbrot Set with XSLT is sometimes under-appreciated."
21:30:41 <Vorpal> also why would QA do merging at all
21:30:47 <elliott> Bike: https://github.com/isomorphism/esoteric-fractals/blob/master/Make/Makefile
21:30:57 <olsner> Vorpal: to work aroudn a broken version control system?
21:31:06 <Vorpal> olsner, I guess......
21:31:08 <Bike> Vorpal: the vorpal sword shows up in Alice?
21:31:22 <Vorpal> Bike, in the Jabberwocky poem yes
21:31:27 <Vorpal> that is the source of it
21:31:30 <Bike> elliott: at first i was like "wait, what language is this for" and then i was like "oh"
21:31:40 <Bike> Vorpal: I thought Jabberwocky was a separate thing, I mean.
21:32:01 <Vorpal> Bike, you never read the books then I guess?
21:32:03 <elliott> I like how it defines shittons and then proceeds to not use it ever again
21:32:05 <Vorpal> you really should
21:32:15 <kmc> the final merge should be performed by a licensed & bonded mergemonger with a team of strong oxen
21:32:16 <Vorpal> elliott, that is gnu make isn't it?
21:32:32 <elliott> yes
21:32:34 <Bike> Vorpal: i haven't read any carroll, no
21:32:49 <Vorpal> Bike, it is a classic, of course
21:32:54 <Vorpal> both of the Alice books
21:32:58 <Bike> 'course
21:32:59 <Taneb> Bike, Jabberwocky is a poem-within-a-book of Alice Through the Looking Glass
21:33:11 <Taneb> Hunting of the Snark is separate
21:33:14 <elliott> i second the carroll recommendation (this second is 50x better than the first because Vorpal was the first)
21:33:14 <Bike> Ah.
21:33:17 <Vorpal> Bike, also they are references all over popular culture
21:33:21 <Bike> i've only read like four books explicitly based on Alice, yes
21:33:31 <elliott> also read "What the Tortoise Said to Achilles".
21:33:35 <Vorpal> elliott, oh come on, stop hating already
21:33:38 <Bike> that one i may have read already.
21:33:42 <Taneb> Alice is like Flatland but backwards
21:34:01 <Vorpal> Taneb, how do you mean
21:34:16 <Taneb> Flatland is about mathematics, but with references to Victorian culture
21:34:27 <Taneb> Alice is about Victorian culture, but with references to mathematics
21:34:29 <elliott> well you should look it up and see if you have.
21:34:34 <elliott> and then if you haven't, you can read it
21:34:47 <Vorpal> Taneb, wasn't that also a satire over the state of the church at the time or something? (I have to admit I haven't read the book)
21:35:00 <Taneb> Who knows
21:35:40 <Bike> yep i've read it.
21:35:44 <Bike> Didn't know it was originally in Mind.
21:35:59 <Bike> much less dry than On Denoting, that's for sure
21:36:20 <Vorpal> elliott, anyway, the last example of "quoting Alice just cause'" I saw was some shoehorned in quotes on some loading screens after certain missions in Far Cry 3
21:36:26 <nooodl_> mroman: is there an easy way to make "matrices"? like "3 2 something" -> {{0 0 0} {0 0 0}}
21:36:27 <Bike> ha
21:36:29 <Vorpal> didn't even fit all that well
21:36:40 <elliott> Bike: that one is also to blame for Hofstadter, I think
21:36:50 <Bike> yeah hofstadter's definitely where i read it
21:37:35 <Vorpal> elliott, GEB?
21:37:49 <Vorpal> should I (try to) read GEB?
21:37:53 <Bike> yeah
21:37:58 <Vorpal> really?
21:38:01 <Phantom_Hoover> are we talking about carroll
21:38:06 <Phantom_Hoover> my favourite thing about carroll
21:38:08 <Bike> don't "try to", it's not like it's super technical
21:38:10 <elliott> Vorpal: probably not
21:38:15 -!- epicmonkey has quit (Ping timeout: 276 seconds).
21:38:15 <elliott> well
21:38:17 <Vorpal> elliott, oh?
21:38:19 <elliott> I refer you to http://esolangs.org/wiki/User:Chris%20Pressey#Esoteric_Reading_List.21
21:38:25 <elliott> and then leave you to make your own decisions
21:38:27 <Phantom_Hoover> is that when somebody told him about hyperbolic geometry his response was like "well that's just stupid"
21:38:42 <Bike> Phantom_Hoover: continuing in a long line of mathematicians, eh
21:38:45 <elliott> Phantom_Hoover: he had no idea how right he was
21:38:56 <Bike> "The book is riddled with errors, but has a great attitude."
21:38:57 <Vorpal> elliott, hm
21:39:08 -!- DHeadshot has joined.
21:39:11 <Vorpal> Phantom_Hoover, :D
21:39:20 <Bike> elliott: Oh conflating it with Wolfram is a bit harsh.
21:39:26 <Vorpal> I actually like hyperbolic geometry, it is cool and weird
21:39:39 <elliott> Bike: cprsesey never conflates
21:39:41 <elliott> *cpressey
21:39:45 <elliott> only relates
21:39:53 <elliott> anyway GEB is much better than wolfram of course
21:40:07 <elliott> it is an interesting book, I won't say it has no values, but Hofstadter is way too sure of himself
21:40:07 <Phantom_Hoover> "Don't worry if you don't know topology -- it's not the topology that makes this a worthwhile read, it's the counterexamples."
21:40:13 <Phantom_Hoover> oh cpressey
21:40:14 <Bike> I mean, I think hofstadter is pretty wrong about how minds work, but i still enjoyed reading it
21:40:22 <elliott> and borders on quackery when he starts talking about consciousness I think
21:40:41 <Phantom_Hoover> my favourite thing about hofstadter is that he has a harem of beautiful french women
21:40:47 <Bike> i have "Fluid Analogies"
21:40:50 <elliott> also you have to live through a few hundred pages of him going through formal proofs step by step
21:40:52 <kmc> i don't know that he makes any claims falsifiable enough to be called "quackery"
21:40:59 <Bike> i gave up reading it because I was like, no, that's not gonna work bro
21:41:00 <Vorpal> Phantom_Hoover, seriously?
21:41:10 <Phantom_Hoover> kmc unfalsifiable claims are still quackery...
21:41:14 <elliott> kmc: some would argue every unfalsifiable claim constitutes quackery
21:41:18 <elliott> (though I don't quite agree)
21:41:20 <kmc> shrug
21:41:41 <Phantom_Hoover> Vorpal, well iirc the source wasn't very reliable but it's far too amusing to be false
21:41:41 <elliott> anyway maybe GEB is "one of those books everyone should read" and it influenced my thinking
21:41:45 <elliott> but I can't really endorse it
21:41:45 <kmc> mostly it's just a bunch of cute sideways punny analogies and then a kind of incoherent "what if brains are that?"
21:41:54 <Bike> haha yes
21:41:56 <Vorpal> hah
21:42:02 <nooodl_> i have to read that book...
21:42:15 <Bike> i think The Mind's I was probably better for consciousness
21:42:16 <kmc> i agree that people (myself included) tend to see it as a coherent worldview and only years later realize how handwavey it is
21:42:20 <elliott> possibly it is worth reading just for the wit
21:42:25 <Bike> helping: it has an actual philosopher editing
21:42:36 <kmc> GEB also has a great intro to metamathematics though
21:42:41 <kmc> which is not handwavy in the least
21:43:02 <kmc> it presents incompleteness and such in a way that's accessible and yet far more precise than any other 'popular' presentation
21:43:53 <Bike> i probably learned predicate logic from GEB
21:44:09 <elliott> Hofstadter's "A Person Paper on Purity in Language" (http://www.cs.virginia.edu/~evans/cs655/readings/purity.html) was the thing that first made me realise that ingrained sexism existed (or perhaps rather: is a thing that could even be conceived of existed), I think
21:44:23 <Bike> oh yeah that was good too
21:44:25 <elliott> well, ingrained prejudice in general
21:44:43 <Bike> it's like "oh"
21:45:28 -!- ogrom has quit (Quit: Left).
21:46:01 <doesthiswork> I always took the ending of geb as noncannon
21:46:45 <doesthiswork> because it is immediately preceded by the idea of padding the end of a book so you don't know when it really ends
21:47:03 <nooodl_> mroman: is there a way to run a block n times?
21:48:06 <Vorpal> doesthiswork, couldn't that just be a trick to make you believe it wasn't canon?
21:48:24 <elliott> "cnaon"
21:48:28 <elliott> *canon
21:48:29 <Vorpal> doesthiswork, also non-cannon with two n would be something that is not a piece of artillery
21:48:30 <elliott> is there geb fanfiction
21:48:57 <nooodl_> oh E!
21:49:11 <Vorpal> elliott, I invoke rule 34 on it
21:49:17 <Bike> it would be pretty great to see someone failing to write a crab canon
21:49:18 -!- Taneb has quit (Ping timeout: 252 seconds).
21:49:22 <Vorpal> oh no, what have I done?
21:49:32 <Bike> I googled "GEB fanfiction" and got HPMOR, fuck yes
21:49:41 <elliott> haha
21:49:49 <ais523> what's HPMOR?
21:50:03 <elliott> Gods Eater Burst FanFiction Archive | FanFiction
21:50:04 <Phantom_Hoover> yudkowsky's harry potter fanfic
21:50:05 <elliott> no google
21:50:08 <Phantom_Hoover> i hear it is bad
21:50:23 <doesthiswork> I can not stand the first chapter
21:50:30 <Bike> http://ffcdn2012.fictionpressllc.netdna-cdn.com/imageu/1413586/150/ holy shit
21:50:38 <nooodl_> i heard about that thing but i just don't understand what it is
21:50:47 <ais523> Phantom_Hoover: I'm reminded of TV Tropes' guide on how to tell which side of a harry potter fanfic is the protagonist
21:50:54 <Bike> "Occupation: International Baccalaureate student (Majors: Higher Mathematics, Design Technology, Music; Minors: Economics, English, Japanese)
21:50:58 <elliott> Bike: it has a tv tropes article
21:50:58 <Bike> I hit the jackpot here
21:51:02 <elliott> close enough?
21:51:04 <Phantom_Hoover> Bike, is that tolkien??
21:51:04 <Vorpal> <ais523> Phantom_Hoover: I'm reminded of TV Tropes' guide on how to tell which side of a harry potter fanfic is the protagonist <-- oh?
21:51:08 <Vorpal> what does it entail
21:51:09 <Bike> Phantom_Hoover: orwell, of course
21:51:15 <nooodl_> 502 Bad Gateway on bike's link :(
21:51:19 <Phantom_Hoover> oh
21:51:20 <Phantom_Hoover> right
21:51:21 <Vorpal> <Bike> http://ffcdn2012.fictionpressllc.netdna-cdn.com/imageu/1413586/150/ holy shit <-- 502 Bad Gateway?
21:51:22 <ais523> let me look it up so other people don't have to visit TV Tropes
21:51:24 <Bike> "Author has written 9 stories for Transformers/Beast Wars."
21:51:33 <elliott> Bike: i didn't realise orwell's real name was The E. Language
21:51:42 -!- Taneb has joined.
21:51:44 <elliott> i support a guy with a name that terrible too
21:51:47 <elliott> imagine how much he must get teased about it
21:51:48 <Bike> little known fact
21:51:54 <Vorpal> Bike, can you post a working version of that link?
21:52:01 <Phantom_Hoover> i remember looking up 'scorpius' and being royally pissed off that like a quarter of the results were harry potter fanfics
21:52:05 <elliott> Phantom_Hoover: did you really think that was tolkien
21:52:05 <Bike> apparently i cannot, vorpal
21:52:11 <Bike> http://www.fanfiction.net/u/1413586/Seien24 here you go though
21:52:12 <Phantom_Hoover> elliott, im bad face
21:52:14 <Vorpal> Bike, neither me nor nooodl_ got it to work
21:52:19 <elliott> also how do you pronounce tolkien
21:52:21 <Bike> "I'm a Libertarian and an atheist. I detest needing to eat or sleep."
21:52:30 <elliott> i say tolky-en to remind myself it's not "tolkein"
21:52:32 <Bike> elliott: tokin'
21:52:33 <ais523> bleh, I'm not sure offhand what page it's on
21:52:43 <nooodl_> Dislikes: Most people,
21:52:46 <nooodl_> ugh...
21:52:50 <doesthiswork> bike: thumbs up
21:52:51 <elliott> nooodl_: nice
21:52:53 <olsner> ais523: you'll have to read all of them anyway, so it doesn't really matter where you start
21:52:58 <elliott> i remember when i would have written a statement like that
21:53:01 <Bike> that reminds me of one of my favorite internet games
21:53:02 <nooodl_> Favourite Shakespeare play:
21:53:04 <nooodl_> :|||||||
21:53:06 <Phantom_Hoover> Bike, sounds like Sgeo except a dickhead
21:53:08 <elliott> haha
21:53:11 <elliott> IN A CATEGORY OF ITS OWN
21:53:12 <Bike> going to fanfiction.net and looking at the crossover section for thousands-year-old literature
21:53:17 <Vorpal> elliott, I pronounce Tolkien in Sindarin of course
21:53:24 <elliott> "Dislikes: [...] incompetence"
21:53:33 <elliott> man I just love incompetence though
21:53:38 <Bike> somebody in this world has thought that Powerpuff Girls/Aenid slash fanfiction was a good idea
21:53:39 <elliott> gimme some of that incompetence and I'll have my saturday night
21:53:40 <Phantom_Hoover> Bike, is there gilgamesh fanfic
21:53:44 <Phantom_Hoover> there must be gilgamesh fanfic
21:53:51 <elliott> Bike: you know I can't quite disagree
21:53:53 <Phantom_Hoover> also it's aeneiad you cock
21:53:58 <nooodl_> elliott: what about some illiteracy
21:54:02 <elliott> Æneiad
21:54:07 <Bike> Phantom_Hoover: lol, latin
21:54:19 <nooodl_> relatedly: "Dido and Anaeas"
21:54:20 <Phantom_Hoover> it's apparently aeneid
21:54:29 <elliott> The Odyssey: Pokemon Ranger style! by XxDragonstarxX reviews
21:54:29 <elliott> Will Spenser ever reach Ithica in time to stop Billy and his army of suitors from marrying his wife Natumi?What has he gone through?At which losses?
21:54:32 <elliott> this was a good idea Bike
21:54:35 <nooodl_> it's "aeneis" if you're Good
21:54:37 <Vorpal> Phantom_Hoover, gilgamesh fanfic? Stop hurting my brain :/
21:54:37 -!- monqy has joined.
21:54:43 <Bike> http://www.fanfiction.net/s/6365901/1/The-Scibe-Of-Gilgamesh
21:54:47 <Vorpal> oh god
21:54:48 <elliott> Odysseus and the Battle of Hogwarts by asymmetricalpasta03
21:54:48 <elliott> This was an assignment for our Odessey unit in 9th grade. It is horrible. I expect this to get very little in the way of views and taken down. I wasn't impressed with it then, and am not now. But hey, it might be great literature for somebody. Enjoy. Or don't. Oh, one more thing. It's set in Book 6: Consider this your spoiler warning.
21:54:52 <Phantom_Hoover> that's not fanfic!!!
21:55:03 <Bike> "the Priestess of Ereshkigal, Gwenevere Eveili"
21:55:04 <Phantom_Hoover> i want, like, gilgamesh/enkidu slash
21:55:09 <Bike> elliott: i hope you understand how this works
21:55:10 <Phantom_Hoover> Bike
21:55:12 <Bike> Phantom_Hoover: isn't that the original
21:55:14 <Phantom_Hoover> you have made me bleed
21:55:15 <elliott> hey monqy we're looking at bad fanfiction
21:55:22 <nooodl_> im going to
21:55:26 <nooodl_> look for crossover fanfics
21:55:26 <monqy> is this because of sgeo
21:55:27 <lambdabot> monqy: You have 2 new messages. '/msg lambdabot @messages' to read them.
21:55:32 <nooodl_> between literary famous things and other things
21:55:36 <Phantom_Hoover> monqy, what? no
21:55:42 <nooodl_> like aeneid + harry potter or something?
21:55:45 <Phantom_Hoover> that's a horrible thing to say
21:56:16 <oerjan> <Taneb> oerjan, a prophet <- AUM
21:56:34 <Bike> "Slender Man and Hetalia crossover ONESHOT! Warnings: a little FrUk, America x France, swearing, etc..."
21:56:36 <Taneb> ??? AUM
21:56:37 <Bike> it's a good game
21:56:59 <Phantom_Hoover> what is this hetalia thing
21:57:01 <Taneb> Wow, two things I used to be in to then I got bored then they got really popular
21:57:08 <Vorpal> Phantom_Hoover, was just about to ask the same
21:57:10 <Taneb> Phantom_Hoover, it's like Scandinavia and the World but different
21:57:28 <Bike> http://www.fanfiction.net/crossovers/Minecraft/7691/ Yeah, I'm done after this.
21:57:28 <doesthiswork> ..oh! now I get it the "this will blow you mind" comments are sarcasm
21:57:29 <Vorpal> Taneb, what is "Scandinavia and the World"?
21:57:30 <Phantom_Hoover> is it cloyingly japanese
21:57:43 <Taneb> Phantom_Hoover, depends on the definition of "cloyingly"
21:57:46 <olsner> iirc it's an anime where a bunch of countries are represented as characters and have fun times together
21:57:47 <Phantom_Hoover> http://www.fanfiction.net/Bible-and-Minecraft-Crossovers/700/7691/
21:57:51 <elliott> Phantom_Hoover: it's anthropomorphised world war ii
21:57:53 <Taneb> Vorpal, something a bit like Hetalia
21:57:54 <Phantom_Hoover> BIBLE-MINECRAFT
21:57:58 <elliott> no word yet on why anyone thought this was a good idea
21:58:02 <Vorpal> Taneb, ... great ...
21:58:14 <Phantom_Hoover> elliott, do they actually touch on, like, the whole holocaust thing
21:58:15 <nooodl_> http://www.fanfiction.net/Back-to-the-Future-and-Great-Expectations-Crossovers/176/4075/
21:58:18 <nooodl_> good
21:58:19 <nooodl_> very good
21:58:21 <Vorpal> good god
21:58:28 <Vorpal> that could possibly work
21:58:30 <elliott> Bike: how are there *25* Minecraft+My Little Pony fanfictions
21:58:37 <monqy> i should get in on this fanfictions thing
21:58:40 <Bike> elliott: you understand now
21:58:59 <Vorpal> elliott, how is there any fan fiction for minecraft...
21:59:00 <Vorpal> what
21:59:03 <elliott> http://www.fanfiction.net/s/8762946/1/Cave-Minecraft
21:59:06 <elliott> cave story + minecraft crossover poem
21:59:12 <nooodl_> monqy: go to http://www.fanfiction.net/ and click a "crossover" link
21:59:16 <nooodl_> then click two things
21:59:21 <Vorpal> what is there to base minecraft fan fiction on?
21:59:22 <elliott> the twist ending is that it's actually terraria + minecraft crossover poem
21:59:26 <elliott> please click that link
21:59:27 <monqy> nooodl_: ye i kno
21:59:33 <nooodl_> elliott: oops
21:59:33 <Vorpal> minecraft has literally no lore or story
21:59:34 <elliott> please
21:59:36 <nooodl_> im twisted
21:59:37 <elliott> including you monqy
21:59:38 <nooodl_> hi
21:59:42 <monqy> elliott: already done
21:59:56 <nooodl_> there's so much ridiculously bad things on this site
22:00:02 <nooodl_> i don't know which part of it is true
22:00:03 <elliott> `http://www.fanfiction.net/r/8762946/ reviews
22:00:05 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/http://www.fanfiction.net/r/8762946/: No such file or directory \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/http://www.fanfiction.net/r/8762946/: cannot execute: No such file or directory
22:00:07 <elliott> oops
22:00:35 <nooodl_> nicholas says it like it is
22:00:45 <monqy> Anime/Manga Crossovers Naruto (15,429)
22:00:57 <doesthiswork> there is a harry potter fan fiction that is literally just the books typed in with a couple mentions of harry haveing a sister.
22:01:02 <nooodl_> Hetalia - Axis Powers (2,308)
22:01:06 <nooodl_> this is more important because
22:01:11 <monqy> Naruto Crossovers Harry Potter (1,461)
22:01:16 <nooodl_> hetalia axis powers fans are :|
22:01:29 <elliott> http://www.fanfiction.net/s/6139756/1/James-Bond-and-the-Black-Man
22:01:29 <monqy> sgeo likes naruto and harry potter fanfiction right
22:01:33 <elliott> james bond + odyssey crossover fanfiction
22:01:36 <elliott> (rated M)
22:01:51 <monqy> Harry Potter and the cloaked death » by Dinner
22:01:53 <monqy> this sounds kool
22:01:54 <Bike> Other fun but more depressing things to do include looking up fanfiction by word count.
22:02:02 <Bike> There's this one of some anime that's like, longer than Proust.
22:02:04 <monqy> Meeting Death is the end for most, if not all living creatures. But what happens when it is not Death that sends you to your next great adventure? Rated T for death and gore later in the story. No ships, no yaoi, no bashing and no, this story does not feature a pink pony or flubberworms, seriously; why do you keep asking that?
22:02:06 <elliott> i think this one is nonserious :(
22:02:15 <elliott> monqy: great
22:02:20 <Vorpal> lets write a fan fiction which is a cross over of everything, and also X-rated
22:02:38 <Vorpal> or if not everything, at least about a 100 things
22:02:38 <monqy> Valentine's Day For the Messenger by Kyuubi16 Hermione Granger was never fond of Valentine's Day. Though things might change when a certain spiky blonde hair friend of hers conveys to her why she's his perfect Valentine.
22:02:41 <Bike> And Then They All Fucked: An Epic in Terza Rima
22:03:11 <Vorpal> does actual good fanfic even exist?
22:03:16 <monqy> yes
22:03:22 <doesthiswork> maybe
22:03:24 <monqy> have you ever read anything by hans von hozel
22:03:27 <nooodl_> i can't remember reading good fanfic
22:03:46 <Vorpal> monqy, no clue who that even is
22:03:57 <elliott> i recall reading fanfiction and liking it but i've forgotten what it was
22:04:00 <monqy> Things we hide » by Ezra Scarlet -- Naruot hides many things behind that mask of his.So many things that he has no intention of ever telling anyone.Suddenly,Naruto and the rest of team 7 are sent on a mission to protect Harry Potter.Will Naruto be able to keep his many secrets,protect Harry from evil snake-temes and ward of questions from his teamates,all at the same time?takes place during
22:04:06 <monqy> the 5th book.
22:04:22 <Bike> Hans is basically Homer and Shakespeare and Eliot combined in one sexy, sexy package
22:04:25 <Vorpal> monqy, oh god
22:04:39 <kmc> i only read the first 200 pages of HPMOR but it has some good moments
22:04:41 <monqy> it has 5 chapters
22:04:45 <nooodl_> t.s. elliott
22:04:48 <elliott> my names elliott Bike
22:04:58 <Bike> You are not sexy enough to be in this package.
22:04:59 <nooodl_> sorry for joke steal
22:05:08 <elliott> how do you know i'm not sexy!!!!
22:05:19 <Bike> Aren't you like underage
22:05:30 <Phantom_Hoover> don't you look like a 10-year-old girl
22:05:31 <Bike> are you trying to entrap me in a snare of illegal child pornography of yourself
22:05:33 -!- DHeadshot has quit (Ping timeout: 276 seconds).
22:05:50 <Vorpal> kmc, what is HPMOR?
22:05:58 <Sgeo> I'm not a libertarian. Also, not sure if I might be a dickhead despite implications in this channel that unlike that person, I'm not a dickhead.
22:06:01 <Taneb> Harry Potter and the...
22:06:05 <Taneb> Methods of Rationality
22:06:11 <Bike> you're not a dickhead, sgeo.
22:06:16 <kmc> http://cache.futurelooks.com/wordpress/wp-content/uploads/2011/12/GIGABYTE-G1-Killer-Assassin-2-Sandy-Bridge-E-Motherboard-2.jpg
22:06:23 <Taneb> Thank god for my memory and wasted time on TVTropes
22:06:28 <kmc> this is the problem with PC hardware
22:06:41 <olsner> Sgeo: are you eating properly?
22:06:44 <Vorpal> kmc, that is the problem with overpriced PC *gaming* hardware
22:06:45 <elliott> Bike: i'm almost 18 :(
22:06:51 <Bike> kmc: amazing
22:06:56 <Phantom_Hoover> Sgeo, you aren't a dickhead
22:06:58 <zzo38> If .VGM ever add the support of Amiga Paula chip, then I might make the .MOD to .VGM but in order to do so, also I want to know what character set the Amiga ProTracker use for 0x80-0xFF character codes, and the conversion table into UTF-16.
22:07:01 <Phantom_Hoover> you don't have the conviction for it
22:07:03 <elliott> Bike: man I remember when I was 10 and knew more than everyone else around me
22:07:03 <Sgeo> Was talking via email to a very religious friend recently. After I emailed her something, she said some stuff and then said "she's kind of tired of this conversation, unless ...", and then I replied to that stuff before saying that I'll be quiet now.
22:07:06 <Vorpal> kmc, is it photoshopped?
22:07:10 <kmc> Vorpal: don't think so
22:07:14 <elliott> Bike: possibly that even lasted until I was 12
22:07:17 <Bike> elliott: Those were bad times, man. Baaaaad times.
22:07:29 <kmc> Vorpal: there's very little between "shit computers for office workers" and "overpriced gaming hardware"
22:07:36 <Vorpal> kmc, work stations?
22:07:40 <kmc> in some product categories there is literally nothing
22:07:42 <kmc> for example wired mice
22:08:10 <shachaf> ...Oh, *that* kind of product category.
22:08:12 <elliott> kmc: i read "product categories" as in
22:08:13 <elliott> yeah
22:08:15 <kmc> sigh
22:08:15 <elliott> the product of two categories
22:08:16 <kmc> NERDS
22:08:22 <Vorpal> kmc, uh, there is or was, I have a MS Comfort Optical Mouse 3000 that I really like
22:08:31 <Vorpal> don't think that model is still being made
22:08:47 <Vorpal> elliott, hahah
22:09:03 <kmc> i like http://www.newegg.com/Product/Product.aspx?Item=N82E16826104577
22:09:04 -!- Nisstyre-laptop has quit (Quit: Leaving).
22:09:04 <zzo38> I want the wired three buttons mouse without the scroll wheel, do they have those?
22:09:16 <Bike> i've seen 'em
22:09:21 <Vorpal> kmc, that is right hand only right?
22:09:21 <kmc> which is advertised as a "gaming mouse" but it doesn't have like a glowing cutout of a skeleton fucking a robot elf
22:09:22 <Bike> don't know if they're still manufactured
22:09:33 <Vorpal> kmc, I shift often so I need a symmetric mouse
22:09:37 <kmc> Vorpal: hm, i guess so
22:09:42 <kmc> why do you shift?
22:09:50 <Vorpal> kmc, to reduce strain on either hand
22:09:56 <Vorpal> I had some issues with that in the past
22:10:07 -!- Nisstyre-laptop has joined.
22:10:20 <Vorpal> so yeah
22:11:04 <Vorpal> kmc, anyway, you can go for work station rather than "gaming" or "cheap office"
22:11:15 <Vorpal> but usually it ends up even more expensive then
22:11:38 <Vorpal> say, thinkpad for example
22:11:42 <Bike> my computer is like a netbook i got for under $200, i see people talking about buying computers and get mildly frightened
22:11:58 <Vorpal> Bike, why?
22:12:10 <Bike> dunno
22:12:16 <Vorpal> I think my desktop cost around 9000 SEK when I bought it
22:12:29 <Vorpal> and my laptop around that too
22:12:37 <kmc> i have this case: http://www.newegg.com/Product/Product.aspx?Item=N82E16811129042
22:12:56 <kmc> which i like a lot, but there were very few other options in the same quality/price range that don't look entirely ridiculous
22:13:10 <Vorpal> my laptop is a thinkpad though, so the price/performance is not all that good, but it is well built and has a track point at least
22:13:46 <Vorpal> kmc, I have a Antec P183, it only has a tiny blue LED on front for the power
22:13:53 <Vorpal> no glowing silliness or such
22:14:06 <elliott> death to all LEDs
22:14:11 <elliott> kill, maim, destroy
22:14:23 <Vorpal> elliott, even tiny faint ones?
22:14:25 <elliott> yes
22:14:29 <Vorpal> why
22:14:29 <kmc> Vorpal: looks pretty good, like 3x as expensive though
22:14:37 <olsner> pretty sure blue LEDs don't come in "faint" models
22:14:44 <kmc> i think i got the Three Hundred for $40
22:14:50 <Vorpal> kmc, isolates the noise quite well though
22:14:55 <Vorpal> kmc, which was the main thing for me
22:14:57 <kmc> olsner: i put a 10 kΩ resistor in series with my power LED on one of my computers
22:15:05 <kmc> that makes it pretty dim
22:15:23 <Vorpal> kmc, lets just say there is a hell of a difference when I open the front door
22:15:39 <Vorpal> kmc, and I'm quite sensitive to noise
22:16:17 <shachaf> i guess elliott is a fan of R"hi(ultraviolent leds)hi"
22:16:31 <kmc> what
22:16:41 <Vorpal> olsner, well it is pretty weak and it is also recessed, so from where I sit it ends up faint
22:17:02 <Vorpal> shachaf, what is that
22:17:41 <shachaf> Vorpal: C++11 quotes
22:17:53 <Vorpal> shachaf, uh...
22:17:56 <Vorpal> shachaf, okay?
22:18:01 <Vorpal> what does it mean
22:18:03 <shachaf> R"blahblah(text)blahblah"
22:18:11 <shachaf> You can make up your own delimiter.
22:18:12 <Vorpal> um?
22:18:15 <olsner> really? c++11 has that?
22:18:21 <shachaf> C++11 has everything, man.
22:18:37 <Taneb> C++11 even has lenses
22:18:39 <Taneb> True fact.
22:18:45 <olsner> it's really hard to tell if something is a joke or an actual c++11 feature
22:19:03 <shachaf> kmc should make one of those online quizzes.
22:19:05 <Vorpal> Taneb, it does? how?
22:19:17 <Taneb> Vorpal, I was joking. shachaf may not have been.
22:19:41 <Vorpal> ah
22:19:41 <kmc> shachaf: you should write a lens library for Boost
22:19:41 <olsner> Vorpal: lenses exist in all things
22:19:47 <Taneb> Although I don't know enough about C++11 to know if that's impossible or not
22:20:12 <Vorpal> olsner, oh? I haven't really more than glanced at them, so I couldn't possibly comment on that
22:21:05 <olsner> someone might want to take a list of koans and replace well-chosen words with lens-related terms
22:21:29 -!- AnotherTest has joined.
22:21:31 -!- AnotherTest has left.
22:22:24 <Taneb> A monk once asked edwardk, "What is a lens?". edwardk answered him with "The Six Ungraspables."
22:22:45 <Sgeo> Funny, I'm about to ask a Lens question
22:22:51 <monqy> i think i had a dream about lens
22:23:12 <monqy> because i have these funky lens memories but i dont think they ever happened in reality
22:23:57 <Vorpal> monqy, maybe you were high on lenses at the time?
22:24:06 <shachaf> i sinned yesterday
22:24:16 <shachaf> well early this morning?
22:24:19 <monqy> what sort of sin are we talking here
22:24:26 <monqy> unspeakable????
22:24:27 <Sgeo> I assume the paper from a paper plate won't kill me if some gets ingested
22:24:32 <Vorpal> should we notify the police?
22:24:40 <shachaf> um it involved monad explanations
22:24:46 <Vorpal> oh
22:24:54 <monqy> oh that thing
22:25:01 <monqy> i remember that
22:25:16 <shachaf> Oh, maybe I mentioned it in here already.
22:25:26 <monqy> you did
22:25:53 <shachaf> ok
22:25:59 <shachaf> do i need to say some hail monqys
22:26:05 <monqy> please dont
22:26:21 <olsner> Sgeo: food is commonly served on poison
22:26:22 -!- DHeadshot has joined.
22:27:51 <Taneb> shachaf, at the end of his annual summer meditation retreat, said to his monks "The whole summer I have lectured you. Look! Has shachaf any eyebrows?" aristid said: "A robber knows in his heart he is a thief." ocharles said: "Far from dropping off from too much talking, they have grown longer!" But then edwardk forcefully shouted: "Kan!"
22:28:39 <Bike> Does lens have full kōan support?
22:29:00 <shachaf> Is there such a thing as a full kōan?
22:29:11 <Taneb> Bike, forall f => Functor f
22:32:06 <Bike> whoa, man.
22:32:26 <Taneb> (ignore the incorrect Haskell)
22:32:44 <Vorpal> night
22:32:50 <Taneb> Night!
22:35:05 <kmc> khaaaaaaaaaaan
22:35:21 <kmc> ^ the khan extension
22:35:22 <olsner> this CVS Best Practices guide has a chapter on how to "Institutionalize CVS in the Organization" (sadly they mean the wrong thing)
22:35:23 <Phantom_Hoover> hey Taneb we're minecrafting again
22:35:32 <Taneb> Oh no
22:35:36 <Taneb> The old channel?
22:35:36 -!- DHeadshot has quit (Ping timeout: 264 seconds).
22:35:49 <Phantom_Hoover> yes
22:36:02 <Sgeo> Taneb, seems though like everyone except me and Gregor left on an expidition
22:36:08 <Sgeo> It's kind of lonely :(
22:36:34 <monqy> maybe Taneb can keep Sgeo company
22:36:36 <Phantom_Hoover> well
22:36:40 <Phantom_Hoover> greyknight was at spawn too
22:37:19 <Bike> "The notion of Kan extensions subsumes all the other fundamental concepts of category theory." cool
22:37:37 <Phantom_Hoover> istr skipping to the end of cftwm and seeing that
22:37:52 <Taneb> THis is a fun time to realise I have neither Minecraft nor Java on this computer
22:58:58 -!- DHeadshot has joined.
23:06:12 -!- DHeadshot has quit (Ping timeout: 264 seconds).
23:12:35 <Taneb> A monk once asked edwardk: "What is this place where knowledge is useless?" edwardk answered him: "#esoteric"
23:12:42 <Taneb> another lens koan
23:13:03 <elliott> i remember when edwardk was in #esoteric
23:13:21 <Taneb> Apparently I met cpressey
23:13:24 <Taneb> Which worries me
23:13:53 <elliott> like irl??
23:13:56 <Taneb> No
23:13:57 <Taneb> Here
23:14:02 <Taneb> MANY YEARS AGO
23:14:05 <Taneb> MANLY YEARS AGO
23:14:48 <monqy> one time i was here and zomgmodules was here but i forget it. it's like i was a child in that i dont remember it
23:15:07 <Bike> is meeting cpressey like the end of 2001
23:15:08 <shachaf> who is zomgmodules
23:15:14 <elliott> was cpresey really not around when monqy was ever?
23:15:17 <elliott> apart from that time
23:16:22 <Taneb> edwardk once said to his disciples "However wonderful an operator is, may be that it is better not to have it at all"
23:17:04 <elliott> that doesn't sound like edwardk at all
23:17:13 <Bike> you should do the one where he kills his disciple for no reason
23:17:22 <Taneb> If you meat edwardk on the road, kill him
23:17:38 <Bike> not that one, the other one
23:17:43 <monqy> i hope never to meat edwardk on the road
23:17:45 <doesthiswork> no problem
23:17:45 <elliott> taneb i think you may have made a typo
23:17:50 <monqy> i hope never to meat anyone, really
23:17:52 <elliott> it changes the meaning of your sentence slightly
23:18:01 <Taneb> I meant exactly what I said
23:18:10 <doesthiswork> at that point it's a mercy kill
23:18:10 <Bike> the road is a pretty kinky place to meat people taneb
23:18:21 <monqy> meating's like roadkill right
23:18:26 <Taneb> Bike, less kinkier than, eg, the train station
23:18:28 <monqy> you run over a person and then they're meat
23:18:39 <Bike> They were meat before you ran them over too.
23:18:41 <elliott> let's go with: yes
23:18:43 <Bike> But I was referring to fucking.
23:18:46 <Taneb> monqy, no, meating is when you throw hamsteaks at people
23:18:52 <monqy> Bike: :☺)
23:19:02 <Taneb> monqy, that is hideous
23:21:18 <shachaf> i met edwardk on the road
23:21:22 <shachaf> but i never meated him
23:21:33 <shachaf> sounds dangerous
23:21:36 <Bike> what is lens? everyday programming is lens. can it be studied? if you try to study, you will be far away from it. if i do not study, how can i know it is for ruby ninjas with ten years of experience? lens does not belong to the typed world, nor does it belong to the untyped world. typing is a delusion and lack of typing is senseless. if you want to reach the true lens, place yourself in the same freedom as fortran. you name it either elegant o
23:22:00 <shachaf> Bike: /script load splitlong.pl
23:22:07 <Bike> thanks
23:22:16 <elliott> i liked the cutting off
23:22:26 <Bike> i figured that would cut off but i don't care because it's dumb
23:22:49 <elliott> what came after
23:23:01 <shachaf> elliott: my money is on an r
23:23:07 <Bike> if you want to reach the true lens, place yourself in the same freedom as fortran. you name it either elegant or not-elegant.
23:24:04 <Bike> Anyway I couldn't find it so you got that instead.
23:24:08 <Bike> Just imagine at some point a monk dies.
23:25:12 <olsner> silly talk, monks don't die
23:25:39 <doesthiswork> they just decompose
23:25:51 <doesthiswork> like functional languages
23:26:29 -!- Mathnerd314 has quit (Ping timeout: 255 seconds).
23:27:59 <Taneb> Remember Miranda
23:28:15 <Taneb> copyright whoever owns Miranda
23:28:36 <shachaf> i'll never forget her
23:28:49 -!- Mathnerd314 has joined.
23:29:35 <doesthiswork> laziest girl I ever knew
23:35:55 * impomatic has a book about Miranda :-)
23:36:19 <Phantom_Hoover> http://www.reddit.com/r/math/comments/193r5r/why_infinity_is_stupid/
23:36:20 <Phantom_Hoover> omg
23:36:25 <Phantom_Hoover> this will be fun
23:36:54 <Bike> that's quite unlikely
23:37:20 <olsner> "Out side of human perception it is impossible. I had to do a paper on it ..."
23:37:20 <elliott> If a quantum is the smallest something can get and we have this law about not making new ones if you we're to measure the universe in quanta wouldn't the smallest number that can exist be set by Planck constant and the largest by the total of quanta and we would have a physical cap to all numbers.
23:37:46 <doesthiswork> did you post that?
23:38:05 <Bike> wow there are serious replies
23:38:17 <elliott> doesthiswork: somehow I doubt that
23:38:23 <Bike> or well, one serious reply
23:39:26 <Taneb> I get annoyed sometimes because nobody else rhymes finite and infinite
23:39:52 <Taneb> And then they make fun of me
23:40:07 <doesthiswork> which way do you rhyme it?
23:40:41 <Taneb> Both rhyme with "in it"
23:40:59 <Sgeo> Bike, and another serious reply (mine)
23:41:16 <Bike> yours wasn't there when i looked
23:41:21 <Sgeo> I just posted it
23:41:22 <Phantom_Hoover> this person is a lost cause
23:41:24 <Bike> also i didn't mean that as a "hm there should be more serious replies"
23:41:53 <doesthiswork> I don't think they're a lost cause yet, their young and trying to understand
23:42:02 <Bike> "I posted here cause its math it has numbers but ill delete if its out of place." also i think this poster is like fourteen probably
23:42:03 <doesthiswork> *they're
23:42:25 <Bike> also also i have a horrible feeling that i should get into an argument with you about the True Nature of mathematical reality
23:42:38 <elliott> yes
23:42:41 <elliott> i want arguments
23:42:57 <olsner> Taneb: that's fairly normal I think, think of e.g. excel and excellent
23:42:59 <Bike> "Do Roman numerals end or is there a point where they run out of new letters and just keep adding the largest numeral to its self?" good poster
23:44:19 <Slereah> There's the bar you can add to some numerals to turn them into thousands or something I think?
23:44:28 <Slereah> But overall I believe they run out at some point
23:44:54 <Bike> http://www.reddit.com/r/AdviceAnimals/comments/17ya8x/but_seriously/c8a313e help i can't stop
23:45:10 <doesthiswork> thy actually do make sense when you see them as a landmark system
23:45:29 <Slereah> It's not like the romans really needed things like a billion
23:45:50 <Phantom_Hoover> Bike, beautiful
23:45:52 <elliott> Slereah: um what if they wanted a list of numbers that don't exist
23:45:54 -!- DHeadshot has joined.
23:46:05 <elliott> Bike: perfect comment
23:46:09 <Phantom_Hoover> Slereah, http://en.wikipedia.org/wiki/Roman_economy
23:46:11 <Slereah> Well then they invented new numbers!
23:46:27 <Slereah> I think Archimedes did a special number system for very large numbers?
23:46:45 <Phantom_Hoover> Their economy was in the billion-sesterce range.
23:46:45 <Bike> yeah, for the sand reckoner.
23:46:54 <Slereah> Phantom_Hoover : But
23:47:00 <doesthiswork> largest number is busy beaver n
23:47:03 <Slereah> Did any individual in particular need ONE BILLION
23:47:20 <elliott> the greeks had a billion moneys?
23:47:25 <elliott> i just kinda assumed they had like 100
23:47:33 <elliott> because it was a toy model civilisation like you'd buy in a box
23:47:37 <Bike> i shudder to consider how long division works with roman numerals
23:47:38 <Slereah> Nah, the greeks are only poor nowadays!
23:47:39 <elliott> simplified down so you can learn about it in history class
23:47:50 <elliott> wait
23:47:51 <elliott> that was the romans
23:47:54 <elliott> well same thing
23:48:01 <Phantom_Hoover> Slereah, well they might well have wanted to know how much money everyone was making...
23:48:03 <Bike> The romans are also simplified down, they were just also on fire more often.
23:48:20 <Slereah> Maybe!
23:48:59 <Slereah> I guess maybe there was some bureaucrat who had to estimate the Empire's GDP at some point
23:49:03 <Slereah> Not sure if that was the case
23:52:19 <olsner> "The name sestertius (originally semis-tertius) means "2 ½", the coin's original value in asses"
23:53:58 -!- augur has joined.
23:58:10 <DHeadshot> Bike: That's one hell of a quote right there!
23:58:24 <Slereah> So that means the GDP was about 50 billion asses!
23:58:44 <Bike> what's a quote
23:59:21 <DHeadshot> What you said at 23:48...
23:59:34 <Bike> o
23:59:49 <olsner> the one with the romans and the fire?
2013-02-24
00:01:17 <DHeadshot> Yup! Dunno if this channel HAS a QDB, but still...
00:02:05 <olsner> it does, but the rules for using it are quite intricate
00:02:15 <Taneb> `? rules
00:02:24 <HackEgo> rules? ¯\(°_o)/¯
00:02:33 <Taneb> not even HackEgo itself knows the rules
00:02:39 <Bike> `? qdbformat
00:02:42 <HackEgo> qdbformat is: <nick> message; * nick action; two spaces between messages; all elisions marked with [...] other than irrelevant intervening messages; for messages separated by elision, one space on each side, not two
00:02:45 <Bike> i still have no idea why it's necessary
00:03:00 <Bike> sorry let's make that "necessary"
00:05:40 <nooodl_> `? hi
00:05:43 <HackEgo> hi? ¯\(°_o)/¯
00:05:59 <monqy> hi nooodl_
00:06:06 <nooodl_> hi
00:06:14 -!- Taneb has quit (Quit: Leaving).
00:07:12 <oerjan> @hoogle lookup
00:07:12 <kmc> echo 127.0.0.1 reddit.com | sudo tee -a /etc/hosts
00:07:13 <lambdabot> Prelude lookup :: Eq a => a -> [(a, b)] -> Maybe b
00:07:13 <lambdabot> Data.List lookup :: Eq a => a -> [(a, b)] -> Maybe b
00:07:13 <lambdabot> Data.HashTable lookup :: HashTable key val -> key -> IO (Maybe val)
00:07:40 <doesthiswork> `? ?
00:07:41 <HackEgo> ​? is wisdom
00:07:47 <elliott> kmc: but then i'll miss out on um
00:07:51 <elliott> 1/3rd of /r/haskell!
00:07:53 -!- nooga has quit (Ping timeout: 255 seconds).
00:07:54 <doesthiswork> `? wisdom
00:07:56 <HackEgo> wisdom is always factually accurate, except for this entry
00:08:10 <nooodl_> `? monqy
00:08:11 <HackEgo> The friendship monqy is an ancient Chinese mystery; ask itidus21 for details.
00:08:29 <olsner> hmm, what happened to itidus?
00:08:39 <monqy> `? itidus21
00:08:41 <HackEgo> itidus21 just made some instant coffee.
00:08:41 <monqy> `? itidus20
00:08:43 <HackEgo> itidus20's entry has been censored.
00:08:46 <Bike> `learn wisdom is always factually accurate, except for this entry, and uh that other one? it started with like, an ø?
00:08:46 <monqy> rip
00:08:50 <HackEgo> I knew that.
00:10:01 <olsner> itidus might have gone crazy and moved to finland
00:10:27 <olsner> or moved in finland if he was already there
00:14:00 <ais523> `run echo wisdom/ø*
00:14:02 <HackEgo> wisdom/ø
00:14:16 <elliott> `? ø
00:14:18 <HackEgo> ​ø is not going anywhere
00:14:43 <Bike> what have i done..............
00:14:57 <elliott> is ø going somewhere then
00:15:11 <monqy> `? oe
00:15:11 <oerjan> `run echo wisdom/ø*
00:15:12 <HackEgo> wisdom/ø
00:15:12 <HackEgo> oe? ¯\(°_o)/¯
00:15:27 <doesthiswork> `? ¯\(°_o)/
00:15:29 <HackEgo> ​¯\(°_o)/? ¯\(°_o)/¯
00:15:34 <Bike> that's deep
00:15:41 <Bike> though you missed a macron
00:15:48 <doesthiswork> damn
00:16:04 <doesthiswork> `? ¯\(°_o)/¯
00:16:06 <HackEgo> ​¯\(°_o)/¯? ¯\(°_o)/¯
00:16:31 <Bike> `run echo "¯\(°_o)/¯? ¯\(°_o)/¯" > wisdom/¯\(°_o)/¯
00:16:32 <HackEgo> bash: -c: line 0: syntax error near unexpected token `)' \ bash: -c: line 0: `echo "¯\(°_o)/¯? ¯\(°_o)/¯" > wisdom/¯\(°_o)/¯'
00:16:39 <Bike> fucking hell
00:17:12 <oerjan> hint: " are evil, use '
00:17:36 <oerjan> (unless you actually _need_ the evil)
00:18:32 <Bike> `run echo '¯\(°_o)/¯? ¯\(°_o)/¯' > wisdom/¯\(°_o)/¯
00:18:34 <HackEgo> bash: -c: line 0: syntax error near unexpected token `)' \ bash: -c: line 0: `echo '¯\(°_o)/¯? ¯\(°_o)/¯' > wisdom/¯\(°_o)/¯'
00:18:42 <Bike> see
00:18:47 <Bike> bash is impossible
00:19:16 <oerjan> ok, _no_ quotes are also evil hth
00:19:33 <Bike> i have an idea
00:19:41 * oerjan doesn't actually disagree, mind you
00:19:58 <Bike> `run echo '\¯\\\(\°\_\o\)\/\¯\?\ \¯\\\(\°\_\o\)\/\¯' > wisdom/\¯\\\(\°\_\o\)\/\¯
00:19:59 <HackEgo> bash: wisdom/¯\(°_o)/¯: No such file or directory
00:20:16 <Bike> what
00:20:32 <monqy> good idea
00:22:04 <doesthiswork> do you really need to escape "o"?
00:22:15 <Bike> `run echo '\\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯\\\?\\\ \\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯' > wisdom/??
00:22:17 <HackEgo> bash: wisdom/??: ambiguous redirect
00:22:23 <Bike> impossible
00:22:31 <Bike> `run echo '\\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯\\\?\\\ \\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯' > wisdom/\?\?
00:22:35 <HackEgo> No output.
00:22:37 <Bike> there
00:22:39 <monqy> `? ??
00:22:42 <HackEgo> ​\\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯\\\?\\\ \\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯
00:22:46 <monqy> thanks bike
00:22:46 <Bike> i think that went well
00:22:46 <oerjan> fancy
00:22:58 <olsner> the very best result possible
00:23:01 <oerjan> OKAY
00:25:05 -!- copumpkin has quit (Ping timeout: 252 seconds).
00:25:36 -!- copumpkin has joined.
00:27:14 <doesthiswork> `? wisdom
00:27:16 <HackEgo> wisdom is always factually accurate, except for this entry, and uh that other one? it started with like, an ø?
00:27:36 <doesthiswork> `? ?
00:27:38 <HackEgo> ​ ?? ¯\(°_o)/¯
00:27:54 <doesthiswork> `? ??
00:27:55 <HackEgo> ​\\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯\\\?\\\ \\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯
00:28:01 <doesthiswork> `? ???
00:28:03 <HackEgo> ​???? ¯\(°_o)/¯
00:28:35 <doesthiswork> bike: what were you trying to do?
00:28:59 <Bike> Waste time inbetween being crushed in a game of Scrabble.
00:29:11 <kmc> i'm watching http://www.pbs.org/wgbh/americanexperience/films/silicon/player/
00:29:11 <doesthiswork> ¯\(°_o)/¯
00:29:16 <kmc> about Fairchild Semiconductor and the birth of Sillicon Valley
00:29:19 <doesthiswork> `? ¯\(°_o)/¯
00:29:21 <HackEgo> ​¯\(°_o)/¯? ¯\(°_o)/¯
00:29:25 <kmc> one of the old brochures describes a transistor with "80 milli-microsecond" switching time
00:29:31 <kmc> i guess nanoseconds hadn't been invented yet
00:30:14 <doesthiswork> `learn ¯\(°_o)/¯ `? ¯\(°_o)/¯
00:30:15 <HackEgo> ​/hackenv/bin/learn: 4: cannot create wisdom/¯\(°_o)/¯: Directory nonexistent \ I knew that.
00:31:03 <oerjan> oh of course
00:31:35 <oerjan> `run mkdir 'wisdom/¯\(°_o)'; learn '¯\(°_o)/¯ `? ¯\(°_o)/¯'
00:31:40 <HackEgo> mkdir: cannot create directory `wisdom/¯\\(°_o)': File exists \ I knew that.
00:31:47 <oerjan> wat
00:31:50 <Bike> Awesome.
00:32:03 <Bike> Can you not have filenames with forward slashes in them?
00:32:08 <oerjan> nope
00:32:31 <oerjan> `? ¯\(°_o)
00:32:32 <HackEgo> cat: ¯\(°_o): Is a directory
00:32:38 <oerjan> wtf
00:32:46 <oerjan> oh
00:32:58 <oerjan> `ls ¯\(°_o)
00:32:59 <doesthiswork> `? ¯\(°_o)
00:33:00 <HackEgo> ​/bin/ls: cannot access ¯\(°_o): No such file or directory \ /bin/ls: cannot access ¯\(°_o): No such file or directory
00:33:01 <HackEgo> cat: ¯\(°_o): Is a directory
00:33:03 <olsner> `? ¯\(°_o)/¯
00:33:05 <HackEgo> ​¯\(°_o)/¯ `? ¯\(°_o)/¯
00:33:27 <oerjan> oh duh
00:33:32 <oerjan> `ls wisdom/¯\(°_o)
00:33:33 <HackEgo> ​¯
00:33:34 <Bike> I have no idea what is happening.
00:33:43 <Bike> Gonna call this a victory.
00:34:06 <doesthiswork> `? victory
00:34:07 <oerjan> `learn ¯\(°_o)/¯ `? ¯\(°_o)/¯
00:34:07 <HackEgo> victory? ¯\(°_o)/¯
00:34:09 <HackEgo> I knew that.
00:34:18 <oerjan> whee!
00:34:26 <oerjan> `? ¯\(°_o)/¯
00:34:28 <HackEgo> ​¯\(°_o)/¯ `? ¯\(°_o)/¯
00:35:01 <olsner> Bike: the victory of wisdom over you?
00:35:06 <doesthiswork> `? learn
00:35:07 <HackEgo> learn? ¯\(°_o)/¯
00:35:08 <Bike> Yes.
00:35:28 <doesthiswork> `? `
00:35:29 <HackEgo> ​`? ¯\(°_o)/¯
00:35:55 <olsner> not knowing is the best of states, from which you can only learn more
00:36:18 <elliott> 00:32:03 <Bike> Can you not have filenames with forward slashes in them?
00:36:24 <elliott> consider the ambiguity in a/b/c
00:36:39 <Bike> I mean, why not escape them?
00:37:12 <elliott> well the notion of an escape character does not otherwise exist in filesystems
00:37:27 <Bike> Can't you have null characters?
00:37:35 <Phantom_Hoover> soln. don't insist that everything be represented as a string
00:37:46 <monqy> sol.n @
00:37:48 <Bike> I don't think you get Unix philosophy.
00:38:26 <olsner> supporting every possible character sequence as a file name might not have been the goal when this file system thingy was being invented
00:38:33 <kmc> unix syscalls take filenames as strings and not as string-arrays
00:39:12 <olsner> they could use nulls as the path separator and a double-null as a terminator
00:39:31 <shachaf> Well, they take bytestrings.
00:39:48 <olsner> but then you can't have nulls in filenames
00:39:50 <shachaf> Unlike Windows, which takes actual (UTF-16-encoded) character strings.
00:40:59 <olsner> UTF-63 has room for extra data to signal end-of-path and path separators
00:41:25 <kmc> i think in a capability-based system, you wouldn't have file paths as a kernel-level concept
00:41:33 <shachaf> olsner: Only if they're 3-character-aligned.
00:41:37 <kmc> you would open /, read usr out of it, read bin out of that, etc
00:41:55 <kmc> but i don't really know
00:41:57 <elliott> Bike: no, most filesystems reject NUL too
00:41:59 <elliott> well most
00:42:01 <elliott> I think all unix ones
00:42:11 <elliott> generally you can't use / or NUL but anythiing else goes
00:42:22 <elliott> mmonqy has it right
00:42:30 <zzo38> I think using byte strings (or length/data pairs) is good enough, although using open the root and then usr from that and so on seems good too
00:42:43 <elliott> *monqy
00:42:55 <monqy> mmonqy pinged me too
00:43:50 <Bike> maybe the solution is to abandon hierarchical filesystems
00:43:55 <Bike> we can use semantic tagging like in the future
00:45:30 <elliott> Bike: you're still behind @
00:45:48 <Bike> fuck @
00:46:24 <elliott> what
00:46:24 <elliott> fuck you
00:46:58 <Bike> fuck fuck you
00:47:25 <elliott> fuck you
00:47:43 <Bike> `? fuck
00:47:45 <HackEgo> fuck? ¯\(°_o)/¯
00:48:02 <Jafet> fungot, love love love
00:48:03 <fungot> Jafet: not /really/, but i really have to be commands, and bind it to one list, because there's really no single day the stats ' start from',
00:48:15 <olsner> fungot: fuck
00:48:16 <fungot> olsner: uml doesn't do that), it slows down the code when that's possible for you. as optbot instructed, we will know :d)
00:49:07 <olsner> ^style
00:49:07 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
00:55:28 <Phantom_Hoover> btw, i am thinking of amending the rules of continuous chess so the delta in the centre of mass in a move has to be the vector of a legal chess move divided by the measure of the piece being moved
00:55:31 <Phantom_Hoover> thoughts?
00:56:09 <doesthiswork> if the pieces don't vary in size why complicate it?
00:56:10 <Bike> er how do you change the measure of a piece
00:56:35 <Phantom_Hoover> capture
00:56:57 <Phantom_Hoover> and i recently amended the rules so all the pawn is in one big piece
00:57:16 <elliott> Phantom_Hoover: that sounds like the change will make it more boring
00:57:27 <Phantom_Hoover> hmm
00:57:33 <Phantom_Hoover> my worry was that it'd make it too interesting
00:57:53 <Bike> it's a delicate balance, how boring to make it
00:58:19 <elliott> Phantom_Hoover: well it is a restriction
00:58:24 <Phantom_Hoover> no it's not
00:58:41 <Phantom_Hoover> the measure of a piece can only decrease
00:59:32 <elliott> hmmmmmm
00:59:54 <elliott> Phantom_Hoover: by restriction I just meant that the number of moves decreases
00:59:59 -!- augur has quit (Remote host closed the connection).
01:00:12 <elliott> and since the game already seems to have no obvious strategy with the incredibly free number of moves it seems like it'd only decrease the interest
01:00:17 -!- kmc has set topic: 80 milli-microseconds to freedom | http://codu.org/logs/_esoteric/.
01:00:26 <Bike> i think there's a problem of empiricism here
01:00:31 <Phantom_Hoover> again, it doesn't (also the amount of moves is, like, some large beth number)
01:00:33 <Bike> namely: i'm not convinced that this game has ever been played
01:00:45 <Bike> so it seems a bit premature to talk about making it more boring
01:01:04 <Phantom_Hoover> it still exists as a platonic game which could conceivably be played!!
01:01:45 <elliott> Bike: I think we played it once
01:01:46 <Phantom_Hoover> what if we played a game... right now
01:01:52 <elliott> and it got too confusing
01:02:02 <elliott> Phantom_Hoover: by decrease I merely mean it makes existing moves valid
01:02:03 <Bike> who would have thought
01:02:05 <elliott> er
01:02:06 <elliott> Phantom_Hoover: by decrease I merely mean it makes existing moves invalid
01:02:09 <elliott> not that the actual cardinality changes
01:02:14 <Phantom_Hoover> elliott, well, ok
01:02:30 <Phantom_Hoover> but not in a particularly limiting sense
01:02:35 <Bike> obviously continuous chess chess should be invented
01:02:45 <Bike> moves are bijections between sets of rules for continuous chess
01:02:46 <Phantom_Hoover> it just means pieces have to move further as they get captured
01:03:30 <elliott> Bike: ok but continuous continuous chess chess
01:03:34 <elliott> it's like continuous chess chess, but continuous
01:03:48 <elliott> Phantom_Hoover: perhaps we should step back and invent, say, continuous checkers
01:03:51 <elliott> and then figure that out first
01:03:57 <Phantom_Hoover> oh fuck
01:04:05 <Phantom_Hoover> i don't even want to think about continuous checkers
01:04:07 <Bike> can we tie this into surreals somehow
01:04:23 <Bike> or ordinals at least
01:04:44 <Bike> what's the chess variant corresponding to 0#
01:05:18 <Phantom_Hoover> elliott, also it's draughts you americanised piece of shit!
01:05:24 <elliott> shut up ph
01:05:28 <elliott> Phantom_Hoover: ok how about continuous go
01:05:38 <elliott> go is PRACTICALLY continuous anyway
01:05:41 <Bike> Oh I've actually seen continuous go before.
01:06:03 <monqy> how about continous reversi/othello
01:06:04 <Phantom_Hoover> it is thus boring
01:06:16 <elliott> we are the leading exporter of board games only mathematicians can play
01:06:20 <monqy> or continouous go fish
01:06:21 <elliott> and that can't actually be played on a board
01:06:25 <elliott> haha continuous go fish
01:06:30 <Bike> what would a continuous card game even mean
01:06:37 <nooodl_> what is continuous ___ about
01:06:45 <Bike> a joke gone way too far
01:06:45 <elliott> nooodl_: we invented this game called continuous chess once
01:06:46 <elliott> well mainly ph
01:06:47 <Bike> aka #esoteric
01:06:50 <elliott> it kinda spiralled out from there
01:07:15 <Phantom_Hoover> <Bike> what would a continuous card game even mean
01:07:21 <Phantom_Hoover> the... cards can be split up?
01:07:24 <Phantom_Hoover> wait
01:07:25 <Phantom_Hoover> no
01:07:32 <nooodl_> http://www.chessvariants.org/other.dir/continuouschess.html ??
01:07:32 <elliott> i think you broke ph monqy
01:07:35 <olsner> how does continuous anything work?
01:07:37 <Bike> I mean, card games are like, fundamentally based on combinatorics.
01:07:41 <Phantom_Hoover> obviously the deck is treated as a cuboid
01:07:45 <Bike> Maybe you could do soemthing with analytic combinatorics?
01:07:46 <elliott> i love how nooodl_ googles things we talk about in here and expects useful results
01:07:50 <Bike> go fish with power series
01:08:06 <nooodl_> chessvariants.org is a wiki-ish thing...
01:08:09 <Phantom_Hoover> nooodl_, http://sprunge.us/ZDHO
01:08:09 <Bike> does go fish form a field
01:08:11 -!- augur has joined.
01:08:17 <elliott> this is basically a super wimpy version of continuous chess
01:08:36 <elliott> Phantom_Hoover: I like "called piece"
01:08:37 <elliott> is it a mass noun
01:08:42 <Phantom_Hoover> yes
01:08:44 <elliott> good
01:08:52 <Phantom_Hoover> piece has always been a mass noun
01:08:58 <Bike> piece of eight
01:09:09 <monqy> piece as a mass noun makes sense here, and it wouldn't make sense otherwise
01:09:12 <monqy> i support this decision
01:09:34 -!- augur has quit (Remote host closed the connection).
01:10:31 <Phantom_Hoover> admittedly i'm a bit inconsistent with what to call each batch of piece
01:10:47 -!- carado has quit (Ping timeout: 246 seconds).
01:11:46 <olsner> why are there 18 disjoint subsets?
01:11:47 <monqy> well it's like you can call a variety of cheese "a cheese"
01:12:00 <nooodl_> olsner: 9 per player; pawns are one batch
01:12:22 <elliott> IMO pawns should be separate piece!!! very important
01:12:27 <olsner> right, the pawns ... but the knights and rooks have one each?
01:12:43 <nooodl_> anyway i stopped understanding this at "bijective, measure-preserving"
01:12:51 <shachaf> monqy: Or a variety of maths "a math"?
01:12:56 <monqy> shachaf: yes
01:13:17 <Bike> nooodl_: basically "the same size"
01:13:19 <monqy> how do you do that thing where pawns can get transforme into other piece
01:13:25 <Bike> or "preserves size" i guess
01:13:39 <elliott> nooodl_: well bijective is pretty simple at least
01:13:42 <Bike> it's just that math makes size/measure hard because this is math so it has to be hard and weird
01:13:48 <monqy> measure preserving is also easy
01:13:54 <elliott> not quite as easy as bijective
01:14:11 <elliott> for instance the bijective part doesn't really involve the reals
01:14:14 <elliott> so i'm more sure it exists
01:14:27 <monqy> the reals "totally" exist
01:14:33 <Bike> what if i want to play chess with vitali sets monqy
01:14:35 <Bike> what then
01:14:44 <elliott> monqy: can you prove it
01:14:52 <nooodl_> it's probably all pretty simple but i'm kinda dumb.
01:14:55 <monqy> Bike: imo you shouldn't do that
01:14:59 <elliott> i'll accept that the computable ones exist, conditional on the naturals existing!
01:15:16 <Bike> ha, ha, constructivism
01:15:19 <monqy> talking about math "existing" in real life is dumb
01:15:27 <monqy> philosophy is dumb
01:15:32 <Bike> ur dumb
01:15:34 <monqy> yes
01:15:54 <olsner> does the banach-tarski theorem apply to batches of piece?
01:15:57 <nooodl_> maybe if i knew what kind of function this is... what's its "type signature"
01:16:40 <nooodl_> also: maybe if i saw an example game of continuous chess (has anyone played it?)
01:16:48 <elliott> [0,8]^2 -> [0,8]^2
01:16:55 <elliott> er well
01:17:04 <elliott> ok i'll let Phantom_Hoover explain
01:17:15 <elliott> nooodl_: ps its basically impossible for humans to play
01:17:46 <oerjan> olsner: of course not, it requires 3 dimensions
01:18:26 <nooodl_> is it basically impossible for humans to make valid moves, or just really hard in terms of strategy
01:18:31 <Phantom_Hoover> <monqy> how do you do that thing where pawns can get transforme into other piece
01:18:48 <Phantom_Hoover> any pawn that gets close to the opposite rank gets promoted, i guess
01:19:11 -!- ais523_ has joined.
01:19:16 <monqy> does the castling exist
01:19:21 <Phantom_Hoover> hahahaha no
01:19:26 <elliott> what about en passant
01:19:27 <elliott> please add
01:19:28 <nooodl_> en passant?
01:19:29 <oerjan> piece of cake
01:19:31 <monqy> en passant
01:19:33 <Phantom_Hoover> nooodl_, that definition is excessively mathematical btw
01:19:35 -!- ais523 has quit (Ping timeout: 260 seconds).
01:19:35 <Bike> olsner: no, they're measurable sets
01:19:37 <nooodl_> omg elliott let's be friends forever
01:19:40 -!- ais523_ has changed nick to ais523.
01:19:57 <Bike> is it basically impossible for humans to make valid moves <-- now you're getting it.
01:20:00 <elliott> what
01:20:11 <Phantom_Hoover> the gist of it is that at the start of the game each piece is a 1x1 square of stuff, henceforth called 'piece'
01:20:16 <ais523> ah, Linux: fast enough at startup that you can have the entire computer lock up, shut it down with alt-sysrq-reisuo, load it up again, and /still/ connect to IRC before you ping out
01:20:52 <Phantom_Hoover> all the bijective and measure-preserving stuff basically just means that you can only rearrange your piece, you can't shrink or expand it
01:21:22 <oerjan> ais523: istr this has happened to you before
01:21:32 <ais523> oerjan: last time it was just X that crashed
01:21:44 -!- copumpkin has quit (Ping timeout: 252 seconds).
01:22:01 <Phantom_Hoover> and when you rearrange it, its centre of gravity has to make a legal chess move
01:22:13 <ais523> seems it was caused by a hung GPU again, just X crashed in a different way this time
01:22:14 -!- copumpkin has joined.
01:22:29 <Phantom_Hoover> and you capture enemy piece by moving yours onto it
01:22:46 <elliott> nooodl_: it's easy to make valid moves
01:22:48 <oerjan> ais523: what are you doing to your poor GPUs
01:22:51 <elliott> it's difficult to figure out what's going on afterwards
01:23:01 <ais523> oerjan: probably overheating them by forgetting to bang on the case to start the fan
01:23:02 <elliott> especially win conditions
01:23:09 <elliott> since check and checkmate are like
01:23:11 <nooodl_> moving pawns sounds fun
01:23:15 <elliott> based on the existence of a function with certain properties
01:23:22 <oerjan> ic
01:23:25 <Bike> oh wow, i hadn't even thought about that
01:23:44 <elliott> well Phantom_Hoover did leave a little note saying they're kind of undecidable in the rules
01:24:26 -!- oerjan has quit (Quit: Good night).
01:24:31 <nooodl_> what if you just change the win condition into "capture the other guy's king" and remove check/checkmate
01:24:39 <elliott> boring
01:24:52 <ais523> this reminds me of the rule in 4D noughts and crosses
01:25:10 <ais523> that says that you don't win unless you notice you have a length 4 line and point the fact out to the other player
01:25:26 <Bike> You lost me at "4d noughts and crosses"
01:25:38 <elliott> does anyone remember oklopol's n-dimensional tic tac toe
01:25:44 <elliott> that was fucking mindblowing
01:25:49 <ais523> Bike: it's just noughts and crosses played on a 4x4x4x4 grid rather than a 3x3 grid
01:25:55 <elliott> well
01:25:57 <elliott> \infty-dimensional
01:25:58 <monqy> elliott: but is it continouous tic tac toe
01:25:59 <Bike> oh
01:26:05 <elliott> well \infty-dimensional
01:26:07 <elliott> therefore iso to reals!!
01:26:07 <Bike> i thought you meant boxes and lines because i don't speak british
01:26:24 <ais523> elliott: infinity-dimensional seems similar to 4-dimensional, really
01:26:24 <elliott> what do you call tic tac toe
01:26:29 <elliott> ais523: except not...
01:26:30 <doesthiswork> I used to play 4d tick tac toe in middle school
01:26:34 <Phantom_Hoover> Bike, what about your stint in cornwall...
01:26:41 <Bike> I spoke Cornish.
01:26:43 <ais523> elliott: in terms of strategy, I mean
01:26:51 <ais523> doesthiswork: yeah, it's a pretty obvious generalization
01:26:55 <ais523> and 4x4x4x4 seems like the right size
01:27:00 <Bike> Why would I be speaking British in Cornwall?
01:27:14 <Phantom_Hoover> why would you be speaking to the cornish
01:27:19 <ais523> I remember challenging the UK maths team to prove/disprove that a draw was possible
01:27:26 <ais523> (it is possible to draw, but it's quite hard to find a drawn position)
01:27:55 <Bike> So I could later bring them up when it was disbelieved that I was in Cornwall. Duh.
01:28:05 <Bike> Don't you even know how tax nonfraudulentoperations work?
01:30:54 <Phantom_Hoover> http://en.wikipedia.org/wiki/Counterexamples_in_Topology
01:31:01 <Phantom_Hoover> i love that list of names
01:31:34 <Bike> Niemytzki. I love you Russian
01:31:54 <Bike> closed infinite broom
01:32:15 <Phantom_Hoover> cantor's leaky tent
01:32:26 <Phantom_Hoover> the ones with someone's name are my favourite
01:34:32 <Phantom_Hoover> ugh i just realised it's going to be at least 2 years before i start doing proper topology
01:34:47 <monqy> 2 years? proper topology?
01:34:58 <Phantom_Hoover> well, like, formally
01:35:11 <Phantom_Hoover> metric spaces are next year but that barely counts
01:35:44 <nooodl_> Wheel without its hub
01:35:49 <elliott> i wonder if you can actually read that book with no understanding of topology
01:35:51 <monqy> maybe i'll do topology next year........
01:35:55 <monqy> what book
01:35:58 <elliott> maybe i'll try it and send chris an angry email asking for my money back if i can't
01:35:58 <monqy> categories?
01:36:04 <elliott> monqy: Counterexamples in Topology as recommended by chris
01:36:06 <monqy> ah
01:36:09 <elliott> and not that chris, the other one
01:36:14 <nooodl_> Long line
01:36:16 <elliott> http://esolangs.org/wiki/User:Chris%20Pressey#Esoteric_Reading_List.21
01:36:17 <monqy> not pressey?
01:36:18 <monqy> oh
01:36:20 <nooodl_> In topology, the long line (or Alexandroff line) is a topological space somewhat similar to the real line, but in a certain way "longer".
01:36:21 <monqy> yes presssey
01:36:25 <nooodl_> topology sounds good
01:36:29 <elliott> i meant not oel
01:36:33 <Phantom_Hoover> <elliott> i wonder if you can actually read that book with no understanding of topology
01:36:37 <Phantom_Hoover> i doubt it somehow
01:36:39 <monqy> well i thought pressey before oel!!!
01:36:53 <Phantom_Hoover> you do sort of need to know what they're a counterexample to
01:36:56 <monqy> ive seen presseys reading list before tho so
01:37:23 <Bike> gabriel's horn is comparatively simple but i like it a lot
01:37:24 <elliott> but do you remember the comment on counterexamples of topology??
01:37:39 <Bike> also not topological really "but whatever"
01:37:39 <Phantom_Hoover> not a counterexample in topology though!
01:37:50 <monqy> i remember the comments on gödel escher bach and a new kind of science
01:38:06 <Phantom_Hoover> cpressey is the best
01:38:22 <elliott> monqy: but not laws of form??
01:38:43 <Phantom_Hoover> <nooodl_> topology sounds good
01:38:45 <Phantom_Hoover> it's the best
01:38:47 <monqy> elliott: i remembered the laws of form comment but not what book it was for
01:41:43 <Bike> Laws of Form just reminds me of that biology book except that it is not that biology book
01:42:01 <Phantom_Hoover> what's it about again
01:42:17 <elliott> http://en.wikipedia.org/wiki/Laws_of_Form
01:42:18 <elliott> what biology book
01:42:23 <Phantom_Hoover> ugh
01:42:25 <Bike> i can never remember the title
01:42:29 <Bike> it's that one with the picture of the fish
01:42:36 <Phantom_Hoover> i can't READ when i'm also trying to SEE THINGS
01:42:46 <elliott> what is Phantom_Hoover trying to see
01:42:50 -!- Fiora has joined.
01:43:02 <Phantom_Hoover> hey Fiora you like chess and maths right
01:43:09 <Fiora> um, a bit yeah
01:43:21 <Phantom_Hoover> excellente
01:43:22 <Phantom_Hoover> http://sprunge.us/ZDHO
01:43:29 <Phantom_Hoover> JOIN THE DISCUSSION
01:44:09 <elliott> i think if there is one thing this channel is good at it is welcoming Fiora
01:44:22 <Fiora> sorry, bike poked me
01:44:44 <elliott> you can blame kmc and me
01:44:44 <Phantom_Hoover> was it because of the chess
01:44:44 <monqy> Those who agree point to LoF as embodying an enigmatic "mathematics of consciousness," its algebraic symbolism capturing an (perhaps even the) implicit root of cognition: the ability to distinguish.
01:44:45 <shachaf> hi Fiora
01:44:47 <elliott> and also Bike I guess?
01:44:53 * shachaf resists the urge to `welcome
01:44:53 <Bike> hi elliott
01:44:56 <Bike> monqy: what the hell
01:45:06 <elliott> laws of form is great
01:45:08 <elliott> i should read it
01:45:09 <monqy> LoF argues that the pa (primary algebra) reveals striking connections among logic, Boolean algebra, and arithmetic, and the philosophy of language and mind.
01:45:14 <Bike> what the hell
01:45:16 <monqy> i should read it too
01:45:20 <elliott> the guy eventually gave up and became a full-on quack
01:45:25 <elliott> you should see his four-colour theorem proof
01:45:31 <Bike> oh christ
01:45:39 <Bike> «He describes himself as a "mathematician, consulting engineer, psychologist, educational consultant and practitioner, consulting psychotherapist, author, and poet."[1].»
01:45:44 <monqy> ive read goedel escher bach and a new kind of maththematics so reading lof would complete The Trifecta
01:45:49 <Bike> a renaissance man!!
01:45:53 <elliott> monqy: did you actually read a new kind of science
01:45:55 <elliott> what was it like
01:45:57 <Bike> What did you think of new kind of science
01:45:58 <Fiora> I kinda missed this place a little I guess <.<
01:46:05 <monqy> elliott: it might actually be on my shelf right now
01:46:06 <Bike> like i've heard everybody say it's bad but
01:46:14 <monqy> elliott: the shelf of neglect mind you
01:46:41 <monqy> yeeep here it is
01:46:45 <monqy> dusty
01:46:57 <elliott> Bike: have you seen that rather famous review of it
01:47:05 <Bike> i've seen shalizi's
01:47:17 <monqy> gosh it's long
01:47:42 <monqy> how did i read this
01:48:19 <monqy> index/Egg/randomness in fertilization of, 970
01:48:33 <elliott> what
01:48:53 <Phantom_Hoover> how much of it is words and how much is pretty pictures of cas
01:49:05 <kmc> did any of you read "i am a strange loop"
01:49:10 <monqy> lots of both
01:49:14 <kmc> it's like a dry joyless version of GEB
01:49:30 <doesthiswork> where is the famous laws of form review?
01:49:32 <monqy> theres a lot of pages and in those pages there are a lot of words and a lot of CA pictures
01:49:51 <kmc> it's like "nobody understood my book so i'll spell it out in the clearest possible terms, also my wife is dead and i'm super sad about that"
01:49:59 <elliott> doesthiswork: nowhere
01:50:02 <elliott> but there's a famous ANKOS review
01:50:17 <doesthiswork> I''ll take that one instead then
01:50:21 <Phantom_Hoover> kmc, maybe that's the reason for the harem
01:50:30 <kmc> does he have a harem
01:50:31 <Phantom_Hoover> (i feel terrible now?)
01:50:38 <shachaf> kmc: I read the beginning of it.
01:50:40 <Phantom_Hoover> kmc, yes, of beautiful french women*
01:50:42 <elliott> doesthiswork: http://vserver1.cscs.lsa.umich.edu/~crshalizi/reviews/wolfram/
01:50:45 <Bike> kmc: he talked about his wife in le ton beau but it was still pretty good
01:50:57 <kmc> Bike: yeah that book is about something
01:50:59 <Phantom_Hoover> *this information is obtained third-hand from a man who was probably a nutcase
01:51:03 <kmc> ah
01:51:05 <monqy> A Rare Blend of Monster Raving Egomania and Utter Batshit Insanity
01:51:08 <monqy> that sounds about right
01:51:13 <Bike> kmc: it probably helped that he actually knows shit about language, in an academic context :V
01:51:37 <shachaf> I don't know anything in an academic context. :-(
01:51:42 <Bike> and well that that academic context is old and entrenched
01:51:47 <Phantom_Hoover> hofstadter himself claims it was his daughter and her piano teacher or something, but that's a likely story
01:51:58 <kmc> wish i had a harem
01:52:10 <kmc> not in the "imprisoning women" sense ofc
01:52:19 <Phantom_Hoover> why would you want to have a bunch of french people around you
01:52:35 <elliott> Phantom_Hoover: "No one has figured out how to make general relativity, and with it gravity, work in a CA."
01:52:36 <kmc> it's funny because french people suck, also they smell bad and are bad at wars
01:52:40 <elliott> Phantom_Hoover: imo we have a new project
01:52:56 <elliott> kmc: as a british person i feel like we are 'on the same wavelength'
01:53:01 <Phantom_Hoover> kmc, no it's because they never came through for us against the english
01:53:09 <kmc> who's us here
01:53:21 <Phantom_Hoover> the scots obv.
01:53:38 <kmc> well i'm sure they'll be right behind you in the 2018 Scottish War of Independence
01:53:52 <Bike> how's scottish independence going anyway
01:53:55 <elliott> 2018 seems a bit far off for that
01:53:57 <Phantom_Hoover> idk
01:54:04 <kmc> they're going to have a referendum
01:54:18 <elliott> Phantom_Hoover: will you vote for scottish independence???
01:54:27 <kmc> one sticking point is, if they leave the UK are they grandfathered into the EU or do they have to re-apply
01:54:38 <Phantom_Hoover> well somebody pointed out to me that the english are to blame for david cameron so...
01:54:38 <kmc> and if the latter, do they have to switch to the euro (as new EU countries mostly do)
01:54:51 <elliott> i could see independence being good for scottish politics
01:54:53 <Bike> yeah i remember hearing about that
01:54:59 <elliott> but it seems like it'd be really awful for scotland the nation
01:55:01 <kmc> and does that mean they have to float the scottish pound and join ERM
01:55:04 <Bike> i think i heard that they've been using euros anyway? i don't know?
01:55:11 <kmc> i seriously doubt it
01:55:22 <elliott> like being a country is a big deal!! has scotland come of age yet
01:55:22 <kmc> with EUR on the brink of collapse for a year or more
01:55:29 <Phantom_Hoover> i think the argument largely depends on how creative your accounting is vis-a-vis the cash flow over the border
01:55:36 <Bike> spoiler everything i know about this is from a half-read forum thread
01:55:38 <kmc> also UK lost their AAA bond rating, does this mean the chancellor will get sacked
01:55:41 <Bike> elliott: well they were a country for a while
01:55:51 <Bike> did you know they tried to colonize panama back in the day? blew my fuckin mind
01:55:55 <kmc> haha yes
01:55:56 <elliott> it seems like if scotland becoming independent is good for politics there then that also might make politics here worse
01:56:01 <elliott> but you know, I know nothing
01:56:09 <kmc> the one attempt at a scottish overseas colony and they picked one of the least hospitable places on earth
01:56:20 <elliott> Bike: something about John Darwin
01:56:28 <kmc> the point that, to this day, is the single gap in the highway that otherwise stretches from argentina to alaska
01:56:41 <Bike> nice
01:56:54 <kmc> and it bankrupted Scotland and forced them to join with England
01:57:04 <Phantom_Hoover> isn't that er
01:57:07 <Phantom_Hoover> kind of simplistic
01:57:07 <Bike> yeah that's the bit i heard of
01:57:12 <Phantom_Hoover> there were a lot of things going on around then
01:57:12 <Bike> of course it's simplistic
01:57:22 <kmc> it's something i've said about history, therefore it's simplistic
01:57:31 <Bike> it's still funny
01:57:35 <kmc> wp says "was an important factor in weakening their resistance to the Act of Union"
01:57:45 <elliott> kmc: least hospitable in which sense
01:57:51 <ais523> elliott: kmc doesn't live there
01:58:01 -!- nooga has joined.
01:58:02 <elliott> thanks
01:58:07 <kmc> http://en.wikipedia.org/wiki/Dari%C3%A9n_Gap
01:58:32 <kmc> full of jungle that wants to kill you
01:58:36 <kmc> also colombian narco-terrorists
01:58:57 <kmc> probably not so much in 1698
01:59:17 <elliott> well the world was black-and-white and geometrically challenged in 1698
01:59:22 <elliott> if their photos are anything to go by
01:59:31 <elliott> or wait
01:59:35 <ais523> "geometrically challenged"?
01:59:35 <elliott> i guess they had figured art out by 1698
01:59:41 <ais523> as in, a rectangle deficiency or the like?
01:59:45 <kmc> did you see those old color photos of paris
01:59:52 <elliott> ais523: well have you noticed old enough drawings look like a 5 year old did them
01:59:52 <Bike> "The Darién Gap had a reported population of 1,700 in 1980." uh damn
02:00:00 <elliott> because they hadn't quite figured out, like, perspective until... um
02:00:01 <elliott> when was it Phantom_Hoover
02:00:12 <kmc> ok apparently the color is fake maybe, though?
02:00:28 <Phantom_Hoover> the renaissance?
02:00:29 <ais523> before color cameras were invented
02:00:38 <elliott> Phantom_Hoover: sure let's go with that
02:00:38 <ais523> color photos were made by taking black and white photos
02:00:40 <Phantom_Hoover> before the 1600s, for sure
02:00:42 <ais523> then painting the color on by hand
02:00:45 <Bike> elliott: I'd usually go with Dürer
02:00:54 <Phantom_Hoover> but maybe it hadn't reached scotland yet
02:00:56 <Bike> mostly because he's fucking awesome but hey
02:01:02 <ais523> (also, interesting historical note: the video camera was invented well before the video projector was)
02:01:10 <elliott> so 1400 was the exact year they figured out how to draw things
02:01:15 <Bike> yep
02:01:20 <elliott> it is settled
02:01:21 <olsner> the first vehicular crossing took 5 months
02:01:23 <ais523> (they used to make them into flickbooks instead before that)
02:01:44 <olsner> "averaging 201 m (220 yd) per hour over 136 days." is not exactly swift
02:01:50 <Bike> holy hell
02:02:49 <ais523> olsner: I assume that it tended to go much faster sometimes and much slower most of the time?
02:03:09 <olsner> maybe, the sentence doesn't contain full data
02:03:59 <olsner> maybe they drove half the way, stopped for lunch for 5 months, then drove the rest of it
02:04:18 <ais523> "missing, presumed Fed"
02:07:28 <kmc> did you read about the first automobile crossing of the US
02:07:28 <kmc> http://en.wikipedia.org/wiki/Horatio_Nelson_Jackson#Cross-country_drive
02:08:04 <olsner> apparently the crossing I quoted about was partially done by boat
02:08:44 <olsner> because there's a later "first all-land auto crossing"
02:08:59 <Phantom_Hoover> maybe it was partly done by air
02:09:46 <olsner> "taking 741 days to travel 125 miles (201 km).", i.e. about 5 minutes per meter
02:18:04 <Bike> Turns out the book I was thinking of was On Growth and Form.
02:18:18 <doesthiswork> oh that it completely different
02:18:35 <Bike> yes but it has "form" in it you see and is sort of about laws
02:18:56 <elliott> form of laws
02:19:01 <elliott> book about laws
02:19:03 <elliott> and their structure
02:19:24 <Bike> Kafka?
02:28:31 -!- Guest87505 has joined.
02:30:12 -!- nooga has quit (Ping timeout: 264 seconds).
02:30:25 <doesthiswork> another book you need to reed to read! http://en.wikipedia.org/wiki/The_Fabric_of_Reality
02:31:23 <Guest87505> what is it about?
02:31:31 <doesthiswork> wait wrong one
02:31:32 <doesthiswork> http://en.wikipedia.org/wiki/The_Beginning_of_Infinity
02:31:37 <Bike> oh, deutsch
02:31:38 <Phantom_Hoover> the fabric of reality
02:31:47 <Phantom_Hoover> the beginning of infinity then i guess
02:31:54 <Phantom_Hoover> (isn't that just 0)
02:32:05 <Bike> the enlightenment, apparently
02:32:10 <Guest87505> 0 is not infinity
02:32:37 <doesthiswork> he's got a mind-blowing insight into aesthetics, cultural creativity and moral philosophy
02:32:41 <Phantom_Hoover> it's in it though
02:32:49 <Bike> "To test this Deutsch suggests an AI behavioural evolution program for robot locomotion should be fed random numbers to see if knowledge spontaneously arises without inadvertent contamination from a human programmer's creative input." yeah ok
02:33:07 <elliott> Bike: that reminds me of a hacker koan
02:33:17 <olsner> me too
02:33:22 <elliott> im trying to google it
02:33:26 <elliott> but my browser is a freezin'
02:33:26 <Bike> i know the one
02:33:31 <Bike> about tic tac toe and preconceptions
02:33:34 <elliott> im going to quote it anyway
02:33:39 <elliott> because i just got the search in
02:33:39 <Bike> ok
02:33:40 <elliott> so go to hell
02:33:44 <Bike> no
02:33:52 <elliott> In the days when Sussman was a novice, Minsky once came to him as he sat hacking at the PDP-6.
02:33:55 <elliott> "What are you doing?", asked Minsky.
02:33:57 <elliott> "I am training a randomly wired neural net to play Tic-tac-toe", Sussman replied.
02:33:57 <doesthiswork> bike: where'd you get the qoute
02:34:00 <elliott> "Why is the net wired randomly?", asked Minsky.
02:34:03 <elliott> "I do not want it to have any preconceptions of how to play", Sussman said.
02:34:05 <elliott> Minsky then shut his eyes.
02:34:08 <elliott> "Why do you close your eyes?" Sussman asked his teacher.
02:34:10 <elliott> "So that the room will be empty."
02:34:13 <elliott> At that moment, Sussman was enlightened.
02:34:15 <elliott> yes
02:34:17 <Bike> doesthiswork: the wikipedia article.
02:34:28 <doesthiswork> bike: ok I'll read it
02:34:43 <Bike> What, he criticizes Diamond
02:34:46 <Bike> that's pretty random
02:34:54 <Phantom_Hoover> as in jared?
02:35:03 <Bike> yep
02:35:19 <Bike> i mean not that i like diamond, it just seems a weird place to criticize him from
02:36:34 <doesthiswork> it does seem like a odd criticism
02:36:37 <doesthiswork> http://www.imediaethics.org/News/149/Jared_diamonds_factual_collapse__.php
02:37:02 <elliott> oh jared diamond is that guns germs and steel guy
02:37:03 <elliott> is he bad
02:37:08 <elliott> all i know is that that book exists
02:37:13 -!- ais523 has quit.
02:37:18 <doesthiswork> he makes up facts
02:37:26 <Phantom_Hoover> i'm coming to the conclusion that "never trust someone who posits their hypotheses in a popular science book" is a fairly good maxim
02:37:34 <doesthiswork> absolutley
02:37:47 <doesthiswork> although dawkins seems to be doing fine
02:37:49 <Bike> elliott: it's pretty disliked by people in the field, apparently
02:37:55 <Bike> mostly for the usual popsci reasons
02:38:00 -!- Arc_Koen has quit (Quit: Arc_Koen).
02:38:04 <Bike> and environmental determinism isn't really his thing, anyway
02:38:18 <elliott> well dawkins is kind of bad
02:38:35 <Bike> he is kind of bad but not so much in biology
02:38:47 <elliott> yes
02:38:53 <Phantom_Hoover> that maxim does not apply to dawkins
02:39:00 <Bike> actually was gene selection actually introduced in The Selfish Gene
02:39:16 <Bike> wow i searched "elfish gene" by accident and that exists.
02:39:24 <elliott> ph's least favourite gene
02:39:26 <Bike> (it's an autobiography about D&D)
02:39:35 <elliott> Bike: i think it was more a popularisation
02:39:42 <Bike> yeah, that's what i'm guessin
02:39:44 <doesthiswork> it wasn't a scientific theory
02:40:02 <Bike> « Dawkins coined the term "selfish gene" as a way of expressing the gene-centred view of evolution as opposed to the views focused on the organism and the group, popularizing ideas developed during the 1960s by W. D. Hamilton and others.»
02:40:04 <Phantom_Hoover> you say that like it's a criticism
02:40:11 <Fiora> the elfish gene, it makes you slender, graceful, and able to ride shields down stairs and take down oliphaunts with arrows
02:40:20 <Fiora> (but it still only counts as one, no matter how sexy you are)
02:40:23 <Bike> good gene
02:40:37 <doesthiswork> it was like writing a book about your favorite (mathematically correct) interpretation of mechanics
02:40:44 <Phantom_Hoover> it's a view on things, it's still a perfectly valid thing to discuss
02:40:46 <Bike> http://en.wikipedia.org/wiki/File:W_D_Hamilton.jpg hm i think hamilton is actually kind of hot
02:40:47 <doesthiswork> *quantum
02:40:56 <doesthiswork> Phantom_Hoover: I agree
02:41:01 <Phantom_Hoover> btw jbs haldane was the best
02:41:05 <Phantom_Hoover> just putting that out there
02:41:06 <Bike> haldane owns
02:41:13 <Bike> on being the right size is just great
02:41:27 <Phantom_Hoover> did you know he wrote a children's book
02:41:32 <Phantom_Hoover> it's incredible
02:41:33 <Bike> really?
02:41:39 <Bike> doesthiswork: no, the unit of selection has empirical consequences in a way quantum mechanical interpretations don't
02:42:27 <Guest87505> i thought that the point was thier might be more then one unit of selection
02:42:43 <doesthiswork> there are several units of selection
02:43:11 <doesthiswork> some hardly ever get selected at
02:43:15 <Guest87505> i read the book a long time ago, but that is what i took from it
02:44:20 <doesthiswork> dawkins' argument was that there was no mathimatical difference but conceptual clarity
02:44:31 <Phantom_Hoover> Bike, it's about, like, this wizard who he's friends with
02:44:37 <Phantom_Hoover> and they do all sorts of crazy shit
02:44:40 <Bike> um
02:44:44 <Bike> who Haldane is friends with?
02:44:49 <Phantom_Hoover> not irl obviously
02:44:59 <Bike> thanks for clarifying
02:45:17 <Bike> do they go to india to fight imperialism and the bourgeosie
02:45:23 <Phantom_Hoover> no
02:45:26 <Phantom_Hoover> they do go to india
02:45:32 <Phantom_Hoover> and they do fight the bourgeousie briefly
02:45:35 <Bike> haha fuck yes
02:46:04 <Phantom_Hoover> but not at the same time
02:46:41 <Bike> good enough for me!
02:48:27 <Guest87505> while i understand that the unit of selection at different levels is a nice conceptual device, woudn't thier interactions have real implications?
02:48:34 <Sgeo> "unit of selection" seems silly to me, really. Like just a handle in which we try to approximate an understanding of what's going on.
02:48:53 <Bike> Sgeo: of couse.
02:48:56 <Bike> course*
02:49:12 <Guest87505> all of our understanding is an approximation
02:49:12 <Bike> I don't think any evolutionary biologist, including Dawkins, would say it's as simple as genes killing each other
02:49:26 -!- Phantom_Hoover has quit (Remote host closed the connection).
02:50:54 <Guest87505> that is probably to general a statment. sorry
02:51:22 <Bike> and yes i think interactions between "levels" is a thing thats researched a good deal.
02:51:49 <doesthiswork> Guest87505: approximately all of our understanding is an approximation
02:52:04 <Guest87505> better
02:52:40 <Guest87505> math and logic is not an approximation
02:52:53 <Bike> babby's first existentialism
02:53:56 -!- Guest87505 has left.
02:54:14 <doesthiswork> Guest87505: to be an approximation there has to be something you are trying to approximate
02:54:31 <doesthiswork> woops he's gone
02:54:32 <elliott> i think you upset guest Bike
02:54:42 <Bike> :(
02:54:55 <monqy> hi i havent been paying attn was this guest any good
02:54:59 <elliott> its ok they only /parted
02:55:04 <elliott> you can /msg them saying sorry
02:55:04 <kmc> "Sounds to me like Anthony Junior may have stumbled across existentialism." "Fuckin' Internet."
02:55:08 <Bike> I assume it was someone with a different name
02:55:29 <doesthiswork> I though I was just talking about statistics
02:55:35 <monqy> well it wasn't me
02:55:47 <kmc> The Extended Phenotype is a good book as well
02:55:52 <kmc> sort of sequel to Selfish Gene
02:55:55 <kmc> written more for scientists
02:55:58 <Bike> doesthiswork: there are all kinds of ~philosophical implications~ behind saying that truth exists etc etc
02:55:58 <kmc> cool stuff
02:57:38 <doesthiswork> bike: what is our official philosophy?
02:57:47 <Bike> dicks
02:58:46 <doesthiswork> ah you mean the "8===>" operator
02:59:01 <doesthiswork> 8==> for short
02:59:18 <doesthiswork> are dicks a monad?
02:59:34 <Bike> you can bind them hurr hurr
03:01:16 <doesthiswork> have you noticed how immediate the feedback is on whether people like what you said or not?
03:01:32 <elliott> no
03:02:04 <doesthiswork> there is a flurry of messages and then I say something that kills the conversation
03:02:24 <doesthiswork> and nobody wants to touch it
03:02:32 <doesthiswork> (hehehe)
03:02:32 <Bike> god it's
03:02:34 <Bike> it's too easy
03:02:42 <Bike> which, i guess means it must be at least a monoid
03:03:09 <elliott> are magmas easy
03:03:29 <monqy> no
03:03:43 <elliott> :(
03:03:44 <monqy> associativity is kind of important, "imo"
03:04:31 <Sgeo> What if we mix monads using cont?
03:04:32 <Sgeo> Cont?
03:04:56 <Sgeo> Although that might not work so well
03:05:10 <Sgeo> Especially with State, but I need to actually think about it for more than 2 minutes
03:05:43 <monqy> ok
03:05:56 <shachaf> even pointed semigroups aren't easy
03:06:50 <shachaf> Sgeo: You can mix monads using adjunctions.
03:07:03 <shachaf> But they aren't monads in your category. :-(
03:07:42 <nooodl_> http://en.wikipedia.org/wiki/Bialgebra this has a lot of good scary diagrams
03:08:31 <shachaf> those diagrams aren't *that* scary
03:08:39 <shachaf> help i'm growing toleranti
03:08:43 <shachaf> i need something harder
03:09:08 <monqy> yeah those diagrams don't look scary
03:10:00 <Sgeo> shachaf, I don't know adjunctions
03:10:20 <shachaf> https://encrypted.google.com/search?q=commutative+diagram&tbm=isch has several scarier diagrams imo
03:10:58 <Bike> oh dang
03:11:08 <Bike> that one with the circle looks like a goddamn feynman diagram
03:11:17 <elliott> fun fact they're the same thing as feynman diagrams
03:11:29 <shachaf> elliott: well they're the dual
03:11:34 <shachaf> string diagrams are the ones that are the same thing
03:11:44 <Bike> what
03:11:50 <Bike> don't lie to me
03:12:05 <shachaf> http://math.ucr.edu/home/baez/rosetta.pdf
03:13:40 <shachaf> fun fact 0 = 1
03:13:48 <Bike> ugh
03:13:57 <shachaf> | fact n = n * fact (n - 1)
03:14:43 <Bike> hm
03:14:50 <Bike> what's a definition of gamma in haskell look like
03:15:01 <shachaf> elliott: zomg https://upload.wikimedia.org/math/3/f/4/3f426579fc0475ca3edbd849a96542b8.png
03:15:17 <elliott> hello
03:15:27 <shachaf> elliott: It's mposition!
03:15:38 <elliott> yes
03:16:00 <shachaf> That inequality is about the sides of a triangle, by the way.
03:16:23 <shachaf> "(3) that the triangle inequality holds, meaning that the length of one leg of a triangle xyz cannot exceed the sum of the lengths of the other two legs:"
03:17:17 <Bike> ok
03:17:30 <Bike> what the hell does the triangle inequality have to do with cocococococmpisitinnnnnnncococococococococococo
03:17:39 <nooodl_> http://hackage.haskell.org/packages/archive/gamma/0.9.0.2/doc/html/src/Math-Gamma.html#gamma mmmhm
03:18:01 <elliott> Bike: well look at the letters
03:18:13 <kmc> https://www.youtube.com/watch?v=u328PglVpLU
03:18:17 <Bike> well yes
03:18:18 <Bike> distance
03:18:49 <shachaf> Remember the mposition/uncategory/type inequality thing?
03:18:54 <Bike> nooodl_: is that z == abs z to see if it's real
03:18:56 <shachaf> p b a -> Either (p b x) (p x a)
03:19:11 <shachaf> That thing?
03:19:13 <Bike> yeah
03:19:36 <nooodl_> real and positive!
03:19:37 <shachaf> Compare to d(x, z) ≤ d(x, y) + d(y, z)
03:20:20 <Bike> ok but is that analogy actually meaningful somehow
03:20:33 <shachaf> I bet it is?
03:20:46 <Bike> math!
03:20:52 <shachaf> For one, I was trying to find examples of things that satisfy this sort of thing.
03:21:00 <shachaf> I wonder how that + would work, though.
03:21:13 <shachaf> It can't be coproduct, not in a poset category, can it?
03:22:53 <shachaf> What's d? I guess it's just some sort of bifunctor?
03:28:04 <FreeFull> nooodl_: well 0 isn't positive
03:28:31 <nooodl_> uuuuuuggggggggghhhhhhhhhhhhh
03:28:33 <monqy> FreeFull: im sorry to inform you that nooodl_ is Deadly Wrong about 0
03:28:49 <nooodl_> let's ban "positive" and "negative"
03:29:04 <FreeFull> And instead use?
03:29:19 <nooodl_> >0 <0 >=0 <=0
03:29:24 <FreeFull> Doubleplusgood and doubleminusbad?
03:29:32 <FreeFull> Those look like ducks
03:29:35 <monqy> ≤≥
03:29:35 <Bike> nonnegative, nonpositive
03:29:39 <FreeFull> And can't be pronounced
03:29:48 <monqy> nonnonnegative
03:29:57 <shachaf> hi monqy
03:29:59 <monqy> hi shachaf
03:30:13 <shachaf> :☼)
03:32:14 <shachaf> :♲(
03:33:04 <shachaf> :⚧¦
03:33:21 <Bike> nope
03:33:27 <shachaf> Nope?
03:33:45 <FreeFull> shachaf: Your nose has mutated
03:33:47 <Bike> i'm afraid not
03:34:01 <FreeFull> Now it's a hermaphrodite
03:34:13 <nooodl_> anyway
03:34:22 <nooodl_> gamma 0 is already defined before that
03:34:53 <nooodl_> so the "z == abs z" check after that really *does* check if it's real and positive
03:38:00 <FreeFull> Why not z > 0.0
03:38:24 <Bike> Because gamma is defined as a class on an arbitrary type, i assume
03:38:45 <FreeFull> z > 0 if it's for all Nums
03:38:45 <shachaf> all numbers are fictitious
03:39:12 <FreeFull> Since complex numbers aren't in Ord anyway I think
03:39:20 <Bike> let's see, it has (Eq a, Floating a, Factorial a)
03:39:26 <Bike> (why is Factorial a class)
03:39:33 <elliott> 03:38:24 <Bike> Because gamma is defined as a class on an arbitrary type, i assume
03:39:39 <elliott> bike you're great but
03:39:42 <elliott> this sentence literally means nothing
03:39:47 <Bike> :(
03:39:55 <FreeFull> Clearly gamma is secretly bottom
03:39:59 <Bike> Um, it's polymorphic?
03:40:02 <Bike> I'm bad at words.
03:40:07 <Bike> And thoughts.
03:40:23 <elliott> me too
03:40:32 <Bike> i just, it's a typeclass
03:40:50 <Bike> so you can have some instance for BullshitNumberA and another one for BullshitFuckshitFuck
03:40:55 <monqy> Bike: are you talking about what constraints you're putting on it
03:41:01 <Bike> you know what sure
03:41:07 -!- doesthiswork has left.
03:41:18 -!- doesthiswork has joined.
03:41:19 <shachaf> Bike: gamma is just a class on an arbitrary type
03:41:24 <shachaf> don't let the man push you down
03:41:35 <Bike> the man is better at haskell than i am
03:41:48 <shachaf> good point
03:42:48 <Bike> actually what do you need for gamma function
03:43:02 <Bike> logarithmic convexity and multiplication?
03:43:43 <Bike> and continuity probably
03:43:56 <Bike> except floats aren't actually continuous
03:55:26 -!- Frooxius has quit (Ping timeout: 252 seconds).
04:12:50 -!- nooodl_ has quit (Ping timeout: 260 seconds).
04:19:08 -!- aloril has quit (Ping timeout: 276 seconds).
04:20:42 -!- doesthiswork has quit (Quit: Leaving.).
04:32:16 -!- azaq23 has quit (Quit: Leaving.).
04:32:46 -!- aloril has joined.
04:36:45 -!- DHeadshot has quit (Ping timeout: 260 seconds).
04:38:04 * Fiora forgot how crowded this place got
04:38:22 <Bike> she says, after almost an hour of inactivity
04:38:49 <kmc> hi Fiora
04:39:03 <Fiora> <.< *pokes at bike*
04:39:18 <pikhq> 'Lo, Fiora.
04:42:56 <kmc> i like cheese and maths
04:43:54 <Fiora> cheese sounds good right now
04:45:47 -!- copumpkin has quit (Ping timeout: 252 seconds).
04:46:18 -!- copumpkin has joined.
04:47:42 <kmc> today i ate some cheese that had a Data Matrix code printed on the rind
04:52:53 <FreeFull> No cheese puns with Neo ):
04:54:02 -!- monqy has quit (Quit: hello).
04:54:16 <zzo38> kmc: Do you have a scanner to scan Data Matrix code?
04:54:46 <kmc> my phone could I guess
04:54:58 <kmc> but I don't think we got the whole code
04:55:01 <Sgeo> Data Matrix?
04:55:07 <kmc> it must have been printed on the wheel before it was sliced up
04:55:19 <kmc> my friend peeled apart the rind bfore I noticed
04:58:20 <zzo38> "I'm sorry, there are no available nodes on X-Bit BBS at this moment." I got this error message already for 24 hours. When will they fix it?
05:01:23 <shachaf> kmc: which math is your favourite
05:01:27 <Sgeo> I don't know, I don't work for X-BIt BBS, and I doubt any of us do.
05:02:08 <shachaf> did you see that dcoutts interview where they asked him what his favourite monad was
05:03:10 <zzo38> shachaf: What was the answer?
05:03:20 <shachaf> I think he changed it to Cont at the end.
05:03:23 <shachaf> You can look it up.
05:03:47 <shachaf> My favorite monad, well I have to admit I do quite a lot of programming in the IO monad but I don’t think I could say that’s my favorite one. It wouldn’t be really politically correct for me as a Haskell programmer to say IO monad. Tricky, there’s so many.
05:04:03 <shachaf> Ah, I know what the answer is: the Continuation monad that’s my favorite one, yes, definitely…
05:04:53 <kmc> i will say IO monad unashamedly
05:05:26 <shachaf> You like IO more than Cont?!
05:06:02 <Sgeo> I hate monad transformers and wonder if Cont secretly holds the key to killing them
05:06:04 <Sgeo> So Cont
05:06:16 <shachaf> It don't.
05:06:26 <kmc> well I can implement Cont easily myself, and even if I'm not allowed to make it a Monad, i can do all the same things
05:06:41 <kmc> if explicit CPS is good enough for startup rockstars then it's good enough for me
05:06:45 <shachaf> Sure.
05:06:51 <kmc> plus i like to be contrary
05:06:57 <shachaf> Well, you write in explicit CPS with any monad.
05:07:01 <shachaf> That's what do notation is.
05:07:02 <kmc> and you know my rants about imperative programming in Haskell
05:07:09 <kmc> sure, i'll buy it
05:07:19 <kmc> implicit explicit CPS :)
05:07:39 <shachaf> foo >>= \x -> bar >>= \y -> return (x,y) -- you'd call this explicit CPS?
05:07:49 <Sgeo> > liftM (+) `ap` [1,2,3] `ap` [4,5,6]
05:07:50 <lambdabot> Couldn't match expected type `(->) (a0 -> b0)'
05:07:50 <lambdabot> with actual typ...
05:07:56 <shachaf> do { x <- foo; y <- bar; return (x,y) } -- and this implicit?
05:07:58 <Sgeo> > liftM (+) [1,2,3] `ap` [4,5,6]
05:08:00 <lambdabot> [5,6,7,6,7,8,7,8,9]
05:08:12 <Sgeo> Doesn't look very explicit CPSey to me
05:08:38 <Bike> :t liftM
05:08:39 <lambdabot> Monad m => (a1 -> r) -> m a1 -> m r
05:08:53 <Sgeo> Bike, it's the same as fmap, but for monads
05:09:14 <Bike> :t fmap
05:09:15 <lambdabot> Functor f => (a -> b) -> f a -> f b
05:09:15 <shachaf> Anyway, from the perspective of callbacks etc., you make everything much more standard by: Having each callback take exactly one argument; not taking the callback argument directly, but returning a separate object which accepts it.
05:09:25 <Bike> I thought monads were functors...
05:09:38 <Sgeo> Bike, they should be, but in Haskell they're not
05:09:52 <Bike> But this is caleskell, land of the brave.
05:10:05 <shachaf> Even Cale won't stoop that low.
05:10:15 <Bike> as low as making monads functors?
05:10:41 <shachaf> So instead of read(stdout, len, function(data) { ... }, function(err) { ... }), you have the object "read(stdout, len)", which you can run() with a callback or do other thing with.
05:10:58 <shachaf> By making it its own first-class object you get all the benefits of that.
05:11:05 <shachaf> But it's still pretty mch explicit CPS.
05:11:45 <shachaf> (I think you usually read from stdin... But who knows!)
05:13:27 <zzo38> Bike: Monads are functors (specifically endofunctors), but when they made Haskell they forgot to specify that.
05:13:51 <Sgeo> I think Haskell got Monads before it got Functors?
05:14:16 <Bike> :t ap
05:14:18 <lambdabot> Monad m => m (a -> b) -> m a -> m b
05:14:19 <shachaf> i think haskell = stupidskell
05:14:28 <Bike> hackskell!
05:14:34 -!- aloril has quit (Ping timeout: 256 seconds).
05:15:10 <shachaf> You see here a scroll labelled HASKEM MUCHE.
05:20:21 <FreeFull> EH, CUM MEKSAH
05:21:08 <FreeFull> Monads are functors and applicatives
05:24:06 <Sgeo> FreeFull, theoretically yes, in Haskell, no
05:25:01 <FreeFull> Applicative has WrapMonad
05:25:27 <shachaf> Wronad. Wrong Monad
05:25:47 <shachaf> We should have a variation of rhyming slang where you LAY-contract a phrase and then LAY-expand it in a different way.
05:26:34 <kmc> haskell more like monadaskell
05:26:38 <kmc> because of all the monads you see
05:26:50 -!- monqy has joined.
05:27:00 -!- aloril has joined.
05:27:06 <FreeFull> It didn't have to be this way
05:27:22 <FreeFull> Haskell started out free from the menace of monads
05:28:49 <kmc> Haskell Episode I: The Phantom Monad
05:30:20 <kmc> Haskell Episode V: Most Ever Monadiest Monad Fucker Fuck
05:31:04 <Sgeo> Maybe the indexed Cont monad does what I seek
05:31:16 <Sgeo> erm, hmm
05:31:50 <shachaf> Sgeo: Indexed Cont... Is that like a right kan extension?
05:32:01 <Sgeo> shachaf, I have not the faintest idea
05:32:08 <Bike> are there monad-based esolangs
05:32:26 <shachaf> Sgeo: newtype Ran g h a = Ran { runRan :: forall b. (a -> g b) -> h b }
05:32:37 <shachaf> Bike: haskell. hth
05:32:43 <Bike> one where >>= and return are the only operators or some shit
05:32:54 <kmc> well i proposed an esolang named "Haskell" which would have all the properties that Haskell is commonly misunderstood to have
05:33:05 <Bike> like what
05:33:09 <shachaf> > "Haskell"
05:33:10 <lambdabot> "Haskell"
05:33:11 <shachaf> Aw.
05:33:13 <kmc> monads used for everything
05:33:23 <kmc> separate types for pure and impure functions
05:33:29 <kmc> auto memoization of functions
05:33:48 <kmc> must have 3 PhDs to write any program (this one might be tricky to implement)
05:34:18 <shachaf> i love phds
05:34:20 <shachaf> they are so easy
05:34:48 <Bike> has anyone in the world ever had three PhDs
05:34:57 <shachaf> do honorary phds count
05:35:01 <Bike> no
05:35:30 <shachaf> Hmm, maybe they're honorary doctorates but not honorary PhDs.
05:35:47 <shachaf> https://en.wikipedia.org/wiki/List_of_honorary_degrees
05:37:18 <shachaf> Should I get a PhD?
05:37:52 <monqy> This list of honorary degrees lists all honorary degrees, including honorary doctorates.
05:37:54 <Bike> You should get three, so as to optimize your Haskelling.
05:37:55 <monqy> This is an incomplete list
05:38:24 <shachaf> my doctorate is 3 phds/year
05:38:32 <shachaf> my doctoseconderivative is positive, though
05:39:40 <Bike> That was forced.
05:39:53 <shachaf> They all are!
05:39:59 <shachaf> At last Bike is beginning to see the light.
05:40:04 <shachaf> The Wikipedia article on "Honorary degree" has a "Practical use" section.
05:41:28 <monqy> Honorary Doctor of Divinity???????????
05:42:06 <shachaf> monqy: are you a doctor yet
05:42:10 <monqy> not yet
05:42:12 <shachaf> drdoctormonkey
05:42:17 <monqy> :-)
05:42:20 <kmc> it's not lupus
05:42:46 <shachaf> monqy: imo become drdoctormonkey proäctively
05:43:21 <kmc> herr doktor professor monqy
05:43:36 <shachaf> kmc: So my trip report is going to be LGA->Bronx rather than JFK->
05:43:48 <kmc> oh
05:44:06 <kmc> i thought that's what you said in the first place
05:44:11 <shachaf> Maybe it is?
05:44:16 <shachaf> For a while I thought it'd be JFK->
05:44:25 <kmc> cause i said you should take the M60 and then $train
05:44:55 <shachaf> That's when I was trying to figure out whether to go to LGA
05:45:03 <Bike> JFK -> the void
05:45:14 <kmc> JFK and beyond the infinite
05:45:19 <shachaf> My other flight is going to be JFK->SEA, though.
05:46:37 <shachaf> What's the best route LGA->~Netherland Ave.? M60+$train?
05:47:20 <kmc> is that netherland ave 10463 or netherland ave 10471
05:47:21 <shachaf> Or Q48+M60+...?
05:47:26 <kmc> "different apparently"
05:47:33 <shachaf> 10463
05:47:38 <kmc> why would you tak the Q48 first?
05:47:54 <shachaf> I'm not sure, that website suggested it.
05:48:01 * shachaf is now getting oriented.
05:48:13 <kmc> google often proposes Comedy Bus Option
05:49:03 <kmc> anyway I would take the M60 to the 1 to 231st St or so
05:49:19 <shachaf> Hmm, maps.google.com and hopstop.com have very different time estimates.
05:49:24 <kmc> but if i'm not mistaken, the walk from there to Netherland Ave is pretty seriously uphill
05:49:30 <kmc> shachaf: for the same time?
05:49:58 <shachaf> Yes, 18:00 on Wednesday.
05:50:27 <kmc> i think the walk from Spuyten Duyvil metro north station is also seriously uphill
05:50:39 <kmc> silly place names: the legacy of the dutch in north america
05:51:12 <Bike> RIP new amsterdam
05:51:23 <shachaf> seriously uphill? doesn't soudn very dutch
05:52:10 <shachaf> Hmm, the 1?
05:52:23 <kmc> isn't that the closest subway stop?
05:53:02 <kmc> you can transfer to most of the subway lines from the M60, on 125th St Manhattan
05:53:15 <kmc> so just pick the best one for your destination
05:54:09 <shachaf> Google Maps is suggesting the Hudson train now.
05:55:09 <kmc> well it costs more and runs less frequently, but ok
05:55:14 <kmc> you can get that at 125th too right?
05:55:52 <shachaf> Yes.
05:57:47 <shachaf> So I guess M60->125th is a good first step regardless.
06:04:49 -!- gatopan has joined.
06:05:17 -!- GOMADWarrior has quit (Ping timeout: 255 seconds).
06:05:38 -!- gatopan has left ("Leaving").
06:20:41 -!- aloril has quit (Ping timeout: 276 seconds).
06:29:41 -!- ogrom has joined.
06:33:17 -!- aloril has joined.
06:39:32 -!- sirdancealot has quit (Ping timeout: 272 seconds).
06:44:26 -!- sirdancealot7 has joined.
06:59:31 -!- doesthiswork has joined.
07:39:22 -!- atehwa has joined.
07:55:17 -!- augur has joined.
08:09:49 -!- ogrom has quit (Read error: Connection reset by peer).
08:21:33 -!- Taneb has joined.
08:35:38 -!- Nisstyre-laptop has quit (Quit: Leaving).
08:37:48 -!- ogrom has joined.
08:41:21 -!- zzo38 has quit (Remote host closed the connection).
08:55:12 -!- jajaja has joined.
08:55:52 <mroman> @tell nooodl_ You can use replicate. I guess.
08:55:52 <lambdabot> Consider it noted.
08:55:55 -!- jajaja has left.
08:56:24 <mroman> @tell nooodl_ There is the EvalMany function which runs a block n times.
08:56:24 <lambdabot> Consider it noted.
08:57:05 <mroman> !blsq 0 3CB
08:57:06 <blsqbot> {0}
08:57:23 <mroman> !blsq '0'3CB
08:57:23 <blsqbot> ERROR: Burlesque: (CB) Invalid arguments!
08:57:27 <mroman> !blsq '03CB
08:57:27 <blsqbot> ERROR: Burlesque: (CB) Invalid arguments!
08:57:35 <mroman> !blsq "0"3CB
08:57:35 <blsqbot> {"000"}
08:57:49 <mroman> !blsq "0"3CB2.*
08:57:49 <blsqbot> {{"000"} {"000"}}
08:58:59 <mroman> @tell nooodl_ If it's ok to have strings then a 3x2 matrix filled with zeroes is "0"3CB2.*
08:58:59 <lambdabot> Consider it noted.
08:59:22 <mroman> !blsq 0bx3.*2.*
08:59:22 <blsqbot> {{{0} {0} {0}} {{0} {0} {0}}}
08:59:31 <mroman> !blsq 0bx3.*\[2.*
08:59:32 <blsqbot> {{0 0 0} {0 0 0}}
09:00:05 <mroman> @tell nooodl_ If you need 0 digits as Ints then a 3x2 matrix is 0bx3.*\[2.* which yields {{0 0 0}{0 0 0}}
09:00:05 <lambdabot> Consider it noted.
09:00:43 <mroman> although isn't that actually a 2x3 matrix?
09:00:49 <mroman> I always forget which is which.
09:04:46 <mroman> !blsq 0bx3.*\[3.*1{0 0}D!
09:04:47 <blsqbot> ERROR: Burlesque: (D!) Invalid arguments!
09:04:53 <mroman> !blsq 0bx3.*\[3.*{0 0}1D!
09:04:54 <blsqbot> {{1 0 0} {0 0 0} {0 0 0}}
09:05:52 <mroman> !blsq 0bx3.*\[3.*0 2R@{bx[+1}[m
09:05:53 <blsqbot> Ain't nobody got time fo' dat!
09:06:00 <mroman> !blsq 0bx3.*\[3.*0 2r@{bx[+1}[m
09:06:00 <blsqbot> {1 ERROR: Burlesque: ([+) Invalid arguments! {0} 0 1 ERROR: Burlesque: ([+) Inva
09:06:05 <mroman> !blsq 0bx3.*\[3.*0 2r@{bx\/[+1}[m
09:06:05 <blsqbot> {1 {0 0} 1 {1 1} 1 {2 2}}
09:06:35 <mroman> !blsq 0bx3.*\[3.*0 2r@{1\/^^bx\/[+}m[
09:06:35 <blsqbot> {{0 0} 1 {1 1} 1 {2 2} 1}
09:06:49 <mroman> !blsq 0bx3.*\[3.*0 2r@{1\/^^bx\/[+(D!)}m[e!
09:06:49 <blsqbot> 1
09:06:54 <mroman> oh come on :(
09:06:58 <mroman> !blsq 0bx3.*\[3.*0 2r@{1\/^^bx\/[+(D!)}m[
09:06:58 <blsqbot> {D! {0 0} 1 D! {1 1} 1 D! {2 2} 1}
09:07:10 <mroman> !blsq 0bx3.*\[3.*0 2r@{(D!)\/1\/^^bx\/[+}m[
09:07:11 <blsqbot> {{0 0} 1 D! {1 1} 1 D! {2 2} 1 D!}
09:07:14 <mroman> !blsq 0bx3.*\[3.*0 2r@{(D!)\/1\/^^bx\/[+}m[e!
09:07:15 <blsqbot> {{1 0 0} {0 1 0} {0 0 1}}
09:08:27 <mroman> @tell nooodl_ If you're working with nested blocks d! and D! might be of use
09:08:27 <lambdabot> Consider it noted.
09:08:49 <mroman> @tell nooodl_ 0bx3.*\[3.*0 2r@{(D!)\/1\/^^bx\/[+}m[e!
09:08:49 <lambdabot> Consider it noted.
09:09:03 <mroman> Ok. Enough spam :)
09:10:45 <monqy> @ask nooodl hey mroman just sent nooodl_ a few messages you might want to check them
09:10:45 <lambdabot> Consider it noted.
09:11:19 <elliott> @ask nooooodl hello
09:11:19 <lambdabot> Consider it noted.
09:12:36 <mroman> He should just use one nick instead of hundreds.
09:23:47 <mroman> !blsq 0 2r@^^z[
09:23:48 <blsqbot> {{0 0} {1 1} {2 2}}
09:24:06 <mroman> There's gotta be a better way to generate an identity matrix
09:25:47 <mroman> !blsq 0 2r@{0bx3.*\/D!}m[
09:25:48 <blsqbot> {ERROR: Burlesque: (D!) Invalid arguments! 0 {{0} {0} {0}} ERROR: Burlesque: (D!
09:26:01 <mroman> !blsq 0 2r@{0bx3.*\/1D!}m[
09:26:02 <blsqbot> {ERROR: Burlesque: (D!) Invalid arguments! 1 0 {{0} {0} {0}} ERROR: Burlesque: (
09:26:25 <mroman> !blsq 0 2r@{0bx3.*\/1sa}m[
09:26:25 <blsqbot> {{{0} 0 {0}} {{0} 1 {0}} {{0} 2 {0}}}
09:27:16 <mroman> !blsq 0 2r@{0bx3.*1x/sa}m[
09:27:17 <blsqbot> {{1 {0} {0}} {{0} 1 {0}} {{0} {0} 1}}
09:27:25 <mroman> !blsq 0 2r@{0bx3.*\[1x/sa}m[
09:27:25 <blsqbot> {{1 0 0} {0 1 0} {0 0 1}}
09:27:53 <mroman> now I just need to inject some more code into it
09:28:37 -!- nooga has joined.
09:29:08 <mroman> !blsq 3^^0\/?dr@{0bx3.*\[1x/sa}2sa#s
09:29:08 <blsqbot> {{0 1 {0 bx 3 .* \[ 1 x/ sa}} 3}
09:31:13 <mroman> neat.
09:32:13 -!- Bike has quit (Quit: leaving).
09:42:29 <Taneb> I wonder how hard it'd be to write a web browser purely in Haskell
09:46:23 <Taneb> The renderer'd be tricky, but almost everything else already exists
09:46:58 <mroman> there s a web browser in haskell
09:47:06 <monqy> not purely
09:48:58 -!- Sgeo_ has joined.
09:49:16 -!- Sgeo has quit (Read error: Connection reset by peer).
09:50:33 <doesthiswork> `plist
09:50:36 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: plist: not found
10:06:28 -!- HSgeo has joined.
10:07:04 -!- HSgeo has left ("well, this requires me to put a part message. Ok.").
10:15:01 -!- Taneb has quit (Quit: awwwaaaaaaaaay).
10:21:01 -!- epicmonkey has joined.
10:35:02 -!- copumpkin has quit (Ping timeout: 252 seconds).
10:35:33 -!- copumpkin has joined.
10:52:45 -!- nooodl has joined.
10:54:41 -!- monqy has quit (Quit: hello).
10:56:35 <mroman> hi nooodl
10:56:40 <nooodl> hey
10:56:40 <lambdabot> nooodl: You have 1 new message. '/msg lambdabot @messages' to read it.
10:56:58 -!- nooodl has changed nick to nooodl_.
10:57:32 <shachaf> hooodl_
10:57:55 -!- nooodl_ has changed nick to nooodl.
10:58:19 <nooodl> @tell monqy thanks
10:58:19 <lambdabot> Consider it noted.
10:58:36 <shachaf> thonqy
10:58:48 <mroman> nooodl: I sent some messages to nooodl_
10:59:05 <nooodl> yeah, monqy sent a message to nooodl telling me so
10:59:11 <mroman> ok
10:59:14 <mroman> then everything's fine :)
10:59:36 <nooodl> i was working on langton's ant and it looked something like this near the end
10:59:37 <nooodl> {1 0} {10 10} 0 {bxcy21.+} 2E! { #R {-1 1} {<-} #s3!!#s5!!d! hd#a if {pd}Z[ #r #s1!! #bn! D! \/#s3!! {++}Z[ \/ x/vv }20E! p^
10:59:40 <nooodl> (this doesn't work)
10:59:45 <shachaf> @ask monqy your services are greatly appreciated
10:59:45 <lambdabot> Consider it noted.
11:00:10 <nooodl> anyway stack manipulation in this thing seems... almost impossible
11:00:40 <nooodl> are #a #b #c the only way to have variables?
11:04:06 <nooodl> also, a burlesque command idea i had while working on this: haskell's "iterate"
11:04:35 <nooodl> 1 {2*} It --> {1 2 4 8 16 ...}
11:24:06 <Sgeo_> I seriously need to stop listening to music when I read
11:24:21 <Sgeo_> The songs and the stories get indelibly connected in my mind
11:24:30 <Sgeo_> And I can't listen to the music without thinking about the story
11:25:07 <doesthiswork> that is why bad fanfic writers write while listening to music
11:28:18 <mroman> nooodl: impossible?
11:28:24 <mroman> you have swap, dup, pop, rotate
11:28:35 <mroman> and #a are not variables
11:28:55 <mroman> they just sorta behave like that
11:28:57 <doesthiswork> mroman: what bout bopit?
11:29:15 <nooodl> how do you retrieve things that have >3 things on top of them in the stack?
11:29:22 <mroman> nooodl: Also... those "variables" only exist in the current scope
11:29:26 <mroman> !blsq 5hd#a
11:29:27 <blsqbot> 5
11:29:39 <mroman> !blsq 5hd{1}{#a}m[
11:29:40 <blsqbot> {ERROR: Can't load non hidden state! Sorry. 1}
11:29:52 <mroman> ^- map has no access to #a
11:30:24 <nooodl> maybe...
11:30:32 <nooodl> !blsq 1 2 3 4 hdx/ld
11:30:33 <blsqbot> ERROR: Can't load non hidden state! Sorry.
11:30:38 <mroman> nooodl: There are a couple of ways to do that
11:30:52 <nooodl> !blsq 1 2 3 4 hdx/ #s
11:30:52 <blsqbot> {1 3 2 }
11:30:54 -!- jix has quit (Ping timeout: 276 seconds).
11:31:04 <mroman> in earlier versions you could pop to a list
11:31:08 <mroman> like
11:31:13 <mroman> !blsq 1 2 3 4bx
11:31:14 <blsqbot> {4}
11:31:16 <mroman> !blsq 1 2 3 4bx+]
11:31:17 <blsqbot> ERROR: Burlesque: (+]) Invalid arguments!
11:31:20 <mroman> !blsq 1 2 3 4bx\/+]
11:31:20 <blsqbot> {3 4}
11:31:26 <mroman> !blsq 1 2 3 4bx\/+]\/+]
11:31:27 <blsqbot> {2 3 4}
11:31:36 <mroman> and then access specific elements in that list
11:31:45 <mroman> however, now Burlesque has #s and #S (push/pop stack)
11:31:48 <mroman> !blsq 1 2 3 4#s
11:31:49 <blsqbot> {4 3 2 1}
11:31:50 -!- jix has joined.
11:32:07 <mroman> You can push the whole stack, manipulate it
11:32:33 <mroman> #s #S allows you to do everything with the stack
11:32:46 <mroman> !blsq 1 2 3 4#s<-#S#s
11:32:47 <blsqbot> {1 2 3 4}
11:32:54 <mroman> ^- reverses the stack
11:33:03 <mroman> !blsq 1 2 3 4#s2di#s#s
11:33:03 <blsqbot> {{ERROR: Burlesque: (e!) Invalid arguments! ERROR: Burlesque: ([+) Invalid argum
11:33:07 <mroman> hm
11:33:13 <mroman> !blsq 1 2 3 4#s{2}di#s#s
11:33:14 <blsqbot> {{{4 3 1} 4 3 2 1} {4 3 1} 4 3 2 1}
11:33:19 <mroman> !blsq 1 2 3 4#s{2}di#S#s
11:33:20 <blsqbot> {4 3 1}
11:33:31 <mroman> ^- removes an element from the stack
11:33:35 <mroman> (position 2)
11:33:58 <mroman> You essentially have random access to the stack
11:34:15 <mroman> you can delete elements deep down, you can access elements deep down, you can do everything with it.
11:34:29 <nooodl> i gues my #s3!! approach wasn't too bad
11:34:48 <mroman> And there's XSwap
11:34:53 <mroman> !blsq 1 2 3#s
11:34:54 <blsqbot> {3 2 1}
11:34:57 <mroman> !blsq 1 2 3x/#s
11:34:58 <blsqbot> {1 3 2}
11:35:19 <mroman> which rotates the first three elements
11:35:20 <shachaf> !lbsq
11:35:39 <blsqbot> Lebesque integral not available
11:39:42 <mroman> also
11:39:52 <mroman> there's a censored bar over a womans bikini on tv
11:40:04 <mroman> like I wouldn't see that all the time during summer but ok.
11:40:26 <mroman> english tv is doing it weird.
11:40:32 -!- oerjan has joined.
11:42:21 <shachaf> g'oerjan
11:42:34 <oerjan> h'achaf
11:45:02 <nooga> i''janachoeraf
11:45:56 <oerjan> ł'nooga
11:46:24 <blsqbot> 'ello everybudha
11:46:51 <nooga> Ü
11:47:17 <lambdabot> blsqbot: this channel ain't big enough for the two of us
11:49:08 -!- wareya has quit (Read error: Connection reset by peer).
11:49:41 <nooga> i tried to write a minecraft mod in clojure
11:49:44 <nooga> and failed
11:49:52 -!- wareya has joined.
11:49:56 <nooga> and then i tried the same with Mirah
11:50:45 <nooga> and failed because its compiler is bug ridden piece of crap
11:50:56 <elliott> iirc i wrote a minecraft mod in scala then gave up and used java
11:51:01 <elliott> by minecraft i mean bukkit
11:51:10 <nooga> i tried with forge
11:51:27 <blsqbot> didn't anyone fix this yet.
11:52:19 <nooga> basically you just build annotated class that initializes the mod and does whatever it likes with minecraft/forge api
11:52:23 <nooga> pack it in jar
11:52:33 <nooga> and FML should load the mod
11:58:20 <nooga> but mirah compiler crashes on imports from forge api and clojure generates weird class files
11:58:37 <nooga> and I don't know java platform enough to troubleshoot this
12:05:32 -!- Phantom_Hoover has joined.
12:12:06 <elliott> what do you call the category that has all the objects of another category C, but only identity arrows?
12:12:58 <shachaf> Discrete subcategory?
12:16:23 <elliott> ok, sure
12:16:28 <shachaf> I guess there are lots of discrete subcategories.
12:16:43 <shachaf> So maybe "maximal" or something.
12:16:57 <elliott> so equality (as in refl : a = a) in a language Foo is a functor in the maximal discrete subcategory of Foo
12:17:07 <elliott> that is instead of (a -> b) -> eq x a -> eq x b, you get
12:17:12 <elliott> eq a b -> eq x a -> eq x b
12:17:25 <elliott> because every arrow is (a -> a)
12:17:34 <elliott> and hence being given hom(A,B) proves A = B
12:19:10 <shachaf> An endofunctor?
12:19:13 <elliott> no
12:19:23 <elliott> Eq : MaxDisc(Foo) -> Foo
12:19:30 <shachaf> Ah.
12:19:31 <elliott> because you get (a `eq` b) -> (eq x a -> eq x b)
12:19:51 <elliott> in fact every type constructor F admits a functor MaxDisc(Foo) -> Foo
12:19:54 <shachaf> OK, sure.
12:19:55 <elliott> (a `eq` b) -> (F a -> F b)
12:20:04 <elliott> that's pretty interesting
12:20:27 -!- SimonRC has quit (Ping timeout: 260 seconds).
12:21:45 <elliott> if F is injective then you get MaxDisc(Foo) -> Foo
12:21:50 <elliott> (a `eq` b) -> (F a `eq` F b)
12:21:54 <elliott> (e.g. doesn't apply to Haskell TFs)
12:21:57 <elliott> er
12:22:00 <elliott> if F is injective then you get MaxDisc(Foo) -> Foo
12:22:04 <elliott> if F is injective then you get MaxDisc(Foo) -> MaxDisc(Foo)
12:23:34 <shachaf> Sounds reasonable.
12:24:05 <elliott> what other "weakened" functors can you get
12:24:12 <elliott> i.e. Something(Foo) -> Foo
12:24:18 <elliott> where Somethin only removes stuff
12:24:27 <elliott> (forgetful category!!!)
12:25:00 <shachaf> What do you get if you forget which arrow is which?
12:25:10 <shachaf> I.e. you have at most one arrow between objects.
12:25:47 <elliott> how do you pick which arrow?
12:25:53 <elliott> just arbitarily? seems like the choice might affect things
12:26:07 <shachaf> It doesn't matter.
12:26:12 <shachaf> Oh, you mean for the functor back.
12:27:33 <elliott> I didn't, but OK
12:27:40 <shachaf> Then what did you mean?
12:29:14 <elliott> I don't know
12:32:40 -!- Frooxius has joined.
12:32:48 -!- Frooxius has quit (Client Quit).
12:33:00 -!- Frooxius has joined.
12:51:32 <FreeFull> elliott: confunctor?
12:51:42 <FreeFull> cofunctor*
12:51:48 <FreeFull> Actually, wait
12:52:01 <FreeFull> Functors don't even have pure/return/whatever
12:52:12 <elliott> ?
12:52:17 * elliott is confused
12:52:53 <FreeFull> Your forgetful category
12:53:03 <FreeFull> Looks like a more general comonad
12:54:07 <shachaf> are you confused because you're trying to understand what FreeFull is saying
12:54:19 <FreeFull> I think so
12:54:27 <FreeFull> I tend to do that
12:55:48 -!- sebbu has quit (Ping timeout: 248 seconds).
12:57:14 <oerjan> FreeFull: forgetful/free functors are adjoint pairs, which give rise to _both_ a monad and a comonad, in the respective categories.
12:58:48 <oerjan> if you identify all arrows, you get a category equivalent (not quite isomorphic, since there might still be isomorphic non-equal objects) to a partial order.
12:58:53 <oerjan> elliott: ^
12:59:20 <oerjan> um
12:59:22 <oerjan> shachaf: ^
12:59:43 <shachaf> oerjan: Right.
12:59:54 <elliott> oerjan: do you have a good name for my thing?
13:00:04 <oerjan> which one
13:00:07 <shachaf> @google "largest discrete subcategory"
13:00:09 <lambdabot> http://planetmath.org/encyclopedia/EmptyFunctor.html
13:00:09 <lambdabot> Title: PlanetMath
13:00:15 <elliott> oerjan: same objects as another category, but only identity arrows
13:00:45 -!- carado has joined.
13:01:07 <oerjan> not anything official, no
13:02:00 -!- DHeadshot has joined.
13:02:51 <FreeFull> data Empty a = Empty
13:03:16 <FreeFull> instance Functor Empty where { fmap f a = a } right?
13:03:29 <FreeFull> Wait
13:03:36 <FreeFull> Probably should be f a on the other side too
13:03:49 <shachaf> make it fmap f a on both sides
13:03:51 <shachaf> just to be safe
13:04:45 <FreeFull> Mmm, bottommap
13:05:15 <FreeFull> shachaf: I'm just thinking that fmap bottom should always be bottom
13:05:24 <FreeFull> That might not be a law though
13:05:25 -!- sebbu has joined.
13:05:25 -!- sebbu has quit (Changing host).
13:05:25 -!- sebbu has joined.
13:06:10 -!- DHeadshot has quit (Ping timeout: 246 seconds).
13:06:55 -!- DHeadshot has joined.
13:07:06 <elliott> f a doesn't type, for one
13:07:19 <FreeFull> :t fmap
13:07:19 <shachaf> Nor does a.
13:07:20 <lambdabot> Functor f => (a -> b) -> f a -> f b
13:07:27 <shachaf> But fmap f a types!
13:07:29 <shachaf>
13:07:31 <shachaf> Er.
13:07:33 <shachaf>
13:07:41 <FreeFull> shachaf: bottom always types
13:07:49 <shachaf> Not true.
13:08:12 <FreeFull> Well, until a type is assigned to it
13:08:16 <elliott> what
13:08:44 <FreeFull> (let x = x in x) should be able to be put anywhere, right?
13:09:19 <elliott> modulo some edge-cases (rank-n/constraints), sure
13:09:33 <elliott> as long as the whole thing types.
13:09:48 <shachaf> If the whole thing doesn't type, at least the hole thing will type.
13:12:02 -!- Taneb has joined.
13:12:07 <FreeFull> What if the hole thing doesn't type? Will the ole thing type?
13:13:48 <shachaf> I don't know what OLE has to do with any of it.
13:14:46 <FreeFull> shachaf: Haskell used to be a microsoft research project
13:14:52 <FreeFull> OLE is from microsoft too
13:15:01 <oerjan> !blsq 1 2 3 4 {} c! #s
13:15:02 <blsqbot> {4 4 3 2 1}
13:15:32 <oerjan> !blsq 1 2 3 4 #s ^^
13:15:32 <blsqbot> {4 3 2 1}
13:15:35 <oerjan> oops
13:15:40 <oerjan> !blsq 1 2 3 4 #s ^^ .+
13:15:41 <blsqbot> {4 3 2 1 4 3 2 1}
13:16:03 <FreeFull> ^^ is dup?
13:16:11 <FreeFull> !blsq 3 3 ^^ +
13:16:11 <blsqbot> ERROR: (line 1, column 9):
13:16:12 <FreeFull> !blsq 3 3 ^^ .+
13:16:13 <blsqbot> 6
13:16:16 <FreeFull> Seems so
13:16:55 -!- Taneb has quit (Ping timeout: 260 seconds).
13:17:34 <oerjan> FreeFull: instance Functor Empty where { fmap f a = a `seq` Empty }
13:18:10 -!- sebbu has quit (Ping timeout: 256 seconds).
13:18:47 <FreeFull> So evaluate a and return Empty
13:19:06 <elliott> oerjan: ew.
13:19:07 <oerjan> because a may not be the type of the Empty you want out
13:19:16 <FreeFull> Oh, right
13:19:18 <shachaf> elliott: ?
13:19:20 <oerjan> elliott: ok, another possibility
13:19:22 <shachaf> Do you hate the Functor laws?
13:19:24 <FreeFull> And f wouldn't really apply either way
13:19:36 <oerjan> instance Functor Empty where { fmap f a = unsafeCoerce a }
13:19:49 <oerjan> elliott: better?
13:19:52 <elliott> yes
13:19:53 <shachaf> Much bettoerjan
13:20:14 <oerjan> (it should be entirely equivalent semantically, i think)
13:20:14 <shachaf> Except you should alpha-reduce it.
13:20:22 <oerjan> shachaf: oh right
13:20:33 <shachaf> oerjan: I like the part where you act like unsafeCoerce has semantics.
13:20:49 <oerjan> instance Functor Empty where { fmap = const unsafeCoerce } -- perfect?
13:22:03 <oerjan> shachaf: i think this is actually one of the listed intended uses of it, changing a phantom type
13:22:12 <shachaf> Maybe unsafeCoerce (flip const)
13:22:41 <oerjan> shachaf: ooh
13:23:25 <oerjan> FreeFull: i think we just jumped the shark but i'm not entirely sure where
13:23:47 <shachaf> jarked
13:24:52 <elliott> hopefully ghc is smart enough to not require unsafeCoerce here
13:25:01 <shachaf> ?
13:25:17 <FreeFull> oerjan: Probably when we started
13:25:18 <oerjan> elliott: fmap f a = a clearly doesn't type
13:25:32 <elliott> I mean vs. the seq version
13:25:39 <elliott> or just fmap f Empty = Empty
13:25:43 -!- sebbu has joined.
13:25:43 -!- sebbu has quit (Changing host).
13:25:43 -!- sebbu has joined.
13:25:45 <shachaf> elliott: Well...
13:25:54 <shachaf> In this case, maybe, but it's not so simple.
13:25:54 <elliott> don't ruin it.
13:25:57 <oerjan> elliott: well the seq version would allocate a new Empty
13:26:04 <elliott> i know for recursive stuff it's not so easy
13:26:04 <shachaf> oerjan: No it wouldn't. There's only one Empty.
13:26:32 <oerjan> shachaf: does ghc know that for different types?
13:27:25 <oerjan> <elliott> or just fmap f Empty = Empty <-- oh duh of course :P
13:27:36 <shachaf> Yes.
13:27:36 <elliott> well it can't "allocate a new empty" when it's just a constant pointer
13:27:37 <FreeFull> I was going to suggest that
13:27:41 <FreeFull> But you guys were going wild
13:28:07 <shachaf> However, consider data Blah a b c = Blah a b
13:28:19 <oerjan> elliott: oh hm right it's a polymorphic constant
13:28:21 <shachaf> reblah :: a b x -> a b y; reblah (Blah a b) = Blah a b
13:28:32 <shachaf> Here, GHC will allocate a new Blah.
13:29:00 <shachaf> (Note: Things like this come up in practice.)
13:29:30 <elliott> that reblah has an interesting type
13:29:43 <oerjan> was about to say
13:30:04 <shachaf> hi
13:30:40 <shachaf> I would've used something like Tagged but then elliott would have pedantically pointed out something about newtypes.
13:31:18 <oerjan> shachaf: i'm not sure we're referring to what you are referring to
13:31:28 <shachaf> oerjan: I noticed.
13:31:32 <shachaf> That was the "hi".
13:31:38 <oerjan> OKAY
13:31:40 -!- sebbu has quit (Ping timeout: 260 seconds).
13:31:40 <shachaf> I thought the discussion was done with.
13:31:48 <shachaf> What, you want me to correct it? Is that what you want, oerjan?
13:31:57 <shachaf> reblah :: Blah a b x -> Blah a b y; reblah (Blah a b) = Blah a b
13:32:03 <shachaf> Are you feeling happier now?
13:32:15 <oerjan> slightly
13:32:17 * shachaf vanishes in a puff of meaningless fury.
13:33:21 <shachaf> Hmm, oerjan, what do you think of my GHC extension?
13:33:38 <shachaf> http://hackage.haskell.org/trac/ghc/ticket/7633
13:34:41 <mroman> ^^ is dup.
13:34:46 <shachaf> ?
13:34:56 <oerjan> shachaf: that's so excellent i even remember thinking of something like that myself
13:35:06 <shachaf> So have I!
13:35:11 <shachaf> Several times, before I proposed it.
13:35:19 <shachaf> I've wanted it for a long time.
13:35:31 <shachaf> oerjan: Is it so excellent you feel like implementing it?
13:35:38 -!- sebbu has joined.
13:35:38 -!- sebbu has quit (Changing host).
13:35:38 -!- sebbu has joined.
13:35:52 <oerjan> very few things are _that_ excellent, shachaf
13:36:17 -!- DHeadshot has quit (Ping timeout: 246 seconds).
13:36:20 <oerjan> i take solace in the fact that there's no way in h* my laptop could compile ghc.
13:36:34 <shachaf> Really?
13:36:45 <shachaf> Compiling GHC is an old tradition.
13:37:27 <oerjan> let's put it like this: i had to disable the antivirus to get it through compiling lens.
13:37:49 <oerjan> or wait
13:38:04 <oerjan> i think it may have been cabal itself
13:38:13 <shachaf> Well, lens is a virus, so that makes perfect sense.
13:38:24 <oerjan> and then i just did it when compiling lens as well to make things easier.
13:41:53 -!- Taneb has joined.
13:43:55 -!- sebbu has quit (Ping timeout: 260 seconds).
13:43:55 <Vorpal> hi
13:44:02 <oerjan> oh no, Vorpal too
13:44:08 <Taneb> And Taneb!
13:44:12 <Taneb> Maybe
13:44:21 <oerjan> Taneb: you didn't say "hi". this time, anyway.
13:44:26 <Taneb> Oh
13:44:28 <Taneb> Okay
13:44:30 <Taneb> Not me
13:44:39 <oerjan> but it's good
13:44:45 <Vorpal> <oerjan> i take solace in the fact that there's no way in h* my laptop could compile ghc. <-- there are binary distributions?
13:44:47 <oerjan> that you didn't
13:45:06 <oerjan> Vorpal: the context was the idea of me modifying it
13:45:11 <Vorpal> ah
13:45:32 <Vorpal> oerjan, windows?
13:45:37 <oerjan> yes
13:45:45 <Vorpal> that explains a bit of it
13:45:56 <oerjan> windows XP with very little memory by today's standards
13:46:20 <Vorpal> ah
13:46:33 <Vorpal> do they still provide security fixes for XP?
13:46:38 <oerjan> yes
13:46:45 <Vorpal> weird
13:47:03 <Vorpal> so when are you going to switch from XP?
13:48:26 <oerjan> i dunno
13:49:47 <Taneb> I wonder if in a few years people will be okay with Windows 8
13:51:22 <Vorpal> Taneb, I think it will become another vista for desktops/laptops but might do okay on tablets
13:53:41 <Taneb> I SHALL BEAR THAT IN MIND
13:53:43 -!- Taneb has quit (Quit: Leaving).
13:53:49 -!- sebbu has joined.
13:53:49 -!- sebbu has quit (Changing host).
13:53:49 -!- sebbu has joined.
13:54:54 -!- oerjan has quit (Quit: leaving).
14:03:58 -!- doesthiswork has quit (Quit: Leaving.).
14:04:55 -!- sebbu has quit (Ping timeout: 260 seconds).
14:13:54 <Vorpal> I spent like 5 minutes trying to figure out why I couldn't copy a file to a FAT32 partition... It was because it had a : in the file name apparently.
14:17:50 <Vorpal> I'm currently being amazed by the fact that I can drag a directory from a thunar (xfce file manager) window into a program running under wine and have it work flawlessly
14:17:54 <Vorpal> wine has come a LONG way since I last used it
14:21:06 -!- sebbu has joined.
14:21:06 -!- sebbu has quit (Changing host).
14:21:06 -!- sebbu has joined.
14:23:25 -!- azaq23 has joined.
14:23:37 -!- azaq23 has quit (Max SendQ exceeded).
14:28:43 -!- ogrom has quit (Quit: Left).
14:40:32 -!- impomatic has quit (Ping timeout: 255 seconds).
14:44:39 -!- azaq23 has joined.
15:19:13 -!- glogbackup has quit (Remote host closed the connection).
15:33:04 -!- GOMADWarrior has joined.
15:35:20 -!- Taneb has joined.
15:45:45 <Sgeo_> A girl is trying to meet me in person so I can fix her computer issue, which boils down to her wanting to use a Windows program on her Mac.
15:45:54 -!- TeruFSX has joined.
15:46:14 <Sgeo_> I suggested trying the newer version of the software, which has a Mac version, but she would rather not do that unless she has "someone who knows what they're doing" by her side
15:46:15 <quintopia> you're such a nice guy
15:47:18 <Sgeo_> Honestly, I'm almost tempted to think that this is just an excuse to see me or something. But she has a fiancee, and she knows I have a girlfriend.
15:47:33 <quintopia> you think too much
15:55:10 -!- sebbu has quit (Ping timeout: 260 seconds).
15:58:42 -!- sebbu has joined.
16:07:42 -!- doesthiswork has joined.
16:16:05 -!- impomatic has joined.
16:17:16 <Vorpal> doesthiswork, no it doesn't
16:17:44 <Vorpal> (sorry if you heard that joke before a hundred times)
16:18:30 <Sgeo_> I think that joke's once been done in a subtle enough way that someone didn't get it
16:21:19 <Vorpal> okay
16:22:19 <mroman> What?
16:22:26 <mroman> I thought it meant doest his work
16:44:05 -!- copumpkin has quit (Ping timeout: 252 seconds).
16:44:37 -!- copumpkin has joined.
16:47:54 -!- TeruFSX has quit (Ping timeout: 256 seconds).
16:52:27 -!- TeruFSX has joined.
16:53:10 -!- TeruFSX has quit (Client Quit).
16:54:27 <kmc> Sgeo_: maybe she wants to have a threesome with you and her fiancee
16:55:03 <Taneb> So What has a similar theme to I Will Survive
17:04:39 -!- azaq23 has quit (Max SendQ exceeded).
17:04:54 <Phantom_Hoover> Taneb, eye of the tiger/
17:07:00 -!- azaq23 has joined.
17:37:47 <mroman> nooodl: How are things going? :D
17:40:23 -!- Bike has joined.
17:48:32 <mroman> Barenaked Lades are awesome.
17:48:35 <mroman> *Ladies
17:51:47 <Phantom_Hoover> barenaked ladles
17:54:08 -!- Slereah_ has joined.
17:54:28 -!- Slereah has quit (Ping timeout: 256 seconds).
17:55:20 -!- epicmonkey has quit (Ping timeout: 260 seconds).
18:00:03 -!- Taneb has quit (Quit: Leaving).
18:06:30 <Sgeo_> Home.
18:06:34 <Sgeo_> Did not have wild sex.
18:07:00 <Bike> :(
18:07:59 <Sgeo_> I manage to have inhibitions somehow even when dead tired. Girl repeatedly says that she owes me, is there anything she can do, etc. etc., and I manage to keep my inappropriate thoughts in my head
18:10:06 <Phantom_Hoover> maybe she
18:10:09 <Phantom_Hoover> wasn't talking about sex
18:10:54 <Sgeo_> Phantom_Hoover, that seems quite likely, and, as such, it was probably a good thing to keep my thoughts to myself.
18:11:18 <nooodl> alright it's burlesque time
18:11:21 <Bike> so uh
18:11:21 <Phantom_Hoover> that is also generally a good life tip
18:11:31 <Bike> good job not freaking out some chick??
18:13:34 -!- TeruFSX has joined.
18:14:53 <kmc> weird situation Sgeo_
18:15:32 <Sgeo_> kmc, not.. really? Profoundly computer illiterate girl needs help, I help her, she's grateful? Only thing weird is my mind
18:15:38 <kmc> i see
18:15:55 <kmc> i think most men attracted to women have these kinds of thoughts
18:16:19 <kmc> at least below a certain age
18:17:17 <Sgeo_> I think though that in the past (not this situation) I may have held inappropriate thoughts back and that was to a detriment?
18:17:22 <Sgeo_> Seems possible, anyway
18:17:45 <kmc> well that depends on whether they were really 'inappropriate' or not
18:17:59 <kmc> will your girlfriend be upset if you sleep with another woman
18:18:20 <Sgeo_> By "the past" I tend to be thinking of situations before I got together with my gf
18:19:33 -!- AnotherTest has joined.
18:19:49 <AnotherTest> hello - to do a taneb
18:21:44 <Sgeo_> What just came to mind was the time in 2011 when I was talking to a girl on webcam and she wanted to play a "game" that was just asking each other questions, said I could ask _anything_. And then eventually sexual questions were asked. And I _still_ was convinced that there was no way anything... "interesting" would happen.
18:22:25 <kmc> you didn't answer my question but,
18:22:36 <kmc> i think me trying to bring up discussion of monogamy might constitute trolling
18:22:47 <AnotherTest> why do you talk to girls on webcam, that just sounds wrong sorry
18:22:48 <Sgeo_> 2011 was before I got together with my gf
18:23:07 <Sgeo_> And my gf would be mad if I slept with another girl.
18:23:20 <AnotherTest> I assume
18:24:18 -!- md_5 has quit (Ping timeout: 276 seconds).
18:28:09 <nooodl> mroman: why does dupswap exist?
18:29:05 -!- md_5 has joined.
18:30:00 <kmc> wubwubwub
18:30:42 <mroman> nooodl: For completeness obviously.
18:31:49 <mroman> better to have it and not use it than to need it and not have it.
18:32:15 <AnotherTest> !blsq 25 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w!
18:32:15 <blsqbot> Ain't nobody got time fo' dat!
18:32:21 <AnotherTest> :(
18:32:23 <mroman> In this case, never ever use it
18:32:27 <AnotherTest> !blsq 5 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w!
18:32:27 <blsqbot> Ain't nobody got time fo' dat!
18:32:33 <mroman> AnotherTest: You got 100 Microseconds
18:32:39 <AnotherTest> oh :(
18:32:46 <AnotherTest> !blsq 2 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w!
18:32:46 <blsqbot> Ain't nobody got time fo' dat!
18:33:00 <AnotherTest> mroman: division by 2 takes 100 microseconds?
18:33:12 <mroman> !blsq 10 2 ./
18:33:13 <blsqbot> 5
18:33:17 <mroman> ^- no
18:33:27 <AnotherTest> well, generating the collatz sequence for 2
18:33:33 <AnotherTest> !blsq 1 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w!
18:33:33 <blsqbot> Ain't nobody got time fo' dat!
18:33:37 <AnotherTest> common
18:33:48 <nooodl> there's no comments, right?
18:33:59 <nooodl> i'll have to do something like "hello"vv?
18:34:03 <mroman> nooodl: Except "this is a comment"vv
18:34:12 <nooodl> right.
18:34:56 <AnotherTest> or { would this work } vv
18:35:03 <AnotherTest> !blsq { would this work } vv
18:35:04 <blsqbot> ERROR: (line 1, column 8):
18:35:09 <AnotherTest> oh no doesn't of course
18:35:23 <AnotherTest> !blsq { li ke th is }vv
18:35:24 <blsqbot> No output!
18:35:28 <mroman> !blsq {wouldthiswork}vv
18:35:29 <blsqbot> ERROR: (line 1, column 15):
18:35:32 <mroman> !blsq {wouldthiswork.}vv
18:35:33 <blsqbot> No output!
18:35:53 <AnotherTest> !blsq 2 {0 1}{^^++[+[-^^-]\/}30.*\[e!vv
18:35:53 <blsqbot> Ain't nobody got time fo' dat!
18:35:55 <AnotherTest> pff
18:36:09 <mroman> !blsq {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != }
18:36:10 <blsqbot> {1 !=}
18:36:17 <mroman> !blsq 1 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != }
18:36:18 <blsqbot> {1 !=}
18:36:22 <AnotherTest> !blsq 4 ^^{\/^^.+\/1.-}{}w!vv
18:36:23 <blsqbot> 64
18:36:24 <mroman> !blsq 1 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } e!
18:36:25 <blsqbot> 1
18:36:25 <AnotherTest> what?
18:36:29 <mroman> !blsq 1 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w!
18:36:29 <blsqbot> 1
18:36:39 <mroman> !blsq 2 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w!
18:36:40 <blsqbot> 1
18:36:42 <AnotherTest> oh wait, that's ok
18:36:47 <mroman> !blsq 10 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w!
18:36:48 <blsqbot> 1
18:36:53 <AnotherTest> 5 {0\/1.-}{1.-}w!vv
18:37:01 <AnotherTest> !blsq 5 {0\/1.-}{1.-}w!vv
18:37:01 <blsqbot> 0
18:37:07 <AnotherTest> mroman: that borke
18:37:11 <AnotherTest> *broke
18:37:17 <AnotherTest> It should output 4 zeroes on the stack
18:37:30 <mroman> blsqbot does not print the whole stack
18:37:33 <mroman> just the top
18:39:01 <AnotherTest> oh
18:39:11 <AnotherTest> ok how do I make a string of all stack elements?
18:39:23 <mroman> nooodl: No. DupSwap is just there because of copy & paste ;)
18:39:30 <mroman> AnotherTest: #s
18:39:34 <mroman> !blsq 1 2 3 4#s
18:39:35 <blsqbot> {4 3 2 1}
18:40:00 <mroman> !blsq 1 2 3 4#s)Sh
18:40:00 <blsqbot> {"4" "3" "2" "1"}
18:40:04 <mroman> !blsq 1 2 3 4#s)Shwd
18:40:05 <blsqbot> "4 3 2 1"
18:40:39 <AnotherTest> great
18:40:51 <AnotherTest> !blsq 5 {0\/1.-}{1.-}w!vv #s
18:40:51 <blsqbot> {0 0 0 0}
18:40:53 <AnotherTest> nice
18:41:03 <AnotherTest> !blsq 100 {0\/1.-}{1.-}w!vv #s
18:41:03 <blsqbot> {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18:41:11 <AnotherTest> !blsq 1000 {0\/1.-}{1.-}w!vv #s
18:41:11 <blsqbot> Ain't nobody got time fo' dat!
18:41:19 <AnotherTest> !blsq 100000000000000 {0\/1.-}{1.-}w!vv #s
18:41:19 <blsqbot> Ain't nobody got time fo' dat!
18:41:22 <AnotherTest> :(
18:41:32 <AnotherTest> !blsq 500 {0\/1.-}{1.-}w!vv #s
18:41:32 <blsqbot> Ain't nobody got time fo' dat!
18:41:43 <blsqbot> Ain't nobody got time fo' dat!
18:42:07 <mroman> Execution time is limited to 0.1milliseconds
18:42:55 <blsqbot> {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18:43:05 <AnotherTest> make burlesque faster then :p
18:43:09 <mroman> and yes, that currently does not work @privmsg
18:43:16 <AnotherTest> !blsq 300 {0\/1.-}{1.-}w!vv #s
18:43:17 <blsqbot> {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18:43:19 <mroman> It somehow always prints to the current channel
18:44:00 <AnotherTest> !blsq { 0 0 } { 5 6 }ps\[
18:44:00 <blsqbot> {ERROR: Burlesque: (_+) Invalid arguments!}
18:44:17 <AnotherTest> oh wait
18:44:28 <AnotherTest> !blsq { 0 0 } { 5 6 }\[
18:44:28 <blsqbot> {5 6}
18:44:29 <mroman> you can't parse a block
18:44:44 <AnotherTest> !blsq { 1 2 3 } { 5 6 }\[
18:44:44 <blsqbot> {5 6}
18:45:29 <mroman> Maybe you're looking for _+
18:45:35 <mroman> !blsq {1 2 3}{5 6}_+
18:45:36 <blsqbot> {1 2 3 5 6}
18:45:38 <AnotherTest> I suck at burlesque, it's official :(
18:46:11 <AnotherTest> !blsq "Hello, world" " ";;
18:46:11 <blsqbot> {"Hello," "world"}
18:46:17 <AnotherTest> cool
18:46:55 <AnotherTest> !blsq "Hello, world" ",";;
18:46:56 <blsqbot> {"Hello" " world"}
18:47:04 <AnotherTest> mroman: that's a cool command
18:47:21 <AnotherTest> !blsq -5 sn
18:47:21 <blsqbot> -1
18:47:28 <mroman> It's split
18:47:33 <AnotherTest> Yeah, I know
18:47:38 <AnotherTest> It's nice to have that build in
18:47:40 <mroman> It's a simple split function
18:47:58 <AnotherTest> !blsq "Hello, world" "hello";;
18:47:59 <blsqbot> {"Hello, world"}
18:48:11 <AnotherTest> even C++ doesn't have split built-in :p!
18:48:48 <AnotherTest> !blsq "What does this do exactly" "w" [S
18:48:49 <blsqbot> ERROR: Burlesque: ([S) Invalid arguments!
18:48:50 <mroman> strtok?
18:48:57 <AnotherTest> that's not build in
18:49:04 <AnotherTest> !blsq "What does this do exactly" 'w' [S
18:49:04 <blsqbot> ERROR: Burlesque: ([S) Invalid arguments!
18:49:15 <AnotherTest> It says Str a, Char b
18:49:21 <mroman> Yeah.
18:49:29 <mroman> and you feed it two chars
18:49:30 <AnotherTest> how is 'w' not a char
18:49:31 <mroman> a w and a space
18:49:37 <mroman> 'w' is not a achr
18:49:39 <mroman> *char
18:49:44 <mroman> 'w' is w and a space
18:49:46 <mroman> 'w is a w
18:49:51 <AnotherTest> !blsq "What does this do exactly" w [S
18:49:52 <blsqbot> ERROR: (line 1, column 30):
18:49:58 <AnotherTest> I don't get that
18:50:08 <mroman> !blsq "www.google.com" 'w [S
18:50:08 <AnotherTest> !blsq "What does this do exactly" 'w [S
18:50:08 <blsqbot> "What does this do exactly"
18:50:08 <blsqbot> "www.google.com"
18:50:16 <mroman> !blsq "www.google.com" 'w S[
18:50:17 <blsqbot> ".google.com"
18:50:22 <AnotherTest> blsq "What does this do exactly" 'W [S
18:50:26 <mroman> ^- a char is ' followed by something else
18:50:31 <AnotherTest> !blsq "What does this do exactly" 'W [S
18:50:31 <blsqbot> "What does this do exactly"
18:50:42 <mroman> also [S strips on the right side
18:50:49 <AnotherTest> ah
18:50:51 <mroman> you want to strip on the left side of the string
18:50:59 <AnotherTest> !blsq "What does this do exactly WWW" 'W [S
18:50:59 <blsqbot> "What does this do exactly "
18:51:18 <nooodl> !blsq 0bc5.+bc5.+{2 2}{1 0} {#s^p\/d!^^x/\/ {{-1.*}m[}if g_-1.*_+ #s{1 3 4 0 3 0}si#S n!D!x/x/{++}Z[x/}10E!vvvv^p
18:51:18 <blsqbot> Ain't nobody got time fo' dat!
18:51:23 <nooodl> whoops
18:51:39 <AnotherTest> !blsq 5546 46 !~
18:51:39 <blsqbot> 1
18:51:47 <nooodl> oh well. bc5.+bc5.+ {2 2} are the size/start pos, 10E! is the number of generations
18:51:47 <AnotherTest> blsq is nice
18:52:15 <nooodl> #s{1 3 4 0 3 0}si#S <- this is nice for stack manipulation :)
18:52:41 <AnotherTest> !blsq "hello" "world" z[
18:52:41 <blsqbot> {{'h 'w} {'e 'o} {'l 'r} {'l 'l} {'o 'd}}
18:52:57 <AnotherTest> !blsq "hello" "world" z[ #S
18:52:57 <blsqbot> {'h 'w}
18:52:57 <nooodl> is {'h 'w} different from "hw", mroman?
18:54:18 <nooodl> !blsq 1 2 3 4 5 #s^p#s
18:54:18 <blsqbot> {1 2 3 4 5 5 4 3 2 1}
18:54:56 <AnotherTest> !blsq "hello, world" '. [[
18:54:56 <blsqbot> ERROR: Burlesque: ([[) Invalid arguments!
18:55:02 <mroman> nooodl: Yes.
18:55:07 <AnotherTest> !blsq "hello, world" 'h [[
18:55:07 <blsqbot> ERROR: Burlesque: ([[) Invalid arguments!
18:55:11 <AnotherTest> huh?
18:55:16 <mroman> "hw" is a string and {'h 'w} is a block containing two characters
18:55:44 <AnotherTest> Why doesn't this work: !blsq "hello, world" 'h [[
18:55:47 <nooodl> !blsq "hello, world" 'h \/ [[
18:55:47 <blsqbot> "hhehlhlhoh,h hwhohrhlhd"
18:55:51 <nooodl> flip the args
18:56:02 <AnotherTest> why? it says:
18:56:05 <AnotherTest> "String a, Char b"
18:56:24 <mroman> no
18:56:25 <nooodl> http://mroman.ch/burlesque/lref.html says Char a,String b
18:56:28 <mroman> [[ says Char a, String b
18:56:36 <AnotherTest> oh
18:56:40 <AnotherTest> http://mroman.ch/burlesque/cookbook/lref.html
18:56:43 <AnotherTest> that doesn't
18:56:48 <mroman> hu?
18:57:06 <mroman> is there a link to cookbook/lref.html somewhere?
18:57:09 <mroman> because that'd be wrong.
18:57:57 <AnotherTest> in my browser history it appears
18:58:38 <AnotherTest> !blsq "does ps give errors?" ps
18:58:39 <blsqbot> {ERROR: (line 1, column 21):
18:58:44 <AnotherTest> Oh it does?
18:58:56 <mroman> Yeah.
18:59:18 <AnotherTest> !blsq "" ps
18:59:18 <blsqbot> {}
18:59:34 <nooodl> oh man. too bad there isn't a "print" command
18:59:50 <nooodl> there's no way to make this print multiple generations without rewriting all of it
19:00:07 <AnotherTest> !blsq {5 6 7 5 12 23 456} mp
19:00:07 <blsqbot> ERROR: Burlesque: (pd) Invalid arguments!
19:00:23 <nooodl> because it relies on #s
19:00:44 -!- Taneb has joined.
19:00:53 <nooodl> !blsq {5 6 7 5 12 23 456} pd
19:00:53 <blsqbot> 132148800
19:01:17 <AnotherTest> !blsq "hello Taneb" "^.+$"~=
19:01:18 <blsqbot> 1
19:01:23 <Taneb> yay
19:01:29 <Taneb> I feel awful
19:01:38 <AnotherTest> for being matched by a regex?
19:01:50 <mroman> nooodl: You could run it in a continution or eval
19:01:53 <AnotherTest> !blsq "hello Taneb" "Taneb"~=
19:01:54 <blsqbot> 1
19:01:59 <Taneb> No, just in general
19:02:04 <mroman> that might work
19:02:06 <nooodl> ooh, how does c! work
19:02:22 <mroman> c! evals the block on a copy of the current stack
19:02:35 <mroman> and pop one element from that after evaluation and returns it
19:02:39 <mroman> !blsq 5 5 .+
19:02:40 <blsqbot> 10
19:02:41 <nooodl> that's perfect
19:02:47 <mroman> !blsq 5 5 {.+}c!
19:02:48 <blsqbot> 10
19:02:52 <mroman> !blsq 5 5 {.+}c!#s
19:02:52 <blsqbot> {10 5 5}
19:03:03 <nooodl> wow
19:03:04 <mroman> ^- the fives are not destroyed because c! works on a copy
19:03:09 <nooodl> that would've made a lot of this code a lot easier
19:03:27 <nooodl> oh well, i'm not going to rewrite it all... yet
19:03:46 <mroman> I'm currently running it for 12000 steps :)
19:04:30 <AnotherTest> !blsq "hello taneb, hello mroman" "hello (\w+)"
19:04:30 <blsqbot> "hello (\\w+)"
19:04:37 <AnotherTest> oops
19:04:41 <AnotherTest> !blsq "hello taneb, hello mroman" "hello (\w+)" =~
19:04:41 <blsqbot> {"taneb"}
19:04:57 <AnotherTest> !blsq "hello taneb, hello mroman" "(hello (\w+))*" =~
19:04:57 <blsqbot> {"hello taneb" "taneb"}
19:05:14 <mroman> http://codepad.org/nJKmRiJ3 <- output
19:05:23 <AnotherTest> !blsq "hello taneb, hello mroman" "(hello (\w+),)*" =~
19:05:23 <blsqbot> {"hello taneb," "taneb"}
19:05:36 <nooodl> nice
19:05:42 <nooodl> how would you convert it to a string like
19:05:42 <AnotherTest> !blsq "hello taneb, hello mroman" "(hello (\w+)\,\s*)*" =~
19:05:42 <blsqbot> {"hello taneb, " "taneb"}
19:05:42 <nooodl> ...
19:05:43 <nooodl> .#.
19:05:44 <nooodl> .##
19:05:45 <nooodl> etc
19:06:14 <nooodl> i was stuck on this for a while yesterday, even though my solution itself didn't work yet
19:06:18 <FreeFull> !blsq 3 3 #s
19:06:18 <blsqbot> {3 3}
19:06:19 <mroman> !blsq 1{'.'#}ch
19:06:19 <blsqbot> '.
19:06:20 <AnotherTest> !blsq "hello taneb hello mroman" "(hello (\w+)\s*)*" =~
19:06:20 <blsqbot> {"hello mroman" "mroman"}
19:06:25 <mroman> !blsq 0{'.'#}ch
19:06:25 <blsqbot> '#
19:06:41 <mroman> nooodl: Map {'.'#}ch over it
19:06:56 <mroman> then i'd put everything into a list
19:07:11 <AnotherTest> !blsq { {1 0} {0 1} } { {1 0} {0 1} } mm
19:07:11 <blsqbot> {{1 0} {0 1}}
19:07:17 <mroman> Replace p^ with sp
19:07:23 <AnotherTest> burlesque has matrices?
19:07:26 <mroman> !blsq {{1 0 0}{0 1 0}}sp
19:07:26 <blsqbot> 1 0 0
19:07:32 <mroman> !blsq {{1 0 0}{0 1 0}}SP
19:07:33 <blsqbot> "1 0 0\n0 1 0"
19:07:40 <AnotherTest> do you have a det command yet?
19:07:52 <mroman> ^- SP converts two dimensional blocks to a string
19:07:59 <mroman> (sp is SPsh)
19:08:06 <mroman> AnotherTest: nope @det
19:08:06 <nooodl> !blsq { {1 0} {0 1} } { {1 0} {0 1} } {{{'.'#}ch}m[}m[SP
19:08:06 <blsqbot> ". #\n# ."
19:08:13 <AnotherTest> !blsq { {1 0} {0 1} } { {2 2} {2 3} } mm
19:08:14 <blsqbot> {{2 2} {2 3}}
19:08:45 <mroman> !blsq {0 0 0 1}{{'#'.}ch}m[
19:08:45 <blsqbot> {'. '. '. '#}
19:08:50 <mroman> !blsq {0 0 0 1}{{'#'.}ch}\m
19:08:51 <blsqbot> "...#"
19:08:57 <mroman> ^- that should do it.
19:09:25 <mroman> !! would work too
19:09:41 <mroman> !blsq {0 0 0 1}{".#"\/!!}\m
19:09:42 <blsqbot> "...#"
19:10:06 <mroman> AnotherTest: It has transpose and matrix multiplication though
19:10:32 <AnotherTest> mroman: conventient element access would be nice
19:10:40 <AnotherTest> *convenient
19:10:47 <nooodl> d!
19:10:51 <nooodl> does that
19:11:11 <nooodl> anyway, {{{'#'.}ch}\m}m[uN seems to work well
19:11:23 <mroman> !blsq "Hello World"wd{1 1}d!
19:11:23 <blsqbot> 'o
19:11:30 <mroman> AnotherTest: ^-
19:11:39 <nooodl> http://codepad.org/FeILiAKL
19:12:09 <AnotherTest> !blsq { {1 0} {0 1} } 1 d!
19:12:09 <blsqbot> ERROR: Burlesque: (e!) Invalid arguments!
19:12:24 <mroman> d! is for multi-dimensional
19:12:28 <mroman> so it requires a list
19:12:33 <AnotherTest> like so?:
19:12:39 <AnotherTest> !blsq { {1 0} {0 1} } {1 1} d!
19:12:39 <blsqbot> 1
19:12:41 <mroman> foobar[0][0][1] would be {0 0 1}d!
19:12:43 <AnotherTest> oh nice
19:13:06 <AnotherTest> well that allows you to calculate the determinant I guess
19:15:03 <AnotherTest> !blsq { {1 0} {0 1} } <-
19:15:03 <blsqbot> {{0 1} {1 0}}
19:16:16 <mroman> nooodl: Now run it for 12000 steps
19:16:24 <mroman> it'll take three minutes or so :)
19:16:54 <AnotherTest> !blsq { {1 0} {0 1} } ^^ tp mm
19:16:54 <blsqbot> {{1 0} {0 1}}
19:16:58 <nooodl> yeah, it's pretty slow
19:17:46 <AnotherTest> !blsq { 'a 'b} 'c im
19:17:47 <blsqbot> ERROR: Burlesque: (r[) Invalid arguments!
19:18:07 <AnotherTest> oh blocks
19:18:18 <AnotherTest> !blsq { 'a 'b} { 'c } im
19:18:18 <blsqbot> 'c
19:18:30 <AnotherTest> !blsq { 'a 'b} { 'c 'd } im
19:18:31 <blsqbot> ERROR: Burlesque: (++) Invalid arguments!
19:18:37 <AnotherTest> !blsq { 'a} { 'c 'd } im
19:18:37 <blsqbot> ERROR: Burlesque: (++) Invalid arguments!
19:28:08 -!- DHeadshot has joined.
19:32:41 -!- KingOfKarlsruhe has joined.
19:38:17 -!- ogrom has joined.
19:39:56 -!- oerjan has joined.
19:44:13 <FreeFull> Oh, I didn't know GHC used C--
19:44:29 <Bike> it's what C-- was for, isn't it
19:44:32 <oerjan> just about the only thing which does, isn't it
19:44:50 <kmc> yeah
19:44:59 <kmc> i think the GHC team invented C-- and then failed to get others to use it
19:45:17 <kmc> also I think it's more correct to say that GHC uses "Cmm" which is a variant of the published documented C--
19:45:21 <oerjan> if it had been today, perhaps they would have just used LLVM directly
19:45:38 <kmc> but I think GHC may be the only actively developed tool that can compile any flavor of C--
19:45:43 <kmc> yes
19:46:17 <oerjan> i guess they are versions of the same idea?
19:46:18 <kmc> C-- and LLVM have different syntactic styles and somewhat different goals, but probably they would have used LLVM today
19:46:51 <Vorpal> is ghc still using C--?
19:46:54 <kmc> yes
19:47:01 <Vorpal> also doesn't ghc have an llvm backend nowdays?
19:47:03 <kmc> yes
19:47:05 <oerjan> ah this time my laptop updated lens successfully
19:47:15 <kmc> it compiles C-- to LLVM
19:47:20 <Vorpal> haha
19:47:24 <kmc> or "Cmm" to LLVM
19:47:35 <kmc> part of the RTS is written in Cmm
19:47:48 <Fiora> I wonder why C++ searches fine on google but C-- doesn't work
19:47:55 <Fiora> I wonder if they hardcoded it?
19:48:22 <ion> Either they have hardcoded it or their machine learning has seen ”C++” as a ”word” on enough pages.
19:48:42 <Fiora> (c minus minus works)
19:49:27 <kmc> one of the goals of C-- is that, without making garbage collection part of the language, you add the right hooks such that one could develop a garbage collector for C--
19:49:53 -!- epicmonkey has joined.
19:49:57 <kmc> er, develop a GC for language implementations targetting C--, which is independent of the details of those implementations
19:50:04 <kmc> and same for other language features like exceptions
19:50:04 <Vorpal> kmc, which sounds like something LLVM allows for too iirc
19:50:08 <kmc> i don't know if LLVM has that
19:50:10 <kmc> ok
19:50:28 <kmc> i don't know how realistic this goal is anyway
19:50:42 <kmc> good GCs tend to be tuned for the specific language
19:50:50 <Vorpal> true
19:51:07 <kmc> e.g. GHC's GC has to deal with a ton of mutation in the form of thunks getting evaluated, but less mutation of arrays than you might have in another language
19:51:40 <FreeFull> kmc: I saw some code written directly in C-- before
19:51:40 <Vorpal> kmc, well what about .NET? It is not tuned to a specific language, just to the general byte code, and it doesn't care if that byte code comes from C# or VB.NET
19:51:42 <FreeFull> For KolibriOS
19:51:43 <Vorpal> or F#
19:52:12 <kmc> FreeFull: huh
19:52:15 <kmc> and what do they compile it with
19:52:23 <kmc> Vorpal: yeah, I don't know
19:52:31 <FreeFull> I forget
19:52:46 <Vorpal> night
19:53:08 <FreeFull> http://www.cminusminus.org/ has an interpreter and compiler
19:53:27 <FreeFull> Doesn't seem to have been updated since 2008 though
19:53:36 <Bike> i'd guess that the CLR GC is suboptimal for languages that aren't so much like C# or VB
19:54:17 <kmc> also F# is not that different from C# operationally, is it?
19:54:45 <FreeFull> I hear it's more functional
19:55:36 <kmc> not what i meant
19:55:57 <kmc> i'm talking about whether the heap behaves differently at runtime
19:56:08 <kmc> i would guess that it's not too different
19:56:23 <KingOfKarlsruhe> http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fcmm%2F&#abf1c4e809912c8e0dc9c47ab4528b257
19:58:21 -!- monqy has joined.
19:59:04 <kmc> cool
20:02:01 <FreeFull> kmc: It's all .net underneath
20:02:33 <kmc> i know
20:05:54 <kmc> it all compiles to CLI bytecode, but different languages will produce different patterns of heap access, which makes it difficult to write an efficient garbage collector for all of them at once
20:06:08 <kmc> however I'm speculating that the heap access patterns of C# are a lot closer to F# than, say, Haskell
20:06:29 <kmc> i also don't know all that much about GC or how much this is a problem
20:09:32 <Bike> reminds me of discussions on how to integrate GC with an operating system, can each process have its own, can you not have memory protection, bla bla bla
20:09:54 <Fiora> I remember reading a thing about some proposed OSs with that
20:10:08 <Fiora> I think the idea was that everything was managed, and the kernel owned all the memory
20:10:14 <Bike> of course you could do like Singularity and just make everything CLR
20:10:17 <Fiora> and memory protection is just enforced by the VM
20:10:19 <Fiora> ... yeah, like that
20:10:40 <Bike> but i was thinking of speculation about each process being able to have its own things specified
20:10:56 <Bike> so a compiled haskell process could have a different GC from a JVM
20:10:57 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90 [Firefox 19.0/20130215130331]).
20:11:04 <Bike> or something like that.
20:11:08 <Fiora> maybe they could have different GCs, but written in the same language?
20:11:12 <Fiora> so you could load your own custom GC
20:11:21 <Fiora> like, the kernel provides hooks to allow the GC to perform operations
20:11:28 <Fiora> and you can writre a custom GC using those hooks
20:11:52 <Taneb> Hang on
20:11:56 <Taneb> Hang on hang on hang on
20:11:58 <Taneb> Hang on
20:12:00 <Taneb> Fiora's back
20:12:13 <Bike> Yes, and the heavens cried out in joy.
20:12:21 <Fiora> um. bike kinda dragged me a bit
20:12:25 * kmc hangs on
20:12:26 <Bike> did not!
20:12:32 <Taneb> Fiora's back... IS ON FIRE
20:12:32 <Fiora> you sorta did!
20:12:40 <Fiora> eeeeep
20:12:53 * Fiora puts it out with a blanket
20:12:54 <Bike> Fiora: Well the problem was that part of the idea of something like that is that you can hopefully avoid memory protection if C-style operations aren't available
20:13:01 <Bike> but if every process can do its own thing you don't have that
20:13:28 <Fiora> would there be something that bad about using a common intermediate language that's secure?
20:13:38 <Fiora> like, even something like google native code
20:13:55 <Fiora> I guess that'd get really tricky when you need to write a process that can implement a jit or something... >_<
20:13:59 <Bike> I don't think anybody in this conversation had heard of NaCL if it even existed at the time `-`
20:15:20 <Bike> maybe i should read those eros papers to see how capabilities-based stuff goes
20:16:00 <Bike> i'm kind of irrationally skeptical of "write everything in a managed language" because relying on compilers to generate safe code seems like a bad plan, and that's what Oberon did
20:16:53 <Fiora> google native code almost seems safer than managed code on some level but I don't know if it's 'powerful enough' to do everything
20:17:20 <Bike> how's it lack power?
20:17:43 <Bike> hm actually was NaCL able to check for memory accesses only being in a certain range
20:17:44 <Fiora> like, I'm not sure you could write a JIT or VM in it
20:17:47 <Bike> that's probably not even possible...
20:18:02 <Fiora> I think it used memory segmentation or something
20:18:13 <olsner> hmm, cellular automata in the hyperbolic plane can supposedly solve NP-complete problems in polynomial time
20:18:18 <Bike> the idea is to not have segmentation i guess
20:18:19 -!- ogrom has quit (Quit: Left).
20:18:23 <Bike> olsner: continuous automata?
20:18:44 <Fiora> I'd have to go check the paper again >_<
20:18:48 <olsner> no, it does say cellular auotmata
20:18:57 <Bike> i mean, continuous cellular automata
20:19:10 <olsner> (paper: http://t.co/RToPTfuEKH)
20:21:48 -!- DHeadshot has quit (Ping timeout: 264 seconds).
20:22:47 <kmc> in truth, the language independent runtime of the future is an entire linux install and virtualized x86 chip
20:22:52 <kmc> because the future is dumb
20:23:12 <Bike> heh.
20:23:52 <Bike> the linux, of course, is written in dalvik bytecode
20:24:33 <Fiora> which runs in an ARM emulator
20:24:46 <olsner> that and/or sandboxing that skips the full virtualization part when possible
20:25:07 <Fiora> then there's the VM escape exploits though >_<
20:27:40 <olsner> hmm, "The USS Voyager (NCC-74656) *was* an Intrepid-class Federation starship launched in 2371" ...
20:28:47 <olsner> I kind of like the idea of memory-alpha being served from the future though
20:31:14 <oerjan> !blsq 13 2 bs
20:31:14 <blsqbot> ERROR: Unknown command: (bs)!
20:31:37 -!- ais523 has joined.
20:31:57 -!- Arc_Koen has joined.
20:33:56 -!- Arc_Koen has quit (Client Quit).
20:34:14 -!- Arc_Koen has joined.
20:35:56 -!- SirCmpwn has quit (Read error: Operation timed out).
20:36:31 <oerjan> mroman: your language reference seems to contain many cases of () being used instead of {} ?
20:38:37 <oerjan> !blsq 1MO
20:38:37 <blsqbot> ERROR: Unknown command: (MO)!
20:38:44 <oerjan> !blsq 1mo
20:38:44 <blsqbot> Ain't nobody got time fo' dat!
20:40:47 <mroman> oerjan: ?
20:41:15 <mroman> !blsq 5 5 .+
20:41:16 <blsqbot> 10
20:41:21 <mroman> !blsq 5 5 (.+)
20:41:21 <blsqbot> .+
20:41:22 <oerjan> example: MapDup [m Defined as (^^)+]m[
20:41:29 <mroman> Yeah.
20:41:43 <mroman> !blsq {+.}to
20:41:44 <blsqbot> "Block"
20:41:49 <mroman> ^- that's a block
20:41:52 <mroman> !blsq (+.)to
20:41:53 <blsqbot> "Ident"
20:41:57 <mroman> ^- that's not a block
20:42:11 <mroman> To push an identifier to the stack ( ) is used.
20:42:19 <nooodl> !blsq {+.} (^^) +]
20:42:19 <blsqbot> {^^ +.}
20:42:54 <oerjan> oh
20:43:02 <oerjan> so it's for putting them inside blocks
20:43:09 <oerjan> with +] or the like
20:43:17 <mroman> Yep.
20:43:21 <mroman> also
20:43:26 <nooodl> yeah, i don't think they're useful outside of blocks
20:43:27 <mroman> !blsq ((.+))to
20:43:27 <blsqbot> "Quoted"
20:43:32 <nooodl> maybe e! should execute an Ident
20:44:22 <mroman> !blsq {+.}-]
20:44:23 <blsqbot> +.
20:44:26 <mroman> !blsq {+.}-]to
20:44:26 <blsqbot> "Ident"
20:44:30 -!- gs2bot has joined.
20:44:42 <nooodl> i haven't showed this language off in #esoteric thoroughly yet: https://dl.dropbox.com/u/15495351/gs2/gs2.htm
20:44:54 <mroman> It's just a short way to push an identifier to the stack
20:45:25 <mroman> !blsq {mu}p^
20:45:25 <oerjan> !blsq "abcd"n!
20:45:25 <blsqbot> 'd
20:45:25 <AnotherTest> !blsq "bye!"
20:45:25 <blsqbot> mu
20:45:26 <blsqbot> "bye!"
20:45:29 -!- AnotherTest has left.
20:45:30 <nooodl> iiiiiit's also broken.
20:45:32 <oerjan> !blsq "abcda"n!
20:45:32 <blsqbot> 'a
20:45:37 <oerjan> !blsq "abacd"n!
20:45:37 <blsqbot> 'a
20:45:38 <monqy> nooodl: i havent read yr spec yet but have you ever heard of "flogscript"
20:45:39 <nooodl> !gs2 "2 2+"
20:45:39 <gs2bot> ""
20:45:44 <nooodl> ye
20:45:49 <monqy> do you know flogscript
20:45:57 <nooodl> very little
20:46:05 <nooodl> zzo hasn't written any docs and it's really really weird
20:46:10 -!- SirCmpwn has joined.
20:46:13 <monqy> ther'es "docs"
20:46:16 <nooodl> ??
20:46:31 <mroman> n! returns the element that appears the most often in a block/str
20:46:43 <nooodl> the only "docs" i know of are http://d.hatena.ne.jp/milieu/20100813
20:47:29 <Bike> "No documentation yet, read the examples and source code to try to figure it out." cool
20:48:13 <monqy> nooodl: theres http://esolangs.org/wiki/FlogScript which has some example programs to revers-eengineer, http://esolangs.org/wiki/Talk:FlogScript which “explains„ a program, and http://zzo38computer.org/esoteric/FlogScript/FlogScript.php.txt the “definitive ‘doc‚„
20:48:30 <Taneb> Hmm
20:48:42 <Taneb> Thanks to Homestuck, I've actually heard of Dante Basco
20:48:48 <nooodl> uuuuugh why is gs2bot broken
20:49:03 <Taneb> `list
20:49:06 <monqy> is the irc part broken or the gs2 part
20:49:06 <Taneb> THAT IS NOT A LIST
20:49:07 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
20:49:10 <Taneb> UNDO
20:49:11 <Taneb> SORRY
20:49:12 <Taneb> SORRY
20:49:25 * Fiora patpats Taneb
20:49:26 <nooodl> the gs2 part
20:49:39 <Taneb> Fiora, `list now lists people who've used `list
20:50:01 <Bike> `revert
20:50:02 <nooodl> nice command
20:50:03 <HackEgo> Done.
20:50:09 <Taneb> It's possible to kill HackEgo with it
20:50:39 <Bike> `run cat $(which list)
20:50:41 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
20:50:50 <Bike> undo successful
20:50:53 -!- gs2bot has quit (Remote host closed the connection).
20:51:05 <monqy> ???
20:51:10 <Taneb> `list
20:51:11 <Taneb> `list
20:51:13 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
20:51:14 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
20:51:21 -!- Taneb has changed nick to Ngevd.
20:51:26 <Ngevd> `list
20:51:27 <Ngevd> `list
20:51:34 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
20:51:35 <monqy> `hatesgeo
20:51:37 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol Ngevd
20:51:43 -!- Ngevd has changed nick to Taneb.
20:51:45 <Taneb> Hmm
20:51:55 <Bike> I wonder what it is I undid.
20:51:57 <oerjan> !blsq 1R@
20:51:58 <blsqbot> Ain't nobody got time fo' dat!
20:51:59 -!- gs2bot has joined.
20:52:01 <nooodl> !gs2 "2 2+"
20:52:02 <gs2bot> "\"$lb<<$stack.size\"\n\"gpush Garray.new($stack.slice!(($lb.pop||0)..-1))\"\n\"a=gpop;gpush ~a\"\n\"a=gpop;gpush a.ginspect\"\n\"a=gpop;\"\n\"a=gpop;$stack<<a<<a\"\n\"b=gpop;a=gpop;$stack<<b<<a\"\n\"c=gpop;b=gpop;a=gpop;$stack<<b<<c<<a\"\n\"b=gpop;a=gpop;gpush a+b\"\n\"b=gpop;a=gpop;gpush a-b\"\n\"b=gpop;a=gpop;gpush a|b\"\n\"b=gpop;a=gpop;gpush a&b\"\n\"b=gpop;a=gpop;gpush a^b\"\n\"b=gpop;a=gpop;a,b=b,a if a.class_id<b.class_id;gpush ...
20:52:02 <gs2bot> ... a*b\"\n\"b=gpop;a=gpop;a,b=b,a if a.class_id<b.class_id;gpush a/b\"\n\"b=gpop;a=gpop;a,b=b,a if a.class_id<b.class_id;gpush a%b\"\n\"b=gpop;a=gpop;a,b=b,a if a.class_id<b.class_id;gpush a.equalop(b)\"\n\"b=gpop;a=gpop;a,b=b,a if a.class_id<b.class_id;gpush a<b\"\n\"b=gpop;a=gpop;a,b=b,a if a.class_id<b.class_id;gpush a>b\"\n\"a=gpop;gpush a.notop\"\n\"b=gpop;a=gpop;a,b=b,a if a.class_id<b.class_id;gpush a.question(b)\"\n\"a=gpop;gpush (a.class==Gint ...
20:52:02 <gs2bot> ... ? $stack[~a.val] : a.sort)\"\n\"a=gpop;gpush case a\\n\\twhen Gint then Garray.new([*0...a.val].map{|i|Gint.new(i)})\\n\\twhen Gblock then a.select(gpop)\\n\\twhen Garray then Gint.new(a.val.size)\\n\\tend\"\n\"a=gpop;gpush a.rightparen\"\n\"a=gpop;gpush a.leftparen\"\n\"a=gpop;gpush Gint.new(rand([1,a.val].max))\"\n\"a=gpop;gpush Gint.new(a.val.abs)\"\n\"a=gpop;print a.to_gs\"\n\"b=gpop;a=gpop;$_19.go;(gpop.val==0?a:b).go\"\n\"a=gpop;loop{a.go; ...
20:52:02 <gs2bot> ... $_19.go; break if gpop.val!=0}\"\n\"b=gpop;a=gpop;loop{a.go; $_19.go; break if gpop.val!=0; b.go}\"\n\"a=gpop;gpush a.zip\"\n\"b=gpop;a=gpop;gpush b.base(a)\"\n\"b=gpop;a=gpop;a=Garray.new([a]) if a.class != Garray;\\n gpush Gstring.new(sprintf b.to_s, *a.val.map { |x| qval x })\"\n\"b=gpop;a=gpop;c = a.to_s.scan Regexp.new b.to_s\\n gpush Garray.new(c.map do |i|\\n i.is_a?(Array) ? Garray.new(i.map { |j| Gstring.new(j) })\\n ...
20:52:03 <gs2bot> ... : Gstring.new(i)\\n end)\"\n\"c=gpop;b=gpop;a=gpop;d = a.to_s.tr(b.to_s, c.to_s); gpush Gstring.new d\"\n\"a=gpop;ms = []; a.val.times{ms.unshift gpop}; gpush Garray.new ms\"\n\"a=gpop;gpush Gint.new(Math.sqrt(a.val).to_i)\"\n\"a=gpop;gpush Gint.new(Prime.prime? a.val)\"\n\"a=gpop;gpush Garray.new(Prime.each(a.val).map { |x| Gint.new x })\"\n\"a=gpop;gpush Garray.new(Prime.each.first(a.val).map { |x| Gint.new x })\"\n\"a=gpop;gpush ...
20:52:04 <gs2bot> ... Garray.new(Prime.prime_division(a.val).map { |x| Garray.new(x.map { |y| Gint.new(y) })})\"\n\"a=gpop;gpush Gint.new(Prime.int_from_prime_division(a.val.map { |x| x.val.map { |y| y.val } }))\"\n\"b=gpop;a=gpop;gpush ...
20:52:06 <gs2bot> ... b.scanfold(a)\"\n\"$_3.go\\n$_27.go\\n$_45.go\\n$_27.go\\n\"\n\"$_49.go\\n$_21.go\\n$_50.go\\n\"\n\"$_49.go\\n$_21.go\\n$_6.go\\n$_50.go\\n\"\n\"$_19.go\\n\"\n\"$_6.go\\n$_19.go\\n$_19.go\\n$stack<<$_55\\n$_13.go\\n\"\n\"$_8.go\\n\"\n\"$_58.go\\n$_6.go\\n$stack<<$_59\\n$_14.go\\n\"\n\"$_13.go\\n\"\n\"$_49.go\\n$_6.go\\n$stack<<$_62\\n$_14.go\\n\"\n\"$_65.go\\n$_32.go\\n\"\n\"$_13.go\\n\"\n\"$_23.go\\n$_22.go\\n$_24.go\\n$_4.go\\n$_49.go\\n$_8.go\\n$s ...
20:52:07 <Bike> aaaaah
20:52:08 <nooodl> uh.
20:52:08 <HackEgo> No output.
20:52:08 <gs2bot> ... tack<<$_68\\n$_13.go\\n\"\n\"$_5.go\\n$_65.go\\n$_21.go\\n$_8.go\\n\"\n\"$_0.go\\n$_58.go\\n$_71.go\\n$_49.go\\n$_7.go\\n$stack<<$_72\\n$_13.go\\n$_1.go\\n$_73.go\\n$_17.go\\n\"\n\"$_5.go\\n$_7.go\\n$_6.go\\n\"\n\"$_77.go\\n$_2.go\\n\"\n\"$_86.go\\n$_14.go\\n\"\n\"$_86.go\\n$_13.go\\n\"\n\"$_45.go\\n$_14.go\\n\"\n\"$_45.go\\n$_13.go\\n\"\n\"$_6.go\\n$_45.go\\n$_14.go\\n$_6.go\\n$_15.go\\n$_45.go\\n$_13.go\\n\"\n\"$_2.go\\n\"\n\"$stack<<$_98\\n$_15.go ...
20:52:08 -!- gs2bot has quit (Remote host closed the connection).
20:52:11 <monqy> noooooooooodl
20:52:13 <nooodl> what the fuck
20:52:14 -!- ChanServ has set channel mode: +o oerjan.
20:52:18 <Bike> good bot
20:52:23 <nooodl> "thanks gs2bot"
20:52:25 <Taneb> Did better than Pietbot
20:52:27 <oerjan> whew
20:52:30 -!- oerjan has set channel mode: -o oerjan.
20:52:32 <nooodl> how much did it flood
20:52:35 <nooodl> i killed it asap
20:52:41 <monqy> well you can check the logs
20:52:46 <Bike> bout thirty lines
20:53:03 <monqy> it didnt flood so many lines but they were big lines
20:53:05 <nooodl> the one time i test it outside /query and this happens.......
20:53:23 <monqy> maybe you should make it not print its source code. maybe you should write it in not ruby(??)
20:53:39 <nooodl> blame flagitious
20:53:41 -!- gs2bot has joined.
20:53:43 <monqy> ok
20:53:46 <nooodl> (this is golfscript "upgraded")
20:53:47 <monqy> !gs2 "2 2+"
20:53:48 <gs2bot> "4\n"
20:53:49 <Bike> fuck you flagitious
20:53:51 <nooodl> thanks gs2bot
20:54:01 <nooodl> here's how gs2bot works:
20:54:18 <monqy> !gs2 "o(\{1${\(@^}%+}/]"
20:54:19 <gs2bot> "\n"
20:54:22 <monqy> thanks gs2bot
20:54:49 <nooodl> !gs2 "['aaaa''bbbb''cccc']n*o(\{1${\(@^}%+}/]"
20:54:49 <gs2bot> ""
20:55:13 <nooodl> oh right...
20:55:32 <nooodl> !gs2 "['aaaa''bbbb''cccc']n*n%(\{1${\(@^}%+}/]n*"
20:55:32 <gs2bot> "\naaaa\n\x03\x03\x03\x03\n````\n"
20:56:06 <monqy> btw nooodl have you noticed your table is messed up
20:56:10 <monqy> at least it looks messed up to me
20:56:18 <nooodl> it's extremely big
20:56:22 <nooodl> zoom out a bit maybe?
20:56:32 <monqy> oh, it's really 2 tables
20:56:42 <monqy> and one of them was put on top of the other
20:56:43 <nooodl> a t m the documentation is really bad
20:56:47 <monqy> yes
20:56:56 <Phantom_Hoover> what does `hatesgeo do btw
20:57:02 <monqy> i forget
20:57:08 <Bike> `hatesgeo
20:57:10 <monqy> i remember it has to do with pinging lots of people
20:57:13 <monqy> but maybe it was neutered
20:57:22 <Bike> `run cat $(which hatesgeo)
20:57:23 <monqy> and i forget how to use it
20:57:24 <HackEgo> ​#!/bin/sh \ perl -n -e '/:(.*?)!.*JOIN/; $j{$1}++; END {print "$_ $j{$_};" for sort {$j{$b} <=> $j{$a}} keys %j}' $@
20:57:39 <HackEgo> No output.
20:57:52 <nooodl> !gs2 "['12345678901234567890''[][][][][][][][][][]''ABCDEFGHIJKLMNOPQRST']n* n%(\{1${\(@^}%+}/]n*"
20:57:52 <gs2bot> "\n12345678901234567890\njohinklebmjohinklebm\n+-+-+-+-+'!#%'!;=719\n"
20:57:57 <nooodl> compare to http://golf.shinh.org/p.rb?XOR+Lines+FIXED
20:58:11 <Bike> can i not do that
20:58:30 <oerjan> <Bike> undo successful <-- um you were trying to undo a command that didn't actually _change_ anything. i thought that would revert something earlier instead, but it seems it had no effect.
20:58:50 <Bike> why not
20:59:09 <olsner> hmm, roughly how many of the voyager episodes are about finding dilithium? that plot could become boring after a couple of episodes
21:02:32 <Phantom_Hoover> wasn't half the problem with voyager that they didn't spend nearly enough time finding dilithium
21:02:33 <oerjan> !blsq 1 100r@
21:02:33 <blsqbot> {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3
21:02:46 <oerjan> !blsq 1R@
21:02:47 <blsqbot> Ain't nobody got time fo' dat!
21:03:07 <oerjan> mroman: why does the latter time out when it should be about as fast as the former?
21:04:02 <oerjan> mroman: aren't you doing the take inside the timeout?
21:04:06 <Fiora> olsner: I remember there were a lot of episodes about mysterious space anomalies
21:04:35 -!- impomatic2 has joined.
21:04:55 <oerjan> also what is Take in burlesque, it's not listed where i expected it
21:05:17 <oerjan> !blsq 1 100r@ 1R@ .*
21:05:17 <blsqbot> Ain't nobody got time fo' dat!
21:05:30 <oerjan> !blsq 1 100r@ 1 100r@ .*
21:05:30 <blsqbot> ERROR: Burlesque: (.*) Invalid arguments!
21:05:36 <oerjan> hm ok
21:05:50 <oerjan> that's weird
21:06:02 <oerjan> !blsq 1 100r@ 1 R@ .*
21:06:03 <blsqbot> Ain't nobody got time fo' dat!
21:07:01 -!- impomatic2 has quit (Read error: Connection reset by peer).
21:07:29 -!- impomatic2 has joined.
21:07:30 -!- impomatic2 has quit (Client Quit).
21:07:40 <oerjan> !blsq 1 100r@ 1 R@ {.*}z[
21:07:40 <blsqbot> {{1 .*}}
21:07:43 <oerjan> wat
21:07:50 -!- impomatic has quit (Ping timeout: 260 seconds).
21:08:08 <oerjan> !blsq 1 100r@ 1 100r@ {.*}z[
21:08:08 <blsqbot> {{1 .*}}
21:08:33 <oerjan> oh
21:08:37 <oerjan> !blsq 1 100r@ 1 R@ {.*}Z[
21:08:38 <blsqbot> Ain't nobody got time fo' dat!
21:08:44 <oerjan> !blsq 1 100r@ 1 100r@ {.*}Z[
21:08:45 <blsqbot> Ain't nobody got time fo' dat!
21:08:49 <oerjan> !blsq 1 100r@ 1 100r@ {.+}Z[
21:08:50 <blsqbot> Ain't nobody got time fo' dat!
21:09:01 <nooodl> !gs2 74 2C 7B 2E 33 86 5C 35 86 2B 7D 2C 55
21:09:01 -!- impomatic2 has joined.
21:09:01 <gs2bot> "233168\n"
21:09:04 <nooodl> euler 1
21:09:15 <oerjan> !blsq 1 30r@ 1 30r@ {.+}Z[
21:09:16 <blsqbot> {ERROR: Burlesque: (.+) Invalid arguments! {1 1} ERROR: Burlesque: (.+) Invalid
21:09:33 <oerjan> wtf
21:09:38 <oerjan> !blsq 1 30r@ 1 30r@
21:09:38 <blsqbot> {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3
21:10:21 <oerjan> !blsq {.+} 1 30r@ 1 30r@ Z[
21:10:21 <blsqbot> {30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2
21:10:36 <oerjan> ...wat
21:10:43 -!- otro_viajero7 has joined.
21:11:04 <impomatic2> Hi Otro_viajero7 :-)
21:11:12 <oerjan> !blsq 1 30r@ 1 30r@ z[
21:11:12 <blsqbot> {{1 1} {2 2} {3 3} {4 4} {5 5} {6 6} {7 7} {8 8} {9 9} {10 10} {11 11} {12 12} {
21:11:27 <oerjan> !blsq {.+} 1 30r@ 1 30r@ z[\/m[
21:11:27 <blsqbot> {ERROR: Burlesque: (.+) Invalid arguments! {1 1} ERROR: Burlesque: (.+) Invalid
21:11:36 <oerjan> oh
21:11:43 <nooodl> oerjan: what're you trying
21:11:43 <ais523> ooh, ESR just committed to C-INTERCAL (and approved a pull request too)
21:11:53 <nooodl> !gs2 0F "." D4 5C "5%|U"
21:11:53 <gs2bot> "233168\n"
21:12:00 <nooodl> 8 bytes B)
21:12:19 <otro_viajero7> Hi impomatic2
21:12:30 <oerjan> nooodl: burlesque zipWith is _very_ unintuitive for this haskell :(
21:12:33 <oerjan> *-er
21:12:47 <nooga> http://www.reddit.com/r/programming/comments/9x15g/programming_thought_experiment_stuck_in_a_room/
21:12:47 <monqy> what's burleseq ziwpwith
21:13:04 <nooodl> burlesque zipwith takes a function on blocks, not on two things
21:13:25 <nooga> http://www.reddit.com/r/programming/comments/9x15g/programming_thought_experiment_stuck_in_a_room/c0ewj2c
21:13:30 <nooodl> !blsq 1 30r@ ^^ (++)Z[
21:13:30 <blsqbot> You can haz errorz
21:13:42 <nooga> actually, I thought about this few times
21:13:44 <oerjan> !blsq {.+} 1 30r@ 1 30r@ Z]
21:13:45 <blsqbot> {30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2
21:14:15 <oerjan> !blsq 1 30r@ 1 30r@ {.+} Z]
21:14:15 <blsqbot> {2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56
21:14:21 <oerjan> ah finally
21:14:28 <nooodl> oh Z] is "normal people zipwith"
21:14:31 <oerjan> !blsq 1 30r@ 1 R@ {.+} Z]
21:14:31 <blsqbot> {2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56
21:14:50 <oerjan> mroman: YOUR REFERENCE MANUAL NEEDS WORK
21:15:04 <oerjan> (i suggest forth-style in -- out descriptions)
21:15:20 <nooodl> well, the zipwith thing is pretty well explained
21:15:31 <monqy> how about english descriptions
21:15:33 <monqy> too
21:15:35 <oerjan> (see: my reorganizations of the glass page)
21:16:02 <nooodl> also it's wrong :')
21:16:06 <oerjan> nooodl: um it's well explained _if you are willing to trace the code it's explained as_. that's ... ridiculous, really.
21:16:09 <monqy> i guess ther'es sort of english descriptions here
21:16:25 <nooodl> but yeah when it's like
21:16:25 <monqy> for some of them
21:16:27 <nooodl> "Defined as ^^^^avbx(?-)[+m[2?^++\/L[-.?/"
21:16:28 <ais523> it was pretty tame stuff, though, updating the autoconf input file to a later version of automake and changing some documentation
21:17:07 -!- impomatic2 has quit (Ping timeout: 260 seconds).
21:17:32 <pikhq> ais523: Still, he actually pays attention? Moderately surprising.
21:17:53 <nooodl> man, http://golf.shinh.org/p.rb?uniq+chars is 2 bytes in GS2
21:17:57 <nooodl> i should really tell shinh about it
21:18:00 <ais523> not really, "maintaining open-source projects" is pretty much ESR's job
21:18:11 <nooodl> but teeeeechnically i'd need flagitious' permission
21:18:17 <pikhq> Yeah, but I thought he'd not done jack on C-INTERCAL in ages.
21:18:25 <ais523> pikhq: yeah but neither had anyone else
21:18:33 <pikhq> Fair enough.
21:19:03 <nooga> mroman: your webpage on burlesque is obnoxious
21:19:12 <nooodl> yeah i liked the old design more
21:19:18 <oerjan> @tell mroman I suspect blsqbot is not doing the take to limit output size inside the timeout, which makes it time out because of parts it would otherwise never evaluate
21:19:18 <lambdabot> Consider it noted.
21:19:19 <nooodl> http://mroman.ch/burlesque/cookbook/lref.html
21:19:57 -!- DHeadshot has joined.
21:19:58 <monqy> nooodl: imo you should make gs2 even better???? more distinguished from golf script??? in a good???way???
21:20:13 <nooodl> i don't know how!!!
21:20:14 <oerjan> @tell mroman e.g. there's no reason why 1R@ should timeout
21:20:14 <lambdabot> Consider it noted.
21:20:35 <nooodl> i've considered a change that would make it much less stack-y
21:20:55 <monqy> would it make it like j
21:20:59 <monqy> j is cool
21:21:02 <nooodl> nope
21:21:05 <nooodl> golfscript is already backwards j
21:21:21 <monqy> uhh how about hm
21:21:30 <nooodl> in j you go "print (h (g (f input)))"
21:21:36 <nooodl> in golfscript it's just "input f g h"
21:22:00 <nooodl> but they're Short for the same reasons
21:22:08 <nooodl> anyway the change is
21:22:43 <nooodl> it automatically stores things that get pushed or popped on the stack into Buffers
21:22:55 <nooodl> kinda like registers in vim
21:23:20 <nooga> is there some kind of documentation on burlesque?
21:23:41 <nooodl> so you don't have to mess around with the stack at all anymore. when you push or pop some thing, you know it got saved as a variable SOMEWHERE, so you don't have to apply Stack Magic to retrieve it
21:24:08 <nooodl> also: seriously expand on the Mode thingy. it's so good
21:26:47 <nooodl> the way i've developed gs2 for the past year was just
21:26:56 <nooodl> look at other things, why are they short, how do i improve on that
21:27:22 <nooodl> but maybe if i think of some Radical New thing... i can make things even shorter
21:31:04 <monqy> google translate of golf script into other languages is very disappointing. i was hoping for some amazing new name htats not like golfscript but it just seems to be transliterating it??? a pity. 2 of the best are probably welsh "sgript golff" and esperanto "golfo skripto" and i guess lithuanian is ok too "golfo scenarijus"
21:31:22 <kmc> golfo skripto
21:31:25 <olsner> !rot13 golf script
21:31:26 <EgoBot> tbys fpevcg
21:31:38 <kmc> fpevcg dword ptr [eax]
21:31:38 <nooodl> "golfoskripto" is actually valid i think
21:32:11 <nooodl> it'd probably just be "Golfskripto" though!! jesus christ, that lithuanian
21:32:28 <monqy> japanese is cute, Gorufusukuriputo
21:33:44 <pikhq> kòruhusukurihûto
21:34:08 <nooodl> dear god. is that a romanization system people use
21:34:15 <pikhq> nooodl: Me only.
21:34:34 <Fiora> ゴフスクリプト
21:34:34 <nooodl> it's cute
21:34:51 <monqy> Gough script
21:34:53 <nooodl> ^ル
21:35:07 <pikhq> nooodl: On the one hand, it demonstrates how kana works. On the other, nobody actually knows it. :P
21:35:50 <nooodl> on the third hand, it doesn't help people who don't already know how kana works at all
21:35:56 <pikhq> Mostly though it just looks arbitrarily exotic.
21:36:14 <pikhq> "ro'hîȳaku" is funny looking.
21:36:34 -!- Nisstyre has quit (Quit: Leaving).
21:36:37 <olsner> last time I checked, (mount) fuji is spelled huzi on google earth
21:36:39 <nooodl> is that 六百?
21:36:48 <pikhq> Yup.
21:37:02 <nooodl> perfect
21:37:20 <pikhq> olsner: Which is perfectly valid Kunrei-shiki romanization.
21:37:33 <olsner> yes, it was enlightening
21:37:55 <pikhq> Just weird looking because almost everyone uses Hepburn, which is the one that uninformed people can kinda-sorta pronounce right.
21:38:35 <Fiora> "hu" and "fu" are just different romanizations
21:38:44 <Fiora> yeah, hepburn vs kunrei
21:38:51 <oerjan> <nooga> is there some kind of documentation on burlesque? <-- http://mroman.ch/burlesque/index.html
21:38:53 <pikhq> Yup. "hu" being Kunrei or Nihon.
21:40:12 -!- SirCmpwn has quit (Excess Flood).
21:40:55 -!- DHeadshot has quit (Ping timeout: 260 seconds).
21:42:07 <nooodl> pikhq: does ん become something funny in your system
21:42:12 <nooodl> "nn"?
21:42:17 <pikhq> nooodl: "nn", yes.
21:42:39 -!- SirCmpwn has joined.
21:42:41 <Lumpio-> I just tend to type the way I type into a computer all the time
21:43:17 <pikhq> Just in case some bastard wants to write んい or some such. :P
21:46:05 <Lumpio-> ...which is perfectly normal
21:46:47 <pikhq> The idea is kinda to be able to encode arbitrary sequences of kana, so.
21:47:51 <Lumpio-> You could just encode them in like, Unicode
21:48:02 <pikhq> Bah.
21:48:29 <Lumpio-> At least some people would understand it!
21:48:38 <oerjan> !blsq 1 100r@ 2B!
21:48:39 <blsqbot> {"1" "10" "11" "100" "101" "110" "111" "1000" "1001" "1010" "1011" "1100" "1101"
21:48:39 <pikhq> 変なローマ字が楽しかったの。
21:48:42 <nooodl> monqy: in greek "small code" is "mikrokodika"
21:48:49 <kmc> +WQkwajDtMPww3ltXMExpfTBXMEswYzBfMG4wAg
21:49:07 <kmc> there's your romanization
21:49:37 <olsner> looks like romanization is more compact than utf-8 (at least for gofusukuriputo vs ゴフスクリプト)
21:49:57 <monqy> nooodl: good
21:49:58 <nooodl> shift-jis, though!
21:50:19 <pikhq> ... is hell
21:50:32 <Lumpio-> olsner: Which makes a difference if... er, your computer is an 8-bit microcontroller?
21:50:45 -!- nooodl has left ("Leaving").
21:50:47 <pikhq> gzip?
21:50:55 -!- nooodl has joined.
21:50:56 <kmc> BOCU!
21:50:58 <nooodl> wow oops
21:50:59 <olsner> my 4GB of ram is running out, so please use ascii
21:50:59 <monqy> hi nooodl
21:51:01 <nooodl> hi
21:51:23 <kmc> do you all know the cute trick for finding memory leaks
21:51:33 <oerjan> !blsq 1 100r@ 2B!{'1==fl2.%}m[
21:51:33 <blsqbot> Ain't nobody got time fo' dat!
21:51:38 <oerjan> !blsq 1 10r@ 2B!{'1==fl2.%}m[
21:51:38 <blsqbot> {ERROR: Burlesque: (.%) Invalid arguments! 2 ERROR: Burlesque: (L[) Invalid argu
21:51:50 <oerjan> oops
21:51:51 <kmc> run the leaky program in a debugger and just look at randomly chosen pages of memory
21:51:59 <kmc> by hypothesis, most of the memory is leaked objects
21:52:08 <oerjan> !blsq 1 10r@ 2B!{{'1==}fl2.%}m[
21:52:09 <blsqbot> {1 1 0 1 0 0 1 1 0 0}
21:52:18 <oerjan> !blsq 0 100r@ 2B!{{'1==}fl2.%}m[
21:52:18 <blsqbot> Ain't nobody got time fo' dat!
21:52:22 <oerjan> !blsq 0 130r@ 2B!{{'1==}fl2.%}m[
21:52:23 <blsqbot> Ain't nobody got time fo' dat!
21:52:27 <nooodl> my trick is
21:52:27 <oerjan> !blsq 0 30r@ 2B!{{'1==}fl2.%}m[
21:52:27 <blsqbot> {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0}
21:52:29 <nooodl> stare at source code
21:52:31 <oerjan> argh
21:52:35 <Bike> kmc: cute indeed v_v
21:52:38 <olsner> kmc: you mean look at an arbitrary piece of memory and assume that whatever you're looking at is a memory leak?
21:52:40 <oerjan> (yay)
21:53:07 <kmc> yes
21:53:18 <kmc> that is, assume it's a leaked object
21:53:35 <kmc> you still need to figure out what's leaking that kind of object
21:54:02 <kmc> but you don't need any heap profiler or whatever
21:54:12 <oerjan> !blsq 0 30r@ 2B!{{'1==}fl2.%}m[1SH
21:54:12 <blsqbot> "[0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0]"
21:54:14 <kmc> you can do it on a running production system or a coredump after the fact
21:54:16 <oerjan> darn
21:54:29 -!- zzo38 has joined.
21:56:28 <oerjan> !blsq 0 30r@ 2B!{{'1==}fl2.%}m[0SH
21:56:29 <blsqbot> "[0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1,
21:59:28 <Phantom_Hoover> wtf
21:59:35 <Phantom_Hoover> i can't load any websites except google...
22:03:52 <nooodl> can you google things
22:03:56 <Phantom_Hoover> ye
22:03:57 <Phantom_Hoover> s
22:04:05 <Phantom_Hoover> but i can't actually load any of the results...
22:04:09 <nooodl> use google cache forever
22:05:00 <oerjan> !blsq 0 30r@ 2B!{{'1==}fl2.%}m[""+]{_+}r[
22:05:00 <blsqbot> Ain't nobody got time fo' dat!
22:05:11 <oerjan> !blsq 0 30r@ 2B!{{'1==}fl2.%}m[""+]
22:05:11 <blsqbot> {"" 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0}
22:05:29 <Taneb> !blsq ("yay")
22:05:30 <blsqbot> "yay"
22:07:09 <oerjan> !blsq 0 10r@ 2B!{{'1==}fl2.%}m[""+]{_+}r[
22:07:09 <blsqbot> "01101001100"
22:07:20 -!- epicmonkey has quit (Ping timeout: 260 seconds).
22:07:25 -!- Taneb has quit (Remote host closed the connection).
22:07:51 -!- Nisstyre has joined.
22:07:59 <oerjan> ok so basically that works but gets really short because blsqbot has a low timeout.
22:13:12 <oerjan> !blsq 0 30r@ 2B!{{'1==}fl2.%}m[XX
22:13:12 <blsqbot> {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0}
22:14:58 <oerjan> oh
22:15:13 <oerjan> !blsq 0 30r@ 2B!{{'1==}fl2.%}m[""+]\[
22:15:13 <blsqbot> Ain't nobody got time fo' dat!
22:15:18 <oerjan> !blsq 0 10r@ 2B!{{'1==}fl2.%}m[""+]\[
22:15:18 <blsqbot> "01101001100"
22:15:45 <nooodl> oerjan: what is that?
22:15:56 <oerjan> thue-morse sequence
22:16:30 <nooodl> ah
22:16:34 -!- gs2bot has quit (Remote host closed the connection).
22:18:02 <nooodl> !blsq 0{#s<-)n!^p}8E!#s
22:18:02 <blsqbot> Ain't nobody got time fo' dat!
22:18:05 <nooodl> !blsq 0{#s<-)n!^p}4E!#s
22:18:05 <blsqbot> {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0}
22:18:13 <nooodl> !blsq 0{#s<-)n!^p}5E!#s
22:18:13 <blsqbot> {1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0}
22:18:24 <oerjan> wat
22:18:55 <nooodl> {}5E! is "execute 5 times"
22:19:20 <nooodl> #s<- pushes the entire stack, )n! negates all of it, ^p adds it to the current stack
22:19:38 <nooodl> !blsq {1 1 1 1 0 0} #s<-)n!^p #s
22:19:38 <blsqbot> {1 {1 1 1 1 0 0}}
22:19:45 <nooodl> !blsq 1 1 1 1 0 0 #s<-)n!^p #s
22:19:45 <blsqbot> {1 1 0 0 0 0 0 0 1 1 1 1}
22:20:20 <nooodl> oh it also reverses it because stacks in burlesque are kinda backwards
22:20:34 -!- carado has quit (Ping timeout: 246 seconds).
22:31:22 <ion> :-D http://www.sewingandembroiderywarehouse.com/embtrb.htm
22:31:52 <Fiora> funnily enough that website works correctly on IE XD
22:31:59 <Fiora> I'm guessing they never tried viewing it on anything else
22:32:24 <Bike> this doesn't seem like very good advice anyway
22:32:32 <Bike> "Needle to small " "You may have to change to a larger needle"
22:32:51 <Gregor> THE FOUR-CORNER SEWING MACHINE CUBE
22:33:45 <ion> gregor: :-D
22:33:51 <Fiora> ion: I guess that site had you
22:33:53 <Fiora> in stitches
22:33:59 <ion> zing
22:34:07 <oerjan> !blsq 0{#s<-)n!^p}4E!#sim
22:34:07 <blsqbot> 110100110010110
22:34:07 <kmc> ouch
22:34:19 <oerjan> darn initial 0
22:36:58 <olsner> hmm, I wonder if that's a bug on my side or theirs, the text gets bigger and bigger for every paragraph
22:40:58 <oerjan> !blsq "a"sh
22:40:59 <blsqbot> a
22:41:04 <oerjan> !blsq "a"sh"b"sh++
22:41:05 <blsqbot> ERROR: Burlesque: (++) Invalid arguments!
22:41:17 <oerjan> !blsq "a"sh"b"sh.+
22:41:17 <blsqbot> ERROR: Burlesque: (.+) Invalid arguments!
22:41:19 <oerjan> !blsq "a"sh"b"sh_+
22:41:19 <blsqbot> ERROR: Burlesque: (_+) Invalid arguments!
22:42:43 <oerjan> !blsq {0}{{n!}[m\[}e!
22:42:44 <blsqbot> {1 0}
22:42:44 <nooodl> ion: this is so great
22:43:39 <monqy> oh iv'e seen this before
22:43:43 <monqy> yeah it's amazing
22:44:21 <oerjan> !blsq {0}{{n!}[m\[}8E!
22:44:21 <blsqbot> Ain't nobody got time fo' dat!
22:44:24 <oerjan> !blsq {0}{{n!}[m\[}4E!
22:44:24 <blsqbot> {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0}
22:45:39 <oerjan> 1 char shorter :P
22:47:46 <oerjan> !blsq {0}{{n!}[m\[}4E!)Sh++
22:47:46 <blsqbot> "0110100110010110"
22:50:50 <oerjan> !blsq {0}{{n!^^n!}[m\[}4E!)Sh++
22:50:50 <blsqbot> Ain't nobody got time fo' dat!
22:50:58 <oerjan> !blsq {0}{{n!^^n!}[m\[}e!)Sh++
22:50:58 <blsqbot> "010"
22:51:00 -!- nada0 has joined.
22:51:29 <oerjan> !blsq {0}{{n!^^^^n!}[m\[}e!)Sh++
22:51:29 <blsqbot> "0110"
22:51:34 <oerjan> !blsq {0}{{n!^^^^n!}[m\[}2E!)Sh++
22:51:34 <blsqbot> "0110100110010110"
22:51:40 <oerjan> !blsq {0}{{n!^^^^n!}[m\[}3E!)Sh++
22:51:40 <blsqbot> Ain't nobody got time fo' dat!
22:52:04 <quintopia> hi blsqbot
22:52:36 <quintopia> what language do you speak?
22:53:50 <oerjan> burlesque
22:54:58 <quintopia> is it a hard language to speak
22:55:32 <oerjan> http://mroman.ch/burlesque/lref.html
22:55:39 <oerjan> it is somewhat annoying
22:55:42 <quintopia> i recognize how that sequence is formed. is it thue-morse?
22:55:46 <oerjan> yes
22:56:07 <oerjan> although some of the annoyance is because the bot has a 0.1 millisecond timeout
22:56:20 <quintopia> that is short
22:56:51 <quintopia> why not a queue of 1sec executions that can't exceed five in length
22:56:54 <quintopia> that would be better right
22:57:00 -!- nada0 has quit (Quit: Leaving).
22:57:01 <oerjan> !blsq {0}{{{{0 1}{1 0}}\/!!}\m}e!
22:57:01 <blsqbot> {0 1}
22:57:06 <oerjan> !blsq {0}{{{{0 1}{1 0}}\/!!}\m}8E!
22:57:06 <blsqbot> Ain't nobody got time fo' dat!
22:57:08 <oerjan> !blsq {0}{{{{0 1}{1 0}}\/!!}\m}4E!
22:57:08 <blsqbot> {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0}
22:57:15 <oerjan> !blsq {0}{{{{0 1}{1 0}}\/!!}\m}6E!
22:57:15 <blsqbot> {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0
22:57:26 <oerjan> !blsq {0}{{{{0 1 1 0}{1 0 0 1}}\/!!}\m}6E!
22:57:26 <blsqbot> Ain't nobody got time fo' dat!
22:57:29 <oerjan> !blsq {0}{{{{0 1 1 0}{1 0 0 1}}\/!!}\m}4E!
22:57:29 <blsqbot> Ain't nobody got time fo' dat!
22:57:31 <oerjan> !blsq {0}{{{{0 1 1 0}{1 0 0 1}}\/!!}\m}3E!
22:57:31 <blsqbot> {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0
22:57:49 <oerjan> !blsq {0}{{{{0 1 1 0}{1 0 0 1}}\/!!}\m}3E!)Sh++
22:57:49 <blsqbot> Ain't nobody got time fo' dat!
22:57:53 <oerjan> !blsq {0}{{{{0 1 1 0}{1 0 0 1}}\/!!}\m}2E!)Sh++
22:57:53 <blsqbot> "0110100110010110"
22:58:06 <oerjan> it seems bloody impossible to get a longer sequence
22:58:39 <oerjan> quintopia: yes
23:03:53 <FreeFull> Is this that infinite sequence that never repeats?
23:03:55 -!- impomatic2 has joined.
23:04:07 <FreeFull> Well, not very specific
23:06:49 -!- impomatic2 has changed nick to impomatic.
23:09:01 <oerjan> it never repeats yes
23:09:41 <doesthiswork> it's expanding ever 1=>10 and every 0 =>01 ?
23:09:48 <oerjan> yet every substring is found within bounded intervals
23:09:55 <oerjan> doesthiswork: that's one formulation yes
23:10:10 -!- yhojeyisaac has joined.
23:10:17 <oerjan> (it's "uniformly recurrent")
23:10:47 -!- yhojeyisaac has left.
23:10:57 <oerjan> he keeps coming back
23:11:10 <doesthiswork> who's he?
23:11:19 <doesthiswork> oh nevermind
23:11:39 <oerjan> i don't know but he came here and wanted to chat in spanish
23:11:51 <oerjan> and has said very little otherwise
23:11:54 <oerjan> afaik
23:12:09 <doesthiswork> is spanish an esoteric language?
23:12:15 <oerjan> maybe
23:15:10 <doesthiswork> are there names to all the variations like 0=>01, 1=>00 ?
23:16:17 <nooodl> most of them aren't very interesting i think?
23:16:46 <nooodl> actually, that one is pretty interesting.
23:17:36 <Bike> doesthiswork: automatic sequence, i think.
23:17:40 -!- fungot has quit (Ping timeout: 248 seconds).
23:18:56 <nooodl> > let f 0 = [0,1]; f 1 = [0,0] in map (".#"!!) $ iterate (concatMap f) [0] !! 5
23:18:57 <lambdabot> ".#...#.#.#...#...#...#.#.#...#.#"
23:19:03 <doesthiswork> thanks
23:30:35 -!- tswett has quit (Changing host).
23:30:35 -!- tswett has joined.
23:49:53 -!- sirdancealot7 has quit (Ping timeout: 255 seconds).
23:52:46 -!- sirdancealot7 has joined.
23:53:34 -!- DHeadshot has joined.
2013-02-25
00:00:01 -!- GOMADWarrior has quit (Read error: Connection timed out).
00:03:54 -!- monqy has quit (Quit: Lost terminal).
00:06:15 -!- monqy has joined.
00:06:32 -!- mroman has quit (Ping timeout: 255 seconds).
00:06:59 -!- elliott has quit (Ping timeout: 246 seconds).
00:07:17 -!- mroman has joined.
00:08:01 -!- sirdancealot7 has quit (Ping timeout: 246 seconds).
00:12:59 -!- elliott_ has joined.
00:23:14 <doesthiswork> I graphed the time between messages and found out that the majority of the time there is from 1 to 8 minutes between messages in this channel
00:24:23 <zzo38> doesthiswork: What percentage of the time is that?
00:25:06 <zzo38> Can you plot the time between messages on the X axis and then bars rising above on Y axis how often that is?
00:25:57 -!- nooga has quit (Ping timeout: 252 seconds).
00:26:24 -!- sirdancealot has joined.
00:27:24 <doesthiswork> http://s15.postimage.org/n5n38rmln/Rplot_page_1.jpg
00:27:38 <doesthiswork> I log transformed it before graphing
00:27:48 -!- Frooxius has quit (Ping timeout: 264 seconds).
00:27:51 <doesthiswork> so the x is powers of two
00:27:57 <doesthiswork> and the y is seconds
00:29:35 -!- nooga has joined.
00:30:16 -!- sirdancealot has quit (Excess Flood).
00:31:20 <Phantom_Hoover> <doesthiswork> I graphed the time between messages and found out that the majority of the time there is from 1 to 8 minutes between messages in this channel
00:31:22 <Phantom_Hoover> is that like
00:31:28 <Phantom_Hoover> a particularly helpful metric of anythign
00:31:31 <Phantom_Hoover> *anything
00:31:50 <Phantom_Hoover> obviously there are going to be less long waits because you can't fit as many of them into a given day
00:32:12 <doesthiswork> it tells you how fast you should expect the conversation to go
00:32:49 <doesthiswork> I wanted to see if it was bimodal
00:33:11 <nooodl> you should run that on other channels you can get logs for
00:33:22 <nooodl> something busy maybe
00:33:31 <doesthiswork> haskell?
00:33:36 <nooodl> sure
00:34:22 <nooodl> anyway. it is time........ to sleep
00:34:26 -!- nooodl has quit (Quit: Leaving).
00:34:32 <kmc> you should produce a sound file with one click per message
00:34:38 <kmc> at some multiple of realtime
00:36:54 -!- tswett_ has joined.
00:37:38 -!- tswett has quit (Quit: leaving).
00:38:40 -!- tswett_ has changed nick to tswett.
00:42:45 <doesthiswork> here's haskell's plot for yesterday http://s15.postimage.org/g6i80w1ez/Rplot_page_1.jpg
00:43:18 <Phantom_Hoover> so it peaks at... 30 seconds?
00:43:19 <kmc> needs better labels :(
00:43:42 -!- Phantom_Hoover has left ("Leaving").
00:43:45 -!- Phantom_Hoover has quit (Quit: Leaving).
00:47:36 <kmc> the problem of estimating a continuous-valued hidden parameter from interarrival times is important in neuroscience
00:47:41 <kmc> also probably in computer networking
00:48:17 <tswett> `echo tswett
00:48:19 <HackEgo> tswett
00:48:26 <tswett> Amazing.
00:49:14 <doesthiswork> I think I'm off by a power of 2 in both
00:49:29 <doesthiswork> so they're twice as fast as I say
00:49:45 <doesthiswork> because lists in R start indexing at 1
00:50:05 * tswett Hey guys, mind if I test some stuff in here? No? Great, thanks.
00:50:18 -!- sirdancealot has joined.
00:51:02 * tswett So yes, I recently switched to a different IRC client. I'm trying stuff out.
00:51:16 <tswett> It's Quassel. It's sorta like an IRC client with a bouncer built in.
00:51:17 <Bike> what are you testing
00:51:21 <Bike> am i already being tested??
00:51:26 <tswett> Yes.
00:51:35 <Bike> D:
00:51:36 <Sgeo_> Does Quassel still freeze randomly?
00:51:37 <tswett> Your test results: lavender–grape.
00:51:46 <Bike> ...I'm ok with that.
00:51:49 <tswett> I don't know. It hasn't frozen on me yet.
00:51:58 <Sgeo_> Maybe I should try it again at some point
00:52:22 <tswett> Okay, it has an extremely minor bug: the descenders on some letters are cut off.
00:52:32 <quintopia> is rewriting a java chatbot in php an improvement if the original coder was shit?
00:52:41 <monqy> good question
00:52:55 <Bike> Is that a trick question
00:53:04 <quintopia> its a question of scruples
00:53:04 <doesthiswork> I think it's theoretically possible for php to be an improvement, maybe
00:53:06 <monqy> a better question may be why rewrite it in php of all things
00:53:13 <kmc> i hear good things about Quassel
00:53:28 <quintopia> obviously because the person who has the time to rewrite it is best in php
00:53:31 <kmc> i use irssi in screen on ec2 via mosh
00:53:33 <monqy> it's definitely possible for php code to be better than java code but
00:53:40 <quintopia> ec2 eh
00:53:42 <monqy> urgh
00:53:45 <quintopia> i have all of those but ec2
00:53:48 <monqy> why php why
00:53:52 <tswett> Quassel seems pretty good so far.
00:54:42 <kmc> quintopia: yeah, free micro instance
00:54:46 <kmc> (free for a year, cheap after)
00:54:51 <quintopia> ah
00:54:58 <quintopia> i'm pretty happy with my vps
00:55:13 <tswett> Bug that is minor, but not extremely so: it doesn't seem to be possible to set the color of the topic bar, so it currently appears white-on-light-gray.
00:55:15 <kmc> yeah
00:55:17 -!- sirdancealot has quit (Excess Flood).
00:55:21 <kmc> using EC2 as a plain always-on server is kind of silly
00:55:24 <kmc> yet everyone does it
00:55:36 <tswett> kmc: do you have a better plain always-on server suggestion?
00:55:46 <kmc> i don't really like their management tools or the way they have funny names for everything
00:55:50 <kmc> tswett: there are tons of VPS providers
00:56:06 <quintopia> the downside of my VPS is i can't run tor node on it
00:56:08 <kmc> i hear linode and prgmr are good, for example
00:56:24 <quintopia> i could with prgmr but i wouldn't get as much for the price there
00:56:29 <quintopia> i don't recommend linode
00:56:44 <kmc> they might be cheaper than EC2 if you don't need the rapid scalability and API and the high availability stuff that doesn't actually work
00:57:25 <tswett> I think this micro instance is currently costing me $8 a month, though.
00:57:56 -!- DHeadshot has quit (Read error: Connection reset by peer).
00:57:59 <tswett> Maybe more. I might be using more than my quota of I/O requests.
00:58:02 -!- DH____ has joined.
00:59:05 <ais523> it took me a while to find a VPS provider which was compatible with me being lawful good
00:59:32 -!- sebbu has quit (Read error: Connection reset by peer).
00:59:59 -!- sebbu has joined.
00:59:59 -!- sebbu has quit (Changing host).
00:59:59 -!- sebbu has joined.
00:59:59 -!- sebbu has quit (Excess Flood).
01:00:24 -!- sebbu has joined.
01:00:24 -!- sebbu has quit (Changing host).
01:00:24 -!- sebbu has joined.
01:00:24 -!- sebbu has quit (Excess Flood).
01:00:41 -!- GOMADWarrior has joined.
01:00:49 -!- sebbu2 has joined.
01:00:49 -!- sebbu2 has quit (Changing host).
01:00:49 -!- sebbu2 has joined.
01:00:49 -!- sebbu2 has quit (Excess Flood).
01:01:15 -!- sebbu3 has joined.
01:01:15 -!- sebbu3 has quit (Changing host).
01:01:15 -!- sebbu3 has joined.
01:01:15 -!- sebbu3 has quit (Excess Flood).
01:01:22 <ais523> hmm
01:01:31 <ais523> I'll temp-ban him if it continues
01:01:44 <ais523> but I think he's noticed something's wrong
01:01:52 -!- sebbu4 has joined.
01:01:52 -!- sebbu4 has quit (Changing host).
01:01:52 -!- sebbu4 has joined.
01:01:52 -!- sebbu4 has quit (Excess Flood).
01:02:28 -!- sebbu5 has joined.
01:02:28 -!- sebbu5 has quit (Excess Flood).
01:02:39 -!- ais523 has left ("<fungot> fizzie: it makes demons fly out of my window, washing the windows api").
01:02:39 <Sgeo_> There's a channel to point him to iirc
01:02:43 <Sgeo_> ...
01:02:50 -!- ais523 has joined.
01:03:00 <ais523> hmm, the numbers keep increasing
01:04:40 <doesthiswork> maybe he should just change his name to noah
01:05:31 -!- sirdancealot has joined.
01:07:35 -!- copumpkin has quit (Ping timeout: 260 seconds).
01:08:06 -!- copumpkin has joined.
01:08:10 -!- sebbu6 has joined.
01:08:10 -!- sebbu6 has quit (Excess Flood).
01:10:25 <ais523> bleh, it's slow enough at this point that it's not really problematic
01:10:30 <ais523> but I'm interested in why he keeps flooding
01:15:34 <pikhq> Responding to server ping with an infinite loop?
01:17:01 -!- monqy has quit (Quit: hello).
01:17:07 <ais523> pikhq: hmm
01:19:47 -!- sirdancealot has quit (Ping timeout: 246 seconds).
01:22:36 -!- sebbu6 has joined.
01:23:23 -!- sebbu6 has changed nick to sebbu.
01:23:36 -!- sebbu has quit (Changing host).
01:23:36 -!- sebbu has joined.
01:24:32 -!- Zerker has joined.
01:33:59 -!- sirdancealot has joined.
01:38:33 <Sgeo_> sebbu, are you here to stay?
01:42:56 <tswett> Sgeo_: hey, do you have any interest in perhaps participating in a nomic that takes place in multiple IRC sessions?
01:43:15 <Sgeo_> multiple IRC sessions?
01:43:24 <Sgeo_> Is this going to be different from Canada?
01:44:05 <tswett> I don't really remember Canada.
01:44:23 <Sgeo_> (IRCnomic)
01:44:26 <tswett> I figure we would meet at a specific time once per week or something.
01:44:36 <Sgeo_> Ah.
01:45:17 <Sgeo_> I don't know if I can force myself to be awake at a specific time regularly
01:45:45 <tswett> Does that mean that you don't know of a specific time at which you'll usually be awake?
01:46:23 -!- nooga has quit (Ping timeout: 260 seconds).
01:46:43 -!- Zerker has quit (Remote host closed the connection).
01:46:58 -!- Zerker has joined.
01:47:31 -!- zzo38 has quit (Remote host closed the connection).
01:47:50 -!- DH____ has quit (Read error: Connection reset by peer).
01:48:10 -!- DHeadshot has joined.
01:48:36 <Sgeo_> tswett, that seems accurate to say
01:50:01 -!- ais523 has quit.
01:50:59 <tswett> All right.
01:51:15 <tswett> Think you'd be interested in playing anyway?
01:52:02 <Sgeo_> Probably, actually.
01:52:02 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:52:12 -!- DH____ has joined.
01:54:20 -!- otro_viajero7 has quit (Ping timeout: 252 seconds).
01:56:15 <Sgeo_> Going to go eat now
01:56:31 * tswett nods.
02:06:18 -!- monqy has joined.
02:07:30 -!- Arc_Koen has quit (Quit: Arc_Koen).
02:47:48 -!- esowiki has joined.
02:47:48 -!- glogbot has joined.
02:47:49 -!- glogbackup has left.
02:47:52 -!- HackEgo has joined.
02:47:52 -!- EgoBot has joined.
02:47:52 -!- esowiki has joined.
02:47:53 -!- esowiki has joined.
02:49:03 -!- Gregor has joined.
02:49:25 -!- Zerker has quit (Quit: Colloquy for iPad - Timeout (10 minutes)).
02:49:27 -!- Gregor has changed nick to Guest32646.
03:03:49 -!- Guest32646 has changed nick to Gregor.
03:09:40 -!- GOMADWarrior has quit (Ping timeout: 256 seconds).
03:27:39 -!- upgrayeddd has quit (Ping timeout: 260 seconds).
03:40:01 <Sgeo_> `slist
03:40:10 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
03:48:40 -!- upgrayeddd has joined.
04:42:53 <doesthiswork> these are the points near the tail end of the message frequency
05:14:31 -!- TeruFSX has quit (Ping timeout: 260 seconds).
05:19:35 -!- sebbu has quit (Ping timeout: 260 seconds).
05:20:01 <shachaf> kmc: Maybe I'd register shach.af if you registered miu.af.
05:20:20 <Bike> what is that, afghanistan
05:20:31 <shachaf> Yes.
05:29:57 <kmc> shachafghanistan
05:30:19 <shachaf> miuafghanistan
05:43:28 -!- doesthiswork has quit (Quit: Leaving.).
05:48:35 -!- doesthiswork has joined.
05:59:17 -!- zzo38 has joined.
05:59:33 <zzo38> The special state is really the one that is not quantum entanglement, isn't it? Or, did I misunderstand something?
06:00:12 <shachaf> zzo38: or both??????
06:00:32 -!- sebbu has joined.
06:00:32 -!- sebbu has quit (Changing host).
06:00:32 -!- sebbu has joined.
06:01:27 <zzo38> I thought it is something like, if it is not quantum entangled then you can write it as the tensor product of simpler states, or something like that. But might it also differ depending on what reference they are on?
06:02:14 -!- doesthiswork has quit (Quit: Leaving.).
06:02:26 <tswett> Yeah, I think that whether a state is entangled or not depends on the basis you're writing it in.
06:05:57 <tswett> Like, suppose you have the state a + b, where a and b are orthogonal vectors... that's a meaningful concept, isn't it?
06:06:33 <tswett> You could say a = |00> and b = |01>, and then that's the unentangled state |0> (|0> + |1>). But you could also say a = |00> and b = |11>, and then you see it as an entangled state.
06:06:44 <tswett> But I feel like I'm talking out of my ass right now.
06:28:02 <tswett> Okay, lemme ponder continuation passing style out loud for a little while.
06:28:22 <tswett> So the idea is that "no function ever returns", is it?
06:28:44 <Bike> that is a way to put it, though i'm not sure it's a good one
06:28:49 <tswett> It seems like that would mean that you don't actually need to specify the return type of any function.
06:29:07 <tswett> Just have a type constructor F, so that "F a" means "a function taking an 'a'".
06:29:39 <Bike> sensible
06:29:47 <tswett> The function (a -> b), then, just becomes something along the lines of F (a, F b).
06:31:06 <tswett> So what does application look like? It seems like the expression for application is the same as it's ever been—"f x"—except now that function doesn't return anything.
06:31:56 <tswett> And then it seems like to write a function taking a value x, all you'd need to write is "\x". What need is there to write the return value?
06:32:42 <tswett> All right, but I feel like the whole "eventual return value of the entire thing" is going to come into play here eventually.
06:33:29 <tswett> What's really happening, I suppose, is that first all function calls happen, and then all returns happen. Or something like that.
06:33:55 -!- epicmonkey has joined.
06:34:18 <tswett> So eventually, this weird stack of functions is going to return *something*. Let's call the thing that it returns "the buck", and we'll say it has the type @.
06:35:03 <tswett> Whenever you call a function, it returns the buck. The buck is the only thing any function ever returns.
06:35:20 <tswett> So when you're writing a lambda expression, you do need to have a buck on the right hand side.
06:35:47 <tswett> "F a" is a synonym of "a -> @".
06:37:13 <Bike> so how would you describe a function that takes one value and then doesn't call anything, forever
06:37:51 <tswett> I guess that would still be "F a", wouldn't it? That function would pretty much have to be \x -> undefined.
06:38:13 <tswett> So what would the "increment" function do? I guess it would take a number, and it would also take something that needs a number. It would take its number, increment it, give it to the new function, get the buck, and pass the buck down.
06:38:21 <tswett> So yeah. F (Integer, F Integer).
06:38:42 <tswett> \(x, cont) -> cont (x plus one).
07:05:41 <tswett> Suppose you've got an "F (a, F b)" and an "F (b, F c)", and you want an "F (a, F c)". What do you do?
07:05:42 -!- doesthiswork has joined.
07:07:55 <tswett> Say those two things are called f and g. Then I guess you go like \(x, cont) -> f (x, \y -> g (x, cont)).
07:15:10 -!- FreeFull has quit.
07:57:42 -!- sirdancealot has quit (Ping timeout: 252 seconds).
08:12:26 -!- sirdancealot has joined.
08:53:09 -!- Taneb has joined.
08:59:46 <mroman> quintopia: I can't give 1sec execution time
08:59:46 <lambdabot> mroman: You have 2 new messages. '/msg lambdabot @messages' to read them.
08:59:56 <mroman> quintopia: Because you could allocate all of my 80MB RAM in 1sec
09:00:11 <mroman> quintopia: And that'd crash other programs because I have no swap
09:00:52 <mroman> If you need more time you can use the online shell
09:00:59 <mroman> that has a higher timeout and a memory limit.
09:07:09 -!- monqy has quit (Quit: hello).
09:32:34 -!- Bike has quit (Quit: leaving).
09:32:43 -!- NuclearMeltdown has quit (Ping timeout: 276 seconds).
09:34:18 -!- NuclearMeltdown has joined.
09:37:49 <zzo38> Is excluded middle continuations sometimes useful?
09:38:39 <shachaf> ?
09:41:31 <zzo38> I mean: Cont r (Either a (a -> Cont r b))
09:42:25 <shachaf> Oh, sure, I guess.
09:43:10 <shachaf> do { x <- emc; ...; case emc of (Right k) -> ... (k x) ...; Left y -> ... }
09:44:29 <shachaf> That way you can "return to the top" with an x when you find one.
09:44:41 <shachaf> (But the (a -> Cont r b) case should be Left, and the a case should be Right.)
09:45:07 <zzo38> OK, why?
09:45:27 <shachaf> Because it's more "failure"y.
09:45:29 <shachaf> Well, maybe not.
09:45:29 <mroman> @messages
09:45:29 <lambdabot> oerjan said 12h 26m 13s ago: I suspect blsqbot is not doing the take to limit output size inside the timeout, which makes it time out because of parts it would otherwise never evaluate
09:45:29 <lambdabot> oerjan said 12h 25m 17s ago: e.g. there's no reason why 1R@ should timeout
09:45:32 <shachaf> In some cases it is.
09:46:39 <zzo38> Well, with the Either monad, the Left side means to stop and Right means it can continue (regardless of any failure). (This doesn't necessarily mean a reason either; you could do in either order with the type I gave)
09:47:33 <mroman> !blsq 1R@5.+
09:47:34 <blsqbot> {1 2 3 4 5}
09:49:05 <mroman> > take 80 . reverse [1..]
09:49:06 <lambdabot> No instances for (GHC.Enum.Enum [a0], GHC.Num.Num [a0])
09:49:07 <lambdabot> arising from a u...
09:49:11 <mroman> > take 80 . reverse $ [1..]
09:49:17 <lambdabot> mueval: Prelude.undefined
09:49:53 <mroman> @tell oerjan The reason for that is you can't do take 80 . reverse [1..] in Haskell without ending in an endless loop
09:49:53 <lambdabot> Consider it noted.
09:50:27 <mroman> @tell oerjan If I were to put the take 80 outside the timeout it loops forever
09:50:28 <lambdabot> Consider it noted.
09:51:01 <shachaf> You don't need to @tell oerjan
09:51:03 <shachaf> He just knows.
09:51:40 <mroman> @tell oerjan actually the take 80 is outside the timeout now, but to prevent exactly that I use evaluate $!!
09:51:40 <lambdabot> Consider it noted.
09:53:46 -!- NihilistDandy has joined.
09:59:36 -!- olsner has quit (Ping timeout: 252 seconds).
10:11:26 -!- olsner has joined.
10:36:05 -!- epicmonkey has quit (Ping timeout: 255 seconds).
10:42:26 -!- epicmonkey has joined.
10:43:45 -!- Frooxius has joined.
10:44:23 -!- NihilistDandy has quit (Quit: Textual IRC Client: www.textualapp.com).
10:58:05 -!- Phantom_Hoover has joined.
11:05:14 -!- nooga has joined.
11:18:09 <Taneb> Help
11:18:16 <Phantom_Hoover> ok
11:18:47 <Taneb> I'm tempted to use a Cont monad
11:19:57 <Phantom_Hoover> dont'
11:20:41 <shachaf> Phantom_Hoover: what are you doing here
11:20:42 <shachaf> oh
11:20:45 <shachaf> this isn't #-lens
11:20:50 <shachaf> all my channels are shifter by one
11:20:51 <shachaf> help
11:21:59 <Taneb> What have you closed
11:22:11 <shachaf> #haskell
11:22:19 <shachaf> ("its just temporary")
11:22:22 -!- oerjan has joined.
11:23:16 <Phantom_Hoover> maybe you're turning into kmc
11:23:53 <oerjan> @messages
11:23:53 <lambdabot> mroman said 1h 34m ago: The reason for that is you can't do take 80 . reverse [1..] in Haskell without ending in an endless loop
11:23:53 <lambdabot> mroman said 1h 33m 26s ago: If I were to put the take 80 outside the timeout it loops forever
11:23:53 <lambdabot> mroman said 1h 32m 13s ago: actually the take 80 is outside the timeout now, but to prevent exactly that I use evaluate $!!
11:24:53 -!- doesthiswork has quit (Quit: Leaving.).
11:25:19 <shachaf> Phantom_Hoover: I hope not.
11:25:22 <oerjan> @tell mroman um i don't think you understand what i am saying. you _should_ put the take 80 inside the timeout, so that only what's _printed_ affects the evaluation length. that way you can still print the beginning of infinite lists without timing out.
11:25:22 <lambdabot> Consider it noted.
11:27:04 <oerjan> @tell mroman *evaluation time
11:27:04 <lambdabot> Consider it noted.
11:35:50 <oerjan> <tswett> Yeah, I think that whether a state is entangled or not depends on the basis you're writing it in. <-- to define entanglement, you need to have an idea of how the state divides into different objects. this limits the choice of basises, although you can still make different choices for each subobject, and afaiu it won't affect whether they're entangled
11:36:25 <oerjan> *bases
11:37:14 <oerjan> @tell tswett <tswett> Yeah, I think that whether a state is entangled or not depends on the basis you're writing it in. <-- to define entanglement, you need to have an idea of how the state divides into different objects. this limits the choice of basises, although you can still make different choices for each subobject, and afaiu it won't affect whether they're entangled
11:37:15 <lambdabot> Consider it noted.
11:37:35 -!- DH____ has quit (Ping timeout: 260 seconds).
11:38:54 <zzo38> Is there any kind of Curry-Howard which is involving the halting problem?
11:40:54 <oerjan> @tell tswett <tswett> And then it seems like to write a function taking a value x, all you'd need to write is "\x". What need is there to write the return value? <-- you need to write the _continuation_ for the return value.
11:40:54 <lambdabot> Consider it noted.
11:41:48 <oerjan> @tell tswett <tswett> What's really happening, I suppose, is that first all function calls happen, and then all returns happen. Or something like that. <-- note that with CPS, all the function calls are tail calls, so the returns all can be TCO'ed away
11:41:48 <lambdabot> Consider it noted.
11:42:34 <oerjan> people being away is so annoying :P
11:43:18 <elliott_> hello
11:43:23 <oerjan> hi elliott_
11:43:29 -!- elliott_ has changed nick to elliott.
11:43:42 <oerjan> nice guy, not being away and everything
11:44:06 <elliott> http://sprunge.us/gPAL
11:44:20 <elliott> caption: This Is My Fucking Nickname Goddammit
11:45:26 <oerjan> persistent guy
11:45:36 <oerjan> where do you get that list?
11:45:43 <elliott> guys plural going by the hostnames
11:45:48 <oerjan> oh right
11:45:52 <elliott> I get the list because nickserv messages me every time it happens
11:45:57 <oerjan> aha
11:45:59 <elliott> you need to set the guard thing on your nick so people get booted off after 30 seconds
11:46:23 -!- elliott has changed nick to elliott__.
11:46:26 <elliott__> oops
11:46:27 -!- elliott__ has changed nick to elliott.
11:46:30 <elliott> that was meant to be a whois
11:46:43 <oerjan> oh. well i guess that would only be annoying for me, seeing as no one ever steals my nickname anyway :P
11:47:00 <elliott> well I have my IRC client set up to auto-identify so it's immaterial in terms of annoying me :P
11:47:34 <oerjan> yeah irssi is set up that way but occasionally i cannot get to nvg and have to use webchat
11:48:29 <mroman> @messages
11:48:29 <lambdabot> oerjan said 23m 7s ago: um i don't think you understand what i am saying. you _should_ put the take 80 inside the timeout, so that only what's _printed_ affects the evaluation length. that way you
11:48:29 <lambdabot> can still print the beginning of infinite lists without timing out.
11:48:29 <lambdabot> oerjan said 21m 25s ago: *evaluation time
11:48:49 <mroman> Ic.
11:49:42 <oerjan> mroman: also 100 microseconds is quite unusually low :P
11:50:47 <oerjan> mroman: someone suggested making some kind of queue instead, to limit the total and have a higher individual limit
11:51:54 <oerjan> also my first sentence above sounded grumpy, sorry.
11:55:42 <fizzie> 100 microseconds is somewhat likely to be lower than the underlying timer resolution, depending on the implementation. (I think based on the numbers printed in those 12345-and-8 pastes suggested a resolution of 10 milliseconds, at least for getCurrentTime.)
11:55:42 <lambdabot> fizzie: You have 1 new message. '/msg lambdabot @messages' to read it.
11:56:13 <oerjan> fizzie: it uses the timeout function. hm... let me look at the source of that.
11:58:06 <oerjan> fizzie: the timeout function _does_ take a microsecond argument.
11:58:34 <fizzie> oerjan: I followed that path to Control.Concurrent.threadDelay, and then to GHC.Event.Thread.threadDelay but then couldn't bother figuring out what getSystemEventManager -> registerTimeout will do.
11:58:50 <fizzie> oerjan: POSIX nanosleep takes a nanosecond argument, but it's not going to have a nanosecond resolution anywhere ever.
11:58:58 <oerjan> heh
11:59:33 <mroman> Does the RTS have an option to limit memory usage?
11:59:38 <elliott> fizzie: What about if you power an ATOMIC CLOCK with LINUX?
11:59:40 <mroman> (for both stack and heap)
11:59:49 <mroman> Then I could increase the time limit.
12:00:15 <oerjan> almost certainly.
12:00:54 <mroman> I know there's an option for the stack.
12:01:36 <mroman> -H and -K probably
12:01:53 <Sgeo_> https://www.simple-talk.com/dotnet/.net-framework/10-reasons-why-visual-basic-is-better-than-c/
12:02:50 <oerjan> the RTS options seem hard to find in the manual...
12:03:08 <mroman> "This option does not put a limit on the heap size: the heap may grow beyond the given size as usual."
12:03:12 <mroman> that's bad :)
12:03:33 <mroman> ah there
12:03:39 <mroman> -M : Set the maximum heap size
12:03:45 <mroman> -K : Set the maximum stack size
12:04:27 <oerjan> mroman: wouldn't that crash the whole bot though...
12:04:37 <oerjan> if triggered
12:05:00 <mroman> The bot spawns the interpreter with readProcess
12:05:09 <oerjan> ok
12:05:37 <Phantom_Hoover> Sgeo_, I love 6
12:05:53 <mroman> (inside a catch, because else readProcess crashes if the process it executes crashes)
12:06:27 <Sgeo_> I still don't get how those functions exist in one .NET language but not another
12:08:53 <mroman> "It doesn’t matter if you disagree with everything else in this article: case-sensitivity alone is sufficient reason to ditch C#! "
12:09:09 <mroman> If somebody says that I stop reading immediately.
12:09:19 <shachaf> Well, sure.
12:09:26 <elliott> ugh
12:09:29 <elliott> I really hate mediawiki
12:09:30 <shachaf> If it doesn't matter whether you disagree with the rest of the article, why read it?
12:10:33 <mroman> Also... he explains about symbols...
12:10:48 <mroman> so why does VB use & for concatenate and = for compare
12:11:03 <fizzie> mroman: Because it was designed by a real person.
12:11:05 <mroman> I'd want "Hello" concatenate "World" and 1 comparewith 1
12:11:07 <fizzie> mroman: Instead of an academic.
12:11:11 <mroman> Yeah.
12:11:21 <mroman> But why don' just use words everywhere.
12:11:26 <mroman> Instead of mixing the two.
12:11:51 <mroman> Obviously he thought symbols are better to read than words
12:11:52 <elliott> fizzie: I think you need to add a smiley. Like so: :-)
12:11:56 <elliott> Otherwise people take you seriously.
12:12:15 <fizzie> elliott: Well, I mean, it was direct quotation from the article, and there's no smiley there.
12:12:22 <fizzie> Almost, anywya.
12:12:28 <elliott> By the way why do we care about this terrible linkbait article that Sgeo_ linked for no apparent reason?
12:12:32 <fizzie> I might have added some quotation marks though.
12:12:45 <Sgeo_> Someone linked to it in another channel
12:12:52 <fizzie> I have to say I was kind of surprised by the "Calculates the annual mortgage payment for a loan" function.
12:13:38 <mroman> also he complains about C# IDE
12:14:05 <mroman> When people don't understand the distinction between C# and Microsofts IDE I usually also would stop reading
12:14:11 <mroman> if I had something better to do
12:14:44 <fizzie> I got sidetracked to the MSDN Visual Basic Function Reference.
12:14:56 <elliott> Sgeo_: is it one of those things where it says that if you don't pass it on to ten other channels you'll die in a week
12:14:57 <fizzie> It's amusing because it's just a flat list without any categories.
12:15:18 <Sgeo_> elliott, what's wrong with linking to horrible articles?
12:15:45 <Phantom_Hoover> <elliott> I really hate mediawiki
12:16:07 <fizzie> PPmt -- "Returns a Double specifying the principal payment for a given period of an annuity based on periodic fixed payments and a fixed interest rate" -- is there right beside e.g. Mid (aka substr) and QBColor -- "Returns an Integer value representing the RGB color code corresponding to the specified [QBasic?] color number." -- it's just such a random set.
12:16:09 <Phantom_Hoover> i hear mediawiki's 'parser' is a complete mess of regexes that nobody really knows how to fi
12:16:11 <Phantom_Hoover> x
12:16:30 <fizzie> I've heard that too, and then I think I heard something about making a real parser?
12:16:30 <elliott> Phantom_Hoover: pretty much
12:16:36 <elliott> there are other parsers that are compatible though
12:16:41 <elliott> I think the plan is to rewrite it?
12:16:53 -!- Nisstyre has quit (Ping timeout: 255 seconds).
12:16:58 <Phantom_Hoover> i guess it's the perfect exemplar of PHP In The Real World then
12:17:14 <elliott> well the code structure isn't that awful
12:17:15 <fizzie> NPV: "Returns a Double specifying the net present value of an investment based on a series of periodic cash flows (payments and receipts) and a discount rate."
12:17:17 <mroman> I'd punch the author in the face.
12:17:22 <elliott> but administrating it just makes me want to die
12:17:37 <fizzie> That's right next to Print.
12:18:07 <Deewiant> I hear that those regexes are also essentially the spec for the "standard" input language
12:18:19 <fizzie> I would have expected there to have been some kind of a, I don't know, finance library/package/module/something.
12:18:29 <fizzie> MIRR: "Returns a Double specifying the modified internal rate of return for a series of periodic cash flows (payments and receipts)."
12:18:48 <elliott> fizzie: is that "[QBasic?]" in the official docs?
12:18:51 <Deewiant> You want your basic at-home accountant to be able to do things without any fuss
12:18:57 <fizzie> elliott: No, that's why I put it in [].
12:19:14 <elliott> :(
12:19:19 <Deewiant> Having to teach them about libraries/packages/modules/somethings will just result in lost sales
12:19:20 <elliott> I was hoping they were unsure about what they actually did.
12:20:51 <fizzie> Deewiant: It kind of reminds me of how SQLite has a soundex() function out of the blue, in its otherwise very sparse set of functions. (Though admittedly only if compiled with SQLITE_SOUNDEX.)
12:21:22 -!- ais523 has joined.
12:21:39 <elliott> PHP has soundex too!
12:21:43 <elliott> ais523: hi
12:21:53 <ais523> hi elliott
12:22:03 <fizzie> Yes, but you sort of expect that out of PHP.
12:22:07 <zzo38> Well, they are the default color numbers for PC; it is not specific with QBASIC, actually.
12:23:02 <Deewiant> fizzie: In SQLite that's quite a bit more surprising.
12:23:06 <fizzie> zzo38: Sure, I was just going by the function name.
12:23:54 <fizzie> Deewiant: The documentation says SQLITE_SOUNDEX is not set by default; but I'm sure there's a story behind it anyhow.
12:24:17 <ais523> zzo38: I find that those lists of colors sometimes mix up the red and blue channels
12:24:29 <ais523> so color 4 might be red, or blue, depending on the system you're using and the software stack behind it
12:25:02 <ais523> vanilla NetHack includes <curses.h> and uses it purely for the reason of discovering whether color 1 is red or blue, it ignores the whole of the rest of curses
12:25:23 <elliott> nice
12:26:33 <zzo38> ais523: Really? That is strange. The standard PC colors have 4 as red (although with VGA this can be changed).
12:26:46 <ais523> elliott: yeah, that was pretty wtf to me
12:28:30 <zzo38> But it is one of the problems RogueVM avoids; in RogueVM, 4 is always red (on a color display).
12:29:27 <ais523> what if it's a color display that doesn't have red as one of the colors?
12:29:37 <ais523> hmm… do those even exist?
12:29:51 <ais523> I've made color displays that could do red, yellow, and green (but no other colors)
12:30:11 <ais523> but don't think I've seen one without red, because it's the easiest color
12:30:12 <zzo38> ais523: I don't know, but if it is color display that doesn't have all the sixteen standard PC colors, then you have to use mono mode.
12:30:23 <ais523> that makes sense
12:30:56 -!- Nisstyre has joined.
12:31:18 <zzo38> fizzie: I do think it was due to QBASIC, but QBASIC also just uses the PC color codes (actually, QBASIC uses bit4 as the flashing bit while PC uses bit7, so that is a difference)
12:32:16 <Sgeo_> `olist
12:32:18 <zzo38> And since colors in Visual Basic are not flashing colors, this is irrelevant.
12:32:19 <HackEgo> shachaf oerjan Sgeo
12:32:40 <shachaf> That's more like it.
12:33:58 <oerjan> Sgeo_: hey i already saw that
12:34:02 -!- ais523 has quit (Read error: Connection reset by peer).
12:34:04 -!- Arc_Koen has joined.
12:34:12 -!- ais523 has joined.
12:34:13 <shachaf> oerjan: And you didn't tell us?
12:34:35 <oerjan> i thought i saw it because someone here had used `olist
12:34:53 <shachaf> I didn't see any olist for 871.
12:34:59 <oerjan> wat
12:35:16 -!- epicmonkey has quit (Ping timeout: 252 seconds).
12:35:24 <oerjan> um i see no 871
12:35:39 <zzo38> I do think that SQLITE_SOUNDEX not set by default is good idea not to include it by default. Actually it probably would be better if you just use a separate program for soundex it can define that function using the SQLite commands to create a new function.
12:35:48 <shachaf> oerjan: um http://www.giantitp.com/comics/oots0871.html
12:36:45 <oerjan> shachaf: oh, i always go to the last one i have in my browser history, then press forward... and that didn't work, nor was it listed in the sidebar. huh now it is.
12:37:22 <shachaf> I suppose you went to a cached version.
12:37:35 <shachaf> Caching: The root of all everything?
12:37:37 <oerjan> goddammit the sidebar is different for that link, all the others have the previous one listed
12:37:54 <shachaf> ?
12:37:58 <oerjan> shachaf: but the sidebar doesn't change when i force reload D:
12:37:58 <shachaf> Try reloading-without-cache.
12:38:00 <shachaf> Or just reloading.
12:38:06 <shachaf> I see 871 in the sidebar.
12:38:10 <shachaf> For 870 and the front page etc.
12:38:34 <oerjan> i see 871 in its _own_ sidebar, but not in the sidebar of comics i've already seen
12:38:47 <ais523> perhaps there's caching issues at their end
12:38:54 <shachaf> Perhaps.
12:38:55 <shachaf> I see it in every sidebar.
12:39:31 <Sgeo_> I see it same as shachaf
12:40:07 <oerjan> the "New" button in the main comics page, which i'm sure i haven't visited for ages, points at the previous comic D:
12:40:22 <oerjan> my cache is only 30 days
12:41:25 <oerjan> ok it's 871 on the erfworld page, i guess i must have visited the main page somehow anyway
12:41:34 <shachaf> What browser do you use?
12:41:37 <oerjan> IE 8
12:41:52 <shachaf> Oh.
12:49:50 -!- epicmonkey has joined.
12:51:08 <oerjan> it _could_ still be caching issues at their end, if pages send the wrong date for when they were last changed.
12:51:30 <oerjan> except force reload should take care of that. hm.
12:53:22 <fizzie> The RSS feed for it worked well, and did not even clutter #esoteric, hint hint.
12:53:39 <oerjan> it did not work well for me, when i tried it.
12:54:35 <elliott> fizzie: I believe the "list ship" has sailed.
12:54:52 * shachaf runs an RSS feed for olist that shows the actual comic inline rather than just a link.
12:54:56 <shachaf> Unfortunately I don't use RSS.
12:55:24 <fizzie> I used to have a Perl thing that made RSS feeds for webcomics that had no RSS feeds.
12:55:56 <fizzie> By regex-splonking an image out of a page, and "posting" a new "item" whenever it changed.
13:03:08 <oerjan> `ylist
13:03:09 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ylist: not found
13:03:26 <oerjan> (yafgc started updating again. yay!)
13:04:34 <oerjan> after a 3 week hiatus
13:04:42 <ais523> `elist
13:04:43 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: elist: not found
13:04:54 <ais523> that's a list of people who want to be notified about new comments in #esoteric
13:04:58 <ais523> the problem with it is that once you do it
13:05:01 <ais523> you have to do it repeatedly, forever
13:05:07 <ais523> to notify people of the fact you did it
13:05:11 <oerjan> scary stuff
13:05:42 -!- epicmonkey has quit (Ping timeout: 252 seconds).
13:07:43 <mroman> ok since I'm going to change the bot I might as well add suggested stuff
13:08:01 <mroman> Any suggestions besides ng (Negate = -1?*)?
13:08:07 <ais523> I guess it's for the best that the elist is empty
13:11:55 -!- epicmonkey has joined.
13:12:49 <nooga> i dob't get this whole burlesque
13:12:54 <nooga> don't*
13:13:27 <elliott> `run echo echo elliott >bin/elist; chmod +x bin/elist
13:13:31 <HackEgo> No output.
13:13:32 <elliott> ais523: I have subscribed
13:14:02 <ais523> elliott: oh dear
13:14:03 <mroman> nooga: What's there not to get?
13:14:07 <ais523> I put you in charge of notifying people
13:14:16 <elliott> ais523: no
13:14:21 <ais523> alternatively we could `revert it
13:14:23 <elliott> oh hm
13:14:26 <elliott> right, I accept the duty
13:14:32 <elliott> and since I now have op approval,
13:14:33 <elliott> `elist
13:14:34 <HackEgo> elliott
13:14:36 <elliott> `elist
13:14:37 <HackEgo> elliott
13:14:38 <elliott> `elist
13:14:39 <HackEgo> elliott
13:14:41 <elliott> `elist
13:14:42 <HackEgo> elliott
13:14:43 <elliott> `elist
13:14:44 <HackEgo> elliott
13:14:45 <elliott> `elist
13:14:46 <HackEgo> elliott
13:14:47 <elliott> `elist
13:14:48 <HackEgo> elliott
13:14:50 <elliott> `elist
13:14:51 <HackEgo> elliott
13:14:53 <elliott> `elist
13:14:54 <HackEgo> elliott
13:14:55 <elliott> `elist
13:14:57 <HackEgo> elliott
13:14:58 <elliott> `elist
13:14:59 <HackEgo> elliott
13:15:04 <elliott> ais523: you should kick yourself for this, btw
13:15:05 <elliott> `elist
13:15:06 <HackEgo> elliott
13:15:08 <elliott> `elist
13:15:09 <HackEgo> elliott
13:15:12 <elliott> `elist
13:15:13 <HackEgo> elliott
13:15:15 <elliott> `elist
13:15:16 <HackEgo> elliott
13:15:19 <elliott> `elist
13:15:20 <HackEgo> elliott
13:15:21 <ais523> elliott: I'm waiting to see when you get bored
13:15:22 <zzo38> elliott: No, you should kick yourself for this, btw.
13:15:22 <elliott> `elist
13:15:23 <HackEgo> elliott
13:15:29 <elliott> zzo38: that's tricky
13:15:31 <ais523> also you should be posting the `elist in bunches of five now because it grows with each comment
13:15:32 <elliott> if ais523 ops me I could do it
13:15:37 <elliott> ais523: I'm rate-limiting!
13:16:01 <elliott> ais523: OK, how about this: you op me, and I'll kick both of us
13:16:21 <ais523> that… seems like potentially a bad idea
13:16:49 <zzo38> (temporarily)
13:16:55 <elliott> ais523: well, it's not a worse idea than `elist spam continuing, right?
13:17:05 <ais523> yeah but you stopped
13:17:15 <elliott> ais523: only for these diplomatic negotiations!
13:17:30 <oerjan> `run while 1; do elist; od
13:17:32 <HackEgo> bash: -c: line 1: syntax error: unexpected end of file
13:17:35 <oerjan> hmph
13:17:38 <elliott> oerjan: "done"
13:17:43 <oerjan> `run while 1; do elist; done
13:17:45 <HackEgo> bash: 1: command not found
13:17:48 <oerjan> eek
13:17:55 <oerjan> `run while true; do elist; done
13:18:07 <elliott> ais523: OK, how about this: I put you on the elist so that it's even more annoying, thus making opping me so that I can kick both of us better in comparison
13:18:15 <oerjan> this seems not to work
13:18:18 <ais523> elliott: but the lists don't work like that
13:18:26 <HackEgo> elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \ elliott \
13:18:30 <oerjan> ah
13:18:36 <elliott> ais523: well, I have no idea how the lists work any more
13:18:54 <oerjan> elliott: I DID AN INFINITE AMOUNT, IT'S OK NOW
13:19:30 <ais523> oerjan: but there have been fewer than infinity comments
13:19:30 <elliott> oerjan: no, you fool, now I have to run elist an infinite number of times to notify about the infinite messages
13:19:32 <ais523> now you have to delete some
13:20:11 <oerjan> elliott: no, it was just one comment, that was the clever bit
13:20:28 <mroman> !blsq "noog")<-zi).*
13:20:28 <blsqbot> {ERROR: Burlesque: (.*) Invalid arguments! {0 'N} ERROR: Burlesque: (.*) Invalid
13:20:30 <ais523> yeah, oerjan is correct here
13:20:42 <mroman> !blsq "noog")<-ziU[
13:20:42 <blsqbot> "OOOGGG"
13:20:47 <elliott> hmm
13:20:50 <elliott> well, what ais523 said
13:20:58 <mroman> !blsq " NoOg")<-ziU[
13:20:59 <blsqbot> "nOOoooGGGG"
13:21:13 <elliott> anyway I still maintain that I ais523 should op me so I can kick us, if only because I cannot disobey zzo38's order to kick myself
13:21:18 <elliott> s/the second I //
13:22:31 <oerjan> !blsq 1 2 3 4 #s^^bx++
13:22:31 <blsqbot> {4 3 2 1}
13:22:39 -!- DHeadshot has joined.
13:22:47 <zzo38> If you cannot obey and you cannot disobey, then what is it?
13:22:47 <oerjan> huh
13:22:54 <oerjan> oh
13:22:57 <oerjan> !blsq 1 2 3 4 #s^^bx_+
13:22:58 <blsqbot> {4 3 2 1 {4 3 2 1}}
13:23:46 <oerjan> zzo38: that's life, at least for me
13:24:21 <elliott> alternatively oerjan can do it.
13:24:28 <mroman> oh yeah. I wanted to add a tuple like command.
13:24:35 <mroman> !blsq {1 2}{1 2}_+
13:24:35 <blsqbot> {1 2 1 2}
13:24:50 <mroman> if you'd want {{1 2}{1 2}} you'd need to box twices
13:24:55 <mroman> !blsq {1 2}bx{1 2}bx_+
13:24:56 <blsqbot> {{1 2} {1 2}}
13:25:04 <mroman> -s
13:25:55 <oerjan> oh hm this is wrong because it's reversed
13:26:22 <oerjan> mroman: i wasn't trying to do that, i wanted to see how to get a copy of the stack _without_ removing the rest.
13:26:30 <oerjan> s/the rest/it/
13:26:48 <oerjan> !blsq 1 2 3 4 #s^^bx\/_+#S
13:26:48 <blsqbot> {4 3 2 1}
13:27:15 <oerjan> !blsq 1 2 3 4 #s^^bx\/_+#S++#s
13:27:15 <blsqbot> {10 4 3 2 1}
13:27:28 <mroman> Hm?
13:27:37 <mroman> Doesn't #s do exactly that?
13:27:52 <oerjan> no, #s removes the original stack afaiu
13:27:58 <mroman> No it does not.
13:28:19 <oerjan> yes it does.
13:28:49 <oerjan> !blsq 1 2 3 4 #s 5 \/ #S#s
13:28:49 <blsqbot> {4 3 2 1}
13:28:55 <oerjan> or does it...
13:29:08 <mroman> It does not.
13:29:10 <oerjan> good grief
13:29:15 <mroman> blsqbot just prints the top element
13:29:19 <mroman> !blsq 1 2 3 4#s#s
13:29:20 <blsqbot> {{4 3 2 1} 4 3 2 1}
13:29:25 <mroman> ^- that's your stack.
13:29:27 <oerjan> ok then
13:29:44 <oerjan> how then _does_ one remove the whole stack?
13:29:48 <oerjan> except the top element
13:30:04 <mroman> http://eso.mroman.ch/cgi/burlesque.cgi?q=1+2+3+4%23s <- see here
13:30:07 <mroman> oerjan: Hm..
13:30:38 <mroman> hm no
13:30:46 <mroman> #s head bx #S
13:31:01 <mroman> !blsq 1 2 3 4#s-]bx#S
13:31:01 <blsqbot> 4
13:31:03 <mroman> !blsq 1 2 3 4#s-]bx#S#s
13:31:04 <blsqbot> {4}
13:31:09 <mroman> ^- deletes everything except the 4
13:31:21 <oerjan> oh wait #S _does_ delete the rest of stack?
13:31:31 <mroman> #S overwrites the stack, yes.
13:31:46 <oerjan> ok then i had them sort of backwards :P
13:32:04 <mroman> #s pushes the stack to the stack
13:32:14 <mroman> #S pops a block from the stack and replaces the _whole_ stack with it
13:34:00 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:34:02 <mroman> !blsq 1 2 3 4 bx{\/+]}{\/isn!}w!
13:34:02 <blsqbot> {1 2 3 4}
13:34:06 <oerjan> !blsq #Q^^#s
13:34:06 <blsqbot> {{^^ #s} {^^ #s}}
13:34:24 <mroman> !blsq 1 2 3 4 bx{\/+]}{\/isn!}w![~
13:34:25 <blsqbot> 4
13:34:36 <mroman> ^- that would also delete everything except the top element
13:34:45 <oerjan> i think we discussed something resembling #Q for an underload variation
13:36:50 <mroman> It'd be interesting to see what #q #Q #q and #Q could do
13:36:54 <mroman> eh
13:37:01 <mroman> *#q #Q #j #J
13:37:38 <oerjan> !blsq 1 2 3 4bx#S"simpler, no?"vv
13:38:24 <mroman> Maybe #q#Q#s#S^^ are enough for tcness
13:39:14 <mroman> Or #q#Q#j#J#s#S^^
13:39:34 <mroman> (see at the bottom of http://mroman.ch/burlesque/lref.html)
13:40:00 <oerjan> i'm a bit worried how #Q would be useful if you have no kind of tail operation
13:40:20 <nooga> mroman: do you have some sort of programming manual for blsq?
13:40:20 <oerjan> oh hm wait
13:40:38 <mroman> nooga: Besides http://mroman.ch/burlesque/lref.html no. Not yet.
13:40:38 <oerjan> #S#S can be used for that
13:40:48 <mroman> and the tutorial
13:40:55 <mroman> http://mroman.ch/burlesque/tutorial.html
13:41:05 <nooga> ah
13:41:14 <nooga> i couldn't get there from the main page
13:41:24 <nooga> consider redesigning the page :D
13:42:38 <mroman> what
13:42:42 <mroman> there is a link right there
13:42:52 <mroman> http://mroman.ch/burlesque
13:42:58 <mroman> Second link in the "Contents"
13:43:18 -!- DHeadshot has quit (Read error: Connection reset by peer).
13:43:34 -!- DHeadshot has joined.
13:46:40 <zzo38> How often are you writing a program that addition, bitwise OR, bitwise XOR, are always going to be the same result in that case? Furthermore, where subtraction, bitwise AND NOT, bitwise XOR?
13:46:54 <oerjan> !blsq 1 2 {+} #j
13:46:54 <blsqbot> ERROR: (line 1, column 7):
13:46:59 <oerjan> !blsq 1 2 {+} e!
13:46:59 <blsqbot> ERROR: (line 1, column 7):
13:47:06 <oerjan> bah
13:47:10 <oerjan> !blsq 1 2 {.+} e!
13:47:10 <blsqbot> 3
13:47:15 <oerjan> !blsq 1 2 {.+} #j
13:47:15 <blsqbot> 3
13:47:25 <oerjan> mroman: i think #j = e! perhaps?
13:49:02 <mroman> Not quite.
13:49:10 <mroman> !blsq {#Q5 5.+}e!
13:49:10 <blsqbot> 10
13:49:22 <mroman> !blsq {5 5#Q.+}e!
13:49:22 <blsqbot> {.+}
13:49:50 <oerjan> ...this is relevant how?
13:49:57 <mroman> Well
13:50:08 <mroman> inside an eval #Q only sees the code inside that eval
13:50:21 <oerjan> oh evil
13:51:11 <mroman> i.e e! calls recursively the internal eval loop
13:51:25 <mroman> while #j modifies the code of the current eval loop
13:51:34 <mroman> *eval function
13:52:35 <mroman> !blsq {#Q5 5.+}e!
13:52:36 <blsqbot> 10
13:52:41 <mroman> !blsq {#Q5 5.+}#j
13:52:41 <blsqbot> 10
13:52:51 <mroman> !blsq {#Q5 5.+}#j5 6.+
13:52:52 <blsqbot> 11
13:52:55 <mroman> !blsq {#Q5 5.+}#j5 6.+#s
13:52:56 <blsqbot> {11 10 {5 5 .+ 5 6 .+ #s}}
13:53:01 <mroman> !blsq {#Q5 5.+}e!5 6.+#s
13:53:01 <blsqbot> {11 10 {5 5 .+}}
13:53:07 <oerjan> right
13:55:38 <mroman> !blsq #Q#Q#j#J#s#S#S#q
13:55:39 <blsqbot> No output!
13:55:46 <mroman> !blsq #Q#5Q#j#J#s#S#S#q
13:55:46 <blsqbot> ERROR: (line 1, column 4):
13:55:52 <mroman> !blsq #Q5#Q#j#J#s#S#S#q
13:55:52 <blsqbot> 5
13:55:56 <mroman> !blsq #Q5#Q#j#J#s5#S#S#q
13:55:56 -!- ais523 has quit (Ping timeout: 252 seconds).
13:55:57 <blsqbot> 5
13:56:02 <mroman> !blsq #Q5#Q#j#J#s5#S#S#q#s
13:56:03 <blsqbot> {5 #Q #j #J #s 5 #S #S #q #s}
13:56:09 <mroman> !blsq #Q5#Q#j#J#s5#S#S#q#se!
13:56:10 <blsqbot> Ain't nobody got time fo' dat!
13:56:21 <mroman> !blsq #Q5#Q#j#J#s5#S#S#q#s#j
13:56:22 <blsqbot> Ain't nobody got time fo' dat!
13:56:36 <mroman> I haven't gotten the hang of it yet :)
13:56:48 <oerjan> mroman: anyway ^^{}#j are TC by my previous underload :()^ experiments (j# and e! are equivalent in that case)
13:58:23 <mroman> :()^ is tc
13:58:27 <oerjan> yes
13:58:36 <mroman> Yeah.
13:58:45 <mroman> It was already known that you can translate underload to burlesque
13:58:51 <mroman> see the faq page
14:00:02 <oerjan> i know, it's also on the wiki
14:01:03 <oerjan> also i'm pretty sure i was around when the translation was developed
14:01:52 <oerjan> back then burlesque was much simpler, iirc
14:02:38 <oerjan> then it went off in a completely different direction
14:09:01 -!- carado has joined.
14:11:59 -!- boily has joined.
14:24:00 <zzo38> Does anyone have the "addition and then inverting the high bit" instruction?
14:37:58 <oerjan> !blsq 1 2 3 4 #s#q
14:37:58 <blsqbot> 1
14:38:14 <oerjan> !blsq 1 2 3 4 #s
14:38:14 <blsqbot> {4 3 2 1}
14:38:24 <oerjan> hm #s reverses but #q doesn't
14:38:53 <oerjan> !blsq 1 2 3 4 #s#S#s
14:38:53 <blsqbot> {4 3 2 1}
14:40:20 <oerjan> #Q 1 2 3 4
14:40:26 <oerjan> !blsq #Q 1 2 3 4
14:40:26 <blsqbot> 4
14:40:58 <oerjan> !blsq #Q 1 2 3 4#s
14:40:58 <blsqbot> {4 3 2 1 {1 2 3 4 #s}}
14:43:24 <oerjan> !blsq #Q #S #s
14:43:24 <blsqbot> {#S #s}
14:43:59 <oerjan> !blsq #Q #S 1 #s
14:43:59 <blsqbot> {1 #S 1 #s}
14:50:23 -!- oklopol has joined.
14:52:39 <oerjan> !blsq {#s}#S 1 2 3 4#s
14:52:39 <blsqbot> {4 3 2 1 #s}
14:53:00 <oerjan> !blsq {#s}#S 1 2 3 4#s #q
14:53:01 <blsqbot> {1 2 3 4 4 3 2 1 #s}
14:55:48 <boily> the more I see you all playing with burlesque, the more it reminds me of ursala: lists and numbers and cryptic tense manipulations on them.
15:00:18 -!- NihilistDandy has joined.
15:00:26 -!- epicmonkey has quit (Remote host closed the connection).
15:04:45 -!- oerjan has quit (Quit: leaving).
15:12:14 <zzo38> I want this statement to be false.
15:12:48 <coppro> I hope for your sake that it was
15:13:34 -!- epicmonkey has joined.
15:18:24 <mroman> !blsq "boily"sur@
15:18:24 <blsqbot> Ain't nobody got time fo' dat!
15:18:27 <mroman> !blsq "boily"su
15:18:27 <blsqbot> {"b" "i" "l" "o" "y" "bo" "il" "ly" "oi" "boi" "ily" "oil" "boil" "oily" "boily"
15:18:45 <mroman> !blsq "boily"su\[
15:18:45 <blsqbot> "biloyboillyoiboiilyoilboiloilyboily"
15:19:41 <mroman> !blsq "foo"su\[
15:19:42 <blsqbot> "fofooofoo"
15:19:47 <mroman> !blsq "foo"su\[2co
15:19:47 <blsqbot> {"fo" "fo" "oo" "fo" "o"}
15:19:52 <mroman> !blsq "foo"su\[2CO
15:19:53 <blsqbot> {"fo" "of" "fo" "oo" "oo" "of" "fo" "oo"}
15:19:55 <mroman> !blsq "foo"su\[2CO\[
15:19:56 <blsqbot> "fooffooooooffooo"
15:20:00 <mroman> !blsq "foo"su\[2CO\[su\[
15:20:00 <blsqbot> Ain't nobody got time fo' dat!
15:20:13 <mroman> !blsq "foo"2CO\[su\[
15:20:13 <blsqbot> "fofooofooooofooo"
15:20:25 <Taneb> Having fun, mroman?
15:21:41 <mroman> A littl.
15:22:19 <quintopia> oh neat a list all substrings command. no end of possibilities for golfing that
15:25:34 <boily> zzo38: which statement?
15:26:13 <boily> mroman: \[?
15:27:22 -!- cuttlefish has joined.
15:28:33 <mroman> boily: concat
15:29:51 <boily> obviously.
15:30:20 -!- aloril has quit (Ping timeout: 276 seconds).
15:32:08 <Taneb> What was that bijection between pairs of naturals and naturals that I knew a long time ago...
15:32:32 -!- GOMADWarrior has joined.
15:32:48 <zzo38> boily: I mean the "I want this statement to be false" statement.
15:33:22 <Taneb> zzo38, either you do, which means it isn't which is bad
15:33:30 <Taneb> Or you don't, which means it is, which is meh
15:33:33 <quintopia> zzo38: no matter how much you want it to be false, it will still be true
15:34:04 <quintopia> however, perhaps if you stop wanting it to be false, it might be false, but then you don't want it to be, so who cares?
15:34:34 <zzo38> I realized all that stuff
15:34:50 <boily> Taneb: something to do with the cardinality of rationals?
15:34:52 <quintopia> did you stop wanting it to be false
15:35:01 <quintopia> or do you still want it to be false
15:35:01 <Taneb> boily, perhaps
15:36:19 <zzo38> quintopia: Actually I don't care, I just wanted to write such a statement.
15:38:43 <quintopia> aha! so you have succeeded! it is false!
15:44:23 -!- aloril has joined.
15:52:05 <quintopia> parsing confusing statements quiz #1: rephrase the statement "The running time of algorithm A is at least O(n^2)." in your own words.
15:53:56 <oklopol> durr, the algorithm A, on an input of size n, takes at least at most n^2 steps
15:57:04 -!- aloril has quit (Ping timeout: 256 seconds).
15:57:26 <oklopol> more precisely, there exist C, n_0 > 0 such that on an input of size n > n_0, the algorithm takes at least m steps for some m < C*n.
15:58:17 <oklopol> which is probably useful in theoretical obfuscation contests
15:58:23 <quintopia> huh
15:58:28 <coppro> oklopol: I believe you mean C * n^2
15:58:32 <oklopol> yes
15:58:34 <oklopol> sorry
15:58:35 <quintopia> i still like my interpretation better
15:58:39 <oklopol> they are equivalent though
15:58:47 <quintopia> since it has actual usefulness
15:58:54 <oklopol> what was yours
15:59:04 <coppro> oklopol: hardly equivalent
15:59:09 <oklopol> oh?
15:59:11 <coppro> oklopol: you described O(n)
15:59:16 <oklopol> i did?
15:59:19 <coppro> yes
15:59:24 <oklopol> i thought i described that the algorithm takes any amount of steps
15:59:34 <oklopol> choose m = 0
15:59:35 <coppro> I mean that your definition was of O(n)
15:59:46 <coppro> oh, at least
15:59:54 <quintopia> "the best upper bound we can place on algorithm A's running time is quadratic in n, but we don't know whether the upper bound is actually worse than that"
16:00:06 -!- nooodl has joined.
16:00:11 <coppro> quintopia: what does that mean?
16:00:36 <oklopol> coppro: the joke is O(n^2) is an upper bound. so saying at least O(n^2) doesn't make any sense usually.
16:00:39 <coppro> oklopol: yeah, what you said makes no sense
16:00:43 <coppro> oklopol: oh haha
16:00:53 <oklopol> i thought that was quintopia's point
16:00:56 <coppro> quintopia: big-O isn't the best upper bound
16:01:00 <coppro> oklopol: Probably. I missed it
16:01:16 <oklopol> \Omega(n^2) is at least, up to a constant
16:01:42 -!- epicmonkey has quit (Ping timeout: 252 seconds).
16:01:54 <quintopia> coppro: something like "we found a special type of input where the algorithm is guaranteed to take quadratic time, but the algorithm is really complicated, and there might be some other kind of input that takes cubic time or worse. so, we don't actually have an upper bound, but when we do, we know it will be O(n^2) or worse"
16:01:57 <coppro> No, Omega is a lower bound
16:02:02 <coppro> you need \Theta for that
16:02:08 <coppro> quintopia: haha
16:02:31 <coppro> \Theta is the least upper bound and also the greatest lower bound
16:02:39 <coppro> since they are its actual asymptotic behaviour
16:02:44 <oklopol> quintopia: that's \Omega(n^2) essentially
16:02:47 <oklopol> well.
16:02:50 <oklopol> not at all.
16:02:55 <quintopia> yeah not at all :P
16:02:56 <oklopol> i dunno if there's a compact way to say that
16:04:08 <oklopol> "not O(n^(2-\epsilon)) for any \epsilon > 0"?
16:04:33 <oklopol> i think people say things like that
16:05:44 <oklopol> that means there is a constant C such that there are inputs of arbitrarily large size n such that the algo takes more than C*n^2 steps on them
16:06:05 <oklopol> hmm.
16:06:13 <oklopol> still not quite right.
16:06:24 <oklopol> the latter is stronger
16:10:15 -!- aloril has joined.
16:23:15 <Taneb> I seem to recall it had something to do with the triangle numbers
16:33:40 <Taneb> AHA
16:33:43 <Taneb> http://en.wikipedia.org/wiki/Cantor_pairing_function#Cantor_pairing_function
16:34:23 -!- c00kiemon5ter has joined.
16:36:37 <Sgeo_> Just remembered a bit of norn cruelty I wanted to do but haven't gotten around to
16:37:15 <Sgeo_> Something that messes up their brain so much that it's practically scrambled
16:37:21 <Sgeo_> I forget the details of how it would work though
16:38:48 <Sgeo_> Actually, I think I have dabbled with that a bit
16:49:33 <Taneb> Okay, this is probably the oddest SK calculus interpreter I've written
16:56:18 <Taneb> SKK is encoded as 740
16:56:24 <Taneb> No
16:56:26 <Taneb> That's SKKK
16:56:31 <Taneb> SKK is 37
17:10:42 -!- sirdancealot has quit (Read error: Connection reset by peer).
17:23:34 <Taneb> Heh, it's reached Double-y errors
17:23:41 -!- FreeFull has joined.
17:24:40 <Taneb> Okay, I don't need Double
17:27:55 -!- sirdancealot has joined.
17:29:35 <Taneb> Okay, there is a bug in this program that means that it doesn't work for big numbers or something
17:33:13 -!- zzo38 has quit (Remote host closed the connection).
17:42:44 <Taneb> Aha!
17:42:46 <Taneb> Success!
17:53:53 <boily> Taneb: I am intrigued by your SKing.
17:56:39 -!- DHeadshot has quit (Read error: Connection reset by peer).
17:56:44 -!- DH____ has joined.
18:03:12 -!- variable has changed nick to constant.
18:05:24 -!- augur has quit (Read error: Connection reset by peer).
18:06:46 -!- NihilistDandy has quit (Quit: Computer has gone to sleep.).
18:11:10 <Taneb> boily, let me write a parser
18:16:45 <nortti> why is fungot not here?
18:17:36 <elliott> fizzie: fungot!!
18:18:20 <Taneb> boily, http://hpaste.org/83052
18:18:28 <Taneb> It's my usual standard of code, I'm afraid
18:22:25 <nortti> doesn't seem that bad
18:24:33 <boily> fizzie: FUNGOOOOOOOOT! *with cute eyes and a pretty please*
18:26:27 <boily> the code is fine. the actual computation is esoterically cringeworthy, with an aftertaste not unlike a good hot sauce with balanced seasoning and smoked peppers.
18:27:40 <tromp_> Taneb, you're not using code 0 :-(
18:27:58 <Taneb> tromp_, leads to problems with pair/unpair
18:28:03 <Taneb> Because pair 0 0 is 0
18:30:07 <nooodl> wow that parseSK function looks like magic
18:30:25 <tromp_> you can use code(S)=0, code(K)=1, code (M N) = pair (code(M),code(N)) + 2 ?!
18:31:19 <Taneb> I'd rather not, tromp_
18:31:46 <Taneb> nooodl, I can't tell whether you're being sarcastic, don't know the parsec library, or it actually is magic
18:31:56 <nooodl> i don't know parsec
18:32:07 <tromp_> or use bitstring as codes, then all simplifies to code(S)=00, code(K)=01, code (M N) = 1 code(M) code(N
18:32:30 <nooodl> but it looks different from most parsec things i've seen
18:32:48 <Taneb> nooodl, that may be because it's stupidly simple and also written by me
18:33:07 <Taneb> tromp_, that doesn't feel right to me
18:34:22 <tromp_> that feels great to ne, it leads to much smaller codes for unbalanced expressions, like SSSSSSSSSSSS
18:34:28 <Taneb> Or at least not in the spirit of this design
18:34:39 <Taneb> (it is designed to be ridiculous)
18:35:03 <tromp_> your codes will be of exponential size in that case
18:35:30 <boily> tromp_: I don't see any impediments caused by that :p
18:35:36 -!- NihilistDandy has joined.
18:36:26 <tromp_> it's just funny that you end up using bitstrings to represent the necessary bignums:)
18:37:01 <boily> that reminds me I had this not quite optimal meteorological parsec abuse lying around on my drive: http://hpaste.org/83054
18:37:01 -!- KingOfKarlsruhe has joined.
18:37:10 -!- NihilistDandy has quit (Client Quit).
18:37:12 <boily> s/parsec/attoparsec/
18:37:23 <kmc> nooodl: maybe you're unfamiliar with the applicative operators like (*>)
18:37:36 <kmc> anyway that's a nice concise parser :)
18:38:37 <Taneb> tromp_, in theory, the actual low-level implementation could be on a ternary or decimal computer
18:38:40 <quintopia> what's a lightweight easy-to-install ftp server
18:38:41 <nooodl> i'm not familiar with (*>) but i somewhat understand Applicative
18:39:02 <Taneb> (*>) is (>>) but for Applicatives
18:39:06 <Taneb> They are actually the same
18:39:34 <Taneb> Assuming ap = (<*>) and non-stupid Monad and Applicative instances
18:39:41 -!- AnotherTest has joined.
18:39:51 <AnotherTest> !blsq "Hi"
18:39:51 <blsqbot> "Hi"
18:40:15 <quintopia> boily: what is attoparsec in feet please
18:40:26 <elliott> `frink attoparsec -> feet
18:40:38 <HackEgo> 0.101236141118954362
18:40:51 <boily> 1 attoParsec = 0.101236141 feet (17⁄32 inch)
18:40:51 <elliott> Taneb: p *> q = (\x y -> y) <*> p <*> q
18:40:52 <quintopia> `frink attoparsec -> inches
18:40:57 <elliott> er
18:41:02 <elliott> Taneb: p *> q = (\x y -> y) <$> p <*> q
18:41:02 <HackEgo> 1.2148336934274523439
18:41:03 <elliott> er
18:41:05 <elliott> nooodl: p *> q = (\x y -> y) <$> p <*> q
18:41:06 <boily> (1 and 7/32 inch)
18:41:27 <boily> ~duck attoparsec
18:41:28 <cuttlefish> Software description: a fast Haskell library for parsing ByteStrings (Haskell).
18:41:30 <nooodl> and p <* q = (\x y -> x) <$> p <*> q?
18:41:49 <quintopia> boily you are off by almost .004!!!!!!!!!
18:41:53 <elliott> nooodl: yeah
18:41:56 <quintopia> how could you be so careless
18:42:07 <elliott> nooodl: so p *> q <* r does p then q then r and returns the result of q
18:42:13 <Taneb> Not quite, it's p <* q = (\x y -> y) <$> q <*> p
18:42:44 <Taneb> I think
18:42:51 <nooodl> hmm
18:43:02 <nooodl> is (p <* q) == (q *> p)
18:43:05 <Taneb> Oh no
18:43:10 <elliott> Taneb: I was right
18:43:10 <Taneb> I'm wrong
18:43:16 <boily> quintopia: not my fault, I blindly was reporting what google said. and, as the great tetrachromatic logo in the sky said, Google is the Truth®
18:43:27 <elliott> The other methods have the following default definitions, which may be overridden with equivalent specialized implementations:
18:43:30 <elliott> u *> v = pure (const id) <*> u <*> v u <* v = pure const <*> u <*> v
18:44:00 <nooodl> @let p <** q = (\x y -> y) <$> q <*> p
18:44:03 <lambdabot> Defined.
18:44:23 <elliott> nooodl: (<*) is not flip (*>), no
18:44:27 <nooodl> > [Just 3 <* Nothing, Just 3 <** Nothing, Just 3 <* Just 4, Just 3 <** Just 4]
18:44:31 <lambdabot> [Nothing,Nothing,Just 3,Just 3]
18:44:31 <elliott> because (p *> q) and (p <* q) both do p first
18:44:35 <elliott> (and q second)
18:44:38 <elliott> they differ in which result they take
18:45:11 <Taneb> > [("hello", 1) <* ("world" 1), ("hello", 1) <** ("world", 1)]
18:45:14 <lambdabot> The function `"world"' is applied to one argument,
18:45:14 <lambdabot> but its type `[GHC.Type...
18:45:19 <nooodl> nice
18:45:22 <Taneb> > [("hello", 1) <* ("world", 1), ("hello", 1) <** ("world", 1)]
18:45:24 <lambdabot> [("helloworld",1),("worldhello",1)]
18:45:34 <nooodl> ohh
18:45:50 -!- augur has joined.
18:46:05 -!- DH____ has quit (Read error: Connection reset by peer).
18:46:09 <nooodl> (there's an Applicative instance for (,) a? huh)
18:46:28 -!- DHeadshot has joined.
18:46:35 <Taneb> If a is a Monoid, yeah
18:46:37 <nooodl> also looks like a needs to be a monoid
18:46:41 <nooodl> aw yeha
18:46:50 <Taneb> > (Sum 2, 1) *> (Sum 3, 1)
18:46:51 <lambdabot> (Sum {getSum = 5},1)
18:47:02 <elliott> (a,f) <*> (b,x) = (a <> b, f x)
18:47:06 <elliott> pure a = (mempty,a)
18:47:12 <elliott> also a monad, the writer monad
18:47:23 <elliott> join (a,(b,x)) = (a <> b, x)
18:47:32 <nooodl> i was thinking this kinda looked like writer
18:47:35 <elliott> (a,x) >>= k = let (b,y) = k x in (a <> b, y)
18:47:42 <elliott> (,) w = Writer w, just like (->) r = Reader r
18:47:43 <nooodl> but i wasn't sure; writer is the chapter where i last stopped reading lyah
18:47:54 <elliott> you can use it e.g. for logging
18:49:11 <nooodl> sometimes i give up on lyah because i'm dumb. i keep having to reread everything about Applicatives and Monads
18:49:21 <nooodl> at some point in time i understood them fairly well though!
18:50:05 <nooodl> i remember reading a thing about how lyah would get exercises at some point in time, which would be really useful. however they're still not there, and i doubt they'll ever be
18:50:48 <Taneb> Isn't the text of LYAH some Creative Commons license?
18:51:21 <boily> Taneb: it's under a CC-BY-NC-SA 3.0.
18:51:48 <nooodl> man, i wonder if i would've had an easier time learning haskell concepts if it was my first programming language
18:52:36 <Taneb> You woudn't realise you needed to learn them
18:59:10 <kmc> NC licenses :(
19:00:09 <kmc> the definition of "commercial" is super slippery and is enough to scare off many reasonable uses
19:00:22 <kmc> people apply NC as a "don't sell this thing i also want to sell" clause and don't realize what they're getting into
19:01:34 <nooodl> what's the issue with NC licenses
19:01:49 <kmc> can i use drawings from LYAH in a talk at a conference which costs money to attend? can I use excerpts of LYAH on my blog where I also make money from ads?
19:01:50 <Taneb> Maybe you can write a "Less Commercial" clause and send it to the CC people
19:01:53 <kmc> (not my blog, but hypothetical)
19:01:56 <kmc> Taneb: IANAL
19:02:11 <kmc> the answers to these questions may well be "yes", and you can certainly ask the author for special permission
19:02:30 <kmc> but the actual licenses text is vague enough to provide serious stop energy to such uses
19:02:55 <AnotherTest> mroman: is there any place where I can download the burlesque bot?
19:03:11 <kmc> only rarely is the ground truth of a judge's ruling invoked. mostly contract law affects the world through various lawyers reading it and making judgements about the relative degree of risk of this or that clause
19:03:20 <nooodl> hmm, the "money from ads" example is interesting
19:03:29 <kmc> and the lawyers are paid to cover asses
19:03:41 <mroman> AnotherTest: My repository
19:03:50 <AnotherTest> mroman: alright
19:03:55 <mroman> blsqirc.hs and blqsirci.hs
19:03:56 <kmc> so maybe I can read the CC-NC text and claim it clearly allows publishing on a blog with ads, but $BIGCORP lawyer probably won't, and honestly they're the expert and not me
19:03:56 <AnotherTest> Should probably have looked first
19:04:03 <kmc> programmers often fail to appreciate that this is how contract law works
19:04:06 <mroman> blsqirc.hs is the bot
19:04:13 <mroman> and blsqirci.hs is the interpreter the bot calls
19:04:18 <kmc> "You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation."
19:04:59 <kmc> so now a lawyer has to think about whether it's worth risking the chance that their use is later determined to be "primarily intended for or directed toward commercial advantage"
19:05:09 <kmc> it's really about uncertainty more than anything else
19:05:32 <kmc> the less certain a license's terms are, the more it will prevent use
19:06:35 <boily> "I remember when legal used to mean lawful, now it means some kind of loophole." -- Leo Kessler (Charles Whiting)
19:08:03 <AnotherTest> http://stackoverflow.com/questions/15070881/logical-relational-expression-optimization/
19:08:05 <AnotherTest> Wtf
19:08:09 <AnotherTest> look at the accepted answer
19:08:19 <AnotherTest> that's just ridiculous
19:08:44 <AnotherTest> as if that optimization is 1) even worth it 2) even an actual optimization
19:09:06 <nooodl> hahaha
19:09:15 <nooodl> why would you write that, jesus
19:09:40 <elliott> well the optimisation saves a branch
19:09:43 <kmc> "Optimization is not from the compiler's point of view."
19:09:45 <kmc> what... does that mean
19:09:47 <elliott> though perhaps it makes branch prediction worse
19:10:21 <AnotherTest> std::cin is like really fast
19:10:32 <nooodl> kmc: "optomization"
19:10:34 <kmc> well at least the accepted answer looks at actual assembly output by an actual compiler
19:10:38 <AnotherTest> really optimozed
19:10:43 <mroman> Shouldn't any compiler just generate one branch?
19:10:46 <kmc> unlike the third answer which is more like "pulled out of ass" assembly
19:11:03 <mroman> ok probably not should but could
19:11:05 <nooodl> I'd use this: a > max(b,c) – MatheusOl
19:11:05 <kmc> so they're only committing two of the 3 cardinal sins of C optimization
19:11:07 <nooodl> wow nice
19:11:14 <AnotherTest> kmc: yeah, but it would be more optimal to use the asm keyword right?
19:11:23 <kmc> most optimalerest
19:11:33 <elliott> i don't see why the stdin is relevant
19:11:45 -!- monqy has joined.
19:11:46 <nooodl> it isn't
19:11:48 <nooodl> hi monqy
19:11:58 <monqy> hi nooodl
19:12:38 <monqy> hows gs2
19:12:48 <AnotherTest> I really wonder what kind of people go on stack overflow answering questions with crap like that
19:12:56 <nooodl> i'm planning to rewrite the whole thing
19:13:01 <nooodl> and make it "compiled"
19:13:06 <elliott> i don't see how the accepted answer is crap
19:13:09 <monqy> i support rewriting...
19:13:13 <Fiora> a>max(b,c) .... cmp, cmov, cmp, jmp
19:13:17 <elliott> it proposes some code that answers the question asked and gives evidence to support the code
19:13:34 <Fiora> 4 uops, while the accepted answer is also 4
19:13:37 <elliott> perhaps it is not actually an optimisation for some reason but I see no reason it's a crap answer even if it's a wrong one
19:13:42 <Fiora> so, about the same I guess?
19:13:48 <nooodl> Fiora: that's also wrong though (it's (a > b) && (a > c))
19:13:55 <Fiora> erm, min() then
19:14:01 <nooodl> yeah
19:14:04 <Fiora> (same ops though)
19:14:15 <AnotherTest> elliott: Yes, you may have a point there. The question is probably the worst part of the whole thing.
19:14:21 * ion reads the Stack Overflow page and laughs.
19:14:31 <elliott> yes the question is pretty awful
19:14:46 <nooodl> someone answer "(a > b) || (a > c)"
19:14:54 <elliott> perhaps I am biased from having answered worse ones
19:15:10 <AnotherTest> I'm surprised it didn't get down-voted actually
19:15:29 <kmc> (the three sins are: assuming C is "close to the machine", assuming the machine is an in-order single-unit processor with no cache, and NOT FUCKING RUNNING THE FUCKING THING)
19:15:30 <nooodl> i don't want to downvote it, it feels rude
19:15:43 <nooodl> i don't have enough SO rep for that it feel Just
19:16:03 <FreeFull> nooodl: That's a>min(b,c)
19:16:52 <nooodl> (what's that a response to)
19:17:00 <FreeFull> 19:14:46 < nooodl> someone answer "(a > b) || (a > c)"
19:17:16 <c00kiemon5ter> that was the question
19:17:27 <nooodl> oh no we're talking about this SO post where someone asked "optimize (a>b)||(a>c) for me"
19:18:40 <nooodl> now i'm reading shitty SO questions...
19:18:42 <nooodl> http://stackoverflow.com/questions/15074624/how-can-i-make-a-program-determine-whether-or-not-the-input-is-an-int-in-python
19:19:15 <boily> nooodl: I'm not even clicking on that. sounds painful.
19:19:23 <FreeFull> nooodl: In haskell I'd do it with a fold
19:19:35 <nooodl> boily: you should see the example code...
19:19:36 <FreeFull> No idea about what the idiomatic thing is in python, list comprehension?
19:19:43 <FreeFull> Can python list comprehensions do folds?
19:19:57 <nooodl> reduce(), sum(), any(), all()
19:20:00 <kmc> python has a 'reduce' function which is a fold
19:20:01 <FreeFull> Ah, top answer is good
19:20:10 <FreeFull> Reduce apparently isn't idiomatic
19:20:12 <FreeFull> Or something
19:20:17 <boily> nooodl: can you say "shmuck bait".
19:20:23 <AnotherTest> The bottom one is pretty... exceptional
19:20:31 <kmc> FreeFull: python community is terrified of basic functional programming
19:20:36 <kmc> guido actually just does not understand it
19:20:52 <kmc> he said that Python isn't a functional language because 'map' is a library function, not like in Haskell where it's special magical built in compiler primitive
19:20:55 <kmc> -_-
19:21:05 <Phantom_Hoover> hahaha
19:21:29 <nooodl> well, list comprehensions are basically map. and *also* zipWith
19:21:36 <kmc> and filter
19:21:39 <nooodl> yeah
19:21:40 <FreeFull> Isn't everything in Haskell that isn't a keyword or doesn't have a # not a built in
19:21:54 <FreeFull> Well, and lists and strings are built in of course
19:21:59 <kmc> uh
19:22:00 <nooodl> numbers?
19:22:01 <kmc> wait up
19:22:03 <AnotherTest> functions?
19:22:08 <kmc> so first of all the # names are not part of Haskell
19:22:10 <kmc> they are a GHC extension
19:22:16 <FreeFull> nooodl: List comprehensions are the list monad but pansier
19:22:34 <kmc> there are a few different kinds of 'built in'
19:22:40 <FreeFull> kmc: Ok, so State# isn't an actual thing
19:22:48 <kmc> Int and (IO t) and such are abstract data types
19:22:50 <FreeFull> Except in GHC land
19:23:04 <kmc> standard Haskell doesn't tell you what their constructors are, or let you pattern-match on them
19:23:17 <kmc> FreeFull: State# is a horrible abomination and any attempt to understand IO thorugh it is doomed to massive confusion
19:23:20 <kmc> hope that helps
19:23:31 <nooodl> i like how Bool isn't "special"
19:23:39 <kmc> Lists aren't special except that they have special syntax
19:23:49 <kmc> functionally equivalent to data List a = Nil | Cons a (List a)
19:24:43 <FreeFull> kmc: Well I did mean the syntax
19:24:48 <FreeFull> Obviously "" is syntax too
19:25:22 <kmc> anyway there are at least three kinds of 'built in'
19:25:37 <kmc> - thing the standard says is abstract, but it's a library in GHC and you can peek at the internals
19:25:54 <kmc> - thing that looks like a library function but is implemented in GHC.Prim and so there are no Haskell internals to peek at
19:25:57 <kmc> - actual special syntax
19:26:11 <AnotherTest> mroman: I hope I will be able to run this through a socks proxy so I can have it run through greenhouse.
19:26:18 <kmc> iirc GHC's source code actually contains the line "data [] a = [] | a : [a]" somewhere
19:26:25 <FreeFull> import would be the third
19:26:27 <AnotherTest> mroman: Don't worry though, it should work
19:26:40 <FreeFull> As well as [stuff] and "stuff"
19:26:41 <kmc> because it's convenient for every data type to be associated with a particular declaration on a particular line of a particular file
19:26:46 <kmc> but it's not generally allowed syntax
19:27:16 <Sgeo_> Idris has any type with the constructors Nil and (:) (I think) to use [] syntax
19:27:19 <FreeFull> GHC.Prim seems to have # stuff and ->
19:27:20 <kmc> as for unboxed types like Int#, not only are they not in standard Haskell but the language semantics of standard Haskell wouldn't allow them
19:27:32 <kmc> for example Haskell doesn't have any way to deal with the fact that [Int#] is illegal
19:27:51 <kmc> in Haskell every type can be used as a type argument to a polymorphic thing, but in GHC this is not true for unboxed types
19:28:15 <FreeFull> What would [Int#] even mean
19:28:23 <kmc> list of unboxed integers...
19:28:32 <FreeFull> Yeah, but implementation wise
19:28:53 <kmc> a list where every (:) closure contains a machine int and a pointer to another such closure
19:28:58 <kmc> you can write this type
19:29:07 <FreeFull> Actually, I can see it work
19:29:14 <kmc> data UIntList = Cons Int# UIntList | Nil
19:29:22 <AnotherTest> mroman: "readProcess "blsqirci.exe" ["--ircbot",p] """ - that looks windows
19:29:25 <FreeFull> But it'd mean the list nodes would have different sizes depending on the type
19:29:39 <kmc> if your implementation used a spare bit to tag pointers vs. words, you might allow this
19:29:51 <FreeFull> I think each list node ends up as two pointers, assuming the list doesn't get optimised away?
19:29:53 <AnotherTest> mroman: should that give any problems, considering my haskell knowledge
19:29:56 <kmc> but in general you don't want to, because you want to be able to emit polymorphic code that treats everything uniformly as heap pointers
19:30:23 <kmc> FreeFull: in C++ you can do the equivalent of [Int#] because templates, rather than emitting polymorphic code, are a kind of glorified macro system that emits code specially for each type where used
19:30:40 <kmc> so it's no problem that list<int> and list<double> have different element sizes
19:30:52 <FreeFull> It also makes for horrific error messages
19:31:05 <kmc> that's... tangentially related at best
19:33:54 -!- Bike has joined.
19:34:30 <Sgeo_> What languages have implementations that give really good error messages?
19:34:33 <Sgeo_> Probably Racket
19:34:39 <kmc> clang is supposed to be very good
19:35:01 <kmc> it will spit your code back at you with the problematic part highlighted and unerlined
19:35:08 <kmc> i always wanted a badass type error debugger for Haskell
19:35:37 <kmc> which would give you a slick way to visualize the type equations produced for your terms, and why unification fails on them
19:35:40 <AnotherTest> What packet gives me Web.Encodings for Haskell?
19:35:46 <AnotherTest> *package
19:35:53 <AnotherTest> (debian)
19:35:59 <elliott> probably no debian package
19:36:13 <AnotherTest> Oh so I need to use the haskell installer thingy?
19:36:19 <monqy> haskell-web-encodings-thank-you-debian
19:36:51 <elliott> kmc: have you heard of type error slicing?
19:36:54 <elliott> e.g. http://www.macs.hw.ac.uk/ultra/skalpel/
19:37:27 <kmc> cool
19:37:34 <AnotherTest> "libghc6-webkit-dev - Binding to the Webkit library" probably not?
19:38:20 <kmc> go to hackage.haskell.org
19:38:26 <elliott> kmc: I hear edwardk wrote one for Haskell once
19:38:28 <kmc> and find the hackage package name using search
19:38:36 <kmc> and then it's probably libghc6-whatever-dev if it exists
19:38:45 <kmc> this is more likely to work than random guessing
19:39:22 <AnotherTest> http://hackage.haskell.org/package/web-encodings
19:39:23 <AnotherTest> hm
19:39:31 <AnotherTest> why does mroman use obsolete packages?
19:39:35 <elliott> I was reading an interesting article about monad, 'pipes' and being a 'red pipe'. From what it seems it is saying function parameters or classes are types of pipes to make sure everything fits. Then it goes about being a red pipe and must always be a red pipe and purity. This part I didn't understand
19:39:40 <elliott> Why can't a 'red pipe' become a 'blue pipe'? Can a red pipe be converted to a plain pipe? What does this have to do with purity? and can I think of this being something like class RedPipe: PlainPipe { /* same interface and implementation here*/ } ?
19:39:45 <nooodl> apt-get install cabal
19:39:57 <elliott> nooodl: um...
19:40:01 <kmc> elliott: gas up my murdering chainsaw
19:40:01 <nooodl> YES
19:40:02 <nooodl> I KNOW
19:40:02 <AnotherTest> nooodl: I got cabal
19:40:22 <AnotherTest> So I don't rally need that one
19:40:28 <kmc> make sure it's the right one and not the hedge trimming chainsaw or the juggling chainsaw
19:40:40 <kmc> they're all selected for the purpose
19:40:44 <kmc> right tool for the right job you know
19:41:02 <kmc> elliott: where's that from
19:41:09 <nooodl> You might not have all required modules. 'cabal install split web-encodings haskeline mtl regex-compat parsec digits statistics' should fix that.
19:41:10 <nooodl> AnotherTest: ^
19:41:13 <elliott> kmc: http://stackoverflow.com/questions/15068648/monads-red-pipe-different-from-type
19:41:51 <AnotherTest> nooodl:well I know I got parsec
19:42:10 <AnotherTest> I think its just web-encodings
19:42:18 <nooodl> it's easier to just run that entire line
19:42:20 <AnotherTest> oh and mtl
19:42:22 <nooodl> it'll skip over the ones you already have
19:42:29 <AnotherTest> abal: cannot configure mtl-2.1.2. It requires transformers ==0.3.*
19:42:36 <FreeFull> This is the first time I've heard about pipes having colours
19:42:48 <AnotherTest> nooodl: For the dependency on transformers ==0.3.* there are these packages:
19:42:48 <AnotherTest> transformers-0.3.0.0. However none of them are available.
19:42:52 <elliott> Great answer but I have a few more questions. Does State and IO () have a special meaning or are they user/library defined types? If i had to guess State means it modifies global variables (which I don't understand because I thought everything was read only/pure) and IO() means the data will not be the same even if the same parameters are called repeatedly. But I'm not sure why there are () after the IO. Is IO a type and () have a meaning? – Brute
19:42:55 <AnotherTest> meh, seems like cabal broke
19:43:15 <kmc> elliott: owww
19:43:23 <kmc> make it stop
19:43:28 <FreeFull> elliott: I believe State is library-defined
19:43:29 * Bike watches kmc's temperature increase worryingly
19:43:33 <elliott> FreeFull: ..................
19:43:36 <FreeFull> And could be defined by an user just fine
19:43:41 <olsner> elliott: at least it's not phrased in the pipe metaphor
19:43:45 <nooodl> this person is learning about monads lets make fun of them
19:43:50 <elliott> FreeFull: .............................................................................................................................
19:43:50 <Bike> psst freefull he's quoting someone
19:44:02 <elliott> nooodl: not sure what is going on there is learning
19:44:05 <elliott> or about monads in fact
19:44:05 <AnotherTest> nooodl: luckily there is a libghc6-transformers-dev
19:44:07 <FreeFull> That's why you use quotation marks
19:44:08 <olsner> "Does this mean State is a blue pipe and IO is a red pipe? Is () the drain?"
19:44:10 <FreeFull> Or the type doesn't match
19:44:13 <kmc> it's not the beginner's confusion that frustrates me, so much as the plethora of bad explanations that confused him/her to get to this point
19:44:30 <FreeFull> You supply an IRC Message type to me and I take it as a message
19:44:38 <kmc> the way that bad explanations by people who are beginners themselves drown out the people who actually know what they're talking about
19:44:40 <AnotherTest> nooodl: I already have it though ?
19:44:58 <elliott> i like not using quotation marks around quotations
19:45:10 <Bike> --- abraham lincoln
19:45:15 <nooodl> maybe "cabal update" AnotherTest?
19:45:28 <AnotherTest> ah
19:45:29 <kmc> it's much of why i left #haskell
19:45:33 <AnotherTest> yeah, that might be good idea
19:45:36 <kmc> thereby exacerbating the problem but o well
19:45:55 <kmc> also it's not like i or anyone else there actually knows what's a good explanation empirically
19:45:59 <FreeFull> The haskell reddit is ok
19:46:00 <nooodl> remember when i accidentally did that... in #haskell... a week or two ago, elliott
19:46:01 <kmc> we all just have our pet theories and shout them at each other
19:46:01 <elliott> kmc: imo you should join #haskell again
19:46:03 <elliott> see what it's like
19:46:03 <FreeFull> But beginners don't seem to go there
19:46:06 <AnotherTest> I'm sort of scared of Haskell for some reason
19:46:06 <kmc> elliott: is it worse
19:46:07 <nooodl> it was pretty good
19:46:08 <FreeFull> I wonder if there is a correlation
19:46:08 <elliott> nooodl: yes i yelled at you
19:46:11 <elliott> kmc: um i'm not sure
19:46:14 <nooodl> you antiyelled at me
19:46:16 <elliott> kmc: i guess yes but also better in some ways?
19:46:19 <kmc> better how
19:46:24 <elliott> that's a good question
19:46:25 <nooodl> it was just nooodl......................................
19:46:27 <elliott> you should find out!
19:46:30 <kmc> no
19:46:40 <elliott> wow kmc
19:46:42 <elliott> where's your sense of adventure
19:46:51 <elliott> where's your adventurous sense
19:47:02 <kmc> what a grand adventure to join a room full of annoying people and get angry and leave
19:47:26 <nooodl> it's the grandest adventure you'll have on irc
19:47:32 <elliott> they're not all annoying!
19:47:36 <elliott> shachaf is an op now so how can it be bad
19:47:40 <kmc> no they're not
19:47:49 <nooodl> it's even Grander when you join more annoying channels
19:48:18 <olsner> they made shachaf an op?
19:48:20 <monqy> tbf #haskell is pretty annoying
19:48:57 <elliott> 19:48:21 * hackagebot Nomyx 0.1.0 - A Nomic game in haskell, featuring automatic, machine-executed rules written by the players http://hackage.haskell.org/package/Nomyx-0.1.0 (CorentinDupont)
19:49:01 <elliott> 19:48:23 * hackagebot Nomyx-Rules 0.1.0 - Language to express rules for Nomic http://hackage.haskell.org/package/Nomyx-Rules-0.1.0 (CorentinDupont)
19:49:02 <AnotherTest> I've heard #PHP is pretty annoying
19:49:02 <FreeFull> That's why I ask all my haskell questions in here
19:49:04 <elliott> you get exciting package announcements like this
19:49:11 <FreeFull> AnotherTest: PHP is pretty annoying
19:49:24 <Bike> i wonder how a sense could be adventurous
19:49:33 <nooodl> that's like an elliott christmas present
19:49:34 <Bike> sounds like material for a very surreal novel
19:49:35 <AnotherTest> Especially if you're looking for questions like "what does $a = 1+1; do in PHP?"
19:49:50 <kmc> probably a SQL injection
19:50:01 <elliott> nooodl: no that would be @
19:50:06 <FreeFull> Assigns 3 to $a
19:50:09 <elliott> did anyone ever tell you 'bout @
19:50:12 <nooodl> anyway the thing that bothers me the most in ANY irc channel is,
19:50:12 <nooodl> (no)
19:50:36 <FreeFull> People not finishing their sentences?
19:50:39 <nooodl> when people come in and ask "can i ask a question about ... here?"
19:50:53 <FreeFull> Can I ask a question about lasagna here?
19:50:54 <nooodl> and there's some asshole who's like, don't ask to ask!!!
19:51:10 <nooodl> instead of just typing, like, "sure"
19:51:18 <monqy> what a twist
19:51:19 <Bike> what if they say "sure, and you don't need to ask to ask"
19:51:26 <nooodl> monqy: yes that twist was intentional
19:51:29 <olsner> this pipe monad metaphor is really horrible
19:51:36 <FreeFull> What if they say "sure, always feel free to ask questions about ..."
19:51:40 <monqy> nooodl: it's too bad i was already spoiled!!!
19:51:55 <nooodl> did i tell you about this once :(
19:51:57 <monqy> yes
19:52:02 <nooodl> nice
19:52:07 <elliott> monqy: can you tell nooodl about @
19:52:15 <FreeFull> Pipes isn't a good name anymore
19:52:19 <nooodl> this sounds like a job for the ~secret channel~
19:52:40 <AnotherTest> failure-0.1.2 failed during the building phase. The exception was:
19:52:41 <AnotherTest> ExitFailure 1
19:52:41 <AnotherTest> split-0.2.1.2 failed during the configure step. The exception was:
19:52:41 <AnotherTest> ExitFailure 1
19:52:41 <AnotherTest> web-encodings-0.3.0.9 depends on failure-0.1.2 which failed to install.
19:52:41 <AnotherTest> great
19:52:43 <elliott> do you mean #esoteric-minecraft thats not very secret!!
19:52:44 <olsner> it oges something like: programs are pipes, haskell makes the "plumber worldwide association" introduce a rule that plumbers never touch naked pipes, monads are red wrappers around pipes
19:52:45 <AnotherTest> cabal just doesn't work
19:52:48 <FreeFull> How about toilets
19:52:59 <elliott> also the whole channel has to learn about @
19:53:02 <FreeFull> flush, overflow, clog
19:53:06 <Bike> AnotherTest: that's some deep shit
19:53:28 <AnotherTest> Should I just apt-remove cabal && apt-install cabal
19:53:39 <FreeFull> olsner: That does sound really stupid
19:53:43 <AnotherTest> I actually did cabal install cabal now
19:53:44 <monqy> nooodl: in summary, vapourware to end all vapourware
19:53:47 <AnotherTest> because it told me to
19:53:51 <nooodl> good
19:53:53 <nooodl> i'll finish it
19:54:11 <elliott> monqy: no!!!
19:54:12 <elliott> thats not
19:54:13 <elliott> the essence of @
19:54:15 <elliott> gosh
19:54:19 <elliott> i'm firing you
19:54:22 <elliott> appointing olsner as new @splainer
19:54:29 <olsner> "The pipes goes inside another premise we don’t have the control over our pipework anymore. While inside the premise, another plumber decide to modify our pipe, insert a special water cleaner and then “re-inject” the water inside the old pipe system."
19:54:31 <nooodl> what's the @ssence of @
19:54:53 <FreeFull> olsner: I have no idea what that's saying
19:54:54 <monqy> elliott: in the spirit of elliott i was going to make a joke about initial/terminal object in the category of vapourware but i didn't feel up to explaining it
19:55:00 <Bike> olsner: is this person high
19:55:06 <monqy> elliott: and i couldn't figure out which would be punchier
19:55:11 <monqy> elliott: which way do the arrows go???
19:55:12 <elliott> olsner: i like how that sounds like just regular plumbing talk
19:55:14 <olsner> FreeFull: me neither, but it has something to do with monads, supposedly
19:55:23 <AnotherTest> nooodl: how long should cabal install cabal take?
19:55:48 <monqy> how long is your internet connection
19:55:57 <Bike> why would you move the water
19:55:59 <FreeFull> olsner: Obviously monads are actually burritos
19:56:10 <nooodl> i'm not sure... i installed it as part of the haskell platform
19:56:11 <boily> monqy: what's a henway.
19:56:15 <Bike> this sounds like a surgical operation rather than plumbing
19:56:18 <Bike> is the house alive?
19:56:30 <monqy> boily: is this some sort of joke
19:56:37 <olsner> AnotherTest: I think cabal is not supposed to be installed through cabal in general
19:56:41 <AnotherTest> oh
19:56:44 <AnotherTest> it said
19:56:51 <AnotherTest> "please run cabal install cabal"
19:56:51 -!- augur has quit (Read error: Connection reset by peer).
19:57:00 -!- augur has joined.
19:57:06 <nooodl> maybe that updates cabal?!
19:57:22 <Bike> cabal install 'cabal install cabal'
19:57:36 <elliott> kmc: you like burrito jokes right
19:57:39 <olsner> to make things more or less confusing: cabal the binary comes from the package cabal-install, not from Cabal (which is a library)
19:57:39 <AnotherTest> I'm really considering Crtl + C and reinstalling cabal through debian
19:57:41 <AnotherTest> oh great
19:57:46 <AnotherTest> I get warnings
19:57:47 <kmc> elliott: burrito jokes are like burritos
19:57:48 <boily> monqy: robbing you of any will of making vapoury punchlines.
19:57:55 <nooodl> $ fix cabal install
19:58:39 <AnotherTest> wow
19:58:48 <AnotherTest> I actually installed cabal with cabal
19:58:53 <monqy> congratulations
20:00:15 <elliott> if you upgraded the cabal library, congrats! your installation is now even more broken
20:02:49 <Taneb> elliott, did you see and subsequently become very ashamed of my existence because of my SK-calculus implementation
20:02:58 <elliott> i saw it
20:03:33 <nooodl> i just realized i can finally ask this question because i know #esoteric exists:
20:03:41 <monqy> ????
20:03:43 <coppro> do you know
20:03:46 <coppro> for sure
20:03:50 <nooodl> are there any good esolangs based on lambda calculus that are still easily writable
20:04:02 <nooodl> (i.e. lambdas, not sk combinators)
20:04:04 <AnotherTest> It is a common myth that #esoteric actually exists.
20:04:06 <elliott> uhh there's that one
20:04:12 <olsner> "Imagine that we have our pipe perfectly sealed, with all the junctions perfectly aligned. If you think about this, this is something we could achieve also in an imperative language and, being provocative, also in Scala!"
20:04:20 <Taneb> Real Fast Nora's Hair Salon Three Shear Disaster Download
20:04:27 <AnotherTest> it does exist in the future however
20:04:39 <AnotherTest> (well, is commonly believed to)
20:04:54 <Taneb> http://esolangs.org/wiki/Real_Fast_Nora%27s_Hair_Salon_3:_Shear_Disaster_Download nooodl
20:05:01 <Taneb> TOTALLY readable
20:05:17 <nooodl> uuuuurrrrrrrrgh
20:05:19 <monqy> http://esolangs.org/wiki/Binary_lambda_calculus totally readable
20:05:31 <nooodl> but good name
20:05:32 <monqy> http://esolangs.org/wiki/Backslash_Calculus totally readable
20:06:04 <elliott> nooodl i have your esolang
20:06:05 <elliott> its called
20:06:07 <elliott> the lambda calculus
20:06:11 <nooodl> yes!!
20:06:17 <nooodl> i just need a lambda calculus interpreter basically
20:06:20 <monqy> http://esolangs.org/wiki/MIBBLLII Combinatory Logic But Its Not SK
20:06:31 <Bike> that's like five lines of anything nooodl
20:06:33 <nooodl> but ideally it'd come with some thingies for input/output/chars
20:06:37 <monqy> have you considered: a scheme implementation
20:06:47 <coppro> nooodl: what is an inout/output char in lambda calculus?
20:06:48 <monqy> or do you need nonstrict semantics
20:07:06 <Bike> also backslash calculus is entirely lambda calculus with de bruijin, perfect
20:07:51 <Taneb> Bike, so is Real Fast Nora's Hair Salon 3: Shear Disaster Download
20:07:56 <elliott> imo tailcalled invented backslash calculus so don't use it
20:08:08 <Phantom_Hoover> so wait
20:08:14 <Phantom_Hoover> are there two tailcalleds or something
20:08:22 <monqy> nooodl: what do you want this thing for
20:08:26 <monqy> nooodl: for what do you want this thing
20:08:26 <Taneb> Except Real Fast Nora's Hair Salon 3: Shear Disaster Download uses real words instead of crummy symbols, and hence is MUCH more readable
20:08:28 <Bike> Real Fast Nora's Hair Salon 3: Shear Disaster Download it is then, elliott
20:08:33 <Phantom_Hoover> i have it in my head that one of them is ok and the other bad
20:08:47 <nooodl> it'd be cute
20:08:55 <AnotherTest> I think internet relay programming can do lambda calculus really easy
20:09:01 <Phantom_Hoover> oh wait, i just assumed because of generic he was o
20:09:02 <Phantom_Hoover> k
20:09:07 <nooodl> does that still exist AnotherTest
20:09:20 <AnotherTest> nooodl: You're IN an interpreter
20:09:24 <nooodl> i've read the wiki article but i assumed the channel would just be empty or something
20:09:42 <monqy> nooodl: http://esolangs.org/wiki/Lambda_calculus "an esolang"
20:09:45 <elliott> it exists and it's like the worse version of #esoteric
20:09:50 <elliott> except it's mostly dead i think?
20:09:51 <Taneb> Just popped on it and it has 22 people other than me
20:10:13 <olsner> I guess we should make a "red pipe/blue pipe" language now where you somehow program with monad metaphors
20:10:16 <monqy> i avoid #irp
20:10:22 <Phantom_Hoover> nooodl, fwiw lazy k comes with a scheme library for translating from the lambda calculus
20:10:54 <Vorpal> <monqy> i avoid #irp <-- last I looked it was pretty dead
20:10:56 <nooodl> olsner: couldn't you just make aliases for some haskell types
20:10:57 <Vorpal> so nothing to avoid really
20:11:28 <elliott> monqy doesn't like dead things
20:11:29 <elliott> rats, for example
20:11:37 <monqy> they stink
20:11:44 <nooodl> (help whats @)
20:11:50 <elliott> its because monqy lives in an abandoned stinky orphanage
20:11:52 <elliott> full of dead rats
20:11:58 <nooodl> rat story!! i like the rat story
20:12:01 <tromp_> noodle, Binary_lambda_calculus has interpreters in C and Haskell
20:12:08 <Phantom_Hoover> rat story
20:12:11 <monqy> rat story
20:12:13 <Phantom_Hoover> is that like friendship mouse
20:12:16 <Phantom_Hoover> but w/ rats
20:12:16 <tromp_> including an obfuscated one
20:12:16 <elliott> nooodl: @ is an English-language macro expanding to the name I will give @ in the future when I decide on one
20:12:26 -!- zzo38 has joined.
20:12:35 <monqy> Phantom_Hoover: did friendship mouse die in your ceiling and stink up your room for week(s)
20:12:44 -!- AnotherTest has quit (Quit: Leaving.).
20:12:45 <Phantom_Hoover> no
20:12:47 <Bike> for week
20:12:48 <monqy> Phantom_Hoover: and also die under your floor shortly before that
20:12:52 <Phantom_Hoover> i released it humanely in the garden
20:12:59 <Bike> elliott: uh why are you not using vau calculus instead of macros??
20:13:03 <nooodl> do you mean, the name itself is a macro
20:13:03 <monqy> im not seeing very many parallels here
20:13:06 <Phantom_Hoover> so this rat died both in your floor and your ceiling
20:13:15 <elliott> Bike: good q.......................
20:13:18 <monqy> well there were probably two rats
20:13:21 <olsner> nooodl: aliases for haskell types are not metaphors, besides what would I use aliases of types for?
20:13:24 <elliott> Bike: does english support those
20:13:36 <elliott> nooodl: what do you mean by "the name itself"
20:13:39 <elliott> "@" is an English-language macro
20:13:44 <elliott> "@" is not a name
20:13:46 <nooodl> i meant that
20:13:49 <elliott> but @ is, just nobody knows what it is yet
20:13:56 <elliott> or rather, "@" is
20:13:58 <elliott> (a name)
20:13:59 <nooodl> is this your "feather"
20:14:02 <Phantom_Hoover> remember when like
20:14:06 <elliott> but the symbol "'@'" is a macro
20:14:09 <Bike> elliott: yes you just say that every word appearing before @ is an operator
20:14:10 <elliott> nooodl: its not really like feather at all
20:14:11 <Phantom_Hoover> we were seriously talking about implementing @
20:14:14 <Phantom_Hoover> for like a week
20:14:19 <elliott> Phantom_Hoover: more than a week!
20:14:23 <Bike> what's a week
20:14:25 <Bike> what's feather
20:14:25 <elliott> i might still do it
20:14:26 <Bike> what's @
20:14:27 <elliott> just not right now
20:14:28 <Bike> what's elliott
20:14:32 <nooodl> it sounds a lot like it; what's @
20:14:35 <Taneb> I remember friendship mouse
20:14:46 <elliott> nooodl: it's an operating environment for computers
20:14:48 <Bike> what if it turns out that "@" expands into "butts"
20:14:50 <Bike> what's butts
20:14:59 <Bike> "butts" is an English-language macro
20:15:01 <nooodl> http://esolangs.org/wiki/@tention! thanks wiki
20:15:14 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90 [Firefox 19.0/20130215130331]).
20:15:33 <elliott> Bike: it's going to be pretty good when I replace all occurrences of "@" with the name in the logs
20:15:42 <zzo38> Does any music made using oneshot square waves?
20:15:52 <nooodl> zzt title screen music
20:16:01 <elliott> nooodl: anyway for most of its existence @ has been an #esoteric joke about @
20:16:08 <elliott> but before that it was a different thing
20:16:10 <Phantom_Hoover> elliott, remember when you were still just trying to do lisp machines on modern architectures
20:16:19 <nooodl> i wish i could import all #esoteric logs into my brain
20:16:23 <elliott> Phantom_Hoover: that was you!
20:16:29 <Phantom_Hoover> it was both of us!
20:16:31 <Bike> buttstention!
20:16:36 <Phantom_Hoover> but you should have known better!
20:16:39 <zzo38> nooodl: Do you mean the percussion notes 012456789 of ZZT?
20:16:45 <Bike> ha ha lisp machines
20:16:52 <elliott> why are you laughing Bike....
20:17:01 <elliott> lisp machines are pretty great!
20:17:02 <nooodl> the notes themselves are also just squarewaves
20:17:03 <Bike> why indeed elliott
20:17:05 <Bike> why indeed
20:17:08 <elliott> Bike
20:17:09 <elliott> stfu
20:17:13 <nooodl> i guess it depends on what you mean by "oneshot"
20:17:15 <Bike> imo stfu
20:17:19 <zzo38> nooodl: Yes, it is PC Speaker.
20:17:22 <elliott> ok i admit lisp machine fetishists are unbearable on some level
20:17:27 <elliott> but you can't deny they're pretty great
20:17:32 <Bike> but seriously have you ever looked at cdr coding
20:17:37 <Bike> like really looked, at cdr coding
20:17:43 <zzo38> But what I mean by the "one shot" square waves is a square wave which triggers a monostable circuit at the frequency of the note.
20:17:47 <elliott> cdr coding is cute
20:17:48 <Bike> it's like your hands man
20:17:56 <monqy> this is reminding me of ursala
20:18:03 <monqy> hey Sgeo_ did you ever look at ursala
20:18:09 <elliott> what are my hands like
20:18:12 <Bike> the OSs are kinda cool but i mean people go on about the hardware and
20:18:16 <Bike> i just, i uuuuugh
20:19:22 <nooodl> zzo38: so just... no volume changes, no vibrato, etc?
20:19:35 <nortti> found this in 9front fortune file: The "do one thing well" philosophy underlying UNIX is best realized in a fully object-oriented environment. - some Linux guy
20:19:35 <elliott> Bike: come on genera is pretty great
20:19:50 <elliott> nooodl: anyway do you have any more questions about @
20:19:55 -!- oerjan has joined.
20:20:05 <nooodl> yes:
20:20:11 <nooodl> i want to see how far the implementation got
20:20:34 <zzo38> nooodl: Well, not exactly what I mean; I mean that the duty is not a percentage but rather a fixed time being high regardless of the note.
20:21:05 <Phantom_Hoover> nooodl, it uh
20:21:06 <Phantom_Hoover> didn't
20:21:06 <zzo38> (So that high notes have a high duty percentage, and low notes have a low duty percentage)
20:21:08 <elliott> nooodl: it didn't because it was never intended to be implemented in the state it was in
20:21:13 <elliott> and I never claimed I was in the process of implementing it
20:21:24 <nooodl> is there a "ref", is it a "programming language"
20:21:28 <Phantom_Hoover> hey now i think i was poking around with nasm at the time
20:21:35 <nooodl> zzo38: i see
20:21:58 <Phantom_Hoover> it is possible that at some point code was written with @ at least partly in mind
20:22:11 <Bike> @ turns out to expand to the full text of A Programming Language
20:22:19 <elliott> Phantom_Hoover: sure I wrote a bootloader
20:22:22 <Bike> #esoteric logs bloat, explode, covering elliott and his lisp machines in vomit
20:22:22 <oonbotti> Nothing here
20:22:23 <nooodl> Bike: poor logs
20:22:29 <nooodl> digivomit
20:22:34 <Phantom_Hoover> well then
20:22:36 <elliott> Bike: I don't have any lisp machines because the shipping to the UK would cost too much
20:22:39 <Phantom_Hoover> give nooodl a copy
20:22:49 <elliott> nooodl: what do you mean by "ref"
20:23:03 <nooodl> language reference
20:23:05 <zzo38> nooodl: Do you know of any like that?
20:23:21 <elliott> nooodl: what do you mean by language reference
20:23:22 <nooodl> zzo38: no
20:23:51 <nooodl> elliott: i'm not answering that question, this is retarded
20:24:31 <nooodl> (the "depends on what you mean by x!!" chain thing)
20:25:43 <Phantom_Hoover> there's no written anything
20:25:59 <nooodl> alright
20:26:25 -!- doesthiswork has joined.
20:28:14 <Phantom_Hoover> btw nooodl
20:28:24 <Phantom_Hoover> did you use my damn blaze rod to make that ender chest
20:28:27 <oerjan> <Taneb> What was that bijection between pairs of naturals and naturals that I knew a long time ago... <-- well one i've discussed on this channel before is f(m,n) = (m+n)*(m+n+1)/2 + m
20:28:33 <nooodl> yes, but i got a new blaze rod
20:28:39 <Taneb> oerjan, I found it in the end
20:28:41 <nooodl> it's in my inventory i think
20:28:51 <nooodl> maybe i even got 2??
20:28:59 <Bike> what about the good ol' cantor functon
20:29:05 <Bike> function
20:29:15 <Bike> which is what you just said fuck
20:29:53 <oerjan> Bike: possibly the same?
20:31:26 <oerjan> it's counting by minor diagonals, anyway
20:34:14 <oerjan> also, for n-tuples it generalizes to comb(n1+...+nk+1,k) + comb(n1+...+n(k-1)+1,k-1) + ... + com(n1+n2+1,2) + n1, (modulo any off-by-one errors)
20:34:20 <oerjan> *comb
20:34:25 -!- augur has quit (Read error: Connection reset by peer).
20:34:32 <oerjan> *k-tuples
20:34:52 -!- augur has joined.
20:35:20 -!- augur has quit (Read error: Connection reset by peer).
20:35:38 -!- sirdancealot has quit (Quit: KEEP SPARKS. FLAME AWAY.).
20:35:39 -!- augur has joined.
20:44:28 -!- augur has quit (Remote host closed the connection).
20:45:49 <Phantom_Hoover> elliott, what are you even up to in minecraft
20:46:47 <oerjan> hm fizzie is idle and fungot is missing
20:48:03 <Taneb> Did fungot kill fizzie and flee
20:51:25 <oerjan> hm in http://hpaste.org/83052 have you considered that the 1,2,3,5 values are also themselves pairs?
20:51:39 <oerjan> Taneb: ^
20:51:46 <Taneb> I had not
20:52:13 <olsner> @ask fungot did you kill fizzie and flee?
20:52:13 <lambdabot> Consider it noted.
20:52:51 <Taneb> They're chosen because they're the smallest 4 such that they can't be constructed from pairing eachother and aren't zero
20:52:53 <oerjan> 1 = (1,0), 2 = (0,1), 3 = (2,0), 5 = (0,2)
20:53:00 <oerjan> oh ok
20:53:14 <oerjan> basically, because they have 0 as a part
20:53:22 <Taneb> Yes
20:53:33 <Taneb> The next two would be 6 and 9
20:53:45 <Taneb> Then 10 and 14
20:53:53 <Taneb> Then 15 and 20
20:53:54 <Taneb> Hmm
20:54:03 <Taneb> There appears to be a pattern
20:54:11 <Taneb> Of course there's a pattern
20:55:05 <mroman> @tell Anothertest If you're using linux you might wanna change that to ./blsqirci instead of blsqirci.exe
20:55:05 <lambdabot> Consider it noted.
20:55:31 <Taneb> And parseSK is one of the prettiest parsers I have ever written
20:55:37 <Taneb> Perhaps because it is so basic
20:56:11 <oerjan> Taneb: x *> pure y == y <$ x , btw
20:56:26 -!- augur has joined.
20:56:58 <Taneb> Oh yeah
20:57:03 <Taneb> BUT NEATNESS
20:57:49 <elliott> (<$) is neater since only Functor constraint
20:58:04 <Taneb> elliott, but the third choice needs it to be an Applicative
20:58:16 <elliott> well why don't you use (>>) then!!
20:58:21 <oerjan> all Applicatives are Functors
20:58:36 <FreeFull> :t (<$)
20:58:37 <lambdabot> Functor f => a -> f b -> f a
20:58:42 <FreeFull> Yeah, it is
20:58:46 <oerjan> > (0 <$ 1 <$> 2)
20:58:47 <lambdabot> Could not deduce (GHC.Num.Num (a0 -> b0))
20:58:47 <lambdabot> arising from the ambiguity che...
20:59:23 <FreeFull> > (0 <$ ( 1 <$> 2))
20:59:24 <lambdabot> Could not deduce (GHC.Num.Num (a0 -> b0))
20:59:24 <lambdabot> arising from the ambiguity che...
20:59:27 <oerjan> pair <$ char '`' <$> parseSK <*> parseSK
20:59:36 <FreeFull> :t parseSK
20:59:38 <lambdabot> Not in scope: `parseSK'
20:59:39 <oerjan> assuming they all chain left to right
20:59:47 <oerjan> FreeFull: see http://hpaste.org/83052
20:59:59 <Taneb> They're all infixl 4
21:00:03 <oerjan> oh wait
21:00:11 <oerjan> * pair <$ char '`' <*> parseSK <*> parseSK
21:01:47 <oerjan> i suppose using *> with all of them has an elegance
21:01:55 -!- azaq23 has joined.
21:02:10 -!- azaq23 has quit (Max SendQ exceeded).
21:03:55 <Taneb> And I know about line 32
21:06:20 <oerjan> pair `flip` b `fmap` step a maybe
21:06:34 <Taneb> For a start, `fmap` is <$>
21:06:43 <elliott> pretty sure oerjan knows that
21:06:43 <oerjan> yes
21:06:54 <Taneb> And infix flip feels wrong to me
21:07:29 <Taneb> If there were more brackets about I'd be tempted
21:07:48 <oerjan> actually hm
21:08:36 <oerjan> :t ?a <$> ?b ?? ?c
21:08:37 <lambdabot> (?a::a1 -> a -> b, ?b::f a1, ?c::a, Functor f) => f b
21:08:40 <oerjan> :t flip
21:08:41 <lambdabot> (a -> b -> c) -> b -> a -> c
21:08:58 <oerjan> they removed caleskell flip but it still exists as lens ??
21:09:59 <oerjan> Taneb: so, pair <$> step a ?? b , although you need to import ?? from lens >:)
21:10:10 <oerjan> :t (??)
21:10:12 <lambdabot> Functor f => f (a -> b) -> a -> f b
21:10:37 <oerjan> it really should be in Data.Functor though
21:10:39 <elliott> :t (.)
21:10:40 <lambdabot> Functor f => (a -> b) -> f a -> f b
21:10:43 <elliott> :t (++)
21:10:44 <lambdabot> Monoid m => m -> m -> m
21:10:47 <elliott> sigh
21:11:22 -!- epicmonkey has joined.
21:11:41 <Taneb> oerjan, I'm avoiding lens, because it is really overkill
21:11:47 <Bike> so if i can't say lambdabot is running caleskell what can i say it's running? caleslens??
21:11:57 <oerjan> Taneb: yeah it has heaps of dependencies
21:12:08 <oerjan> Bike: there's plenty of cale left
21:12:10 <monqy> Bike: well (++) and (.) are still caleskell
21:12:19 <boily> some day, my bot will overthrow lambdabot.
21:12:27 <Taneb> oerjan, you are aware that I know about lens, quite a lot?
21:12:39 <oerjan> Taneb: anyway, it's just f ?? x = fmap ($ x) f
21:12:44 <Taneb> boily, what's the prefix for your bot?
21:13:25 <oerjan> @hoogle Functor f => f (a -> b) -> a -> f b
21:13:26 <lambdabot> Prelude fmap :: Functor f => (a -> b) -> f a -> f b
21:13:26 <lambdabot> Data.Functor fmap :: Functor f => (a -> b) -> f a -> f b
21:13:26 <lambdabot> Control.Monad fmap :: Functor f => (a -> b) -> f a -> f b
21:13:31 <Bike> :t (+ 1) . (+ 1)
21:13:32 <lambdabot> Num b => b -> b
21:13:44 <Bike> :t (+ 1)
21:13:45 <lambdabot> Num a => a -> a
21:13:55 <oerjan> :t ($>)
21:13:57 <lambdabot> Not in scope: `$>'
21:13:57 <lambdabot> Perhaps you meant one of these:
21:13:57 <lambdabot> `$' (imported from Data.Function), `$!' (imported from Prelude),
21:14:07 <oerjan> hm it doesn't exist
21:14:41 <oerjan> except it's not symmetric to <$
21:15:00 <boily> Taneb: ~.
21:15:17 <Taneb> ~ (1, 2) ^. _1
21:15:17 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
21:15:22 <Taneb> ~eval (1, 2) ^. _1
21:15:25 <cuttlefish> Error (1):
21:15:28 <boily> eh?
21:15:30 <Taneb> Needs more lenses
21:15:42 <elliott> oerjan: ($>) would be flip (<$), no?
21:15:43 <Taneb> ~eval fst (1, 2)
21:15:43 <boily> let me check...
21:15:45 <cuttlefish> 1
21:16:16 <boily> weird, Control.Lenses is there...
21:16:20 <oerjan> elliott: i was looking for a good name for ?? if it were put into Data.Functor, ?? doesn't really fit with the rest of the Functor/Applicative naming scheme
21:16:40 <oerjan> and no, it's not flip (<$)
21:16:40 <elliott> ah
21:16:48 <Taneb> ~eval (1, 2) & fst
21:16:49 <cuttlefish> 1
21:16:56 <Taneb> ~eval (1, 2) ^. _2
21:16:57 <cuttlefish> 2
21:16:59 <elliott> put strength in while you're at it :P
21:17:02 <Taneb> ~eval (1, 2) ^. _1
21:17:03 <cuttlefish> 1
21:17:05 <boily> weird...
21:17:21 <Taneb> ~eval (1, 2) & both .~ negate & _1 +~ 2
21:17:22 <cuttlefish> Error (1): No instance for (GHC.Show.Show (a0 -> a0))
21:17:22 <cuttlefish> arising from a use of `M9092509914124073958.show_M9092509914124073958'
21:17:22 <cuttlefish> Possible fix:
21:17:22 <cuttlefish> add an instance declaration for (GHC.Show.Show (a0 -> a0))No instance for (GHC.Num.Num (a0 -> a0))
21:17:22 <cuttlefish> arising from a use of `e_11212'
21:17:22 <cuttlefish> Possible fix:
21:17:22 <cuttlefish> add an instance declaration for (GHC.Num.Num (a0 -> a0))
21:17:33 <Taneb> ~eval (1, 2) & both .~ negate & _1 +~ 2
21:17:34 <cuttlefish> Error (1): No instance for (GHC.Show.Show (a0 -> a0))
21:17:34 <cuttlefish> arising from a use of `M5854169526931405235.show_M5854169526931405235'
21:17:34 <cuttlefish> Possible fix:
21:17:34 <cuttlefish> add an instance declaration for (GHC.Show.Show (a0 -> a0))No instance for (GHC.Num.Num (a0 -> a0))
21:17:34 <cuttlefish> arising from a use of `e_11212'
21:17:34 <cuttlefish> Possible fix:
21:17:35 <cuttlefish> add an instance declaration for (GHC.Num.Num (a0 -> a0))
21:17:38 <monqy> yikes
21:17:41 <Taneb> That isn't right
21:17:48 <Taneb> ~eval (1, 2) & both %~ negate
21:17:49 <cuttlefish> (-1,-2)
21:17:49 <Taneb> Yes it is
21:17:49 <boily> monqy: you didn't see nothing there. move along.
21:17:58 <Taneb> ~eval (1, 2) & both %~ negate & _1 +~ 2
21:17:59 <cuttlefish> (1,-2)
21:18:11 <nooodl> who's cuttlefish. is cuttlefish lambdabot's evil twin
21:18:13 <oerjan> in fact i think the most logical name for ?? would have been <$ ... it takes a Functor on the left and an ordinary value on the right...
21:18:21 <boily> that reinforces my belief that yes, lenses tend to be completely overkill.
21:18:43 <oerjan> and then <$> should have been $>
21:18:44 <Taneb> ~eval 4 # _Just
21:18:45 <cuttlefish> Error (1): Could not deduce (Data.Profunctor.Choice p0)
21:18:45 <cuttlefish> arising from the ambiguity check for `e_14'
21:18:45 <cuttlefish> from the context (GHC.Num.Num
21:18:45 <cuttlefish> (Control.Lens.Review.AReview
21:18:45 <cuttlefish> s
21:18:45 <cuttlefish> t
21:18:45 <cuttlefish> a
21:18:46 <cuttlefish> (p a2 (f b) -> p (Data.Maybe.Maybe a2) (f (Data.Maybe.Maybe b)))),
21:18:46 <cuttlefish> Control.Applicative.Applicative f,
21:18:47 <cuttlefish> Data.Profunctor.Choice p)
21:18:47 <cuttlefish> bound by the inferred type for `e_14':
21:18:48 <cuttlefish> (GHC.Num.Num
21:19:05 <Taneb> ~eval 4 ^. re _Just
21:19:06 <cuttlefish> Just 4
21:19:09 <boily> nooodl: my cuttlefish is not lambdabot's twin yet. for now, it's just evil.
21:19:13 <Taneb> :t (#)
21:19:15 <lambdabot> parse error on input `)'
21:19:18 <Taneb> :t ( # )
21:19:19 <lambdabot> Not in scope: `#'
21:19:38 -!- fungot has joined.
21:19:39 <boily> ~duck lambdabot
21:19:39 <cuttlefish> Software description: mirror of darcs repo (Haskell).
21:19:56 <boily> woohoo! the one and only fungot is back!
21:19:56 <fungot> boily: damn your mother!
21:19:56 <lambdabot> fungot: You have 1 new message. '/msg lambdabot @messages' to read it.
21:20:02 <Taneb> ~eval (Left 3, Right 4) ^? _1._Left.to negate
21:20:03 <cuttlefish> Just (-3)
21:20:10 <boily> ok. never saw that one coming.
21:20:22 <Taneb> ^echo @messages
21:20:22 <fungot> @messages @messages
21:20:22 <lambdabot> olsner asked 28m 10s ago: did you kill fizzie and flee?
21:20:26 <boily> fungot: why so mean?
21:20:27 <fungot> boily: ( waaay to much mutation, though; i want an irc client
21:20:40 <Taneb> ^style
21:20:40 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
21:20:48 <elliott> `addquote * fungot has joined #esoteric <boily> woohoo! the one and only fungot is back! <fungot> boily: damn your mother! <boily> ok. never saw that one coming.
21:20:48 <fungot> elliott: i just dont want to do for about fnord generations now....
21:20:52 <HackEgo> 968) * fungot has joined #esoteric <boily> woohoo! the one and only fungot is back! <fungot> boily: damn your mother! <boily> ok. never saw that one coming.
21:20:55 <elliott> not sure if that last line is good or bad to include
21:21:03 <olsner> hmm, fungot doesn't trigger when lambdabot tells it about messages?
21:21:04 <fungot> olsner: it has nothing to do and not too specific to scheme.
21:21:19 <elliott> fizzie: pls make fungot @messages
21:21:19 <fungot> elliott: i would assume quite a lot of contrast. i believe they are not
21:21:20 <FreeFull> > "I love fungot"
21:21:21 <fungot> FreeFull: is there a bfm tutorial anywhere or documentation or at least that's the case in hand...
21:21:22 <lambdabot> "I love fungot"
21:21:23 <oerjan> elliott: in fact hm the perfect naming would have been: $> = current <$>, <$> = current <*>, <$ = current ??
21:21:23 <monqy> fungot has an "ignore's list"
21:21:24 <fungot> monqy: anyway infinite loop then is easy to write the code
21:21:27 <elliott> ^ul (@messages)S
21:21:27 <fungot> @messages
21:21:27 <lambdabot> You don't have any new messages.
21:21:30 <elliott> oh that was easy
21:21:31 <nooodl> fungot nethack style??
21:21:31 <fungot> nooodl: f is applied to it, as if it were reliable. unfortunately it means we don't know
21:21:37 <elliott> oerjan: i think ski has proposed something like that
21:21:37 <FreeFull> igorns list
21:21:42 <Phantom_Hoover> oppan nethack style?
21:21:51 <elliott> Phantom_Hoover........
21:21:57 <boily> Phantom_Hoover: ha ha ha :D
21:22:00 <monqy> Phantom_Hoover................................
21:22:01 <Phantom_Hoover> hey man i'm doing it ironically
21:22:14 <elliott> oerjan: however I am not sure that is perfect because ideally a mirrored operator should be the flip of the non-mirrored one :P
21:22:27 <nooodl> ^style c64
21:22:28 <fungot> Selected style: c64 (C64 programming material)
21:22:32 <FreeFull> What elliott said
21:22:52 <nooodl> fungot, hi
21:22:52 <fungot> nooodl: in boolean algebra, the word if is followed by ready. the video display matrix, does which represent data during statement execution. therefore, if you are communicating with other applications that require large amounts of each routine in rom)
21:23:03 <nooodl> great
21:23:04 <monqy> well that's already broken with *> and <* isn;t' it
21:23:23 <elliott> monqy: right which is the `imperfectness'
21:23:41 <elliott> oerjan: also (<$>) is an even worse name than (<*>) because it's even more bulky :(
21:23:42 <nooodl> : isn't the flip of : !!!
21:24:12 <Taneb> ~eval flip (:) "hello" '_'
21:24:13 <cuttlefish> "_hello"
21:25:25 <nooodl> i feel like haskell learnin'
21:26:26 <oerjan> <boily> monqy: you didn't see nothing there. move along. <-- i suggest you remove line breaks in your bot output somehow, it's really verbose
21:26:32 <nooodl> things i've considered reading about: arrows, lenses, parsec, "which is more important"
21:27:16 <monqy> um
21:27:27 <boily> oerjan: one of the top priorities for the next version.
21:27:27 <monqy> arrows are dumb but "easy"
21:27:32 <monqy> lenses are easy and good
21:27:37 <monqy> parser combinators too
21:27:54 <elliott> dont learn arrows
21:27:57 <boily> I'd suggest parsers, as they are the most practicalest.
21:28:05 <elliott> lenses are practical..........
21:28:10 <nooodl> but it has an operator called (&&&)
21:28:29 <monqy> > (succ &&& pred) 5
21:28:30 <lambdabot> (6,4)
21:28:31 <monqy> move along now
21:28:39 <boily> arrows are interesting if you want to completely break your mind, viz. ArrowLoop.
21:28:44 <nooodl> but it has an operator called (***)
21:28:51 <monqy> > (succ &&& pred) (1, 2)
21:28:53 <lambdabot> No instance for (GHC.Enum.Enum (t0, t1))
21:28:53 <lambdabot> arising from a use of `e_112'
21:28:53 <lambdabot> ...
21:28:56 <monqy> woops
21:29:00 <monqy> > (succ *** pred) (1, 2)
21:29:01 <lambdabot> (2,1)
21:29:02 <monqy> move along now
21:29:08 <nooodl> that's a cute function
21:29:16 <nooodl> are arrows ever something that isn't tuples
21:29:29 <nooodl> i mean. the answer is obviously "yes",
21:29:29 <Taneb> > (succ +++ pred) (Left 1)
21:29:30 <lambdabot> Left 2
21:29:36 <Taneb> > (succ +++ pred) (Right 1)
21:29:37 <lambdabot> Right 0
21:29:55 <Taneb> > (succ ||| pred) (Left 1)
21:29:57 <lambdabot> 2
21:30:01 <Taneb> > (succ ||| pred) (Right 2)
21:30:02 <boily> nooodl: you can do interesting things with arrows and streams. let me find that blog article again...
21:30:04 <lambdabot> 1
21:30:16 <monqy> nooodl: the answer is no, actually. taneb's showing off arrowchoice. really the thing that varies with arrows is it's not always with normal ol functions (->)
21:30:25 <monqy> nooodl: arrows are dumb
21:30:28 <nooodl> ok
21:30:29 -!- epicmonkey has quit (Remote host closed the connection).
21:30:43 <Taneb> nooodl, parsers are fun
21:30:45 <nooodl> i really can't imagine ever needing arrows from what i've heard about them
21:30:45 -!- epicmonkey has joined.
21:30:57 <elliott> arrows are really bad seriously
21:31:02 <Taneb> nooodl, Control.Arrow has a few handy functions in it
21:31:06 <monqy> some of the arrow combinators are sort of useful sometimes but just because you want those functions on (->)
21:31:07 <Taneb> That's it
21:31:15 <nooodl> parsers in haskell are magic...
21:31:17 <elliott> edwardk has better versions of those functions!!
21:31:17 <nooodl> i see
21:31:29 <nooodl> does lens have (***) (&&&)
21:31:29 <Taneb> elliott, what's the better version of (|||)
21:31:31 <boily> nooodl: https://github.com/leonidas/codeblog/blob/master/2012/2012-01-08-streams-coroutines.md
21:31:51 <elliott> Taneb: i forget
21:31:52 <boily> I mainly use arrows for pointless programming.
21:32:22 <nooodl> arrows are pointy though
21:32:38 <monqy> :-)
21:33:15 <Bike> arrows always make me think of psephology
21:33:17 <Bike> bad association y/n
21:33:22 <monqy> nooodl: what is it you want to learn about parser combinators, just how to use parsec or?
21:33:24 <boily> ~duck psephology
21:33:26 <cuttlefish> Psephology is a branch of political science which deals with the study and scientific analysis of elections.
21:33:30 <nooodl> how to parse
21:33:44 <monqy> what does that mean...
21:33:50 <boily> nooodl: imho, I think attoparsec is the best out there. easy, well documented, and up to date.
21:33:56 <nooodl> i don't know! what does "parser combinators" mean
21:34:04 <monqy> use trifecta clearly
21:34:14 <FreeFull> Arrows are good for shooting people with
21:34:18 <boily> ~duck parser combinator
21:34:18 <cuttlefish> In functional programming, a parser combinator is a higher-order function which accepts several parsers as input and returns a new parser as its output.
21:34:26 <Bike> you know like arrow's impossibility theorem
21:34:48 <elliott> nooodl: it means building parsers out of combinators
21:34:53 <elliott> attoparsec is really bad for general parsing
21:34:58 <elliott> since it doesn't handle unicode at all last i checked
21:35:00 <elliott> and gives bad error messages
21:35:01 <boily> class Arrow a => Zeno a where { halfMore :: a -> a } ?
21:35:02 <shachaf> ⇄ not so impossible now are you
21:35:04 <nooodl> god, i could've actually deduced that definition from "parser" + "combinator"
21:35:07 <elliott> it's really intended for binary file format parsing
21:35:08 <shachaf> Hike
21:35:11 <Bike> hachaf
21:35:48 <boily> elliott: what about the Text version of Attoparsec?
21:35:48 <shachaf> monqy: are profunctors dumb
21:35:59 <Bike> how about: instead of specifying rules in some warped BNF derivative, you build up a function that parses your language out of simpler functions called "combinators". disclaimer this may be completely wrong
21:36:00 <monqy> shachaf: no :)
21:36:08 <boily> shachaf: profunctors are time-traveling evil monstrosities.
21:36:13 <olsner> Bike: silly talk
21:36:15 <shachaf> monqy: what about profunctor + strong + choice + category
21:36:19 <shachaf> is that kinda dumb
21:36:27 <monqy> is that ~Arrow
21:36:36 <elliott> boily: hmm, I forget
21:36:41 <elliott> error mesage problem is still there, though
21:37:06 <elliott> monqy: that's ArrowChoice
21:37:10 <shachaf> oh right
21:37:14 <shachaf> profunctor + strong + category
21:37:19 <shachaf> "hows that"
21:37:20 <FreeFull> boily: zeno is bottom
21:37:51 <monqy> at least profunctor+strong+category has better foundations than arrow it's built from not stupid things "i think???" .............................. maybe strong is stupid
21:37:55 <monqy> (is strong stupid)
21:38:15 <monqy> ((i dont remember the definition of strong))
21:38:23 <FreeFull> I messed a bit with profunctors but didn't see how to use them to make something useful
21:38:34 <monqy> ok
21:38:35 <shachaf> (((monqy: strong gives you first' :: forall a b c. p a b -> p (a, c) (b, c))
21:38:40 <monqy> ok
21:38:42 <shachaf> (((((and also second')
21:38:44 <monqy> ok
21:38:57 <shachaf> (ie arrombinators)
21:39:06 <shachaf> @yarr
21:39:06 <lambdabot> Eat maggoty hardtack, ye unkempt, jenny frequentin', son of a gun.
21:39:14 <monqy> ok
21:39:24 <boily> ~eval A.parseOnly (string "é") "é"
21:39:25 <cuttlefish> Error (1): Not in scope: `string'
21:39:25 <cuttlefish> Perhaps you meant one of these:
21:39:25 <cuttlefish> `A.string' (imported from Data.Attoparsec.Text),
21:39:25 <cuttlefish> `storing' (imported from Control.Lens),
21:39:25 <cuttlefish> `strict' (imported from Control.Lens)
21:39:33 <boily> ~eval A.parseOnly (A.string "é") "é"
21:39:34 <cuttlefish> Error (1): Couldn't match expected type `Data.Text.Internal.Text'
21:39:34 <cuttlefish> with actual type `[GHC.Types.Char]'Couldn't match expected type `Data.Text.Internal.Text'
21:39:34 <cuttlefish> with actual type `[GHC.Types.Char]'
21:39:42 <shachaf> ~eval data Hi = Hi
21:39:43 <cuttlefish> Error (1): <hint>:1:1: parse error on input `data'
21:39:52 <boily> argh fscking dammit stupid not overloaded strings!
21:39:58 <shachaf> ˙☹˙
21:40:34 <shachaf> ˙͜˙
21:40:50 <monqy>
21:41:01 <boily> you're borking my weechat. stop that.
21:41:11 <shachaf> °ᵜ°
21:41:12 <shachaf> help
21:41:19 <shachaf> what did i even do
21:41:42 <boily> shachaf: looks like that's monqy's fault.
21:41:44 <Bike> combining double breve below? seriously?
21:41:52 <shachaf> °̯°
21:42:00 <shachaf> Bike: you gotta problem with that
21:42:23 <boily> ~eval A.parseOnly (A.string $ T.pack "é") $ T.pack "é"
21:42:24 <cuttlefish> Right "\233"
21:42:36 <boily> elliott: yeah. attoparsec does do utf-8 correctly.
21:43:00 <elliott> good to know
21:43:14 <shachaf> et tu, parsec?
21:44:33 <Taneb> > parse (Text.Parsec.Char.char '') "" ""
21:44:33 <lambdabot> mueval: recoverEncode: invalid argument (invalid character)
21:45:06 <Bike> btw why does mueval not do unicode
21:45:09 <Taneb> LAMBDABOT
21:45:16 <shachaf> Bike: It does.
21:45:19 <shachaf> Well, did?
21:45:22 <Bike> i mean
21:45:26 <shachaf> lambdabot did Unicode fine before The Upgrade.
21:45:28 <Bike> > ǟ
21:45:28 <lambdabot> mueval: recoverEncode: invalid argument (invalid character)
21:45:31 <Bike> what's going on there
21:45:38 <Taneb> ~eval Text.Parsec.parse (Text.Parsec.Char.char '') "" ""
21:45:39 <cuttlefish> Error (1): Not in scope: `Text.Parsec.parse'Not in scope: `Text.Parsec.Char.char'
21:45:40 <shachaf> lambdabot being stupid.
21:45:48 * Bike pokes lambdabot
21:46:01 <shachaf> lambdabot both uses ByteStrings to represent text and Strings to represent bytes.
21:46:11 <monqy> cute
21:46:25 <shachaf> I'm surprised anything works at all.
21:46:46 <Taneb> That... seems bizarre
21:47:01 <Bike> shachaf: wat
21:47:08 <Taneb> Anyway, goodnight
21:47:09 -!- Taneb has quit (Quit: Leaving).
21:47:16 <shachaf> Wike
21:47:21 <Bike> ak
21:50:53 -!- GOMADWarrior has quit (Ping timeout: 252 seconds).
21:53:42 -!- blume has joined.
21:55:25 <ion> Cats http://youtu.be/YyHUNKV5Ouw http://youtu.be/0xvHEdqwSjY
21:55:32 -!- wareya has quit (Read error: Connection reset by peer).
21:56:32 -!- wareya has joined.
22:02:06 <olsner> `quote reindeer
22:02:08 <HackEgo> 857) <olsner> FireFly: oh, did you see ion's police reindeer? that was ... at least as on-topic as this discussion
22:02:34 <shachaf> `fusermount
22:02:36 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: fusermount: not found
22:02:38 <shachaf> Aw.
22:02:46 <olsner> not sure if relevant, but it had ion and animals
22:03:21 <boily> `quote chemistry
22:03:23 <HackEgo> No output.
22:03:27 <boily> `quote magnetism
22:03:28 <HackEgo> No output.
22:05:00 <Bike> `quote psephology
22:05:02 <HackEgo> No output.
22:05:04 <Bike> `quote cybernetics
22:05:06 <HackEgo> No output.
22:05:20 <shachaf> `quote bike
22:05:21 <HackEgo> 855) <shachaf> Bike: Your client colours people? <Bike> it would be pretty boring to see everyone as white, i get that enough in real life \ 858) <Bike> "damn, my port of ghc to php isn't properly taking javascript booleans into account" \ 878) <kmc> i bet a blog post complaining about ");});});" syntax in JavaScript and comparing it unfavorably t
22:05:45 <Bike> `quote shachaf
22:05:46 <HackEgo> 539) <shachaf> elliott: GHC bug? Come on, it's the parentheses. <shachaf> The more parentheses you add, the closer it is to LISP, and therefore the more dynamically-typed. \ 580) <shachaf> Real Tar is GNU tar. <shachaf> You just ignore whichever features don't make you feel superior enough. \ 614) <shachaf> VMS Mosaic? <shachaf> I hope that's no
22:05:56 <shachaf> `delquote 580
22:05:59 <olsner> `quote 878
22:06:01 <HackEgo> ​*poof* <shachaf> Real Tar is GNU tar. <shachaf> You just ignore whichever features don't make you feel superior enough.
22:06:02 <HackEgo> 878) <zzo38> There is Haskell program "pandoc" to convert formats, so I make "panchess" which is the similar thing but for chess.
22:06:04 <Bike> no~~
22:06:11 <olsner> `quote 877
22:06:13 <HackEgo> 877) <kmc> i bet a blog post complaining about ");});});" syntax in JavaScript and comparing it unfavorably to Lisp would get approximately one billion comments on hacker news <Bike> but at what cost? your very soul, kmc!
22:06:20 <Bike> oh now it gets the formatting right
22:07:44 <elliott> `revert
22:07:45 <elliott> i like that quote
22:07:46 <HackEgo> Done.
22:07:59 <Bike> `quote revert
22:08:01 <HackEgo> No output.
22:08:09 <boily> `quote No output.
22:08:10 <HackEgo> 627) <shachaf> `quote themselves <HackEgo> No output. <shachaf> `quote norway <HackEgo> No output. <shachaf> `quote lunch <HackEgo> No output. <shachaf> Useless bot.
22:08:25 <olsner> `quote themselves
22:08:26 <HackEgo> 627) <shachaf> `quote themselves <HackEgo> No output. <shachaf> `quote norway <HackEgo> No output. <shachaf> `quote lunch <HackEgo> No output. <shachaf> Useless bot. \ 670) <oklopol> in one case, someone is hurting themselves, in the other, they are only hurting (all) norwegians (to death)
22:08:28 <olsner> `quote norway
22:08:29 <HackEgo> 627) <shachaf> `quote themselves <HackEgo> No output. <shachaf> `quote norway <HackEgo> No output. <shachaf> `quote lunch <HackEgo> No output. <shachaf> Useless bot. \ 826) <Phantom_Hoover> unfortunately df is not yet able to simulate norway
22:08:39 <olsner> `quote lunch
22:08:40 <HackEgo> 627) <shachaf> `quote themselves <HackEgo> No output. <shachaf> `quote norway <HackEgo> No output. <shachaf> `quote lunch <HackEgo> No output. <shachaf> Useless bot. \ 728) <shachaf> Free as in unregistered, not free as in lunch or speech.
22:09:09 <olsner> looks like it has at least one quote each for every topic
22:09:24 <boily> no one's from norway here, aren't they?
22:09:44 <shachaf> elliott: It's a bad quote.
22:09:45 <Phantom_Hoover> oerjan
22:10:13 <olsner> shachaf: issue resolved, bot useful
22:10:18 <shachaf> "Free as in unregistered"? What does that even mean?
22:11:23 <olsner> shachaf: you should know, you said it!
22:11:49 <nooodl> like when you get the free version of some piece of software
22:11:54 <nooodl> and it's worse, but free!
22:12:22 <nooodl> me and shachaf switched people soon after that quote
22:12:43 <shachaf> Whooodl said.
22:13:10 <olsner> hmm, so now nooodl == nooodl and shachaf == shachaf, but for different values of nooodl and shachaf?
22:13:26 <nooodl> yeah
22:13:30 <shachaf> nooodl is always == nooodl
22:13:42 <shachaf> unless you have a race condition
22:13:51 <nooodl> flipped values for nooodl and shachaf even
22:15:50 <shachaf> Is the bot useful now?
22:15:57 <shachaf> Let's apply the standardised test.
22:16:01 <shachaf> `quote trombone
22:16:02 <HackEgo> No output.
22:16:03 <nooodl> `quote norway
22:16:05 <HackEgo> 627) <shachaf> `quote themselves <HackEgo> No output. <shachaf> `quote norway <HackEgo> No output. <shachaf> `quote lunch <HackEgo> No output. <shachaf> Useless bot. \ 826) <Phantom_Hoover> unfortunately df is not yet able to simulate norway
22:16:06 <shachaf> `quote illinois
22:16:07 <HackEgo> No output.
22:16:13 <shachaf> `quote telemarketer
22:16:14 <HackEgo> No output.
22:16:14 <boily> `quote cuttlefish
22:16:16 <HackEgo> 942) <elliott> ~eval 1+2 <cuttlefish> Error (127): <elliott> this is a great bot boily i love it
22:16:17 <shachaf> Apparently not.
22:16:26 <nooodl> that's a good quote about cuttlefish
22:16:43 <shachaf> great bot boily
22:16:44 <shachaf> groily
22:17:05 -!- boily has changed nick to groily.
22:17:06 <nooodl> someone should look for the one where i go '!gs2 "2 2+"' and gs2bot spams like 20 lines to the channel
22:17:15 <nooodl> 20 long lines
22:17:15 <Bike> wasn't that yesterday
22:17:19 <nooodl> yes...
22:17:23 <olsner> first a venus flytrap-looking spatial anomaly, then they get out of it after 2 minutes and go to the holodeck, and it hasn't even started malfunctioning? something's WRONG with this star trek episode
22:17:29 <shachaf> http://www.youtube.com/watch?v=14xcsz43Kuw
22:17:34 <shachaf> now that's a useful bot
22:17:49 <Bike> ah yis neverhood
22:18:44 <shachaf> btw that's a sad movie so don't watch it unless you like sad movies
22:18:49 <olsner> neverhood is like the best thing ever made
22:19:07 <shachaf> At last olsner is talking some sense?
22:19:24 <olsner> what, why would I ever?
22:19:35 <groily> I stand by the argument that fungot is the one making the most sense in this channel.
22:19:35 <fungot> groily: there are vectored routines which begin at location 53265 ( d011 in hex) is set to a logical file
22:19:40 <groily> see?
22:19:59 <shachaf> ^style
22:19:59 <fungot> Available: agora alice c64* ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
22:20:07 <olsner> oh, 53265 *is* d011 in hex
22:20:37 <groily> ^style pa
22:20:38 <fungot> Selected style: pa (around 1200 transcribed Penny Arcade comics)
22:20:38 -!- DHeadshot has quit (Read error: Connection reset by peer).
22:20:42 <shachaf> fungot: tell me more about there are vectored returns
22:20:43 <fungot> shachaf: fan 3: why no love for rogues!
22:20:48 <groily> ^style qwantz
22:20:48 <fungot> Selected style: qwantz (Dinosaur Comics transcriptions 2003-2011)
22:20:58 <groily> ^style c64
22:20:59 <fungot> Selected style: c64 (C64 programming material)
22:21:19 <groily> fungot: vectors, matrices, tensors, knuckles, dimples, hubbub.
22:21:19 <fungot> groily: shown below. for a note has started playing will begin putting data onto the stack pointer is placed into the sprite enable register is located starting at 43 ( 2b) reveals that the ctrl key or until the spaces. stepping 3 positions at
22:21:33 <shachaf> fungot: is it because of your mother that you put data onto the stack pointer
22:21:34 <fungot> shachaf: you probably asked yourself, " if it's time to send output to return to the right edge of the character rom in and out of the program is run, the
22:21:42 <quintopia> hi groily
22:21:53 <groily> hi quintopia!
22:21:56 <groily> hintopia
22:21:58 <nooodl> ^style nethack
22:21:58 <fungot> Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal)
22:21:59 -!- epicmonkey has quit (Read error: Operation timed out).
22:22:02 <quintopia> hoily
22:22:11 -!- groily has changed nick to hoily.
22:22:13 <shachaf> fungot: tell me about the oracle
22:22:14 <fungot> shachaf: they say that everyone knows why medusa stands alone in the nest without answering, for a heavy statue is really good. the styx could be made to shrink in size and power. trolls they were, as bright as ever. the deceased's next- of-kin would place it carefully in a shop.
22:22:19 <nooodl> fungot: hi how are you
22:22:19 <fungot> nooodl: keep your weaponry away from rust. ( buffy the vampire slayer, episode 5.03, " go and sting the men of xibalba." old tom was the celtic ( continental european and irish) fertility goddess.
22:22:30 <nooodl> it has the comments...
22:22:36 <Phantom_Hoover> st without answering, for a heavy statue is really
22:22:41 <shachaf> fungot: fungot?
22:22:41 <fungot> shachaf: fog cloud to oz. in the evening has no effect on dragons. i am. ( the fox-horse, from the gods, by diana wynne jones)
22:22:42 <Phantom_Hoover> "audio created with wolframtones"
22:22:59 <shachaf> fungot: what is the one thing every adventurer must know before going into the dungeon
22:22:59 <fungot> shachaf: this release contains 10% recycled material. this is very embarrassing. do you bow before me?' ( rikki-tikki-tavi, by the two towers, by herbert spencer robinson and knox wilson)
22:23:11 <Phantom_Hoover> ^style
22:23:11 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack* pa qwantz sms speeches ss wp youtube
22:23:29 <Phantom_Hoover> ohhh, that's why the diana wynne jones
22:23:36 <Phantom_Hoover> i wonder if she died yet
22:23:47 <Phantom_Hoover> she did :(
22:23:51 <oerjan> `addquote <groily> I stand by the argument that fungot is the one making the most sense in this channel.
22:23:51 <fungot> oerjan: thoth: the blindfolding was performed by binding a piece of iniquity, stealing away from the cave; the ferocious fear the only time conan ever saw such an expression of dubiosity on their bodies were jet-black and mostly the size of a warrior tradition, by robert e. howard, bjorn nyberg, and just missed the bunch. turning round again with a touch of his seed unto molech; he shall surely be put to death.
22:23:55 <HackEgo> 969) <groily> I stand by the argument that fungot is the one making the most sense in this channel.
22:24:13 <shachaf> `welcome oerjan
22:24:15 <HackEgo> oerjan: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:24:30 <olsner> `? fungot
22:24:30 <fungot> olsner: want to know what cram is, of the blade itself gleamed like a regularly erupting geyser.
22:24:31 <HackEgo> fungot cannot be stopped by that sword alone.
22:24:34 <shachaf> Did someone change `welcome?
22:24:55 <shachaf> `help
22:24:55 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
22:25:00 <olsner> shachaf: looks the same to me?
22:25:08 <hoily> I'd like to know what cram is, please fungot.
22:25:09 <fungot> hoily: asmodeus: it is a painfully slow process. the other time when cursed holy water wasn't water.
22:25:11 <Bike> later bill
22:25:21 <hoily> maybe I didn't want to know after all.
22:25:33 <oerjan> `relcome shachaf
22:25:36 <HackEgo> shachaf: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:26:12 <shachaf> `wercome oerjan
22:26:13 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wercome: not found
22:26:15 <kmc> yikes
22:26:20 -!- zzo38 has quit (Remote host closed the connection).
22:26:24 <kmc> `rainbow
22:26:26 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rainbow: not found
22:26:33 <shachaf> `cat bin/relcome
22:26:34 <HackEgo> ​#!/bin/sh \ welcome "$@" | colorize
22:26:52 <kmc> `echo $RANDOM | colorize
22:26:52 <shachaf> `?r monqy
22:26:53 <quintopia> `colorize "hi shachaf"
22:26:53 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ?r: not found
22:26:53 <HackEgo> ​$RANDOM | colorize
22:27:00 <oerjan> `rwelcome kmc
22:27:03 <HackEgo> kmc: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:27:10 <kmc> `sh -c "echo $RANDOM | colorize"
22:27:11 <HackEgo> sh: Illegal option -
22:27:15 <kmc> fucucufuuk
22:27:17 <shachaf> kmc: `run
22:27:23 <kmc> `run echo $RANDOM | colorize
22:27:24 <HackEgo> No output.
22:27:25 <HackEgo> 9
22:27:31 <quintopia> `echo "hi shachaf" | colorize
22:27:32 <HackEgo> ​"hi shachaf" | colorize
22:27:32 <hoily> 9?
22:27:38 <quintopia> lol i am bad at
22:27:41 <kmc> 9 is pretty small for a random number
22:27:42 <kmc> `run echo $RANDOM | colorize
22:27:44 <HackEgo> 128
22:27:46 <quintopia> `run echo "hi shachaf" | colorize
22:27:47 <HackEgo> hi shachaf
22:27:50 <quintopia> :D
22:27:51 <olsner> `run seq 1 $RANDOM | colorize
22:27:53 <HackEgo> 1
22:28:04 <kmc> `run echo $(seq 1 100) | colorize
22:28:06 <HackEgo> 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 17 18 19 20 21 22 23 2 25 26 27 28 29 3 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 5 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 6 69 70 71 72 73 74 5 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
22:28:30 <quintopia> `run cat colorize
22:28:31 <shachaf> what happened there??
22:28:32 <HackEgo> cat: colorize: No such file or directory
22:28:40 <shachaf> did some things get colorized invisible
22:28:41 <quintopia> `run cat /bin/colorize
22:28:42 <HackEgo> cat: /bin/colorize: No such file or directory
22:28:48 <quintopia> where is
22:29:22 <quintopia> `run cat bin/colorize
22:29:24 <HackEgo> ​#!/bin/sh \ python -c "import random; w=raw_input(); p=list('x'*len(w)+'C'*int((350-len(w))/3+1)); random.shuffle(p); i=(c for c in w); print ''.join(i.next() if c=='x' else chr(3)+str(random.randrange(2,15)) for c in ['C']+p)"
22:30:09 <monqy> shachaf: it has to do with how the color thingy works....with numbers...you know....
22:30:13 <oerjan> <shachaf> did some things get colorized invisible <-- oh hm i suspect the digit got swallowed by the color code number
22:30:19 <monqy> "what oerjan said"
22:30:25 <oerjan> fizzie: ^ bug
22:30:32 <shachaf> monqy: right i remember now
22:30:37 <nooodl> you can easily fix that
22:30:38 <shachaf> monqy: look im not good at irc ok
22:30:41 <hoily> that's not a bug, that's an invisible one.
22:30:47 <shachaf> (or at anything else?? :'( )
22:30:49 <nooodl> str(random.randrange(2,15)) -> '%02d' % random.randrange(2,15)
22:31:59 <shachaf> `run base64 /dev/urandom -w 200 | head -n1 | colorize
22:32:01 <HackEgo> /6d2Q76doel7Wp8WP7OvdrJ9rccw0r217o4pNmr8xTcukp+71tofYJbTzbUK+mS4rHjW//2vVOKo5zdquC3hbumeC4b4KqLCUkXoHd7LVjC/rZfmJ1zBhu+2FZBeqHYUUbW4jfwQPghEjk2INrxhkBQlq7wFGlURwM0WqnhNvuyYAg6bkFuu76iSPqfqJU4y7N
22:32:06 <shachaf> "thats more like it"
22:32:18 <shachaf> `run base64 /dev/urandom -w 100 | head -n1 | colorize
22:32:20 <HackEgo> fOBYYKrtgvHwnJI4wbOAreqJifDecK1sS6Bwhh26JQXxvprrGGfYbBa3G+6n6/DycnAh2q63XMFZMD1IPYG+jQ/LeknkS
22:32:45 <nooodl> DecK
22:32:51 -!- blume has quit (Ping timeout: 260 seconds).
22:32:53 <oerjan> `run sed -i 's/str[^ ]*/'\''%02d'\'' % random.randrange(2,15)/ bin/colorize
22:32:54 <Bike> IT'S A SIGN
22:32:54 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
22:32:57 <shachaf> `run base64 /dev/urandom -w 50 | head -n1 | colorize
22:32:59 <HackEgo> FdnErKI4+44HWvUOd1aaJQEYei7ejYgHEnUDXALoVvkV
22:33:00 <oerjan> ff
22:33:14 <nooodl> ugh. sed
22:33:42 <olsner> nooodl: shame on you, apologize to sed now
22:33:42 <oerjan> `run sed -i 's/str[^ ]*/'\''%02d'\'' % random.randrange(2,15)/' bin/colorize
22:33:45 <HackEgo> No output.
22:33:57 <oerjan> `run echo $(seq 1 100) | colorize
22:33:59 <HackEgo> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
22:34:09 <nooodl> excellent
22:34:19 <shachaf> um
22:34:23 <shachaf> did you break the length checking
22:34:31 <shachaf> it only went up to 98..........
22:34:43 <shachaf> ("u broke it")
22:34:51 <oerjan> oh hm
22:34:53 <oerjan> `run echo $(seq 1 100) | colorize
22:34:55 <HackEgo> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
22:34:59 <oerjan> ic
22:34:59 <nooodl> huh what
22:35:14 <shachaf> It's trickier to do the length checking this way, of course.
22:35:23 <nooodl> `run echo $(seq 90 110) | colorize
22:35:25 <HackEgo> 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 11
22:35:41 <monqy> 109, 11, rip
22:35:52 <oerjan> shachaf: um shouldn't it be easier now that they're all the same length?
22:35:55 <monqy> colorful 108 there tho
22:36:04 <shachaf> oerjan: Well, if you want to be *inefficient* about it.
22:36:19 <nooodl> i don't see how it's possible for it to break
22:36:22 <shachaf> But it shouldn't always addd the extra character.
22:36:26 <shachaf> addddd
22:36:38 <nooodl> what is this code even doing jesus
22:36:54 -!- augur has quit (Read error: Connection reset by peer).
22:37:01 <shachaf> oerjan: We want it to only add the extra character if it's strictly necessary.
22:37:19 <oerjan> sheesh
22:37:23 -!- augur has joined.
22:37:24 <nooodl> no we don't
22:37:29 <Bike> these things are important
22:37:43 <nooodl> `run cat bin/colorize
22:37:44 <HackEgo> ​#!/bin/sh \ python -c "import random; w=raw_input(); p=list('x'*len(w)+'C'*int((350-len(w))/3+1)); random.shuffle(p); i=(c for c in w); print ''.join(i.next() if c=='x' else chr(3)+'%02d' % random.randrange(2,15) for c in ['C']+p)"
22:37:58 <elliott> iirc there is no way to reliably colorise sequences of numbers with pure mirc colours.
22:38:22 <Bike> well mirc colors are terrible
22:38:27 <shachaf> well i don't use mirc
22:38:29 <shachaf> checkmate
22:38:40 <nooodl> ctrl+k 077 --> 7
22:38:41 <Bike> yeah but they're how colors work anyway
22:38:49 <oerjan> elliott: um it seemed to work to pad it to two...
22:38:49 <Bike> because irc is "well standardized"
22:38:50 <nooodl> it's perfectly reliable.
22:38:58 <shachaf> Bike: Clearly you should learn the rules of chess.
22:39:02 <shachaf> I said checkmate.
22:39:05 <shachaf> `quote chess
22:39:07 <HackEgo> 411) <oklopol> interestingly enough, go is a second player win <oklopol> chess is also first player win <oklopol> tennis, interestingly enough, is always a draw. \ 879) <zzo38> There is Haskell program "pandoc" to convert formats, so I make "panchess" which is the similar thing but for chess.
22:39:31 <Bike> shachaf: figuring that you've got checkmate is uncomputable!!!
22:39:35 <olsner> shachaf: you remember the wall of text? http://members.chello.nl/~r.gebhard1/nvrhd.txt
22:39:43 <monqy> 110 → 110
22:39:46 <monqy> woops
22:39:47 <oerjan> !run sed -i 's/350/344/' bin/colorize
22:39:51 <nooodl> monqy: ??!!
22:39:56 <monqy> 11C070 → 110
22:39:57 <oerjan> `run sed -i 's/350/344/' bin/colorize
22:40:00 <HackEgo> No output.
22:40:06 <shachaf> "This document is written by Gray (grayincarnation@hotmail.com) and may not be reproduced in any form without permission. Furthermore, this document may not be altered, edited, or sold without approval. If these terms are violated, proper legal action will be taken."
22:40:06 <oerjan> `run echo $(seq 1 100) | colorize
22:40:08 <HackEgo> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 10
22:40:10 <shachaf> good writing, Gray
22:40:16 <Bike> what the hell is a "webmaster"
22:40:18 <oerjan> `run sed -i 's/344/343/' bin/colorize
22:40:22 <HackEgo> No output.
22:40:23 <oerjan> `run echo $(seq 1 100) | colorize
22:40:25 <HackEgo> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 10
22:40:28 <oerjan> wat
22:40:33 <oerjan> hm
22:40:39 <coppro> why do you think you can't colorize numbers with mirc colors?
22:40:40 <oerjan> `run sed -i 's/343/342/' bin/colorize
22:40:43 <HackEgo> No output.
22:40:45 <shachaf> Bike: They're the people who have to suffer legal consequences.
22:40:46 <coppro> I mean, mirc colors are stupid and basically the worst spec ever
22:40:47 <oerjan> `run echo $(seq 1 100) | colorize
22:40:49 <HackEgo> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 10
22:40:54 <coppro> but they are far from ambiguous
22:40:56 <oerjan> sheesh
22:40:59 <shachaf> Bike: Every time there's a legal consequence, a webmaster suffers.
22:41:16 <oerjan> `cat bin/colorize
22:41:18 <HackEgo> ​#!/bin/sh \ python -c "import random; w=raw_input(); p=list('x'*len(w)+'C'*int((342-len(w))/3+1)); random.shuffle(p); i=(c for c in w); print ''.join(i.next() if c=='x' else chr(3)+'%02d' % random.randrange(2,15) for c in ['C']+p)"
22:41:19 <elliott> coppro: IIRC there was no way with the original spec.
22:41:25 <oerjan> `run sed -i 's/342/341/' bin/colorize
22:41:28 <HackEgo> No output.
22:41:33 <oerjan> `run echo $(seq 1 100) | colorize
22:41:35 <HackEgo> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
22:41:39 <oerjan> finally
22:41:42 <nooodl> nice
22:41:53 <HackEgo> hello
22:42:23 <quintopia> `run echo "hi nooodl" | colorize
22:42:25 <HackEgo> hi nooodl
22:42:37 <hoily> c13test
22:42:42 <hoily> test
22:42:47 -!- hoily has changed nick to boily.
22:42:51 <elliott> here: http://www.ircle.com/colorfaq.shtml
22:43:08 <oerjan> `run echo -n hm | colorize
22:43:10 <HackEgo> hm
22:43:12 <oerjan> `run echo -n hmm | colorize
22:43:13 <HackEgo> hmm
22:43:16 <oerjan> `run echo -n hmmm | colorize
22:43:18 <HackEgo> hmmm
22:43:22 <oerjan> `run echo -n hmmmm | colorize
22:43:24 <HackEgo> hmmmm
22:43:24 <quintopia> `run echo "i wonder whether sean is colorblind" | colorize
22:43:26 <HackEgo> i wonder whether sean is colorblind
22:43:33 <boily> `run echo -n hmmmm | colorize
22:43:46 <oerjan> just testing if it works for all lengths (mod 3)
22:43:54 <boily> ~duck sean
22:43:55 <cuttlefish> --- No relevant information
22:44:01 <coppro> ACTION
22:44:28 * oerjan notes the curiosity that it will always fill up the line with color codes, no matter how short the message
22:44:45 <nooodl> is there a way to make lambdabot print '\x3'
22:44:59 <olsner> > '\x3'
22:45:00 <lambdabot> '\ETX'
22:45:14 <Bike> > '\\\x\3'
22:45:16 <lambdabot> <hint>:1:4:
22:45:16 <lambdabot> lexical error in string/character literal at character '\\'
22:45:24 <Bike> sigh
22:45:34 <shachaf> > x3
22:45:36 <boily> ~echo > ''
22:45:37 <cuttlefish> > ''
22:45:37 <lambdabot> '\x3'
22:45:39 <lambdabot> <hint>:1:3: parse error (possibly incorrect indentation)
22:45:51 <nooodl> > 1 + 2
22:45:53 <lambdabot> <hint>:1:3: lexical error at character '\ETX'
22:45:56 <nooodl> :(
22:46:10 <elliott> > text "\ETX"
22:46:15 <elliott> > text "\ETXq"
22:46:16 <lambdabot> q
22:46:21 <elliott> > text "\ETX3q"
22:46:21 <nooodl> hmm!
22:46:22 <lambdabot> 3q
22:46:24 <nooodl> nope
22:46:35 <coppro> elliott: mirc color numbers max out at two digits
22:46:39 <boily> ~echo test
22:46:40 <cuttlefish> test
22:46:41 <coppro> so you can pad with a leading zero if needed
22:46:50 <boily> ow. oooooooow. my eyes.
22:47:09 <elliott> coppro: did you read the page I linked?
22:47:11 <boily> (custom rxvt colorscheme. L*a*b* balanced. that's nasty.)
22:47:26 <coppro> elliott: missed it due to wifi drop
22:47:30 <elliott> http://www.ircle.com/colorfaq.shtml
22:50:49 <coppro> elliott: the mirc one is only ambiguous if you do not assume background color; you can otherwise just use the 4-digit version
22:51:15 * elliott still doesn't think you read the whole page...
22:51:22 <coppro> elliott: I did
22:51:25 <coppro> I have read it before
22:51:38 <elliott> including the quote starting "If you use color numbers" and the following paragraph?
22:51:49 <elliott> it seems clear that the original mIRC colour design did not allow this workaround
22:51:59 -!- TeruFSX has joined.
22:52:21 <coppro> elliott: yes, but that's not what gets used
22:52:22 <elliott> and there's still ambiguity in case of commas
22:52:34 <coppro> no, because then you just specify a background color
22:52:49 <elliott> you don't have that luxury, because you are implementing a client
22:52:52 <elliott> wrong side of the power equation
22:53:10 <elliott> you don't know whether ^Cff,bbx is ff-coloured ",bbx" or ff,bb-coloured "x"
22:53:17 <elliott> i.e., ambiguity
22:53:18 <coppro> it's the latter
22:53:23 <coppro> it's well-defined
22:53:27 <oerjan> ...so colorize can still break with commas followed by numbers in the text?
22:53:28 <elliott> yes, picking that is a way to resolve the ambiguity
22:53:28 <coppro> braindead, yes
22:53:37 <coppro> but it's well-defined and unambiguous
22:53:38 <elliott> but it's not obvious from the protocol, you have to see what clients do in practice
22:53:47 <coppro> no, because that's what the protocl is defined as
22:53:49 <elliott> and I suspect many of them will emit an ff-coloured ,bbx as ^Cff,bbx
22:53:50 <nooodl> what if you WANT ff-coloured ",bbx"
22:53:52 <elliott> which will break your guess
22:53:55 <nooodl> you can't add a "dummy" background color
22:54:08 <olsner> `run echo $(seq -s, 1 100) | colorize
22:54:09 <coppro> elliott: that's a client problem
22:54:10 <HackEgo> 1,2,3,5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,86,87,88,89,90,92,934,95,96,97,98,99,100
22:54:10 <nooodl> some people don't use black as their default bg color (including me)
22:54:23 <boily> ,bbx
22:54:26 <oerjan> ...what did you do now
22:54:35 <boily> hm. 0 isn't black.
22:54:53 <elliott> coppro: the spec given at http://www.mirc.co.uk/colors.html is not remotely precise enough to determine this unambiguous implementation that every client differing from must therefore be in error for, really
22:54:57 <oerjan> oh right
22:55:11 <elliott> nooodl: colour 99 works as "dummy"
22:55:23 <elliott> according to that spec. let's take bets on how many clients that are not mIRC implement that part.
22:55:27 <boily> ,bbx
22:55:36 <Bike> oh god i'm blind
22:55:39 <boily> elliott: 99 here gives a green background.
22:55:39 <coppro> bla
22:55:42 <coppro> bla
22:55:44 <coppro> bla
22:55:46 <nooodl> xchat supports it just fine...
22:55:54 <coppro> blabla
22:55:57 <coppro> blabla
22:56:10 <coppro> ^ used 99 there
22:56:12 <Bike> help
22:56:16 <boily> 0,101with three-digit...
22:56:20 <coppro> blabla
22:56:20 <elliott> coppro: green here
22:56:28 <boily> coppro: purple and green.
22:56:33 <coppro> yeah
22:56:36 <elliott> so as you can see, this comma ambiguity is not resolvable in practice, in a client-portable way
22:56:40 <Bike> help
22:56:46 <elliott> so colorize must inherently be broken
22:56:50 <coppro> fair
22:57:01 <coppro> can we take mirc out back and shoot it yet?
22:57:02 <shachaf> ´rm bin/colorize
22:57:17 <monqy> unbreak colorize by detecting where it'll break and not do stuff there????
22:57:21 <monqy> "have fun"
22:57:30 <coppro> let's just go with ctcp colors
22:57:32 <olsner> keep colorize broken
22:57:42 <monqy> olsner's suggestion is good too
22:57:42 <olsner> broken = fun, correct = boring
22:58:03 <shachaf> <CTCP>GOOD point<CTCP>
22:58:39 <nooodl> imo not supporting the mirc spec correctly isn't colorize's fault
22:58:52 <shachaf> is there a fancy unicode character that combines . and ˙ in the same glyph
22:59:02 <nooodl> and if you don't follow the mirc spec for mirc colours what are you even following??
22:59:04 <FreeFull> Ouch, my eyes
22:59:06 <shachaf> that would be great for smileys
22:59:10 <olsner> the spec is not in agreement with colorize, what can we do? it's not our spec
22:59:14 <FreeFull> This is much better and less eyehurty
22:59:41 <nooodl> ,,
22:59:46 <nooodl> omg i found a good way to bypass it
22:59:59 <nooodl> instead of
23:00:23 <oerjan> y'all don't break things too much, ok? :(
23:00:25 <coppro> olsner: kill mirc with fire
23:00:27 <boily> is mirc still alive?
23:00:36 <nooodl> ['\x3', '0', '5', ',', '1', '2']
23:00:37 <nooodl> you write
23:00:48 <coppro> mirc is a piece of shit
23:01:02 <nooodl> ['\x3', '0', '5', ',', '\x3', '0', '5', '1', '\x3', '0', '5', '2']
23:01:03 <Bike> shit is full of life, boily.
23:01:06 <Bike> Teeming.
23:01:38 <nooodl> maybe i shouldn't've used [] notation in retrospect but basically, repeat the colors for every char, so comma's are followed by \x3 and can't get converted into some funky background color thing
23:03:54 <coppro> nooodl: you are aware that this cuts the line limit by a factor of 4?
23:05:13 <elliott> well you only have to do it in specific situations
23:05:45 -!- kiwi_93423 has joined.
23:06:08 <oerjan> the simple shuffle algorithm for placing colors won't work with being clever about this, though
23:06:57 <oerjan> nooodl: colorize is written to only add as many color codes as will fit within HackEgo's line limit
23:08:34 <oerjan> hm i suppose a simple solution to just turn badly placed C's into x's after shuffling, it might remove some but it is simpler than trying to find a new place for them
23:08:41 <oerjan> *is to just
23:09:11 <oerjan> i'm sure someone proficient in python could do that.
23:09:24 <shachaf> > x3
23:09:26 <lambdabot> '\x3'
23:10:44 <elliott> clearly rewrite it in haskell
23:11:13 <kmc> obv.
23:11:32 <shachaf> elliott: um it's trivial in haskell
23:11:39 <shachaf> so we don't actually need to write it
23:12:03 <boily> ~yi
23:12:04 <cuttlefish> Your divination: "Persevering" to "Sprouting"
23:12:05 <oerjan> ,test
23:12:33 <boily> from random colourizations, green text will appear. my bot divination algo is working!
23:12:39 <shachaf> g'evening
23:13:19 <Bike> ~yi
23:13:19 <cuttlefish> Your divination: "Small Accumulating" to "Centre Confirming"
23:13:27 <ion> shachaf: Gay evening to you, too, sir.
23:13:29 <Bike> why is it always a sex thing
23:13:52 <boily> Bike: ancient chinese wisdom. I don't have nothing to do with it.
23:14:02 <Bike> fuckin' pervs
23:14:31 <oerjan> `run echo $(seq -s, 100 200)
23:14:32 <HackEgo> 100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,18
23:14:53 <oerjan> > 87*4+2
23:14:55 <lambdabot> 350
23:14:57 <kiwi_93423> whats this channel about?
23:14:59 <kiwi_93423> seems programming
23:15:10 <Bike> yes, exactly
23:15:11 <ion> `welcome kiwi_93423
23:15:13 <HackEgo> kiwi_93423: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
23:15:39 <kiwi_93423> thnx
23:19:41 -!- hagb4rd|lounge has joined.
23:21:34 -!- nooodl_ has joined.
23:22:45 -!- sirdancealot7 has joined.
23:23:54 -!- nooodl has quit (Ping timeout: 252 seconds).
23:24:10 -!- augur has quit (Remote host closed the connection).
23:25:47 <nooga> huh
23:25:49 <nooga> oh
23:25:51 <nooga> a newcomer
23:26:37 <shachaf> nooga ~ nooodl?
23:26:57 <nooga> shachaf ~ kiwi_93423?
23:27:14 <shachaf> seems programming
23:44:26 <impomatic> Hi, has anyone got a copy of Artificial Life by Steven Levy handy? I just wanted to check something and I haven't got my copy here.
23:57:26 -!- augur has joined.
23:57:39 -!- zzo38 has joined.
23:59:01 -!- Arc_Koen has quit (Quit: Arc_Koen).
23:59:29 -!- boily has quit (Quit: Poulet!).
23:59:34 -!- cuttlefish has quit (Remote host closed the connection).
2013-02-26
00:01:56 -!- nooodl_ has quit (Read error: Connection reset by peer).
00:02:02 -!- augur has quit (Ping timeout: 255 seconds).
00:02:23 -!- nooodl_ has joined.
00:07:07 -!- augur has joined.
00:30:01 -!- kiwi_93423 has quit (Quit: http://www.kiwiirc.com/ - A hand-crafted IRC client).
00:31:08 <tswett> ~yi
00:40:13 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:21:51 <FreeFull> > y u no support data
01:21:53 <lambdabot> <hint>:1:16: parse error on input `data'
01:22:12 <Bike> i thought it was because statements let bla bla expression bla, bla bla bla bla
01:23:53 <shachaf> Well, @let doesn't take expressions.
01:24:04 <shachaf> @let bike = flip bike
01:24:07 <lambdabot> Defined.
01:24:15 <shachaf> @let data Bike = Impossible
01:24:15 <lambdabot> Invalid declaration
01:24:45 <shachaf> With @let, it verifies that your declaration is OK and then just sticks it into a file.
01:25:29 <Bike> I said bla
01:26:06 <shachaf> Bike: People are talking about you in #haskell now
01:26:13 <zzo38> Why do timers in Open Sound Control always use absolute timestamps? I suggest, allow the program using it, to have an option for a specific starting timestamp to cause it to consider it to have that timestamp instead of the actual date/time.
01:27:00 <Bike> shachaf: why the hell
01:27:12 -!- FreeFull has quit (Ping timeout: 264 seconds).
01:27:20 <elliott> 01:24:14 <tswett> :t bike
01:27:21 <shachaf> Bike: You can blswett for it.
01:28:03 <tswett> You can indeed blme.
01:28:59 <shachaf> I tried to look at http://www.gutenberg.org/files/308/308-h/308-h.htm
01:29:08 <shachaf> And somehow I got http://shachaf.net/jkj.html
01:29:35 <Bike> no the pictures
01:30:11 <shachaf> ?
01:30:20 <elliott> The &ldN dw whspske Tt is aWqeloite pwoe e an,at w,h oneirch ,ne segmedoeohseaseiseo hameen on guilt sbronr w;ereflecte; iaerh& faces od oen ntt we The posInhsioence,dwesdragghe eu0 alm s tohaulh; tlehGladotoho Tt is aWqeloite pur e o but w n thd wn e o but w;une raessqubwas iursur w!>The &ldTwtntor d-d hoalaterhemrres figursg,hf,n,ewce boaa shi od- uitie edo , mougheha rge marsetrscrsteht snbaltrilymm. The &ldBlack lee witeshssg,hdrr y;isuit , .en
01:30:46 <Bike> lkj looks the same except without pictures
01:30:50 <elliott> scroll down
01:30:50 <Bike> jkj
01:31:00 <shachaf> Search for "I was thinking"
01:32:00 <Bike> deep
01:32:04 <monqy> i like how it all gets crossed out
01:33:39 <tswett> And that's what happens when you try to parse HTML using regular expressions.
01:35:03 <Bike> Did you do that shachaf?
01:35:20 <shachaf> Bike: I just looked at the page in my browser......................................................
01:35:29 <Bike> Good.
01:35:34 <Bike> We can delay the ritual cleansing.
01:36:11 <monqy> perhaps it got corrupted by shachaf's malignant aura
01:36:17 <monqy> cleanse immediately
01:36:20 <shachaf> i have a malignant aura?
01:44:47 -!- FreeFull has joined.
01:46:13 <shachaf> monqy: elliott has a malignant aura too now........
01:46:42 <monqy> oops
01:46:48 <monqy> did you do this
01:47:12 <shachaf> yes it's contagious
01:47:22 <monqy> am i next????
01:49:34 <kmc> what about my aura
01:49:47 <shachaf> kmc: aura is a euphemism
01:50:08 <elliott> kmc: remember how I said you should rejoin #haskell for a day to see what it's like now?
01:50:19 <elliott> I take it back. it's completely terrible as of now
01:50:36 <kmc> ok
01:50:43 <kmc> my judgement is vindicated
01:50:52 <elliott> it's all shachaf's fault, I think
01:51:55 <Bike> That's pretty terrible.
01:53:48 <kmc> what has happened
01:54:30 <kmc> wait elliott is an op now?
01:54:56 <shachaf> They'll take just anyone these days.
01:55:02 <kmc> wow
01:59:03 <shachaf> 𝐛𝐨𝐥𝐝 𝐭𝐞𝐱𝐭
01:59:07 <shachaf> 𝐛𝐨𝐥𝐝 𝐭𝐞𝐱𝐭
01:59:22 <shachaf> I wish that didn't break in screen. :-(
02:00:18 <zzo38> Do you know if any FPGA is available in through-holes?
02:01:37 <kmc> very unlikely, maybe some simple PLD
02:01:48 <kmc> but also you can get breakout boards
02:02:06 <kmc> either specifically for that FPGA or just for the SMT form factor
02:02:24 <kmc> eg http://microcontrollershop.com/product_info.php?products_id=2811
02:05:03 <shachaf> 18:04 <fizbin> > ?src bike
02:05:03 <shachaf> 18:04 <lambdabot> mueval-core: internal error: PAP object entered!
02:05:03 <shachaf> 18:04 <lambdabot> (GHC version 7.4.2 fo...
02:05:05 <shachaf> good going Bike
02:05:46 <Bike> :(
02:05:53 <Bike> (what is a PAP object, is it like a pap smear)
02:06:36 <shachaf> basically the same thing
02:07:34 <shachaf> (I think it stands for partial application or something.)
02:08:24 <kmc> http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/HeapObjects#Partialapplications
02:09:08 <kmc> even though Haskell only has 1-arg functions, for efficiency GHC implements different arities
02:09:29 <kmc> and even though (f x) would be equivalent to a simple function closure (\y -> f x y)
02:09:32 <kmc> it's not represented that way
02:09:33 <Bike> why can't you enter them
02:09:50 <Bike> how does looking up source enter one
02:09:58 <kmc> these are fine questions
02:10:09 <kmc> i think you can't enter them becuase they're known to already be evaluated
02:10:15 <kmc> but i'm not sure why it should be an error vs. just a no-op
02:11:14 <shachaf> Well, if you can statically guarantee that they're never entered, then making entering one an error seems reasonable to me.
02:11:26 <kmc> but i don't know why that's a static guarantee
02:11:31 <shachaf> Anyway, in this case there's an implicit param involved -- I think it's a GHC/GHC API bug.
02:11:35 <kmc> what if I write something like (mod 2) `seq` ()
02:11:54 -!- azaq23 has joined.
02:12:01 <Bike> > (mod 2) `seq` ()
02:12:03 <lambdabot> ()
02:12:04 -!- azaq23 has quit (Max SendQ exceeded).
02:12:09 <Bike> neato
02:12:18 <kmc> yeah you can force functions
02:12:22 <kmc> which is a little weird
02:12:28 <elliott> it's actually really terrible :(
02:12:40 <kmc> elliott: well if it weren't allowed, people would just use dumb wrappers
02:12:49 <elliott> you couldn't just use a dumb wrapper
02:12:57 <kmc> i guess not
02:13:01 <elliott> seq on functions is what lets you distinguish _|_ vs. const _|_
02:13:08 <elliott> and hence breaks 2389427394872389428934728934728934 quadrillion useful properties
02:13:09 <kmc> you would also disallow data Fun a b = Fun !(a -> b)
02:13:14 <kmc> elliott: that's alot
02:13:20 -!- azaq23 has joined.
02:13:45 <kmc> it's v. useful operationally to allow it tho
02:13:59 <shachaf> what about data Foo a = Foo !a; ... :: Foo (a -> b)
02:14:16 <shachaf> kmc: Well, it makes life harder for people writing optimizers too.
02:14:22 <kmc> shachaf: well maybe Foo :: (Eval a) => a -> Foo a
02:14:24 <shachaf> Since you can't simplify (\x -> f x) to f, for instance.
02:14:27 <kmc> "like the good old days"
02:14:33 <kmc> tru
02:14:43 <shachaf> This ends up being relevant in all sorts of ways.
02:14:45 -!- nooga has quit (Ping timeout: 252 seconds).
02:15:12 <Bike> ok can i be dumb for a second, i want to understand why you couldn't simplify (\x -> f x) to f in any situation.
02:15:22 <shachaf> > undefined `seq` ()
02:15:23 <elliott> Bike: consider f = undefined
02:15:24 <lambdabot> *Exception: Prelude.undefined
02:15:26 <shachaf> > (\x -> undefined x) `seq` ()
02:15:28 <lambdabot> ()
02:15:47 <Bike> > :t undefined
02:15:49 <lambdabot> <hint>:1:1: parse error on input `:'
02:15:54 <Bike> ...
02:15:54 <shachaf> oh Bike
02:15:56 <Bike> :t undefined
02:15:57 <Sgeo_> :t undefined
02:15:57 <lambdabot> a
02:15:58 <lambdabot> a
02:16:05 <Bike> ss
02:16:08 <Sgeo_> undefined is bottom
02:16:17 <Bike> there's an object in bottom?
02:16:35 <shachaf> ?
02:16:38 <kmc> not really
02:16:47 <kmc> 'undefined' is denotationally equivalent to an infinite loop
02:16:48 <elliott> not bottom the type
02:16:49 <Sgeo_> bottom is a value that inhabits all types. It itself isn't a type.
02:16:56 <elliott> though there is a bottom type.
02:17:01 <kmc> > (let x :: Int -> Int; x = x in x) `seq` ()
02:17:05 <lambdabot> mueval-core: Time limit exceeded
02:17:05 <elliott> (Void, conventionally; which actually is inhabited (by bottom!) in Haskell)
02:17:14 <shachaf> elliott: Not really!
02:17:14 <Bike> that seems like a pretty weird value to have
02:17:21 <kmc> the fact that some undefined terms print an error message rather than melting your CPU is an operational detail
02:17:22 <shachaf> There's only a botton type if you allubtyping.
02:17:27 <kmc> in fact GHC can detect some infinite loops too
02:17:29 <coppro> why is elsewhen not a word
02:17:33 <coppro> I'm going to make it a word
02:17:34 <shachaf> coppro: It is.
02:17:38 <coppro> shachaf: it is not
02:17:41 <shachaf> Yes it is?
02:17:51 <coppro> except maybe it is because this is english
02:17:58 <Bike> You're never going to make it a word with that attitude, coppro.
02:18:04 <Sgeo_> Bike, it's the same value as the value of an infinite loop (conceptually)
02:18:06 <kmc> this is madness &c
02:18:47 <shachaf> ฬђ๏ค ๔ย๔є
02:18:50 <Bike> Sgeo_: I get that. I'm just not used to it being "a thing" in whatever weird-ass sense undefined is a thing.
02:19:12 <shachaf> Bike: It's like a function returning an infinite loop. Except it's a value.
02:19:21 <Bike> yes but why is it a value
02:19:22 <shachaf> int foo() { return foo(); }
02:19:24 <Sgeo_> Well, there are things you can't do with it
02:19:36 <elliott> > undefine
02:19:36 <kmc> [afk]
02:19:37 <elliott> > undefined
02:19:39 <lambdabot> Not in scope: `undefine'
02:19:39 <lambdabot> Perhaps you meant `undefined' (imported from Prel...
02:19:39 <lambdabot> can't find file: L.hs
02:19:42 <elliott> Bike: undefined just throws an exception.
02:19:43 <elliott> > undefined
02:19:44 <Sgeo_> You can't compare against it, check for it. f _|_ = 5 means f _ = 5. iiuc
02:19:45 <lambdabot> *Exception: Prelude.undefined
02:19:45 <elliott> it's as simple as that
02:20:06 <kmc> someone should mention lub at some point
02:20:08 <kmc> but i gotta go
02:20:20 -!- oerjan has quit (Quit: Good night).
02:20:26 <shachaf> g'noerjan
02:20:32 <Sgeo_> lub?
02:21:14 <shachaf> lub is all you need
02:21:40 <shachaf> kmc: Did you see Simon Marlow's book on Parallel and Concurrent Haskell?
02:21:46 <Sgeo_> "It provides a lub function that is consistent with the unamb operator but has a more liberal precondition. Where unamb requires its arguments to equal when neither is bottom, lub is able to synthesize a value from the partial information contained in both of its arguments, which is useful with non-flat types."
02:21:47 <shachaf> It looks pretty great.
02:23:49 <elliott> kmc: should they mention that lub is unsafe too
02:24:43 <Sgeo_> lub presumably uses unsafePeformIO. Pretty sure unamb does, anyway
02:25:01 <elliott> lub uses unamb
02:28:15 <shachaf> better to have lubbed and ⊥ed than never to have lubbed at all
02:28:16 -!- linuxnewb2 has joined.
02:28:18 <shachaf> "as they say"
02:30:45 * Sgeo_ vaguely wonders if HCSMP is scarier than DayZ, considering that I don't think DayZ does a ban for the month for dying
02:32:17 <shachaf> ฝɦѻค ɗપɗﻉ
02:32:56 <tswett> > lub
02:32:58 <lambdabot> Not in scope: `lub'
02:32:58 <lambdabot> Perhaps you meant `nub' (imported from Data.List)
02:33:03 <tswett> > unamb
02:33:05 <lambdabot> Not in scope: `unamb'
02:33:08 <tswett> > mor
02:33:09 <lambdabot> Not in scope: `mor'
02:33:09 <lambdabot> Perhaps you meant one of these:
02:33:09 <lambdabot> `or' (imported from...
02:33:16 -!- doesthiswork has quit (Quit: Leaving.).
02:33:19 <kmc> shachaf: true facts
02:33:35 <shachaf> Which facts?
02:34:39 <kmc> dunno
02:34:41 <kmc> many of them
02:34:49 <kmc> i did not know of this book
02:35:17 <shachaf> http://ofps.oreilly.com/titles/9781449335946/index.html
02:55:57 -!- sebbu3 has joined.
02:56:12 -!- sebbu3 has quit (Changing host).
02:56:12 -!- sebbu3 has joined.
02:58:40 -!- sebbu has quit (Ping timeout: 260 seconds).
03:23:56 -!- carado has quit (Ping timeout: 246 seconds).
03:28:19 -!- jdvorak has joined.
03:29:09 <jdvorak> Hi. What is the purpose of this channel?
03:29:18 <monqy> hi jdvorak
03:29:19 <kmc> `welcome jdvorak
03:29:27 <HackEgo> jdvorak: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
03:29:39 <elliott> jdvorak: there isn't one
03:29:41 <shachaf> hi jdvorak
03:30:14 <jdvorak> Hi everyone.
03:30:14 <Bike> Are you related to ddvorak?
03:30:27 <jdvorak> No, jdvorak is a pen name.
03:30:30 <shachaf> Are you related to this other jdvorak I talked to once?
03:30:32 <shachaf> Oh.
03:30:45 <shachaf> Actually I know of multiple jdvoraks.
03:30:53 * elliott bets jdvorak = John C. Dvorak
03:31:38 <monqy> is that good or bad
03:31:57 <jdvorak> You might know my cousin, Ronald Qwerty.
03:34:46 <pikhq> 多分、ディヴォラックさんじゃ。
03:35:24 <Bike> 多 looks cool, like it's being dragged
03:35:45 <Bike> unfortunately my char thing only knows it as "U+591A", blugh.
03:36:35 <shachaf> 🈕
03:39:36 <jdvorak> I know nothing of esoteric programming languages. I was thinking about using the channel logs to power a chatterbot, but I'm not sure if that would work well.
03:40:02 <jdvorak> APL looks pretty hot though IMHO.
03:40:02 <Bike> there is already one and it is found quite amusing, so it oughta work
03:40:14 <Bike> fungot: working now?
03:40:14 <fungot> Bike: telepathy is just a snake, to stand before the mast, by rudyard kipling)
03:40:22 <monqy> ^style
03:40:22 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack* pa qwantz sms speeches ss wp youtube
03:40:28 <monqy> that's not the right style
03:40:32 <Bike> Nethack has Kipling in it?
03:40:37 <Bike> ^style irc
03:40:37 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
03:40:44 <jdvorak> fungot: do you like cheese..?
03:40:45 <fungot> jdvorak: and designed the original command set of emacs macros then? how about a length cell followed by that other stuff
03:40:47 <Bike> fungot, why does Adams even have a channel?
03:40:47 <fungot> Bike: intel doesn't make cpus like that because they think fnord tastes good. or something. ;p http://www.slengpung.com/ v3/ fnord
03:41:09 <Bike> This is a weird site.
03:41:10 <jdvorak> fungot: i like kosher bacon
03:41:11 <fungot> jdvorak: the bot's logging still isn't working... ram is merely an implementation detail?
03:41:32 <kmc> i've said it before and i'll say it again: zzo38_ebooks
03:41:52 <Bike> zzo38_ebooks is actually just a live twitter feed of everything he says
03:42:08 <monqy> im craving that ebooks quote now
03:42:10 <monqy> `quote ebooks
03:42:11 <HackEgo> 841) <GreyKnight> fungot, sing me to sleep <fungot> GreyKnight: 53. file://localhost/ mnt/ space/ media/ books/ 1000+sci-fi%20books/%5bebooks%5d%201000+%20sciencefiction%20%26%20fantasy%20novels%20%28.lit%20forma/ pratchett%2c%20terry/ text/ 14/ fnord <GreyKnight> This is not a very good song \ 859) <kmc> i would subscribe to @zzo38_ebooks <zzo3
03:42:15 <monqy> oh noo
03:42:18 <monqy> `quote 859
03:42:19 <HackEgo> 859) <kmc> i would subscribe to @zzo38_ebooks <zzo38> kmc: I have no ebooks which can subscribe to
03:42:28 <monqy>
03:43:16 <jdvorak> fungot: cheese NOW
03:43:16 <fungot> jdvorak: and i have big heat sinks... on the one page before i go on? :)
03:44:19 <Bike> ^src
03:44:24 <Bike> ugh what is it
03:44:27 <Bike> ^help
03:44:27 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
03:44:31 <jdvorak> Hmm.. I'm not sure if the channel logs for this channel will work well. The conversations in this channel tend to be a bit cryptic.
03:44:37 <Bike> ^show
03:44:37 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list
03:44:51 <Bike> ^show source
03:44:51 <fungot> (http://git.zem.fi/fungot/blob/HEAD:/fungot.b98)S
03:44:52 <shachaf> ^elliottski
03:45:02 <monqy> jdvorak: would your chatterbot be coherent enough for it to matter?
03:45:17 <Bike> right http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 that's some good code
03:45:18 <fungot> Bike: making image, item, and prevent it from running, and you can't interpret what that means
03:45:43 <shachaf> i would subscribe to @kmc_ebooks
03:45:46 <jdvorak> monqy: I hadn't really thought about it.
03:45:58 <Bike> are chatterbots ever coherent
03:46:03 <Bike> is language inherently representational?
03:46:05 <shachaf> coherently constructive chatterbots
03:46:09 <Bike> it's a question that needs to be answered
03:46:18 <lambdabot> The answer is no.
03:46:23 <Bike> oh
03:46:23 <monqy> hi shachaf
03:46:28 <Bike> cool
03:46:31 <shachaf> monqy: is that you disapproving at me
03:46:34 <Bike> thanks lambdabot i'd been wondering
03:46:45 <lambdabot> np
03:46:48 <monqy> shachaf: :-)
03:47:00 <shachaf> monqy ˙☹˙
03:47:13 <jdvorak> Right now I am running a script to strip all of the license information out of all the public domain Project Gutenberg etexts and downloading Wikipedia.
03:47:31 <shachaf> oh no
03:47:34 <shachaf> are you allowed to do that
03:47:37 <Bike> wait, does gutenberg have non-public-domain texts?
03:47:49 <monqy> but then how will you know they're public domain
03:48:02 <jdvorak> Yeah, about 20% of them are not public domain.
03:48:08 <shachaf> Bike: gutenberg is dead
03:48:20 <shachaf> and all his copyrights are expired by now
03:48:37 <Bike> they didn't even have copyrights in the fourteenth century, but anyway what kind of licenses are the other things under
03:48:45 <jdvorak> the public domain ones have a message stating that they are copyrighted
03:49:02 <Slereah_> In the 14th century almost nobody had books
03:49:10 <Slereah_> Copyrights were a rather useless notion
03:49:39 <Bike> picturing a monk slapping another monk for copying the wrong gospel (motherfucker)
03:49:46 <jdvorak> The PG complete works of Shakespeare are copyrighted.... seems a little silly, right?
03:50:01 <Bike> Oh, right, eternal copyright of the crown or whatever
03:50:13 <jdvorak> copyright of the transcriber
03:50:14 <shachaf> kmc: Want another fun game?
03:50:19 <kmc> gütenbørg would be a good name for a band
03:50:21 <kmc> shachaf: yes
03:50:21 <shachaf> Oh, this one looks like it might be a mosh bug.
03:50:22 <Bike> guess that covers KJV and Peter Pan in nobodycaresland
03:51:14 <shachaf> kmc: In irssi, type ˙͜˙ and then repeatedly ^W/^Y it
03:51:17 <shachaf> Inside mosh
03:51:18 <jdvorak> Whoever typed in the PG Shakespeare complete works wants royalties if you produce a derivative work.
03:51:32 <shachaf> That's U+02D9 U+035C U+02D9
03:51:40 <shachaf> (Probably works with other sequences too.)
03:51:53 <kmc> haha shachaf
03:51:59 <kmc> how did you discover this
03:52:07 <kmc> is it a mosh bug or an irssi bug or?
03:52:11 <elliott> what happens
03:52:11 <shachaf> Looks mosh-related.
03:52:13 <elliott> it seems to be ok here
03:52:14 <elliott> but i copied
03:52:20 <jdvorak> But anyway, I am going to go try to figure out how to program girls' pants zippers.
03:52:23 <shachaf> Doesn't happen to me in plain irssi
03:52:26 <kmc> elliott: it munches up the prompt
03:52:36 <Sgeo_> Going to finally get modern Haskell
03:52:43 <jdvorak> Take care.
03:52:49 <shachaf> Oh, it's just a combining character thing...
03:53:04 <shachaf> Well, not every character.
03:53:07 <monqy> jdvorak: ????
03:53:32 <shachaf> a͜a works too
03:53:46 <shachaf> And a͜aa͜aa͜aa͜aa͜aa͜aa͜aa͜aa͜aa͜aa͜aa͜aa͜aa͜aa͜aa͜a works better!
03:53:48 -!- jdvorak has quit (Quit: leaving).
03:53:52 <monqy> bye jdvorak
03:54:02 <shachaf> bdvorak
03:55:47 <shachaf> Or maybe it's some specific thing about the interaction of mosh and irssi.
03:59:18 -!- Nisstyre has quit (Ping timeout: 276 seconds).
04:13:13 -!- Nisstyre has joined.
04:42:56 -!- Frooxius has quit (Ping timeout: 240 seconds).
05:03:57 -!- upgrayeddd has changed nick to abumirqaan.
05:10:05 -!- constant has changed nick to trout.
05:11:55 -!- doesthiswork has joined.
05:14:42 -!- TeruFSX has quit (Ping timeout: 276 seconds).
05:18:11 -!- tswett has quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.).
05:20:08 -!- tswett has joined.
05:20:08 -!- tswett has quit (Changing host).
05:20:08 -!- tswett has joined.
05:30:41 -!- ogrom has joined.
05:44:26 -!- azaq23 has quit (Quit: Leaving.).
05:59:57 -!- nooodl_ has quit (Read error: Connection reset by peer).
06:00:41 -!- nooodl_ has joined.
06:22:22 -!- nooodl_ has quit (Read error: Connection reset by peer).
06:23:10 * Sgeo_ has some J-like thoughts that might fit better in a dependently typed environment
06:23:28 <Sgeo_> Mostly because I think it really wants a list in the type
06:31:56 -!- augur has quit (Remote host closed the connection).
06:40:04 -!- ogrom has quit (Quit: Left).
06:46:58 <Sgeo_> `slist
06:47:00 <HackEgo> Sgeo is a jobby
06:47:18 <Sgeo_> :(
06:47:20 <Sgeo_> ^list
06:47:20 <fungot> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
06:47:28 <shachaf> Did someone vandalise slist?
06:47:49 <Sgeo_> `help
06:47:49 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
06:48:11 <Sgeo_> Yes, Phantom_Hoover did
06:48:18 <Sgeo_> http://codu.org/projects/hackbot/fshg/index.cgi/rev/16641639a4cf
06:48:38 <shachaf> @tell Phanton_Hoover not to vandalize slist
06:48:38 <lambdabot> Consider it noted.
06:49:04 <Bike> wtf is a jobby
06:49:27 <shachaf> `undo 2243
06:49:31 <shachaf> help
06:49:32 <HackEgo> patching file slist \ Hunk #1 FAILED at 1. \ 1 out of 1 hunk FAILED -- saving rejects to file slist.rej
06:49:36 <shachaf> how does it even work
06:49:52 <shachaf> `run grep '' slist*
06:49:54 <HackEgo> slist.rej:--- slistMon Feb 25 12:50:34 2013 +0000 \ slist.rej:+++ slistSun Feb 24 20:51:34 2013 +0000 \ slist.rej:@@ -1 +1 @@ \ slist.rej:-echo Sgeo is a jobby \ slist.rej:+echo Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
06:50:19 <doesthiswork> `? jobby
06:50:21 <HackEgo> jobby? ¯\(°_o)/¯
07:03:12 -!- wareya_ has joined.
07:03:15 -!- wareya has quit (Ping timeout: 276 seconds).
07:07:38 -!- wareya_ has changed nick to wareta.
07:07:40 -!- wareta has changed nick to wareya.
07:09:28 -!- epicmonkey has joined.
07:25:42 <Fiora> MEENAH: oh my glub the serk twins bein adorbubble again
07:30:45 <zzo38> Is that a real word?
07:30:54 <Bike> Yes.
07:34:59 <Sgeo_> Are the words Shakespeare used real words?
07:35:02 <Sgeo_> What makes a word real?
07:36:04 <Bike> a word is real if the limit of the geometric mean of its continued fraction's terms is khinchin's constant
07:36:41 -!- oklofok has joined.
07:38:51 <Fiora> Bike: but that's not true for all reals :<
07:39:09 <Bike> Words aren't numbers, Fiora.
07:39:17 -!- oklopol has quit (*.net *.split).
07:39:17 -!- kallisti has quit (*.net *.split).
07:39:17 -!- iamcal_ has quit (*.net *.split).
07:39:17 -!- pikhq has quit (*.net *.split).
07:39:18 -!- lifthrasiir has quit (*.net *.split).
07:40:11 <shachaf> Sgeo_: Shakespeare isn't real =, so how could he have used real words?
07:40:19 <Fiora> but how can you average words
07:40:20 <shachaf> (Wait, does Sgeo_ still believe in Shakespeare?)
07:40:57 <shachaf> Fiora: Well, words are monoids.
07:40:59 <shachaf> So it's easy.
07:41:04 <Bike> ^
07:41:17 -!- kallisti has joined.
07:41:17 -!- kallisti has quit (Changing host).
07:41:17 -!- kallisti has joined.
07:41:32 <Bike> If words form a field they probably even have continued fraction expansions, huh.
07:41:34 -!- pikhq has joined.
07:41:45 <shachaf> Puzzle: From an alphabet of size 3, generate a string of length n that has no identical consecutive substring.
07:41:57 <shachaf> I.e. no aa or abab, but abcb is allowed.
07:42:01 <Bike> "b"
07:42:02 <Bike> done
07:42:09 <shachaf> n = 100
07:42:10 -!- lifthrasiir has joined.
07:42:33 <Bike> without loss of generality, n = 1 and the answer is "b"
07:42:33 <kmc> shachaf: is there a clever way
07:42:44 * Sgeo_ wonders if it's even possible... it must be
07:42:51 <Sgeo_> After all, pi doesn't... erm, hmm
07:42:58 <kmc> i would just write a program that searches for it
07:43:28 <shachaf> Yes, there's a clever way to do it without backtracking.
07:43:41 <kmc> ok
07:43:47 <shachaf> (Not that I figured it out, or even understand how it works.)
07:43:50 <Bike> hm can you even use dynamic programming? probably not since you have to break into 50-50 but also 33-33-34 and 20-20-20-20-20 and so on and so forth
07:43:54 <Sgeo_> the decimal expansion of pi has an alphabet of size 10, and ... well, parts might repeat locally, but the whole thing doesn't repeat
07:44:03 <shachaf> It was presented to me as a "write a program to search for it" problem.
07:44:14 <shachaf> I should probably figure out the clever way.
07:44:27 <Bike> Why is the alphabet size three specifically, do you know?
07:44:32 <shachaf> Well, 2 is too small.
07:44:41 <shachaf> And you can do any length string with 3.
07:44:45 <Bike> mm.
07:44:47 <kmc> 3 is the interesting size for most things ;P
07:44:53 <monqy> how about 2 and a half
07:44:57 <kmc> 3-SAT, 3-coloring graphs
07:44:58 <Bike> not real math if you're dealing with numbers over three etc etc
07:45:02 <kmc> threesomes
07:45:09 <shachaf> monqy makes a good point
07:45:10 <monqy> 2 and a halfsomes???
07:45:18 <Bike> Sgeo_: it's called a normal number, but that's not what shachaf asked for
07:45:19 <kmc> creepy
07:45:24 <Bike> two and a halfsomes sound quite exciting.
07:45:27 <shachaf> Your alphabet is abᶜ
07:45:34 <Bike> Is one of the parties dead? Or maybe an albatross.
07:45:39 <kmc> or a small child :x
07:45:48 <Bike> That's gross, dude.
07:45:51 <monqy> maybe it's a bunch of half-people
07:45:56 <monqy> like, 5 of them
07:46:01 <kmc> hey it's not my fault there's a popular (terrible) TV show called two and a half men
07:46:12 <kmc> which is about two dudes and a kid
07:46:13 <Bike> Is the cocaine guy still on that?
07:46:17 <monqy> that's the one with the Foodfight! guy in it right
07:46:20 <kmc> no he died on the way back to his home planet
07:46:25 <shachaf> Perhaps an infinite series of people decreasing in size.
07:46:26 <Bike> :(
07:46:40 <monqy> the Foodfight! guy is dead?????
07:46:50 <Bike> shachaf, so jainist? kinky.
07:46:52 <kmc> now they have Ashton Kutcher instead
07:47:04 <Bike> now i am wondering though
07:47:12 <Bike> if you have a field you can have continued fractions on it right
07:47:27 <kmc> i don't know who the Foodfight! guy is or what Foodfight! is or what television is or how it's possible for anything to exist
07:47:47 <Bike> r u ok
07:47:55 <kmc> yes
07:48:01 <Bike> k good
07:48:18 <monqy> Foodfight! is beautiful, a work of art
07:48:29 <shachaf> am i a work of art
07:48:50 <monqy> if you try hard and believe in yourself you can be anything you want to be
07:49:02 <shachaf> what if i want to be monqy
07:49:05 <shachaf> is that possible
07:49:08 <shachaf> or is it too ambitious
07:49:13 <shachaf> (im trying)
07:49:31 <monqy> well i didnt have to try at all to be monqy? maybe youre trying too hard
07:51:04 -!- iamcal_ has joined.
07:52:40 <shachaf> oh
07:52:54 <shachaf> monqy: imo you should start a cult
07:53:14 <monqy> sounds like a bad idea
07:53:19 <shachaf> maybe we should all start cults and see who wins
07:53:22 <shachaf> we can have a metacult
07:53:26 <Bike> Good thing for a forward thinking entrepeneurial Chinese friendshop monqy to do.
07:54:39 * shachaf suspects miaui is a cheap knockoff of miuaf.
07:55:43 -!- nooga has joined.
08:08:37 -!- augur has joined.
08:09:49 -!- monqy has quit (Read error: Connection reset by peer).
08:10:37 -!- monqy has joined.
08:26:29 -!- hagb4rd|lounge has quit (Ping timeout: 255 seconds).
08:31:47 -!- monqy has quit (Quit: hello).
08:48:02 -!- impomatic has quit (Quit: http://about.me/john_metcalf).
08:54:20 -!- Bike has quit (Quit: nope).
09:04:06 -!- FreeFull has quit.
09:04:30 -!- Phantom_Hoover has joined.
10:03:19 <zzo38> Can something be so disordered that any attempt to further disorder it will increase not the amount of disorder, but the amount of order?
10:04:09 <zzo38> Perhaps it depend what kind of order it is supposed to be and isn't?
10:04:20 <zzo38> Or vice versa?
10:14:46 <Phantom_Hoover> well you can obviously have systems with maximal entropy
10:16:18 -!- KingOfKarlsruhe has joined.
10:24:07 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90 [Firefox 19.0/20130215130331]).
10:26:08 -!- oklofok has quit (Ping timeout: 244 seconds).
10:41:10 -!- carado has joined.
10:55:08 -!- epicmonkey has quit (Ping timeout: 245 seconds).
11:08:21 -!- zzo38 has quit (Remote host closed the connection).
11:10:56 -!- epicmonkey has joined.
11:30:11 -!- doesthiswork has quit (Quit: Leaving.).
11:51:02 -!- aloril has quit (Ping timeout: 276 seconds).
12:03:29 -!- aloril has joined.
12:36:03 -!- epicmonkey has quit (Ping timeout: 276 seconds).
12:42:18 <Sgeo_> `help
12:42:18 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
12:59:37 -!- TeruFSX has joined.
13:04:27 -!- ais523 has joined.
13:17:23 -!- Arc_Koen has joined.
13:17:28 -!- KingOfKarlsruhe has joined.
13:26:48 -!- ais523 has quit (Ping timeout: 245 seconds).
13:27:36 -!- ais523 has joined.
13:33:53 -!- ais523 has quit (Ping timeout: 245 seconds).
13:34:52 -!- ais523 has joined.
13:40:14 -!- KingOfKarlsruhe has left.
13:41:29 -!- ais523 has quit (Ping timeout: 255 seconds).
13:42:12 -!- TeruFSX has quit (Ping timeout: 264 seconds).
13:59:28 -!- impomatic has joined.
14:04:47 -!- stuntane has quit (Ping timeout: 260 seconds).
14:06:13 -!- ais523 has joined.
14:07:15 <nooga> help
14:07:19 <nooga> i'm playing DF again
14:08:31 <Sgeo_> nooga, go play Frog Fractions
14:10:03 <Sgeo_> http://twinbeardstudios.com/frog-fractions
14:10:06 <Sgeo_> (It's a flash game)
14:12:08 -!- ais523 has quit (Ping timeout: 272 seconds).
14:14:06 -!- stuntaneous has joined.
14:23:36 <ion> Skrillex Drops One http://youtu.be/8qIdGkGFMLg
14:25:39 -!- boily has joined.
14:30:59 -!- sirdancealot7 has quit (Quit: KEEP SPARKS. FLAME AWAY.).
14:40:09 <Phantom_Hoover> Sgeo_, when i first saw the name i thought it was frog factions
14:40:22 <Phantom_Hoover> and i thought it was going to be some sort of frog-themed grand strategy game
14:41:40 <elliott> well it kind of is
14:44:54 -!- sebbu has joined.
14:45:09 -!- sebbu has quit (Changing host).
14:45:09 -!- sebbu has joined.
14:47:38 -!- sebbu3 has quit (Ping timeout: 245 seconds).
14:54:23 -!- doesthiswork has joined.
14:54:43 <mroman> Can I argue that no random generate can exist which generates uniformly distributed random numbers in the range 0..Infinity?
14:55:15 <mroman> Because the probability of a number to occur would each be 1/Infinity ~= 0 => no number actually occurs
14:59:19 <kmc> that's not really what probability 0 means
14:59:30 <kmc> if you throw a dart at a dartboard, the probability of hitting the spot you do hit is zero
15:00:17 <kmc> though you can use this to argue that the continuum is a ridiculous concept
15:00:37 <elliott> assume a perfectly circular dartboard
15:01:23 <ion> assume a perfectly spherical dartboard
15:01:54 <boily> "assume a spherical dartboard in simple harmonic motion, in a vacuum..."
15:06:02 -!- stuntaneous has quit (Ping timeout: 276 seconds).
15:11:16 -!- carado has quit (Ping timeout: 246 seconds).
15:13:26 -!- Taneb has joined.
15:16:52 <Sgeo_> I need to learn how to money
15:17:23 <Sgeo_> "I don't know monetary stuff that well" is probably a signal to companies meaing "We don't have to pay a decent salary at all"
15:17:37 <Taneb> Take nightclasses?
15:19:36 <elliott> imo ask kmc for advice
15:19:51 <kmc> why are you telling them that
15:21:06 <Sgeo_> Because they're asking how much I'm looking for
15:21:11 <Sgeo_> And I don't have an answer
15:21:32 <kmc> well you should research an answer
15:21:45 <kmc> this is an entry level software job, in what area of the world?
15:21:49 -!- Frooxius has joined.
15:21:54 <Sgeo_> New York
15:22:08 <Sgeo_> Actually, person said it was a Junior developer position
15:22:15 <Taneb> $50K
15:22:19 <kmc> ask for $110,000
15:22:26 <kmc> you probably won't get it
15:22:41 <kmc> i don't know about NY but the average salary in SF area is now $120k
15:22:47 <kmc> and NY ain't cheap either
15:23:02 <Taneb> kmc is a lot more optimistic than I am
15:23:16 <kmc> $50k is a pittance for programmers
15:23:30 <Sgeo_> The figure they mentioned is lower than that :(
15:23:36 <kmc> well fuck them then
15:23:37 <Sgeo_> Although they said something about bonuses
15:23:40 <kmc> unless you think you can't get a higher paying job
15:23:44 <kmc> Sgeo_ is this a finance job
15:23:49 <kmc> wait, is this Jane St?
15:23:53 <Sgeo_> Not Jane St
15:24:03 <kmc> this sounds like a horrible scam
15:26:19 <Phantom_Hoover> Taneb, how the fuck are you so worldly-wise about programmer wages in america...
15:26:41 <Taneb> I googled "new york average entry-level salary"
15:26:42 <Sgeo_> And I am starting to think I can't get a higher paying job
15:27:00 <Phantom_Hoover> Taneb, for, like, any profession?
15:27:02 <kmc> how many have you interviewed with?
15:27:12 <Sgeo_> I haven't actually gotten any interviews yet.
15:27:13 <Taneb> Yes, Phantom_Hoover
15:27:17 <kmc> Sgeo_
15:27:24 <kmc> no
15:27:39 <kmc> you can't say that you can't get a job if you haven't interviewed
15:27:44 <kmc> how many have you applied to?
15:27:53 <Sgeo_> If I can't get an interview, how could I get a job?
15:27:54 <kmc> are you getting rejected before the interview stage?
15:27:59 <Sgeo_> I've applied to a bunch
15:28:01 <Sgeo_> And pretty much
15:28:01 <kmc> ok
15:28:05 <kmc> maybe i misunderstood then
15:28:10 <kmc> how many is "a bunch"
15:28:29 <c00kiemon5ter> here you get about 1200/month and that should make you happy :D
15:28:34 <Sgeo_> I don't remember offhand. I should start keeping track of every application
15:28:36 <c00kiemon5ter> that's euros
15:28:59 <Phantom_Hoover> where's 'here'
15:29:07 <c00kiemon5ter> for *entry* level, 1200 are considered much
15:29:09 <c00kiemon5ter> Greece
15:29:20 <Phantom_Hoover> <insert joke about greece's financial state>
15:29:27 <kmc> the US programmer salaries are silly and bubbly but that's what they are
15:29:31 <c00kiemon5ter> what state ? :D
15:29:52 <Sgeo_> Apparently only applied to 3 via LinkedIn. I remember more.
15:29:58 <Sgeo_> Let me see how many via Dice
15:30:16 <kmc> Sgeo_: if you're going to take a crappy job, make sure there's nothing in your contract preventing you from leaving later
15:30:20 <kmc> i.e. noncompete clause
15:30:29 -!- ais523 has joined.
15:30:31 <Phantom_Hoover> kmc, istr people saying we were in the middle of a second dot com bubble, like, two years ago
15:30:33 <kmc> common in NY finance especially
15:30:37 <kmc> Phantom_Hoover: yep
15:30:49 <Sgeo_> 2 on Dice.com within the last 180 days
15:30:53 <Sgeo_> And iirc 4 on CyberCoders
15:31:04 <kmc> also the overpaid web brogrammers are driving everyone else out of SF by raising rents
15:31:04 <Sgeo_> kmc, good advice
15:31:06 <Sgeo_> thanks
15:31:08 <kmc> it pretty much sucks
15:31:08 <Phantom_Hoover> this was shortly after someone paid a tonne of cash for twitter when it was making a massive loss
15:31:32 <Taneb> Remember Vark.com
15:31:44 <Phantom_Hoover> no...
15:31:47 <Phantom_Hoover> is that the joke
15:32:06 <kmc> http://www.jerkcity.com/jerkcity554.html
15:32:15 <Taneb> Phantom_Hoover, I misremembered the name
15:33:06 <Phantom_Hoover> what was the actual name
15:33:13 <Taneb> Question-and-answer site that Google bought out and subsequently discontinued
15:34:15 <Phantom_Hoover> have google actually succeeded in any of their Big New Ventures lately
15:34:38 <c00kiemon5ter> :)
15:34:53 <c00kiemon5ter> wasn't cybercoders a scam ?
15:34:54 <kmc> in 10 years SF will be full of former brogrammers who are now flipping burgers and picking up trash and doing all the shitty jobs that actually make a city work
15:35:09 <kmc> your garbage man will solicit you for angel investment in his shitty iphone app
15:35:10 <ais523> c00kiemon5ter: there is actually exactly one website that isn't a scam
15:35:14 <ais523> but I haven't figured out which one it is yet
15:35:19 <c00kiemon5ter> heh
15:35:26 <Taneb> Have I completely made up vark.com
15:35:32 <Phantom_Hoover> Taneb, apparently not
15:35:33 -!- nooga has quit (Ping timeout: 245 seconds).
15:35:44 <ais523> Taneb: I think it's funnier not to find out
15:36:11 <Taneb> It was kind of like a stackoverflow of EVERYTHING
15:36:17 <elliott> ais523: haha, this B scam is fantastic
15:36:18 <Taneb> It was written inn Ruby on Rails
15:36:23 <ais523> elliott: indeed
15:36:28 <elliott> Taneb: do you mean um... quora?
15:36:39 <ais523> isn't stackexchange kind of like a stackoverflow of everything?
15:36:43 <Phantom_Hoover> no, he means vark.com, aka aardvark
15:36:45 <Phantom_Hoover> apparently
15:37:00 <Taneb> YES, that was it
15:37:27 <Phantom_Hoover> vark.com gives absolutely no relevant hits on google, which is fairly telling
15:38:09 <elliott> ais523: has this been a while in the making?
15:38:26 <ais523> elliott: the B scam? I think Wooble just came up with it out of nowhere
15:38:43 <ais523> I don't think it's possible to come up with it unless you're really cynical
15:38:49 <elliott> ais523: it's just, there's been a few posts in B out of nowhere the past few days
15:38:51 -!- nooga has joined.
15:38:53 <elliott> along with G.'s motion in Agora
15:39:01 <ais523> yeah
15:39:06 <ais523> they are indeed out of nowhere, as far as I can tell
15:39:09 <Phantom_Hoover> isn't woobl that guy you hate
15:39:12 <ais523> but as soon as one starts, people are reminded of b
15:39:31 <ais523> Phantom_Hoover: Wooble's like some sort of snark elemental
15:39:33 <elliott> Phantom_Hoover: wooble is that guy who hates everyone
15:39:38 <ais523> he just exists to make snarky comments about things
15:39:56 <elliott> ais523: no, he also deregisters
15:39:57 <Phantom_Hoover> elliott, yes but you even wrote a poem about how much you hated him!
15:40:12 <elliott> I... did?
15:40:19 <elliott> don't answer that
15:40:22 <elliott> I choose to believe it is true regardless
15:40:36 <ais523> I have posted a message to the public forum explicitly stating my wish to become a player more recently than I last forfeited the game.
15:40:44 <ais523> err, that's missing a <Wooble>
15:40:56 <ais523> anyway, it's hard to believe, because I thought Wooble was platonically forfeiting at every possible moment
15:41:12 <ais523> also he spelled your name wrong
15:41:20 <ais523> given that this is B, that quite possibly matters
15:41:30 <elliott> yes, I mentioned that on the list
15:41:37 <elliott> B is kind of like the formal logic version of nomic
15:41:44 <elliott> to Agora's law
15:47:10 <Taneb> I wonder if we made a nomic how long it would last
15:48:05 <Sgeo_> "Fun fact: If you have garbage collector, it may swoop in the middle of swapping and release your memory under your feet."
15:48:07 <Sgeo_> da fuck?
15:48:13 <Sgeo_> http://www.reddit.com/r/programming/comments/19941q/swap_two_variables_without_using_a_temp_variable/c8lwvjv
15:48:38 <elliott> if you are storing pointers
15:48:44 <ais523> yeah, if you're swapping two pointers
15:48:50 <ais523> and you're running the gc in a different thread for some reason
15:48:57 <kmc> and you're using a conservative GC
15:48:59 <kmc> interesting
15:49:07 <kmc> conservative GC also can't deal with e.g. XOR linked list
15:50:17 <ais523> XOR linked lists make me feel really uneasy
15:50:42 <elliott> conservative GC makes me feel really uneasy
15:50:45 <kmc> yep
15:51:42 <ais523> yeah
15:51:45 <ais523> they're /both/ awkward ideas
15:52:57 <kmc> the standard Ruby interpreter uses a conservative GC :( :( :(
15:53:36 <kmc> a conservative GC for a C program, which happens to be a Ruby interpreter
15:53:54 <Taneb> Wouldn't a conservative GC make lots of space leaks
15:53:56 <elliott> well the standard ruby interpreter does a great many things
15:54:03 -!- GOMADWarrior has joined.
15:54:13 <elliott> kind of a pain to write C extensions with a precise GC though
15:54:29 <elliott> ruby does call/cc by copying the C stack btw
15:54:29 <kmc> Taneb: on 32-bit arches especially
15:55:16 <ais523> conservative GCs can't do any sort of interesting memory operations other than deallocation, can they?
15:55:30 <ais523> because they can't change pointers because they don't know whether they're pointers
15:55:41 <kmc> think that's correct
15:55:49 <kmc> so they can't fix heap fragmentation
15:55:54 <ais523> elliott: btw, what do you think of OCaml-style GCs? they work like conservative GCs but the runtime agrees not to use certain integers
15:56:00 <ais523> so that if those bit patterns are found, they're definitely pointers
15:58:01 <elliott> that's just standard tagging, no?
15:59:16 <kmc> part of what makes that work is that 'normal' code can't do things like XOR linked lists
15:59:37 <kmc> the language has opaque references but not pointers
15:59:37 <ais523> elliott: yeah but I like that way of describing it better :)
16:00:42 <elliott> I wonder how ocaml does arrays
16:00:45 <kmc> now i want to write an Acme.XorLinkedList module for Haskell
16:00:47 <kmc> just to horrify people
16:01:31 <elliott> yesss
16:01:32 <elliott> do it
16:08:10 <kmc> did you know SPARC has instructions for pointer tagging
16:08:44 -!- cuttlefish has joined.
16:09:30 <Fiora> kmc: like, an addressing mode that ignores tags when using a pointer?
16:09:59 <kmc> "Performs the addition of rs1 and op2, using two’s complement arithmetic, storing the result into rd. Trap if either of the source operands’ low-order two bits are not zero"
16:10:57 <kmc> they call these 'tagged arithmetic' instructions
16:11:26 <kmc> CPU trap on dynamic type error :)
16:11:53 <Fiora> oh wow!
16:12:08 <Fiora> I guess the inverse would be trapping on using a non-pointer as an address
16:12:27 <kmc> you can do that too but you have to use the high order bits ;)
16:12:40 <Fiora> ... oh true, paging and things
16:12:58 <kmc> actually
16:13:03 <kmc> SPARC enforces alignment doesn't it
16:13:12 <kmc> so that's built in and always enabled :)
16:13:18 <kmc> beautiful
16:13:27 <Fiora> genius
16:13:33 <kmc> well but that's backwards then :/
16:13:46 <Fiora> ... yeah, I guess normally integers don't get a tag right
16:13:46 <kmc> if the arithmetic instruction also wants the low bits to be zero
16:13:47 <kmc> damn
16:13:49 <Fiora> or er, are zero
16:14:00 <Fiora> oops. there goes that one
16:14:08 <Fiora> maybe we can make a chip that can only do unaligned loads
16:14:10 <Fiora> and traps on aligned loads
16:14:42 <kmc> "The UltraSPARC III - A magical mystery tour"
16:14:45 <kmc> i must read this immediately
16:15:29 <Fiora> "address space identifier" that's... huh o_O
16:16:04 <Fiora> configurable branch delay slots? O_O
16:16:44 <kmc> 14 stage pipeline o_O
16:16:58 <Fiora> "Direct call – 30-bit address in instruction" <-- so they must have been like, okay whatever we're using 25% of the entire instruction space for call
16:17:09 <kmc> Fiora: yeah, I guess it just lets you use a single bit rather than 32 bits for a NOP after the branch
16:17:32 <kmc> 14 stages sounds like a lot, but I don't really know
16:17:38 <Fiora> is it in-order?
16:17:46 <kmc> thinking about designing a CPU with more than 2 stages makes my head spin ;P
16:17:47 <kmc> yes
16:17:49 <Fiora> I guess it probably would be
16:18:02 <Fiora> I guess I'm thinking of modern chips which have like, 14-25 stage pipelines
16:18:14 <Fiora> the atom is 16 apparently
16:18:16 <kmc> that's insane
16:18:19 <kmc> i did not know
16:18:46 <Fiora> core 2 is 14, sandy bridge is ~16-19 (I don't think the specifics are public)
16:19:09 <Fiora> oh I see, variable pipeline length
16:19:21 <Fiora> bulldozer is like... 22
16:20:06 <Fiora> I think pipelines have been around that depth for a loooong time now
16:20:12 <kmc> interesting
16:20:18 <kmc> what are all the stages?
16:20:37 * Fiora looks up some others. cortex a9 is 8-11 stages, cortex a8 is ~14 (?)
16:21:23 * kmc knows so little about how computers actually work
16:21:43 * Fiora tries to find some diagrams and things...
16:21:59 <kmc> i understand the basic 5 stage RISC pipeline
16:22:05 <Fiora> instruction fetch
16:22:12 <kmc> though it's extremely unlikely I could design one with all the bypasses and whatever
16:22:26 <Fiora> instruction predecode (figure out instruction length, might be done in the fetch unit, might be a separate stage, etc)
16:22:32 <Fiora> instruction decode
16:22:48 <kmc> instruction fetch, instruction decode, lunch break
16:22:54 <Fiora> then there's an instruction queue and the microcode system to split up things into multiple uops
16:22:59 <kmc> memory fetch, tea & crumpets
16:23:06 <Fiora> and allocating registers from the renamer and stuff
16:23:09 <kmc> mm
16:23:20 <kmc> so is the rest of the pipeline a pipeline for uops
16:23:25 <Fiora> then stuff gets sent to the scheduler which dispatches uops around
16:23:38 <Fiora> http://docs.notur.no/uit/archive/HPCiA07/hpcia07-documents/intel-tools-tutorial/1.%20Core%20Architecture.pdf
16:23:42 <Fiora> page 10 of this?
16:23:51 <Fiora> Yeah, I think the rest is for uops
16:23:55 <kmc> isn't it cool that basically every part of a computer system contains a scheduler and a storage manager somewhere
16:24:08 <Fiora> it really is
16:25:21 <Fiora> I remember reading that the 'bottleneck' for modern pipelines (i.e. limiting factor for speed) is often things like "select the first 4 executable instructions from a 40-long queue"
16:25:28 <kmc> "Trade off LSD with conventional loop unrolling"
16:25:47 <kmc> interesting
16:26:04 <Fiora> http://processors.wiki.ti.com/index.php/Cortex-A8_Architecture#Cortex-A8_Pipeline_Diagram
16:26:10 <Fiora> okay ARM's diagram is a gazillion times better
16:26:16 <Fiora> this one's an in-order chip too.
16:26:21 <elliott> kmc: snicker snicker lsd, etc.
16:26:24 <kmc> Non-IEEE FP?
16:26:52 <Fiora> I'm... guessing it has like, a slow fallback mode for denormals and things? <_>
16:26:52 <boily> WUT? that's possible?
16:27:05 <Fiora> the playstation 2 had non-IEEE FP!
16:27:52 <tswett> Hey, what VPN software should I use?
16:28:08 <Fiora> it had a FLOAT_MIN/FLOAT_MAX (no infinity), and no denormals, and all operations were saturating
16:28:11 <Fiora> it was kinda cool
16:28:39 -!- azaq23 has joined.
16:28:42 <kmc> neat
16:28:52 -!- azaq23 has quit (Max SendQ exceeded).
16:29:01 <Fiora> this has the 'upside' of contributing to making it incredibly obnoxious to emulate... XD
16:31:52 <boily> Fiora: interesting to know :)
16:32:09 <Fiora> (there's a bunch of other reasons that it's hard that I could ramble about but... )
16:32:19 <boily> tswett: openvpn. the one, the only, the open, the other qualifiers that begin with "o".
16:32:33 <Fiora> kmc: oh um... I think a lot of operations on CPUs nowadays can have multiple cycle latency which is one way the pipeline gets longer.
16:32:34 <kmc> PPP over SSH
16:32:42 <Fiora> like simd multiplies are 5 cycles on sandy bridge
16:32:44 <tswett> kmc: you can do that?
16:32:48 <elliott> `addquote <tswett> Hey, what VPN software should I use? <boily> tswett: openvpn. the one, the only, the open, the other qualifiers that begin with "o".
16:32:52 <HackEgo> 970) <tswett> Hey, what VPN software should I use? <boily> tswett: openvpn. the one, the only, the open, the other qualifiers that begin with "o".
16:32:54 <kmc> tswett: i've done it, not a serious suggestion though
16:33:06 <kmc> you can find various articles about it
16:33:28 <boily> Fiora: not bad, but then, neither excellent.
16:33:38 <Fiora> they used to be 3 :<
16:33:48 <Taneb> You know that SK calculus interpreter I wrote yesterday?
16:33:59 <Taneb> I'm translating it into C
16:34:06 <Fiora> they've come up with some interesting ways to reduce the effective pipeline length I think, like, maybe it was starting with nehalem or something but they added the ability for the cpu to go in and cancel uops after a branch misprediction
16:34:10 <Taneb> Help me
16:34:46 <kmc> Taneb: godspeed you
16:34:49 <Fiora> so if it knows the branch mispredicts early, like the comparison for the branch doesn't have many dependencies or something, it can go in and toss all the uops from the mispredicted path and save lots of resources
16:35:08 <Fiora> iirc it helps double with hyperthreading, since that makes it easier for the cpu to keep doing something
16:36:43 <boily> ~yi
16:36:44 <cuttlefish> Your divination: "Dwelling People" to "Dwelling People"
16:37:01 <boily> Taneb: tough luck with your C-slation.
16:38:06 <kmc> ~yi
16:38:07 <cuttlefish> Your divination: "Corrupting" to "Corrupting"
16:38:11 <kmc> o no
16:38:15 <Phantom_Hoover> ~yo
16:38:15 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
16:38:18 <Phantom_Hoover> ~yi
16:38:19 <cuttlefish> Your divination: "Gnawing Bite" to "Abounding"
16:38:25 <Phantom_Hoover> that sounds good!
16:38:31 * Fiora sorry for rambling, cpu architecture is fun <.<
16:38:48 <elliott> branch prediction scares me
16:39:00 <kmc> i too think it is fun
16:39:38 <Phantom_Hoover> what if one day, the branches start predicting... us
16:39:50 <boily> Phantom_Hoover: they already do.
16:39:59 <Phantom_Hoover> :A
16:40:21 <Phantom_Hoover> holy shit i just realised, that's some sort of bird smiley
16:41:04 <Fiora> I like the whole branch prediction hash table thing
16:41:05 <Sgeo_> :{
16:41:09 <Sgeo_> :}
16:41:30 <Phantom_Hoover> :N
16:41:35 <kmc> brunch prediction
16:41:59 <kmc> Fiora: what's that?
16:42:25 <Fiora> branch prediction is one of the things that companies are really secretive about nowadays so I don't know much but
16:42:57 <Fiora> from what I remember hearing, modern intel chips keep a sort of hash table based on the location of the branch, some history information like the call stack, and so on
16:43:09 <boily> kmc: P(brunch) ~ Pois(7)
16:43:46 <kmc> fish for brunch
16:44:16 <Fiora> so like I guess it effectively contains the X thousand most common <branch/history/call stack> combinations or whatevers
16:44:27 -!- carado has joined.
16:44:34 <elliott> so how many operating systems are we running at any given time
16:44:40 <elliott> since evidently CPUs have one now
16:44:53 <elliott> and a lot of VMs basically count, especially ones with userspace threading
16:45:06 <kmc> browsers are operating systems
16:45:11 <elliott> that too yes
16:45:15 <elliott> though you can argue that falls under VM
16:45:18 <kmc> sure
16:45:28 <elliott> but I guess the JS operating system they have is almost a separate thing to the whole multiple processes thing they do
16:46:33 <kmc> and of course only the tragically un-hip use software without virtualization
16:46:43 <kmc> so you have a VM hypervisor in there too
16:46:52 <Phantom_Hoover> kmc are you going to start complaining about other people again...
16:47:00 <Fiora> I'm running some free android emulator thing to play android games <.<
16:47:19 <kmc> Phantom_Hoover: are you going to start complaining about me too
16:47:37 <Phantom_Hoover> this is getting uncomfortably meta
16:47:59 -!- sebbu has changed nick to sebbu2.
16:48:26 -!- azaq23 has joined.
16:48:37 <elliott> i like kmc complaining
16:48:47 <elliott> helps towards my gda of 10 complaints / day
16:49:23 <boily> you can approximate kmc's brunches and complaints by a skellam distribution.
16:50:52 <quintopia> brunch sounds excellent. i haven't eaten today
16:52:20 * boily runs to the nearest nutritionist grave to strap a dynamo to it
16:54:00 <elliott> kmc: can you upgrade esolangs.org's mediawiki installation for me.
16:54:09 <quintopia> what do nutritionists have to say about brunch
16:54:39 <kmc> no elliott
16:55:22 <elliott> can you answer that question differently
16:55:28 <kmc> no
16:56:17 <elliott> you're awful
16:56:21 <boily> quintopia: that's the point, I don't know. I need a simple way to measure the nutritio-zombo-electromagnetic force of a random brunch.
16:56:23 <elliott> terrible
16:56:25 <elliott> possibly the worst
16:56:35 <kmc> "Benedict XVI to Keep His Name and Become Pope Emeritus"
16:57:00 <elliott> haha what
16:57:03 <elliott> good
16:57:10 <ais523> apparently this is what happens if the pope resigns
16:57:23 <quintopia> boily: are you sure you aren't measuring a brunch of convenience?
16:57:46 <boily> quintopia: dunno. lunchtime. be back in an hour or so...
16:57:51 <ais523> Phantom_Hoover: haha, the weather forecaster on TV just brought up a weather map with only two temperatures showing: 3 in the midlands, and 17 in the scottish highlands
16:57:58 -!- c00kiemon5ter has left.
16:58:12 <Phantom_Hoover> the rest of the weather has stopped
16:58:28 <ais523> apparently England doesn't even get to console itself with "at least Scotland's weather is even worse" any more
16:59:56 <elliott> ais523: OTOH, Scotland's everything else is worse
17:00:15 <ais523> doesn't it have a better education system?
17:00:37 <Taneb> Scotland's education system is like Harry Potter's
17:01:33 <ais523> Taneb: there are many ways to interpret that analogy, but I can't make any of them work
17:02:31 <Taneb> ais523, high school until age of 17 instead of 18
17:03:30 <ais523> I didn't even know that was true about Harry Potter
17:03:36 <ais523> it's not the most obvious detail of the books
17:03:45 <elliott> also they're all wizards
17:05:38 <Phantom_Hoover> we do actually get taught maths and english in scottish schools, so that's different
17:06:24 <ais523> Phantom_Hoover: we don't get taught scottish in english schools
17:06:39 <Phantom_Hoover> that was by analogy to hogwarts
17:06:46 <ais523> oh
17:07:33 <Taneb> We do get taught magic, though
17:08:12 <ais523> Taneb: who's "we" here?
17:08:19 <Taneb> The English
17:08:21 <ais523> ah
17:08:40 <Taneb> Hexham isn't quite north enough to be in Scotland
17:08:45 * ais523 wonders when the last time an english/scottish flamewar happened
17:08:49 <ais523> probably on Wikipedia
17:09:01 <ais523> Taneb: yeah, I know, but I was wondering if it was "all northeners" or some concept like that
17:09:07 <Phantom_Hoover> i remember there being a really pointless edit war on wikipedia
17:09:16 <ais523> hmm… we should find someone here from London, so we can mock them
17:09:18 <ais523> Phantom_Hoover: that happens a lot
17:09:23 <Phantom_Hoover> over how ireland was referred to in the article 'rock pool life of the british isles'
17:09:48 <ais523> was this the "british and irish isles" thing, or something else?
17:09:58 <Phantom_Hoover> i made a really excellent pun based on a christy moore song about it but i don't think anyone truly appreciated it
17:10:40 <Taneb> Was it referred to as "The land of the bloody catholic splitters"?
17:10:51 <Taneb> Because I could see why that would be controversial
17:10:57 <Taneb> It leaves out Northern Ireland
17:11:16 <ais523> Taneb: …
17:11:39 <Phantom_Hoover> i don't think that would be it
17:12:15 <Phantom_Hoover> (also apparently at least one of the more important iras was marxist! i find this strangely interesting)
17:12:21 <elliott> ais523: using the unicode one makes you impossible to take seriously, btw
17:12:35 <ais523> elliott: I do it out of habit
17:12:42 <elliott> well
17:12:45 <ais523> even when it breaks people's backends that don't understand non-ASCII encodings
17:12:48 <elliott> also being ais523 makes you impossible to take seriously
17:12:59 <Phantom_Hoover> you know the logs still show you using unicode ellipses elliott
17:13:08 <ais523> on the rare occasions I use Windows, I end up turning caps lock on a lot by mistake
17:13:08 <kmc> …...…...…...…...…...…...
17:13:16 <ais523> and off almost as often, although mostly intentionally
17:13:28 <elliott> kmc: wow pretty
17:13:37 <ais523> elliott: are you using a fixed-width font?
17:14:00 <Taneb> elliott, just out of curiosity, are you connected to Clan El[l]iot[t] at all?
17:14:07 <elliott> ais523: yes
17:14:09 <elliott> Taneb: I have no idea
17:14:18 <Taneb> elliott, research your family tree!
17:14:38 <ais523> Taneb: what regex-like format uses [] to mean "maybe what's in the square brackets"?
17:14:46 <elliott> Taneb: I hear there's a haskell program for that
17:14:49 <Phantom_Hoover> i like how the wp article on clan elliott can't make its mind up about how to spell it
17:14:51 <Taneb> ais523, when did I say it's regex
17:15:06 <ais523> Taneb: you didn't, and I don't expect it to be, I said "regex-like" for a reason
17:17:46 <Phantom_Hoover> i also like how there's apparently a newcastleton in the borders
17:17:58 <Taneb> Yeah, I think I've been there
17:18:02 <Taneb> There isn't much there
17:19:12 <ais523> Taneb: now I'm imagining a field with a few stones in it
17:19:18 <ais523> and a collapsing hut
17:19:49 <Taneb> Apparently it's new (castleton), not newcastle (ton)
17:20:36 <Phantom_Hoover> "The Elliotts, with the Armstrongs, were the most troublesome of the great Scottish Border families in the Middle Ages."
17:20:48 <Phantom_Hoover> sounds like elliott all right
17:21:39 -!- Taneb has quit (Quit: AWAY).
17:22:08 -!- nooga has quit (Ping timeout: 272 seconds).
17:26:43 -!- c00kiemon5ter has joined.
17:27:07 -!- nooga has joined.
17:30:28 <tromp_> > (209/50,218/50)
17:30:29 <lambdabot> (4.18,4.36)
17:30:56 <tromp_> > 50*4.5343
17:30:57 <lambdabot> 226.715
17:35:52 <ais523> btw, I think I got into an argument with an Apple fanboy on rgrn, of all places
17:36:28 <ais523> I've mostly stopped now, when their argument reached the level of "there's no such thing as a free development environment because you still have to buy a computer to run it on2
17:36:31 <ais523> s/2/"/
17:40:29 -!- c00kiemon5ter has quit (Remote host closed the connection).
17:40:41 -!- c00kiemon5ter has joined.
17:43:09 -!- impomatic has left.
17:45:32 -!- c00kiemon5ter has quit (Remote host closed the connection).
17:45:44 -!- c00kiemon5ter has joined.
17:45:57 <Gregor> ais523: lol
17:46:57 <coppro> haha
17:51:47 -!- c00kiemon5ter has quit (Remote host closed the connection).
17:51:53 <coppro> `pastelog horizontal
17:52:01 -!- c00kiemon5ter has joined.
17:52:24 <HackEgo> No output.
17:52:34 <coppro> `pastelog vertical
17:52:37 -!- sirdancealot7 has joined.
17:52:39 <coppro> this seems unlikely
17:52:57 <Jafet> `quote horizontal
17:53:02 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5219
17:53:05 <HackEgo> No output.
17:53:30 <Gregor> What I love is that the pastelog vertical includes log lines with horizontal in them.
17:53:55 <Gregor> (FYI, it probably timed out)
17:54:00 <Jafet> ais: I, too, would be agitated if I spent $2000 on a computer to play slaves to armok
17:54:27 <coppro> :/
17:54:33 <coppro> Gregor: any way to avoid that?
17:54:47 <Jafet> `run file bin/pastelog
17:54:48 <HackEgo> bin/pastelog: POSIX shell script text executable
17:54:52 <Gregor> I could up the timeout limit X-D
17:54:54 <Jafet> `cat bin/pastelog
17:54:55 <HackEgo> ​#!/bin/sh \ cd /var/irclogs/_esoteric \ \ pasterandom() { \ if [ "$1" -gt 150 ]; then \ echo "No." \ exit \ fi \ for i in $(seq "$1"); do \ file=$(shuf -en 1 ????-??-??.txt) \ echo "$file:$(shuf -n 1 $file)" \ done | paste \ } \ \ if [ "$1" ]; then \ if expr "$1" + 0 >/dev/null 2>&1; then \
17:55:16 <Jafet> Then what, fungot?
17:55:17 <fungot> Jafet: fnord ' who's me?' and actually read that ' watcom'
17:55:25 <Jafet> I don't think that's how it goes.
17:58:21 <coppro> what the fuck
17:58:23 <coppro> why is shuf in there?
17:58:41 <Gregor> Was "Then what, fungot" supposed to rhyme?
17:58:42 <fungot> Gregor: there's just common standards. they do not end up coding bash/ python background. the updates rarely took more than a power failure.
17:58:55 <coppro> why isn't it just grep?
17:59:12 <Gregor> Don't ask me, I didn't write it.
17:59:16 <Gregor> That's the beauty of HackBot.
17:59:23 <coppro> how do I write a new script again?
17:59:39 <Gregor> It's Unix. You Unix.
18:00:39 <Jafet> `run timeout 3 echo ':-)'
18:00:41 <Phantom_Hoover> coppro how do you still not know how HackEgo works...
18:00:43 <HackEgo> ​:-)
18:00:49 -!- c00kiemon5ter has quit (Remote host closed the connection).
18:01:06 -!- c00kiemon5ter has joined.
18:01:11 <Gregor> Jafet: The timeout is 30 seconds.
18:01:11 <coppro> Phantom_Hoover: quotation marks are hard
18:01:25 <Gregor> coppro: So pastebin it and `fetch
18:01:37 <coppro> `cat bin/fetch
18:01:38 <HackEgo> cat: bin/fetch: No such file or directory
18:01:43 <Gregor> `fetch is magic.
18:01:47 <Jafet> `run sed -i... -e 's/grep/timeout 25 grep/' bin/pastelog
18:01:53 <HackEgo> No output.
18:01:57 <Gregor> Jafet: lol, nice of you.
18:02:08 <Jafet> `pastelog horizontal
18:02:30 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.28302
18:02:39 <coppro> Gregor: how does `fetch work?
18:02:45 <Gregor> coppro: It fetches a URL.
18:02:47 <coppro> filename url? other way around?
18:02:57 <Gregor> Just URL, it'll write it to whatever name it feels is appropriate.
18:03:01 <coppro> `fetch http://pastebin.com/dkVb20VL
18:03:01 <Gregor> You have to Unix it into place after that.
18:03:10 <HackEgo> 2013-02-26 18:03:09 URL:http://pastebin.com/dkVb20VL [12720] -> "dkVb20VL" [1]
18:03:20 <coppro> `cat dkVb20VL
18:03:22 <HackEgo> ​<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
18:03:25 <elliott> I wonder if you can exploit the name it picks
18:03:27 <coppro> you suck
18:03:44 <Jafet> `rm bin/pastelog...
18:03:47 <HackEgo> No output.
18:03:49 <Gregor> elliott: Idonno, can you make wget choose to name a file ../../../../etc/passwd or something?
18:03:56 <elliott> Gregor: yeah that's what I'm wondering
18:04:05 <elliott> coppro: that script is a bad idea btw
18:04:08 <coppro> elliott: why?
18:04:09 <Jafet> If wget fetches one file, it uses the basename
18:04:11 -!- c00kiemon5ter has quit (Client Quit).
18:04:14 <elliott> ls /var/irclogs/_esoteric to see one reason why
18:04:18 <Jafet> (unless you're dumb enough to tell it not to)
18:04:22 <coppro> `ls /var/irclogs/_esoteric
18:04:23 <HackEgo> 2003-01-18-raw.txt \ 2003-01-18.txt \ 2003-01-19-raw.txt \ 2003-01-19.txt \ 2003-01-20-raw.txt \ 2003-01-20.txt \ 2003-01-21-raw.txt \ 2003-01-21.txt \ 2003-01-22-raw.txt \ 2003-01-22.txt \ 2003-01-23-raw.txt \ 2003-01-23.txt \ 2003-01-24-raw.txt \ 2003-01-24.txt \ 2003-01-25-raw.txt \ 2003-01-25.txt \ 2003-01-26-raw.txt \ 2003-01-26.txt \ 2003-01-
18:04:30 <coppro> oh
18:04:35 <elliott> anyway
18:04:37 <elliott> `cat bin/pastelogs
18:04:38 <HackEgo> ​#!/bin/sh \ cd /var/irclogs/_esoteric \ \ pasterandom() { \ if [ "$1" -gt 150 ]; then \ echo "No." \ exit \ fi \ for i in $(seq "$1"); do \ file=$(shuf -en 1 ????-??-??.txt) \ echo "$file:$(shuf -n 1 $file)" \ done | paste \ } \ \ if [ "$1" ]; then \ if expr "$1" + 0 >/dev/null 2>&1; then \
18:04:42 <elliott> should do what you want
18:04:44 <coppro> why the fuck is shuf there?
18:04:45 <elliott> `url bin/pastelogs
18:04:46 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/pastelogs
18:04:53 <elliott> well if you read the script you will see
18:05:02 <coppro> no, I don't
18:05:03 <Jafet> `run diff -u bin/pastelog{,s}
18:05:05 <HackEgo> ​--- bin/pastelog2013-02-26 18:01:52.000000000 +0000 \ +++ bin/pastelogs2013-02-13 16:28:35.000000000 +0000 \ @@ -16,7 +16,7 @@ \ if expr "$1" + 0 >/dev/null 2>&1; then \ pasterandom "$1" \ else \ - lines=$(timeout 25 grep -P -i -- "$1" ????-??-??.txt | head -n 301) \ + lines=$(grep -P -i -- "$1" ????-??-??.txt
18:05:10 <elliott> well read more closely then
18:05:11 <coppro> I don't understand
18:05:11 <tswett> ~yi
18:05:11 <cuttlefish> Your divination: "Humbling" to "Limping"
18:05:15 <elliott> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/pastelogs
18:05:16 <tswett> Yup.
18:05:23 <coppro> why the script does anything that is not grepping the logs
18:05:51 <coppro> anyway
18:05:53 <elliott> `pastelogs 120
18:05:53 <coppro> `pastelogs horizontal
18:05:57 <elliott> because that ^
18:06:10 <coppro> that's ununixy
18:06:55 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.2874
18:07:03 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.14865
18:07:34 <elliott> well what is unixy is just using grep yourself
18:07:36 <elliott> it is a convenience script
18:09:28 <Jafet> `run diff --suppress-common-lines bin/pastelog{,s}
18:09:33 <HackEgo> 19c19 \ < lines=$(timeout 25 grep -P -i -- "$1" ????-??-??.txt | head -n 301) \ --- \ > lines=$(grep -P -i -- "$1" ????-??-??.txt | head -n 301)
18:09:47 <elliott> what, they're not symlinked?
18:09:49 <elliott> I blame Gregor
18:10:06 <Jafet> `run rm bin/pastelogs && ln -s pastelog bin/pastelogs
18:10:10 <HackEgo> No output.
18:16:56 -!- impomatic has joined.
18:17:53 <mroman> if the probability of an event A to occur is p, then the probability of it occuring n-times in a row decreases
18:18:08 <mroman> however, as in the above case: If the probability of event A is zero
18:18:30 <mroman> does that mean that it appearing once is as much likely as it appearing 1mio. times in a row?
18:18:36 <mroman> Or is that also wrong?
18:19:14 -!- nooga has quit (Ping timeout: 255 seconds).
18:19:15 <Phantom_Hoover> yes, it's right?
18:19:19 <Gregor> That's true, but you missed the other corner case: If the probability of an event A occurring (within some timespan) is 100%, then the probability of it occurring n times in a row does not decrease, it's also 100%.
18:19:35 <tromp_> > 50*4.361
18:19:36 <lambdabot> 218.04999999999998
18:19:57 <Phantom_Hoover> Gregor, well it does decrease if you use the non-strict definition
18:20:00 <mroman> Gregor: Yes, but that edgecase seems more natural.
18:20:26 <mroman> You would assume that something very unlikely to happen twice in a row would be even less unlikely
18:20:51 <tswett> I guess if you define "as likely" as meaning "having the same probability", then yeah.
18:21:04 -!- Bike has joined.
18:21:07 <tswett> Though I wouldn't quite assume that it wouldn't be even less likely for the event to happen twice in a row.
18:21:10 <Gregor> That assumes, by the way, that P is independent.
18:21:14 <Phantom_Hoover> mroman, you didn't say 'very unlikely'
18:21:18 <Phantom_Hoover> you said 'impossible'
18:21:26 <elliott> probability 0 is not impossible Phantom_Hoover
18:21:28 <Gregor> i.e., there are some events which are more probable to happen twice than once.
18:21:33 <tswett> If an event is impossible, then the occurrence of the event twice in a row isn't double impossible. It's just plain impossible.
18:21:45 <mroman> I'm aware that p = 0 does not mean it's impossible.
18:21:52 <Phantom_Hoover> elliott, how dangerously nonconstructive of you
18:21:54 <elliott> that's why i said Phantom_Hoover
18:22:02 <mroman> but I thought the probability of all events should be zero
18:22:14 <Gregor> Oh dear, are we playing with infinitesimals >_>
18:22:20 <mroman> but sum_{i=0)^{infinity}(1/infinity) is not 1
18:22:29 <mroman> not to the math I know.
18:22:39 <elliott> toot
18:22:41 <mroman> That's the actual confusing part.
18:22:59 <Phantom_Hoover> mroman, what even is that notation
18:23:09 <tswett> Pseudo-LaTeX.
18:23:13 <mroman> LaTeX
18:23:18 <mroman> if you ignore the wrong bracket ;)
18:23:21 <Phantom_Hoover> oh wait right
18:23:32 <Phantom_Hoover> well it depends on what you mean by infinity
18:23:34 <Bike> imo cauchy distribution
18:23:38 <elliott> it's not really latex in that you don't want / or infinity there
18:23:43 <elliott> or "sum"
18:23:53 <Bike> best distribution
18:23:54 <mroman> yeah
18:23:58 <mroman> LaTeX would be \infty
18:23:58 <tswett> Yeah, "infinity" doesn't have one single definition.
18:23:59 <Phantom_Hoover> 1/infinity isn't well-defined in the context you're probably thinking of
18:24:10 -!- nooga has joined.
18:24:27 <tswett> I guess it's *usually* defined as that one element of the extended real numbers.
18:24:44 <Phantom_Hoover> certainly you can say sum_0^n 1/n approaches 1 as n goes to infinity
18:24:45 <tswett> In which case 1/infinity is 0, and so the sum from 0 to infinity of 1/infinity is also 0.
18:24:59 <tswett> You could also do that, in which case you'd end up with 1.
18:25:10 <elliott> ergo 0 = 1
18:25:28 <Phantom_Hoover> dibs on the paper
18:25:53 <Phantom_Hoover> hmm
18:25:59 <Phantom_Hoover> actually elliott, you do the paper
18:26:02 <tswett> Let elliott's number = 0. Let elliott's number = 1. By symmetry of equality, 0 = elliott's number. By transitivity of equality, 0 = 1.
18:26:23 <elliott> deep
18:26:25 -!- c00kiemon5ter has joined.
18:26:26 <Phantom_Hoover> the horde of angry mathematicians will have a harder time lynching you
18:26:52 <elliott> it's true, scots die easy
18:27:30 <Gregor> Not True Scotsmen.
18:28:01 <Phantom_Hoover> well i mean if they actually find you they can just wring your pale, stick-like english neck without much trouble
18:28:09 <Phantom_Hoover> but who even knows where hexham is, really
18:28:22 <tswett> 10.65.84.0/24.
18:28:38 <Gregor> We could just destroy the British isles *shrugs*
18:29:27 <elliott> I like the implication that scots aren't pale.
18:29:31 <elliott> REMINDER: you get no sun?
18:30:43 <ais523> elliott: but they stay out in it several hundred percent of the time
18:31:05 <ais523> just to make their insults slightly more effective
18:31:21 <elliott> ais523: that is just because they do not have houses.
18:31:26 -!- aloril has quit (Ping timeout: 276 seconds).
18:31:52 <Phantom_Hoover> elliott, that's so it's harder to lynch us
18:31:56 <ais523> don't be silly, who'd go without a house just to make their insults slightly more effective?
18:32:00 <ais523> Phantom_Hoover's explanation is much better
18:32:02 <Phantom_Hoover> harder to jury-rig a gibbet
18:32:06 <elliott> ais523: are you suggesting Scots are rational.
18:32:20 <ais523> elliott: are you suggesting they're transcendental?
18:32:24 <elliott> also I never said it was voluntary!
18:32:36 <elliott> could *you* build a house in the wasteland that is Scotland?
18:33:09 -!- c00kiemon5ter has quit (Remote host closed the connection).
18:33:13 -!- nooga_ has joined.
18:33:21 <Phantom_Hoover> so tell me elliott how did that whole harrying of the north thing work out for you guys
18:33:25 -!- c00kiemon5ter has joined.
18:33:39 -!- nooga has quit (Ping timeout: 248 seconds).
18:33:46 <Phantom_Hoover> at least we never got laid waste by the french
18:34:27 <elliott> Phantom_Hoover: you can point to the past all you like if it helps distract you from how awful scotland is in the present
18:34:53 <nooga_> RRRRIGHT MAIT
18:35:05 <Phantom_Hoover> shut up nooga_, everyone hates poland
18:35:25 <Gregor> It's adorable when North Britain and South Britain argue. *sips high fructose corn syrup directly from the jug*
18:35:47 <nooga_> at least we don't have to eat haggis
18:35:48 <Phantom_Hoover> so elliott how many leading figures in functional programming live in northumberland then
18:35:54 <elliott> Phantom_Hoover: um poland is at least 50x better than scotland
18:36:00 <elliott> oh now you've done it
18:36:06 <elliott> 1. me
18:36:08 -!- c00kiemon5ter has left.
18:36:08 <elliott> 2. taneb
18:36:15 <elliott> 3. me, 4. me, 5. me,
18:36:24 <Phantom_Hoover> oh, we'll just have to make do with conor mcbride and edwin brady then
18:36:31 <ais523> Gregor: this is more north england versus scotland
18:36:36 <nooga_> phil wadler
18:36:36 <ais523> I'm just chipping in with absurd comments
18:36:43 <Phantom_Hoover> still, we're all jealous of the newcastle haskell compiler
18:36:50 <elliott> nooga_: he is in northumberland?
18:37:07 <nooga_> ummm.... no, Edinburgh
18:37:19 <elliott> same thing
18:37:20 <elliott> Phantom_Hoover: just because they're on a humanitarian mission to educate scotland's poor, deprived youth doesn't mean you can hold them up as examples
18:37:21 <Gregor> ais523: The joke was that Americans don't understand British geography.
18:37:23 <ais523> the edinburgh haskell compiler sucks
18:37:40 <ais523> Gregor: those people would have said England, though, not Britain
18:37:46 <Gregor> *snaps*
18:37:49 <Phantom_Hoover> oh and we really wish we'd come up with lancaster prolog
18:37:52 <ais523> the joke doesn't work if you acknowledge there's a difference
18:38:12 <Gregor> Would it help if I said "Britland"?
18:38:13 <nooga_> I did something dangerous when in Edinburgh
18:38:14 <elliott> Phantom_Hoover: do you... even know Prolog.
18:38:18 <Phantom_Hoover> (i couldn't keep focusing it on northumberland because i ran out of significant places in northumberland)
18:38:20 <ais523> Gregor: perhaps
18:38:33 <Phantom_Hoover> elliott, remember that it class i bitched about endlessly back when i first joined
18:38:44 <ais523> Phantom_Hoover: there's Morpeth
18:38:46 <elliott> ph all i remember about you is a continuous stream of complaints
18:38:49 <elliott> how can I remember them all
18:38:55 <elliott> ais523: erm... let's not get into Morpeth
18:38:57 <nooga_> i said that i'm in england when i was in scotland
18:38:59 <nooga_> uuuuu
18:39:04 <ais523> elliott: is it that bad?
18:39:07 <Phantom_Hoover> well anyway after we finished with javascript on ie5 for mac we moved on to prolog
18:39:17 <ais523> I only know about Northumberland because of BlogNomic
18:39:23 <elliott> ais523: I know nothing about Morpeth but I think it was pretty funny to say that anyway
18:39:25 <Phantom_Hoover> i don't think i'll ever again see such depths of non-understanding
18:39:44 <ais523> OK, so Morpeth's distinguishing feature is that people pretend to know something about it
18:39:52 <ais523> like… monads
18:39:58 <ais523> monads are like Morpeth
18:40:12 <elliott> I love morpeth, it is so easy
18:40:31 <ais523> Phantom_Hoover: my department teaches prolog, to second years I think
18:40:44 <ais523> some people choose it because it isn't ocaml, and then are disappointed to find it has lists
18:40:44 <elliott> so have the americans had their election or not
18:40:45 <Phantom_Hoover> `run echo ' Much like Morpeth.' >> wisdom/monads
18:40:49 <HackEgo> No output.
18:40:50 <elliott> I honestly have forgotten
18:41:03 <Phantom_Hoover> `revert
18:41:06 <ais523> it's obama's second term, I Think
18:41:06 <HackEgo> Done.
18:41:08 <ais523> *think
18:41:12 <Phantom_Hoover> newlines, i guess?
18:41:16 <ais523> I'm trying to remember who he beat
18:41:18 <elliott> who did he actually run against again
18:41:20 <elliott> was it that romney guy
18:41:24 <ais523> yeah, that's right
18:41:27 <ais523> it was romney
18:41:27 <nooga_> who codes ocaml anyway
18:41:29 <elliott> ok goo dto know
18:41:38 * ais523 challenges the americans here to remember who lost in the most recent UK general election
18:41:39 <elliott> `addquote <ais523> Phantom_Hoover: my department teaches prolog, to second years I think <ais523> some people choose it because it isn't ocaml, and then are disappointed to find it has lists
18:41:42 <HackEgo> 971) <ais523> Phantom_Hoover: my department teaches prolog, to second years I think <ais523> some people choose it because it isn't ocaml, and then are disappointed to find it has lists
18:41:52 <elliott> ais523: humanity
18:42:02 <ais523> elliott: actually I was pretty happy with the result
18:42:06 <Phantom_Hoover> ais523, the lib dems
18:42:12 <elliott> Phantom_Hoover: haha
18:42:13 <ais523> Phantom_Hoover: haha :)
18:42:19 <elliott> ais523: that is just more evidence you're not human
18:42:38 * ais523 wonders how many foreigners will get the joke
18:42:45 <Bike> `? qdbformat
18:42:47 <HackEgo> qdbformat is: <nick> message; * nick action; two spaces between messages; all elisions marked with [...] other than irrelevant intervening messages; for messages separated by elision, one space on each side, not two
18:42:49 <elliott> let's add it to the qdb
18:42:59 <elliott> `addquote * ais523 challenges the americans here to remember who lost in the most recent UK general election <Phantom_Hoover> ais523, the lib dems
18:43:02 <HackEgo> 972) * ais523 challenges the americans here to remember who lost in the most recent UK general election <Phantom_Hoover> ais523, the lib dems
18:43:08 <Gregor> * ais523 challenges the americans here to remember who lost in the most recent UK general election // you could challenge me to remember who WON in the most recent UK general election, I'd do no better.
18:43:10 <elliott> that way we will get a good amount of data on who gets it or not over time
18:43:17 <elliott> Gregor: also the lib dems
18:43:19 <ais523> actually I can't even remember who the leader of Labour is
18:43:26 <elliott> milipede guy
18:43:27 <ais523> because both the possibilities have similar names and look identical
18:43:33 <ais523> or nearly so
18:43:34 <elliott> ed centipede
18:43:41 <mroman> I'm bored.
18:43:42 <ais523> wow, I guessed the wrong one as well
18:43:45 <Gregor> Ed Centipede
18:43:46 -!- sirdancealot7 has quit (Read error: Connection reset by peer).
18:43:48 <ais523> mroman: of /this/ conversation?
18:43:49 <mroman> Let me design a brainfuck cpu
18:43:53 <Gregor> If my name was Ed Centipede, I'd run for public office.
18:43:54 <mroman> No. Generally :)
18:44:04 <ais523> Gregor: it's not his actual name, unfortunately
18:44:23 -!- aloril has joined.
18:44:47 -!- Gregor has set topic: #esoteric welcomes its new prime minister, Ed "Brainfuck Derivative" Centipede | http://codu.org/logs/_esoteric/.
18:44:47 <oonbotti> Nothing here
18:44:48 <elliott> which one did ais523 guess?
18:44:57 <ais523> elliott: david centipede
18:45:18 <mroman> That is, how much brainfucky it can be with 256 Byte of RAM
18:45:57 <ais523> mroman: just make the bytes infinitely large
18:46:39 <ais523> also, what hardware architecture are you targeting to make this CPU? even small FPGAs have more than 256 bytes of RAM
18:46:47 <ais523> err, of memory
18:46:56 <ais523> the ones that have RAM have RAM
18:47:06 <ais523> some of them have memory where you sort-of decide how random the access is
18:47:35 <ais523> random acts of access
18:47:36 <tswett> Hm.
18:48:47 <tswett> We need a language in which each memory cell holds a map N -> {0,1}, interpreted as the decimal expansion of a number that is allowed to be infinite on the left.
18:49:14 <tswett> And where every possible memory cell value is the address of a memory cell.
18:49:31 -!- FreeFull has joined.
18:49:39 <Phantom_Hoover> i note that elliott deftly steered the discussion away from how superior scotland is
18:49:55 <tswett> And you're allowed to perform an infinite loop in one step, as long as it never overwrites a 1 with a 0.
18:50:01 <elliott> Phantom_Hoover: it just gets so sad hearing a scot try to pretend he's alright
18:50:04 <elliott> I can only handle so much at a time
18:50:11 <tswett> Maybe you're just never allowed to overwrite a 1 with a 0 ever.
18:51:18 <Phantom_Hoover> 'pretend he's alright' man you english are terrible at your own language
18:52:06 <Phantom_Hoover> i guess that's why all the greatest writers in the english language were scots
18:52:22 <Phantom_Hoover> ALSO: the best cooks?
18:52:32 <elliott> ph my english was perfectly fine
18:53:35 <Phantom_Hoover> as if i'd trust an englishman to know that
18:54:15 <elliott> YOU STOLE OUR LANGUAGE
18:54:16 <Phantom_Hoover> +
18:54:35 <Phantom_Hoover> well you just stole it from the germans
18:55:22 * ais523 tries to work out if this is technically racism
18:55:23 <elliott> ais523: I'm going to have to demand you kick Phantom_Hoover.
18:55:23 <Bike> wouldn't a better insult be "well the french gave it to you" or something
18:55:38 <ais523> Bike: but I like the French
18:55:46 <elliott> more evidence ais523 isn't human
18:55:49 <ais523> hmm… I think I potentially like far too many people
18:56:03 <Phantom_Hoover> Bike, oh that's much better, thanks
18:56:18 <elliott> Phantom_Hoover: stealing your jokes from americans of all people
18:56:25 <elliott> also known as: the least funny people in the universe
18:56:32 <Phantom_Hoover> er Bike is from luxembourg
18:56:34 <ais523> elliott: the americans have humor, not humour
18:56:36 <ais523> it's different
18:56:47 <ais523> Phantom_Hoover: luxembourg's in a UTC-8 timezone?
18:56:54 <Phantom_Hoover> parts of it.
18:56:55 <elliott> american luxembourg
18:57:11 <elliott> it's like american samoa I guess
18:57:25 <Phantom_Hoover> elliott, well the americans still saved your asses in world war 2!!
18:57:29 <elliott> "2"
18:57:32 <elliott> world war 2.0
18:57:36 <Bike> As did the Luxembourgish, I might add.
18:57:41 * boily feels safe in his halfway-existing Canada
18:57:48 <elliott> I guess this is what happens when Conor McBride has to teach you history because you don't have any other teachers
18:57:54 <ais523> Phantom_Hoover: I had to check your nationality when you said that
18:57:57 <ais523> and do a double-take
18:58:06 <elliott> Bike: you mean the Luxembourgeoisie
18:58:13 <Phantom_Hoover> i thought you were swiss boily...
18:58:15 <elliott> AND WITH THAT PUN I HAVE WON THE ARGUMENT
18:58:23 <Bike> i like how ais checked my presented timezome to see where i was
18:58:38 <ais523> Bike: the great thing is, I did that /before/ Phantom_Hoover said you were from Luxembourg
18:58:38 <elliott> guys come on that was amazing
18:58:47 <Bike> 9/10 would be luxembourgianisie again
18:58:57 <boily> Phantom_Hoover: `? boily
18:59:01 <ais523> boily is in UTC-5
18:59:05 <Phantom_Hoover> elliott, what about edwin brady...
18:59:06 <FreeFull> We should invent a programming language that consists entirely of the nicks of people in here
18:59:12 <FreeFull> And as people join and part the language changes
18:59:12 <ais523> which is reasonable for somewhere that doesn't exist that's in vaguely the same location as Canada
18:59:16 <elliott> Phantom_Hoover: same person.
18:59:20 <ais523> `? boily
18:59:23 <HackEgo> boily is Canadian or something. We are not sure about Canada's existence.
18:59:31 <FreeFull> `? freefull
18:59:32 <HackEgo> FreeFull is either full of freedom or free of fulldom, we are not sure.
18:59:36 <boily> there. indubitable proof that I'm canadian.
18:59:36 <ais523> boily: I think we've established that Ottawa exists
18:59:41 <Bike> 1? bike
18:59:42 <Phantom_Hoover> it's quite surprising that with our one teacher we still have an education system which isn't hopelessly broken
18:59:43 <ais523> but we're less clear on the rest of Canada
18:59:44 <Bike> `? bike
18:59:50 <HackEgo> Bike is from Luxembourg.
18:59:52 <boily> ais523: when did that happen?
18:59:54 <Bike> ais523:
19:00:13 <ais523> boily: quite recently, but I forget exactly when
19:01:37 <Phantom_Hoover> http://en.wikipedia.org/wiki/List_of_massacres_in_the_United_Kingdom
19:01:39 <Bike> Phantom_Hoover: more teachers just means more arguments over how to teach.
19:01:47 <Phantom_Hoover> i like how a third of this is in ireland
19:02:10 <Bike> by orangemen or of orangemen or wait i don't care
19:02:29 -!- sirdancealot7 has joined.
19:02:29 <Phantom_Hoover> both and neither, i should think
19:02:34 <ais523> Phantom_Hoover: that's not really something to like, if those massacres hadn't happened there'd have been fewer massacres
19:02:41 <ais523> and massacres are generally considered a bad thing
19:02:53 <Phantom_Hoover> ais523 are you doing the whole overly literal thing again
19:03:07 <ais523> hmm, it starts in 61 AD
19:03:15 <ais523> Phantom_Hoover: that's not really being overly literal, it's something else
19:03:18 <Bike> huh there are two different violent orangemen organizations there but they both use a red hand
19:03:21 <ais523> I interpreted the words exactly as you mean them
19:03:27 <ais523> I just inferred something different from the sentence
19:03:32 <Phantom_Hoover> Bike, welcome to northern ireland politics
19:03:41 <Phantom_Hoover> there are at least 3 different versions of any given organisation
19:03:48 <Bike> rad
19:03:53 -!- nooga has joined.
19:04:00 <Phantom_Hoover> even more if they're republican
19:04:04 <Bike> the ira should use a red foot to fit in
19:04:08 -!- nooga_ has quit (Ping timeout: 252 seconds).
19:04:32 <ais523> this isn't something to joke about, seriously
19:04:46 <nooga> i think i will attempt to write a roguelike in a purely functional manner
19:05:05 <Phantom_Hoover> i am almost certain you have ignored jokes about more serious matters in the past, ais, so don't start getting all moral
19:05:06 <ais523> luckily, you're probably safe because I've forgotten what that command is that kicks everyone else from the channel, clears all the channel modes, sets it invite-only, and invites you
19:05:19 <ais523> Phantom_Hoover: I'm kind-of an oblivious person
19:05:27 <ais523> whether I start getting all moral really depends on how much attention I'm paying
19:05:39 <Sgeo_> Does using the State monad count as purely functional? Sure, all the ... code is, but the style that do allows, it looks imperative even if it's all functional inside
19:05:46 <ais523> and not really what the joke is about
19:06:06 <Phantom_Hoover> Sgeo_, are you just trying to post kmcbait...
19:06:30 <Sgeo_> Not really, although seems like the sort of thing kmc would rant about
19:06:44 <nooga> well, you have to output state once in a while, but all functions just take the state and return a new one
19:06:48 <Sgeo_> I'm sure I remember discussions along this line of thought before, at least reading such discussions
19:06:56 <ais523> Sgeo_: "C is a purely functional language"
19:07:09 * Fiora imagines a cardboard box propped up by a stick with a pile of monads inside
19:07:10 <ais523> also, Unlambda is a purely functional language, although it accomplishes that by redefining "purely functional"
19:07:42 <ais523> I tried to add closures to INTERCAL once (just in the "mental specification" stage, I didn't write any code)
19:07:44 <ais523> it didn't end well
19:07:47 <elliott> Fiora: that is actually what Haskell is.
19:07:48 <Bike> considering words and phrases as meaning things is the path to ruin
19:08:04 <Gregor> C is a purely functional language. It really does function. As a language.
19:08:21 <FreeFull> Lisp is an imperative language because it does stuff
19:08:37 <Bike> lisp is an imperative language because it was designed by Kant
19:08:52 <elliott> I like how we successfully transitioned from Irish massacres to functional programming in ~7 messages
19:09:27 <ais523> "I asked an electronic engineer whether a dog had Buddha-nature. His answer was 'high-impedance'. Now I just have more questions."
19:09:36 <elliott> 33
19:09:37 <elliott> oops
19:09:37 <Bike> well it's not like i'm going to keep joking about a period of history where lots of people died for bad reasons if it's actually going to anger someone
19:10:01 <elliott> wait I thought the idea of #esoteric was to anger ais523 as much as possible, all the time
19:10:14 <elliott> I... have been thoroughly mislead
19:10:16 <Bike> i'm a newbie here elliott
19:10:21 <ais523> elliott: intentionally angering ops is usually a bad idea
19:10:35 <elliott> ais523: well #esoteric is all about bad ideas
19:10:41 <Bike> ALSO: has anyone yet died over arguments about what "purely functional" means
19:10:42 <ais523> hmm, I hadn't thought of it that way
19:10:51 <ais523> Bike: hmm
19:11:03 <ais523> I choose to misinterpret "over" as "directly above" because it's a more interesting question that way
19:11:10 <Bike> fair, fair
19:11:19 <ais523> how often do arguments about pure functionality happen? how often is it on the lower floor of a building
19:11:25 <ais523> presumably it'd have to be a coincidence
19:11:32 <ais523> but it seems like a coincidence that could plausibly happen
19:11:46 <elliott> http://www.huffingtonpost.com/2013/02/25/aaron-swartz-white-house-taxpayer-funded-wish_n_2758744.html whoah (sorry for huffpo link)
19:11:47 <boily> traditional sumo rings are made with packed purely functional dirt.
19:12:03 <doesthiswork> `I've heard a good argument that over meaning ab
19:12:04 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: I've: not found
19:12:42 <Bike> ais523: well how often do people die in buildings where people argue about programming
19:12:57 <Bike> elliott: sweet
19:12:58 <elliott> well what if it is like a university
19:13:07 <doesthiswork> I've heard a good argument that over meaning about is descended from listener's reanalysis of over uses to mean above.
19:13:09 <ais523> yeah, a university seems like a likely option
19:13:13 <ais523> or a hotel that's hosting a conference
19:13:20 <elliott> right a big hotel is a good candidate
19:14:25 <Bike> doesthiswork: you should put some quotation marks in that sentence in order to make it readable
19:15:00 <mroman> ais523: No @FPGA
19:15:14 <mroman> It'd be a *real* Brainfuck CPU
19:16:27 <ais523> mroman: you mean an ASIC?
19:16:38 <ais523> they're generated from the same descriptions as FPGAs
19:16:43 <ais523> so you may as well use one for prototyping
19:16:49 <nooga> Gabe Newell: "The programmers of tomorrow are the wizards of the future. You know, you're gonna look like you have magic powers compared to everybody else."
19:16:50 <ais523> it's hundreds of thousands of dollars cheaper
19:16:52 <nooga> yeah
19:16:55 <nooga> this is esoteric
19:16:58 <mroman> for developing one I would use an FPGA
19:18:25 <elliott> Gregor: you are correct re: salt and vinegar pringles
19:18:49 <ais523> I think FPGAs are used for development even by major companies
19:19:07 <ais523> elliott: /me wonders what opinions or facts about salt and vinegar pringles might plausibly wonder verification
19:19:10 <Gregor> elliott: Glad you agree.
19:19:20 <elliott> ais523: they're created by aliens to destroy the universe
19:19:25 <elliott> do intel test their new x86 chips on fpgas
19:19:39 <Gregor> ais523: I observed that salt and vinegar Pringles are surprisingly good, having the ideal mix of potato and vinegar.
19:19:39 <elliott> it seems implausible to me but then what do they do
19:19:39 <boily> I'll stay with my ketchup flavour.
19:19:39 <ais523> elliott: I don't know; I know some CPUs are
19:19:42 <ais523> but I'm not sure if that's true for very high-end CPUs
19:19:48 <elliott> ketchup flavour crisps are weird
19:19:48 <ais523> due to requiring a prohibitively expensive CPU
19:19:50 <Gregor> (Most salt and vinegar chips are more like vinegar and vinegar chips)
19:19:51 <ais523> for low-end ones, it makes sense
19:20:08 <elliott> Gregor: well, I wasn't so much agreeing
19:20:17 <elliott> you stated they fnarfed well but I have no sense of fnarf
19:20:25 <Fiora> from what I remember a lot of chips get simulated on really huge FPGA arrays, like, dozens or more
19:20:33 <ais523> Fiora: that would make sense
19:20:33 <boily> elliott: and? they taste good.
19:20:43 <ais523> although just wiring those together would be awkward
19:20:43 <Fiora> like I remember hearing that a prototype cortex A9 (which was a pretty small chip) was a cube of FPGAs hooked up to an SD card for cache
19:20:47 <Fiora> it ran at like 500khz
19:20:48 <ais523> you'd probably need to run them underclocked
19:20:51 <Bike> fuck i read "chips" as meaning pringles
19:20:53 <ais523> due to the length of the connecting wires
19:20:55 <elliott> Fiora: I'm imagining a room filled with FPGA s
19:20:59 <ais523> yeah, 500kHz sounds about right
19:21:00 <elliott> like old gigantic computers
19:21:00 <Fiora> oh yeah, they'd probably run like, 10000x slower
19:21:07 <Fiora> I think there's actually companies that sell boards of these
19:21:10 <kmc> i'm told nvidia has a refrigerator size box of FPGAs for prototyping graphics cards
19:21:12 <elliott> Bike: hahaha
19:21:17 <kmc> costs a few megabucks
19:21:27 <ais523> Bike: I was considering misreading that intentionally, but accidental is better
19:21:35 <Bike> did y'all see nvidia's GTC video with water reflections and shit
19:21:42 <elliott> unfortunately the sentence makes no sense with that reading
19:21:51 <kmc> Bike: no, link?
19:21:55 <Bike> sec
19:22:08 <ais523> shit sounds like a weird thing to simulate with a graphics card
19:22:19 <elliott> thanks ais523
19:22:19 <ais523> "look at all these pretty water reflections, also here is some shit"
19:22:33 <elliott> thais523
19:22:33 <Bike> http://www.youtube.com/watch?v=um6rMjwSNdU#t=255s
19:22:36 * impomatic has a refrigerator size box of real CPUs :-)
19:22:43 <Bike> I also like the end bit of his
19:23:01 <Bike> where he's like "we can dump billions of $ into R&D for games. now what if we used the products for something remotely useful?"
19:23:17 <ais523> Bike: we do that at our university
19:23:22 <ais523> I used to teach the course but don't any more
19:23:32 <Bike> the course on what
19:23:38 <Bike> taking money from games?
19:23:42 <elliott> doing remotely useful things
19:23:45 <elliott> ais523 isn't very good at it
19:23:48 <elliott> that's why he doesn't teach the course any more
19:23:49 <quintopia> did y'all see the PS3 demo of Kara. a nice retake on the classic accidental-singularity story
19:23:51 <Bike> oh
19:23:52 <ais523> it looks really incongruous seeing a technician going around a lab full of computers in a university
19:23:55 <ais523> with high-end gaming GPUs
19:23:58 <Bike> hehe
19:24:07 <Bike> yeah, that's kind of what he's saying, that GPUs are pretty useful otherwise
19:24:10 <ais523> in their original packaging, which is clearly aimed at gamers
19:24:18 <Bike> i mean, after showing off rendering crystalware getting shot in realtime
19:24:20 <ais523> it was the course on, mostly, GPU programming
19:25:19 <quintopia> or, well, accidental-self-awareness i should say
19:25:19 <Bike> oh, so like OpenCL or whatever?
19:25:19 <Fiora> http://hitechglobal.com/Boards/MultiFPGA.htm oh I think I found one
19:25:19 <Fiora> that looks cool
19:25:19 <ais523> Bike: yeah, we were using CUDA but OpenCL is the same sort of thing
19:26:08 <kmc> Bike: wow
19:27:11 <Bike> quintopia: 'and i am entirely at your disposal as a sexual partner' great
19:27:31 <Bike> kmc: cool, right?
19:27:49 <kmc> yeah
19:30:57 -!- monqy has joined.
19:31:29 <elliott> Bike: what is that
19:31:46 <Bike> what is what
19:32:06 <elliott> i meant re quintopia
19:32:14 <Bike> oh, the kara thing
19:32:17 <Bike> http://www.youtube.com/watch?v=lhoYLp8CtXI
19:32:25 <elliott> do I want to click
19:33:10 -!- linuxnewb2 has quit (Read error: Operation timed out).
19:33:45 <Bike> yeah it's fine
19:33:51 <Bike> just a short film
19:36:16 -!- c00kiemon5ter has joined.
19:36:19 -!- linuxnewb2 has joined.
19:37:40 -!- sebbu2 has quit (Ping timeout: 272 seconds).
19:40:40 -!- AnotherTest has joined.
19:40:45 <AnotherTest> Hello
19:40:45 <lambdabot> AnotherTest: You have 1 new message. '/msg lambdabot @messages' to read it.
19:41:05 <olsner> hmm, leonard nemoy ends all his tweets with "LLAP"
19:41:22 <Slereah_> lick dong and grope her?
19:41:33 <elliott> what
19:41:41 <Slereah_> LIVE LONG AND PROSPER
19:41:42 <AnotherTest> mroman: Alright, thanks. I'll do that once I got the interpreter working...
19:41:58 -!- augur has quit (Remote host closed the connection).
19:43:49 <olsner> I wonder if the twitter form of that should be #livelong #prosper
19:44:28 <ais523> you'd only want one hashtag, really
19:44:33 <Slereah_> Prosper? I hardly know her!
19:44:40 <ais523> btw, are hashtags are inspired by IRC channels?
19:44:45 <ais523> they have asiilar purpose
19:44:48 <ais523> *a similar
19:45:46 <AnotherTest> Hashtags are like macro's in C++: don't use them
19:45:55 <AnotherTest> *macros
19:46:18 * ais523 searches #define on Twitter
19:46:26 <boily> ~duck #define
19:46:27 <cuttlefish> --- No relevant information
19:46:35 <ais523> why does it not have a search page
19:46:41 <ais523> its homepage is a login screen
19:46:42 -!- c00kiemon5ter has quit (Remote host closed the connection).
19:46:55 -!- c00kiemon5ter has joined.
19:47:10 <tswett> ais523: the Wikipedia article implies that htey are.
19:47:15 <AnotherTest> #if probably has a higher chance of existing than #define
19:47:42 <ais523> AnotherTest: yeah but #define does macros
19:48:24 <AnotherTest> ais523: #if checks if a macro is defined? That's using macros too right?
19:48:40 <ais523> AnotherTest: no, #ifdef does that
19:48:45 -!- sebbu has joined.
19:48:49 <boily> #pragmas all the way down!
19:48:51 <tswett> ":info:build ld:ld : warningwarning: directory '/lib' following -L not: directory '/ found"
19:48:51 <ais523> #if checks the truth value of a boolean expression
19:49:06 <ais523> tswett: using unbuffered output?
19:49:09 <tswett> I hate it when ld ld gives warningwarnings.
19:49:16 <tswett> ais523: I have no idea.
19:49:31 <tswett> I guess that sounds right.
19:49:46 <ais523> what were the original interleaved messages?
19:49:53 <AnotherTest> ais523: alright
19:49:56 <AnotherTest> that's true
19:53:14 -!- ogrom has joined.
19:59:10 <Gregor> #howdoihashtag
20:01:55 <boily> you need a friend (preferably a good one, but not too good), a tennis racket, and a few pints of kerosene.
20:02:02 -!- Taneb has joined.
20:05:18 <olsner> boily: and gerbils
20:07:35 <quintopia> boily: am i your friend (good, but not too good)?
20:07:35 <tromp_> > 2010/3
20:07:36 <lambdabot> 670.0
20:09:36 <boily> quintopia: you are.
20:10:17 <ais523> is kerosene the same thing in the US as it is in the UK?
20:11:12 <boily> probably. for me it's what goes in airplanes.
20:11:23 <olsner> apparently kerosene is the american term, according to wikipedia you might call it paraffin
20:11:24 <quintopia> ais523: it is the most-efficient oil derivative in terms of power
20:11:50 <ais523> olsner: oh right
20:12:50 <olsner> in swedish it's "fotogen"
20:14:28 <ais523> something that generates photos?
20:14:38 <quintopia> that looks like something that would mean "generating light"
20:14:54 <ais523> hmm, indeed
20:15:05 <ais523> paraffin lamps used to be common
20:15:14 <quintopia> paraffin means wax to me
20:15:14 <olsner> it could be swedish for the photo gene, but I think it comes from its use in lamps
20:15:33 <quintopia> yes. thanks to standard oil :)
20:16:03 <boily> paraffin means that cheap stuff used in cheap chocolate.
20:16:13 <quintopia> and...who was it? carnegie was steel, vanderbilt was trains, ....damn i'm so bad at history
20:16:43 <quintopia> ah rockefeller
20:16:44 <quintopia> of course
20:16:45 <olsner> cheap chocolate is made from kerosene?
20:17:04 <quintopia> rockefeller is responsible for kerosene's use in lamps
20:18:39 -!- epicmonkey has joined.
20:18:54 <boily> olsner: http://homecooking.about.com/od/cookingfaqs/f/faqparaffin.htm
20:19:55 <olsner> the toxicity section for kerosene is really disappointing though
20:20:15 <olsner> ingestion is "harmful or fatal", end of story
20:20:25 <boily> meh. disappointing indeed.
20:20:29 <ais523> olsner: probably not enough people have tried to have reliable data
20:20:56 <boily> where is my writhing in furious agony? toxic substances nowadays...
20:21:24 <ais523> hmm… if that's the case, I'm sort-of glad we don't have reliable data
20:22:05 <quintopia> well, i'm sure we could get it
20:22:34 <quintopia> all we have to do is build a time machine and go back in time to the 1930s and tell Goebbels and Goering that we really need that data
20:22:57 <quintopia> really easy...except the first part
20:23:03 <elliott> finally, "sure" and "time travel", together in the same paragraph
20:23:04 <olsner> hmm, where's oklopol when we need him to sample hydrocarbons
20:23:19 <ais523> olsner: hopefully not where you can reach him
20:23:30 <ais523> oklopol is too valuable to be wasted on hydrocarbon experiments
20:23:43 <quintopia> IT'S PERFECTLY SAFE. IT'S MADE FROM THE SAME STUFF YOUR CELLS ARE MADE FROM.
20:24:01 <olsner> `quote petrol
20:24:03 <HackEgo> 352) <oklofok> what would you ever need petrol for <oklofok> newsflash: it doesn't actually taste that good \ 353) [on petrol] <ais523> oklofok: it's actually poisonous, so I advise against drinking it <Phantom_Hoover> ais523, also contains benzene, my carcinogen of choice.
20:24:15 <ais523> `pastlog petrol
20:24:39 <HackEgo> 2007-09-24.txt:09:47:50: <immibis> why are you making a decaf espresso orange juice with an infinite number of sugars in a petrol tanker with last year's milk for #arianne?
20:24:55 <ais523> we should `pastlog more often :)
20:25:03 <impomatic> A guy around here keeps getting fined for drinking petrol straight from the pump.
20:25:07 -!- FreeFull has quit (Ping timeout: 248 seconds).
20:25:14 <ais523> impomatic: what?
20:25:16 <olsner> what does pastlog do?
20:25:24 <quintopia> ais523: does it search the logs in chronological order to find the oldest reference?
20:25:27 <ais523> olsner: a random line containing the word you give that isn't from today
20:25:30 -!- augur has joined.
20:25:33 <olsner> ais523: cool
20:25:35 <quintopia> oh
20:25:37 <olsner> `pastlog gasoline
20:25:51 <boily> `pastlog chicken
20:25:52 <ais523> it has several uses, but plugging random words into it is a good one
20:25:54 <HackEgo> 2012-12-06.txt:01:09:16: <gasoline> no thanks HackEgo
20:25:58 <quintopia> `pastlog twilight sparkle
20:25:59 <HackEgo> 2010-12-28.txt:04:39:01: <variable> Quadrescence, chicken
20:26:06 <HackEgo> 2012-03-23.txt:01:15:32: <RocketJSquirrel> KAPLA, TWILIGHT SPARKLE, KAPLA
20:26:19 <ais523> `pastlog acciacatura
20:26:24 <ais523> maybe I spelt that wrong
20:26:32 <olsner> `pastlog pistacchio
20:26:35 <HackEgo> 2008-12-05.txt:16:50:32: <ais523> so is acciacatura
20:26:41 <HackEgo> No output.
20:26:43 <quintopia> `pastlog heisenbug
20:26:45 <ais523> maybe I spelt that wrong then, too
20:26:51 <HackEgo> 2010-03-27.txt:23:28:02: <rapido> heisenbug! now you are talking my way!
20:26:52 -!- FreeFull has joined.
20:26:56 <olsner> `pastlog pop-tart
20:27:06 <HackEgo> 2011-09-12.txt:06:49:02: <CakeProphet> though it's buttered toast and not a pop-tart
20:27:06 <quintopia> `pastlog spandex
20:27:15 <HackEgo> No output.
20:27:23 <quintopia> `pastlog spanking
20:27:31 <HackEgo> 2011-01-22.txt:23:09:51: <oerjan> <nddrylliog> oerjan: are you into leather? <-- er what, no. is that because i approved of your spanking comment?
20:27:34 <ais523> `pastlog Emplosions
20:27:47 <HackEgo> 2008-09-15.txt:12:06:22: <Slereah_> Silly Emplosions looks a little too silly.
20:28:06 <ais523> `pastlog quarantine
20:28:10 <quintopia> `pastlog bondage
20:28:13 <HackEgo> 2011-10-04.txt:04:32:37: * oerjan puts Sgeo|web in shouting disease quarantine
20:28:18 <Vorpal> are you trying out weird words?
20:28:18 <HackEgo> 2011-07-20.txt:04:43:49: <elliott> funny, python feels more like bondage and discipline
20:28:21 <Vorpal> or what
20:28:30 <elliott> i dont remember saying that
20:28:34 <ais523> Vorpal: pretty much
20:28:39 <quintopia> `pastlog perl
20:28:40 <ais523> it's the "think of a word, plug it into `pastlog" game
20:28:50 <elliott> is that a game now
20:28:54 <Vorpal> elliott, was that in approval of python or not? Hey I don't know your tastes so I better ask..
20:28:56 <elliott> `pastlog acquiesce
20:28:58 <ais523> it has been at least once
20:29:00 <HackEgo> 2009-05-12.txt:03:01:18: <oerjan> !addinterp slashes perl http://oerjan.nvg.org/esoteric/slashes.pl
20:29:03 <boily> hm. sadly ørjan isn't there to ask if, indeed, he is into leather.
20:29:06 <HackEgo> No output.
20:29:10 <elliott> !
20:29:10 <ais523> Vorpal: is it time for the usual "elliott is underage" joke?
20:29:16 <olsner> we should make it so you don't even have to put in a word
20:29:18 <elliott> guys I'm not underage any more
20:29:21 -!- AnotherTest has quit (Quit: Leaving.).
20:29:25 <boily> elliott: you sure?
20:29:30 <olsner> then we can use it as the new five times `quote game
20:29:31 <elliott> boily: good question
20:29:33 <quintopia> olsner: you mean pull a random word from dictionary?
20:29:33 <Vorpal> ais523, not exactly. General "sexual orientation" joke I think
20:29:42 <ais523> olsner: that's just `log, but putting in random words gives you better lines
20:29:43 <elliott> `pastlog archaeology
20:29:45 <olsner> quintopia: or a random line from the logs more likely
20:29:51 <HackEgo> 2010-10-30.txt:21:43:02: <archaeology> zzo38: ...Good luck with that, I think they were joking ;P
20:29:51 <olsner> `log
20:29:52 <quintopia> `log
20:29:54 <HackEgo> 2010-05-11.txt:21:55:29: <calamari> nah I just have a simple webpage
20:29:54 <HackEgo> 2004-06-27.txt:08:00:00: -!- clog has joined #esoteric.
20:30:06 <olsner> `pastlog cvs
20:30:09 <quintopia> `pastlog quibble
20:30:15 <ais523> it's worrying me how often the random words turn out to be nicks
20:30:17 <ais523> `pastlog scarf
20:30:17 <HackEgo> 2005-11-24.txt:13:06:59: <lindi-> let's see if i can retrieve source of jogl-demos with http://iki.fi/lindi/cvsweb-dump.pl
20:30:18 <quintopia> `pastlog harry potter
20:30:18 <HackEgo> 2011-01-09.txt:23:53:32: <Phantom__Hoover> pikhq, well, her quibble was more that I had used it between sentences that weren't very logically connected.
20:30:20 <Vorpal> `log aardvark
20:30:32 <olsner> `pastlog foible
20:30:35 <elliott> `pastlog epimorphism
20:30:39 <Vorpal> nothing?
20:30:44 <elliott> `pastlog quanta
20:30:47 <Vorpal> `pastlog aardvark
20:30:48 <quintopia> `pastlog die die die
20:30:51 <HackEgo> No output.
20:30:53 <HackEgo> No output.
20:30:53 <boily> `pastlog wil wheaton
20:30:55 <HackEgo> No output.
20:31:03 <Vorpal> I think it is pretty lagged
20:31:09 <boily> `pastlog `pastlog
20:31:10 <HackEgo> No output.
20:31:12 <HackEgo> No output.
20:31:12 <quintopia> it takes a while to search logs
20:31:15 <elliott> it's timing out because 5000 queries
20:31:23 <ais523> /over/ 5000
20:31:26 <HackEgo> No output.
20:31:26 * boily innocently whistles
20:31:27 <Vorpal> quintopia, should use a more efficient representation then
20:31:30 <HackEgo> No output.
20:31:35 <Vorpal> ais523, not over 9000, so we are all good
20:31:41 <HackEgo> No output.
20:31:41 <HackEgo> No output.
20:31:42 <quintopia> Vorpal: then you rewrite it
20:31:44 <boily> it needs a SQL database.
20:31:44 <olsner> Vorpal: more efficient than flat files of plain text? unpossible!
20:31:47 <HackEgo> No output.
20:31:50 <elliott> `pastlog asterism
20:31:55 <ais523> remind me never to try humour in the presence of Vorpal
20:31:57 <boily> `pastlog No output.
20:31:57 <quintopia> `pastlog harry potter
20:31:59 <Vorpal> it needs a full text search index
20:32:05 <ais523> I think you may have broken it
20:32:07 <HackEgo> 2009-03-30.txt:19:59:14: <ehird> ASTERISM
20:32:13 <olsner> `pastlog unpossible
20:32:13 <HackEgo> 2010-03-02.txt:13:37:43: <HackEgo> No output.
20:32:15 <HackEgo> 2011-02-27.txt:00:51:29: <oklopol> i read the last harry potter like umm on sunday
20:32:18 <boily> it's catching on!
20:32:21 <Vorpal> `pastlog aardvark
20:32:21 <ais523> oh no, it's just badly out of order
20:32:23 <HackEgo> 2009-05-12.txt:16:14:29: <asiekierka> ehird: Unpossible
20:32:29 <elliott> `pastlog aleatoric
20:32:30 <HackEgo> 2010-07-11.txt:05:48:02: <Gregor> Aardvark Wagon
20:32:32 <ais523> `pastlog automagical
20:32:36 <olsner> `pastlog alimentary
20:32:45 <elliott> lots of a words
20:32:45 <HackEgo> No output.
20:32:46 <HackEgo> 2011-01-25.txt:23:33:35: <olsner> it translates the PATH automagically
20:32:48 <HackEgo> No output.
20:32:54 <Vorpal> ais523, is it just me, or is aardvark just a really funny word?
20:32:54 <boily> `pastlog banana
20:32:57 <quintopia> ais523: it's in order
20:32:58 <boily> `pastlog beautiful
20:33:03 <HackEgo> 2008-02-10.txt:19:25:28: <ehird`> => "abcbananaasd222di"
20:33:07 <HackEgo> 2010-07-15.txt:00:13:12: <aliseiphone> pikhq: I have a beautifully typeset The Metamorphosis.
20:33:13 <boily> `pastlog bisque
20:33:18 <elliott> `pastlog abaci
20:33:20 <boily> `pastlog bezoar
20:33:24 <HackEgo> No output.
20:33:25 <ais523> elliott: btw, hilarious moment from #nethack: <rchase, directed at ais523> listen, if you want to edit ESR's work... go right ahead
20:33:26 <Vorpal> elliott, "<HackEgo> 2010-07-15.txt:00:13:12: <aliseiphone> pikhq: I have a beautifully typeset The Metamorphosis." <-- really?
20:33:27 <boily> `pastlog burundi
20:33:28 <Vorpal> why
20:33:30 <HackEgo> 2012-11-11.txt:22:51:51: <pikhq_> Traditionally, Chinese abacii were hexadecimal.
20:33:32 <HackEgo> 2012-11-02.txt:22:35:29: <olsner> bezoar
20:33:34 <elliott> boily: are you feeding in your entire dictionary
20:33:36 <HackEgo> No output.
20:33:49 <boily> elliott: covering words in «b».
20:33:49 <ais523> `ls /usr/share/dict
20:33:51 <HackEgo> No output.
20:33:51 <elliott> ais523: not about C-INTERCAL, I presume?
20:33:51 <olsner> hmm, I've said bezoar? I wonder why I did that
20:33:55 -!- zzo38 has joined.
20:33:59 -!- oerjan has joined.
20:33:59 <ais523> elliott: yeah, it was about the NetHack guidebook
20:34:04 <boily> olsner: bezoar got a hit? wooooah.
20:34:09 <ais523> `pastlog zzo39
20:34:14 <quintopia> `pastlog corundum
20:34:21 <HackEgo> 2012-02-10.txt:22:29:14: <HackEgo> zzo39? ¯\(°_o)/¯
20:34:22 <quintopia> `pastlog bitcoin
20:34:27 <ais523> `pastlog django
20:34:27 <HackEgo> 2008-01-11.txt:11:01:46: <Corun> As in an abbreviation of Corundum, :-)
20:34:29 <ais523> (to annoy olsner)
20:34:32 <HackEgo> 2011-04-29.txt:17:47:50: <ais523> the way it works is, if anyone manages to produce a history of every transaction ever, it becomes official, and they get a small bitcoin reward for doing os
20:34:35 <HackEgo> 2011-04-07.txt:21:40:46: <HackEgo> 353) <olsner> django is named after a person? <olsner> thought it would be a giraffe or something
20:34:55 <boily> `pastlog hovercraft
20:35:05 <HackEgo> 2011-11-20.txt:13:17:09: <elliott_> Hi Taneb|Hovercraft.
20:35:08 <quintopia> `pastlog eels
20:35:10 <elliott> `pastlog ais52[^3]
20:35:19 <ais523> `pastlog ais532
20:35:26 <boily> `pastlog zebra
20:35:30 <boily> `pastlog lion
20:35:33 <olsner> ais523: speaking of django, there's a new movie out called something with django ... I expect it to be about web development
20:35:33 <boily> `pastlog elephant
20:35:34 <quintopia> tooo many
20:35:37 <ais523> elliott: I'm pretty sure there have been some ais524 sightings
20:35:38 <quintopia> stoooooooop
20:35:40 <HackEgo> No output.
20:35:43 <quintopia> :(
20:35:43 <HackEgo> No output.
20:35:52 <HackEgo> No output.
20:35:52 <elliott> `pastlog tangent
20:35:54 <quintopia> `pastlog eels
20:35:55 <ais523> olsner: it doesn't look like that from the adverts, but admittedly I haven't watched it
20:36:03 <HackEgo> No output.
20:36:06 <olsner> `pastlog ankeria
20:36:08 <HackEgo> No output.
20:36:09 <HackEgo> No output.
20:36:13 <quintopia> `pastlog eels
20:36:19 <HackEgo> 2009-02-28.txt:21:25:55: <kerlo> Ah, but you see, intelligence is all about approximating the universe, and what better approximation to use than a tangent line?
20:36:22 <HackEgo> 2011-09-26.txt:12:54:07: <fizzie> A mantra: "tekken tekken virtua fighter / oh my brain feels so much lighter".
20:36:27 <quintopia> lol
20:36:28 <HackEgo> 2012-08-22.txt:00:12:24: <kmc> minun ilmatyynyalus on täynnä ankeriaita
20:36:30 <olsner> ais523: me neither
20:36:30 <HackEgo> 2010-09-12.txt:04:25:57: <alise> Sometimes it feels to me as if I'm just being used.
20:36:39 <boily> `pastlog é
20:36:46 <quintopia> `pastlog \<eels
20:36:47 <HackEgo> 2009-10-31.txt:19:52:26: <ehird> touché
20:36:53 <ais523> huh, who was kerlo?
20:36:55 <HackEgo> No output.
20:36:55 <ais523> I read that as kerio
20:37:03 <ais523> and thought "whoa, kerio was in #esoteric?"
20:37:12 <olsner> I remember the name kerlo
20:37:14 <boily> kmc's been speaking in the black tongue of finlandor.
20:37:18 <quintopia> ais523: make it search for the word eels so that feels doesn't match
20:37:24 <ais523> `pastlog \beels
20:37:25 <oerjan> kerlo was tswett and tusho was elliott, or the other way around
20:37:30 <ais523> oh right
20:37:33 <HackEgo> 2010-10-14.txt:04:50:35: <HackEgo> My hovercraft is full of eels.
20:37:35 <ais523> it was a lojban name, or something
20:37:44 <ais523> quintopia: there you go
20:37:47 <quintopia> thx
20:38:07 <elliott> and oerjan was ais523
20:38:29 <elliott> imo this game is boring
20:38:32 <tswett> Yeah, I was kerlo.
20:38:36 <ais523> yeah, it's running out of steam
20:38:52 <ais523> sadly we don't have a /usr/share/dict/words
20:38:57 <ais523> to generate random words automatically
20:38:59 <tswett> Wow, that was almost four years ago.
20:39:51 <quintopia> `pastlog pluto
20:40:00 <HackEgo> 2009-09-03.txt:18:34:21: <fizzie> It's also a bit further away, though, so I think it might have less of a gravitational influence. Still, at perihelion it seems to be closer than Pluto at aphelion.
20:40:25 <quintopia> i wonder where zzo38 is
20:40:30 <ais523> quintopia: here, I think
20:40:40 <ais523> alternatively,
20:40:42 <ais523> `quote at Canada
20:40:43 <oerjan> `words
20:40:44 <HackEgo> 374) <oerjan> as i was filled with zzo38 mystery at the moment i saw <zzo38> quintopia: I am at Canada.
20:40:50 <HackEgo> founda
20:40:55 <boily> at?
20:41:12 <quintopia> boily: you didn't know he was at Canada?
20:41:18 <quintopia> it's pretty common knowledge here now
20:41:23 <impomatic> ais523: can't find a reference online... It was in one of the local paper. He would just turn up at the petrol station, slash the pipe and drink direct from the pump.
20:41:32 <ais523> impomatic: and is still alive?
20:41:39 <ais523> presumably people had to keep stopping him
20:41:41 <oerjan> `words 50
20:41:45 <HackEgo> bay cir ruf mirb morao incus orgonnat belle maile halshin possim especita bottoa prespe fait uncl sete oscordeclaship willin runt hijk eing ohi bir jaul
20:41:56 <oerjan> who needs /usr/dict/words
20:41:56 <boily> quintopia: you and your real, tangible world! don't you forget some of us here are not as solid and material as you are!
20:42:04 <ais523> the problem with `words is that they tend not to have been spoken
20:42:05 <oerjan> *+/share
20:42:11 <ais523> boily: enjoy being locked in your matrix of solidity!
20:43:30 <oerjan> `pastlog wensleydale
20:43:38 <HackEgo> No output.
20:43:41 <oerjan> `pastlog wensleydale
20:43:44 * ais523 wonders if boily was thinking of that reference when he said that
20:43:50 <HackEgo> No output.
20:44:01 <ais523> hmm, I thought of another command by analogy to `list
20:44:04 <ais523> not sure of the name yet
20:44:05 <ais523> if you use it
20:44:11 <ais523> all it does is tell you if it's been used recently
20:44:16 <oerjan> Gregor: you know it would be very helpful if HackEgo gave a different response on timeout than on ordinary lack of output
20:46:23 <olsner> ooh, c++: bool* board[1][1]; board[size][size] = { nullptr };
20:46:26 <olsner> (size is 5, btw)
20:47:45 <ais523> is this something to do with bool acting weird?
20:47:57 <olsner> no, it's just really bad code
20:48:09 <olsner> the one who wrote that wants to know why it's not working
20:48:49 <zzo38> When I have bagels I will cut a notch in it. Do you?
20:48:58 <olsner> actually, might as well give you all the code: http://ideone.com/W6Ev77
20:49:52 <ais523> olsner: oh
20:50:01 <ais523> I thought you meant that that somehow assigned 5 to size
20:50:04 <ais523> just in that bit of code there
20:50:14 <ais523> and as it's C++, I thought that was plausible
20:52:11 <boily> ais523: back from coffee. no, I wasn't thinking.
20:52:51 <impomatic> ais523: still alive as far as I know. Couldn't find the article online, but found this instead http://www.telegraph.co.uk/news/newstopics/howaboutthat/5877824/Boy-drinks-petrol-to-become-Transformer.html
20:53:34 <ais523> impomatic: somehow I don't want to know :)
20:53:51 <Gregor> <oerjan> Gregor: you know it would be very helpful if HackEgo gave a different response on timeout than on ordinary lack of output // TOO BAD
20:55:39 <ais523> <Slashdot> U.S. researchers have succeeded in re-animating a dead sparrow.
20:55:51 <ais523> apparently by fitting a robot inside it
20:56:13 <ais523> it got destroyed by some actual sparrows
20:58:06 <boily> ais523: that's new. didn't know jack about that.
20:58:25 <ais523> boily: pun attempt?
20:58:46 * boily silently drinks his coffee. very silently.
21:07:54 <oerjan> Gregor: it's _your_ resources that get used because i redo commands when i'm not sure if they really should have no output. hth.
21:09:27 -!- sebbu has quit (Ping timeout: 260 seconds).
21:09:39 <oerjan> (admittedly i guess i misuse your resources more for other reasons.)
21:11:18 -!- sebbu has joined.
21:11:18 -!- sebbu has quit (Changing host).
21:11:18 -!- sebbu has joined.
21:20:21 <oerjan> <Taneb> I'm translating it into C <-- what, but you need bignums...
21:20:51 <olsner> gmp has bignums for C
21:21:05 -!- augur has quit (Remote host closed the connection).
21:21:13 <olsner> big gnomes
21:21:16 <Taneb> Yeah, I'm using gmp
21:21:19 <oerjan> scary
21:21:37 <Taneb> In fact, I've done it all except for run' and parseSK
21:23:42 <olsner> are you making an esolang?
21:24:08 <Taneb> Not right now, no
21:24:26 <olsner> what else are you doing with gmp, run and parseSK?
21:24:37 <Taneb> Ridiculous SK-calculus interpreter
21:25:31 <Bike> how do you even make a SK calc interpreter ridiculous
21:25:57 <Taneb> By encoding it into positive integers first
21:26:01 <oerjan> Bike: http://hpaste.org/83052 is a demonstration hth
21:26:18 <Bike> oh i have a textbook that does that
21:26:44 <Taneb> In the same way as me?
21:26:50 <Bike> haha no
21:26:57 <Bike> bitstrings ofc
21:27:18 <Taneb> What's cool about mine is it makes literally no assumptions about how integers are implemented
21:27:22 -!- augur has joined.
21:27:25 -!- monqy has quit (Quit: hello).
21:27:28 <elliott> ??
21:27:39 <Taneb> As in, it doesn't have to be bitstrings
21:27:54 <Taneb> Could be roman numerals for all I care
21:27:59 <olsner> using the bits doesn't mean the implementation of integer has to be anything related to bitstrings
21:28:10 <Bike> what he said.
21:28:18 <Taneb> Ah, true
21:28:41 <Bike> (especially considering that the bitstrings were implemented as linked lists of SK combinators)
21:29:27 <Bike> i feel like you should use godel encoding
21:29:31 <Bike> for maximum stupid mathiness
21:29:51 <ais523> Bike: isn't that just "put the program in a file"?
21:29:56 <Taneb> Bike, I think I am
21:29:58 <ais523> we use gödel encoding all the time
21:30:03 <ais523> what does eval() do, for instance?
21:30:09 <ais523> an argument could be made that we should use it less
21:30:18 <elliott> well it refers to a _specific_ encoding.
21:30:24 <elliott> wait I should be letting oerjan do this for me
21:30:35 <Bike> No, I mean the thing with primes.
21:30:42 <ais523> hmm, I thought the original proof didn't care about the specifics of the encoding
21:30:44 <ais523> Bike: hmm
21:30:51 <Bike> It doesn't, i don't think, but it's what he used?
21:31:02 <Bike> [4,7,3] = 2^4 + 3^7 + 5^3 and so on
21:31:36 <Bike> 2328. nice and inefficient
21:32:12 <Taneb> Wouldn't it be 2^4 times 3^7 times 5^3?
21:32:20 <Bike> oh yes
21:32:22 <Bike> durr.
21:32:25 <Taneb> > 2^4 * 3^7 * 5^3
21:32:26 <lambdabot> 4374000
21:32:49 <Bike> actually i think the textbook might have used cantor pairing now that i think about it
21:32:59 <Bike> maybe i should read it again and do more exercises to fix my incompetence a bit
21:33:45 <Bike> btw i like that you mentioned implementation dependence after clarifying the C library you had to be using :3
21:34:03 <oerjan> <elliott> wait I should be letting oerjan do this for me <-- but i'm lazy and also logreading
21:34:58 <oerjan> i think i mentioned my idea of using a combination of bitstrings and fibonacci base?
21:35:05 <oerjan> (long ago)
21:35:50 <oerjan> basically, an arbitrary number in binary can be split into a list of numbers in fibonacci base separated by 1's. and this is a bijection.
21:36:43 <Bike> is that a prefix code
21:36:46 <Taneb> Bike, algorithm isn't program
21:36:54 -!- DHeadshot has joined.
21:37:12 <oerjan> Bike: well it's meant to be a bijection between naturals and finite length lists of naturals
21:37:14 <Taneb> Nevermind the fact that in both implementations that currently exist are entirely dependent the same implementation
21:37:29 <Bike> Taneb: yes and C doesn't have integers anyway, i just thought it was funny
21:37:32 <oerjan> there may have been subtle details about it.
21:38:20 <Bike> i don't think very many algorithms particularly care about how integers are represented, though
21:38:25 <Bike> so it seems like a weird thing to have said
21:38:29 -!- augur has quit (Remote host closed the connection).
21:38:46 <ais523> Bike: xor swap?
21:38:56 <Fiora> hmm. radix sort?
21:39:03 <Taneb> Bike, I mean, I'm not using bitstrings at all
21:39:22 <Bike> Taneb: but you can use bitstrings regardless of how integers are represented.
21:39:39 <Taneb> True
21:39:49 <Bike> ais523: what do you need for that?
21:40:07 <Bike> wikipedia even goes through it with linear operator matrices, pff
21:40:34 <ais523> Bike: well you need things to be represented as bits to xor swap them
21:40:51 <Bike> why
21:40:57 <Bike> you can define bitwise xor on integers
21:41:05 <Bike> same with bases, fiora
21:41:52 -!- augur has joined.
21:41:59 <Fiora> I guess so
21:42:10 <Bike> i mean hey it might be slow as hell
21:42:14 <Bike> but this is math! who cares right
21:42:28 <olsner> theory has no
21:42:40 <olsner> something something
21:42:45 <elliott> agreed
21:42:46 <olsner> not sure what went after that
21:42:53 <Bike> elegantly stated, olsner
21:42:58 <elliott> something something, olsner
21:43:33 <olsner> something something.
21:43:51 <Fiora> Bike: maybe algorithmic complexity? like X algorithm implemented with O(f(n)) requires some integer representation?
21:43:52 <elliott> this is what this channel is all about. intellectual discourse.
21:44:07 <Bike> Fiora: oh sure
21:44:43 <Bike> Fiora: long multiplication for an easy example. that's gonna be pretty fucking slow if you have to convert out of modular residues first
21:44:43 -!- lambdabot has quit (Read error: Connection reset by peer).
21:44:49 <ais523> Bike: well it wouldn't be xor swap if you went and simulated the xor
21:44:57 <Bike> "simulated"
21:45:01 <Bike> who's simulating anything
21:45:01 <ais523> because the point of xor swap is the number of instructions it requires
21:45:23 <Bike> "that's a program, not an algorithm"
21:45:26 <ais523> Bike: I guess the point is that the algorithm is defined in terms of what instructions it uses
21:45:28 <ais523> hmm
21:45:32 <ais523> yeah, that seems possible
21:45:39 <ais523> except it's a program that exists in many assembly languages
21:45:59 <oerjan> <Bike> you can define bitwise xor on integers <-- conway's nimber addition extends that even to transfinite ordinals
21:46:05 -!- augur has quit (Remote host closed the connection).
21:46:07 <ais523> so it's a bit more general than just a single program
21:46:10 <Bike> i've always wanted to xor swap transfinite ordinals
21:46:10 <kmc> haha yes
21:46:22 * ais523 wonders what kmc is agreeing with
21:46:22 <kmc> `quote <Bike> i've always wanted to xor swap transfinite ordinals
21:46:23 <elliott> Bike: I smell an esolang
21:46:26 <HackEgo> No output.
21:46:28 <elliott> kmc: addquote
21:46:28 <kmc> `addquote <Bike> i've always wanted to xor swap transfinite ordinals
21:46:33 <kmc> yeah i remember
21:46:34 <HackEgo> 973) <Bike> i've always wanted to xor swap transfinite ordinals
21:46:44 <Bike> so first i've got to do the linear operator thing and now this
21:46:56 <ais523> Bike: linear as in linear logic?
21:47:04 <Bike> no as in linear operators
21:47:15 -!- impomatic has quit (Ping timeout: 276 seconds).
21:47:21 <olsner> oerjan: what's conway's nimber addition?
21:47:38 <Bike> i was really tired a few nights ago and was talking about a language where the only functions are infinite matrices
21:47:46 <Bike> and elliott commanded me to make an esolang
21:47:49 <Bike> and i can't like, disobey
21:47:51 <Bike> olsner: https://en.wikipedia.org/wiki/File:Z2%5E4;_Cayley_table;_binary.svg hth
21:48:17 <kmc> you can compute with transfinite ordinals to some degree right?
21:48:24 <ais523> elliott: is it common to have a finite supply of files?
21:48:37 <kmc> data Ordinal = Zero | Succ Ordinal | Omega | some other things
21:48:40 <kmc> how far does that get you
21:48:40 <ais523> my situation at work is: I need to edit some files, and the webserver needs to be able to read them
21:48:42 <Bike> kmc: i think there are even software packages for fuckin' with 'em
21:48:51 -!- lambdabot has joined.
21:48:55 <ais523> but I need to not be able to read arbitrary files that the webserver can read
21:49:04 <ais523> so at the moment, the files have my user, and its group
21:49:14 <ais523> and group read permissions
21:49:24 <ais523> this allows me to modify them, but not to create new files
21:49:24 <oerjan> olsner: oh hm it's not actually conway's, he just generalized them to games and surreal numbers. http://en.wikipedia.org/wiki/Nimber
21:50:03 * ais523 has got into the habit of M-x set-variable backup-by-copying t
21:50:34 <Bike> kmc: presumably you can get up to church-kleene?
21:53:13 <oerjan> <kmc> you can compute with transfinite ordinals to some degree right? <-- yep, see Cantor normal form
21:53:31 <oerjan> which is like base omega notation
21:54:21 -!- nooodl has joined.
21:55:16 -!- TeruFSX has joined.
21:55:44 <oerjan> http://en.wikipedia.org/wiki/Cantor_normal_form#Cantor_normal_form
21:56:47 <olsner> `pastlog something.*something
21:56:49 <Bike> you need to use ordinals as exponents in their own representation some times? awesome
21:56:57 <HackEgo> 2010-05-23.txt:21:55:22: <uorygl> And the idea of wanting something makes me want to do something else. :P
21:57:16 <kmc> http://upload.wikimedia.org/math/3/3/d/33d48c263ce795ad60a4505f58860913.png
21:57:19 <kmc> my new favorite number
21:57:34 <Bike> damn straight
21:57:42 <kmc> so this is basically base ω?
21:57:52 <oerjan> Bike: yep, also you can have omega^x = x which gives you the epsilon ordinals (which you then need to handle separately to distinguish them)
21:58:09 <Bike> kmc: except you have e.g. epsilon_zero = omega^epsilon_zero making things a bit trickier
21:58:37 <oerjan> Bike: also this notation is how you prove goodstein sequences terminate
21:58:51 <Bike> yeah i suppose this is a bit more than peano eh
21:58:58 -!- Taneb has quit (Quit: Leaving).
21:59:08 <Bike> did remind me of hereditary base notation
21:59:13 <oerjan> (peano cannot prove that the epsilons exist)
21:59:18 <Bike> right
22:00:00 <Bike> if only there was some way to define undefinable ordinals.............
22:00:11 <coppro> ...
22:01:26 -!- augur has joined.
22:02:11 <oerjan> Bike: i think i linked this last time we discussed such things http://en.wikipedia.org/wiki/Large_countable_ordinal
22:02:19 <Bike> already there~
22:03:10 <oerjan> Bike: i think the problem with reaching church-kleene is you get some kind of analogy to the halting problem: you have enough notations but you cannot prove any given notation gives an ordinal
22:03:23 <Bike> sucks
22:04:03 <olsner> (given that there are almost 7 more seasons of voyager, I suspect that *maybe* they don't all get home in episode 7)
22:04:28 <Bike> the other seven seasons just consist of wide-angle shots of the skies where voyager would have been
22:04:31 <oerjan> hm i guess the introduction mentions that
22:05:08 <Sgeo_> `olis
22:05:09 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: olis: not found
22:05:10 <Sgeo_> `oliss
22:05:11 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: oliss: not found
22:05:12 <Sgeo_> `olist
22:05:13 <HackEgo> shachaf oerjan Sgeo
22:05:22 <Bike> "Larger and larger ordinals can be defined, but they become more and more difficult to describe." i love math
22:05:27 <oerjan> olsner: now i vaguely recall someone writing about the idea of publishing a book where they didn't bother to fill in all the pages
22:07:01 <ais523> you know what's annoying? Emacs versions too old to have M-x visual-line-mode
22:07:13 <ais523> (I don't mind versions sufficiently old that it isn't on by default, because I can just turn it on)
22:07:19 <ais523> it makes navigating in very long lines annoying
22:07:22 -!- c00kiemon5ter has left.
22:07:51 -!- ogrom has quit (Quit: Left).
22:08:06 <olsner> oerjan: what a waste of pages
22:11:21 <olsner> saves ink though!
22:11:36 -!- Taneb has joined.
22:11:39 <ais523> oerjan: there was a joke in the hitchhiker's guide to the galaxy
22:11:41 <ais523> about time travel grammar
22:11:51 <ais523> someone wrote a book about it, but everyone got bored at around the same point
22:11:59 <ais523> so they left all the pages after that point blank to save on printing costs
22:12:19 <oerjan> ais523: ah. i probably read that, but that's not what i was referring to.
22:12:43 * oerjan doesn't remember where what he's referring to is from, though
22:12:44 <nooodl> "Most readers get as far as the Future Semiconditionally Modified Subinverted Plagal Past Subjunctive Intentional before giving up; and in fact in later aditions of the book all pages beyond this point have been left blank to save on printing costs."
22:13:33 <nooodl> *editions. bad webpage i stole this quote from
22:14:11 <oerjan> ...ok today the sidebar of the previous page in oots looks right :P
22:15:12 -!- boily has quit (Quit: Poulet!).
22:15:14 <elliott> hello
22:15:19 <ais523> wb
22:15:40 * ais523 fails to see any way to interpret that as disapproval, also it's "hello" not "hi"
22:16:22 <olsner> does elliott have other modes of expression beyond disapproval?
22:16:40 <ais523> olsner: it's more that "hi" as a non sequitur is a mark of disapproval
22:16:46 <ais523> I think monqy started it
22:16:47 <olsner> indeed
22:16:51 <ais523> `quote hi
22:16:52 <HackEgo> 6) <Quas_NaArt> His body should be given to science. <GKennethR> He's alive :P <GreenReaper> Even so. \ 9) <Madelon> Lil`Cube: you had cavity searches? <Lil`Cube> not yet <Lil`Cube> trying to thou, just so I can check it off on my list of things to expirence \ 14) <fizzie after embedding some of his department research into fungot> Finally I ha
22:16:59 <ais523> `quote \bhi\b
22:17:00 <HackEgo> 150) <oklopol> comex: what? <oklopol> *vorpal <oklopol> comex: hi, tab-complete completed c to comex instead of Vorpal, dunno why \ 207) [on Walter Bright] <nddrylliog> I went to chat with him after his talk at the ELC and he was like "hum, right - humans. How do they work again... oh, hi!" \ 729) <monqy> Sgeo: I used to have strict requirements
22:17:19 <Bike> i think i've seen more shachaf asking monqy about disapproving "hi"s than disapproving "hi"s themselves
22:17:29 <olsner> did monqy actually start it or did he just said hi once and everyone built a myth around it?
22:17:50 <Bike> `quote 729
22:17:51 <HackEgo> 729) <monqy> Sgeo: I used to have strict requirements for when I said hi but then everyone started saying hi and it all got weird
22:18:13 <ais523> olsner: he said it more than once
22:19:11 <olsner> I've started seeing hi as ominous in other circumstances as well ... someone starts an IM conversation at work with the word "hi", and you know it only goes downhill from there
22:19:19 <ais523> hmm
22:19:27 -!- cuttlefish has quit (Ping timeout: 276 seconds).
22:19:28 <ais523> "hi" on IM (or IRC PM) is quite a common "are you there?"
22:20:34 <olsner> the people I know usually just start with the actual question/message
22:21:41 -!- impomatic has joined.
22:22:29 <ais523> olsner: for me it depends on what the actual question/message is
22:22:43 <Bike> "since the Greek alphabet does not have transfinitely many letters it is better to use a more robust notation"
22:22:47 -!- NuclearMeltdown has quit (Changing host).
22:22:47 -!- NuclearMeltdown has joined.
22:23:18 <elliott> NuclearMeltdown the AntiLiberal
22:23:20 <elliott> good hostname
22:23:23 <olsner> maybe it's just a general case of people usually communicating because there's some problem they need help with, and "hi" just happens to be a common first communication
22:24:26 <olsner> but I can still blame #esoteric for making "hi" sound ominous
22:24:42 <olsner> I can blame you for anything
22:25:13 <Bike> “Unrecursable” recursive ordinals <-- http://www.allfordmustangs.com/forums/attachments/2011-mustang-talk/162030-who-would-win-race-warning-danger-manifold.gif
22:25:46 <olsner> hmm, I wonder if this is one of those episodes where someone gets falsely accused and sentenced for some crime
22:26:07 -!- epicmonkey has quit (Ping timeout: 248 seconds).
22:27:07 <Bike> "A distinctive characteristic of his logic classes was that in the middle of each class, a previously selected student would have to get up and tell a joke. The joke had to be short, funny, and inoffensive to receive credit."
22:28:13 <olsner> yep, that and mosshaired aliens
22:31:42 -!- Taneb has quit (Quit: Leaving).
22:32:16 <Fiora> Bike: ?
22:32:18 <Fiora> (context?)
22:32:29 <Bike> look up gerald sacks
22:32:47 <Bike> (no relation to oliver, i guess)
22:33:48 <elliott> Bike: good characteristic
22:34:44 <elliott> http://www.math.harvard.edu/~sacks/sacks.html here is his "HyperMedia Plan File"
22:35:00 <elliott> generated by Netscape on SunOS 5.8 apparently
22:35:01 <Fiora> that's kind of a mean class
22:36:05 <oerjan> <Gregor> Would it help if I said "Britland"? <-- the land of the britneys and their fearsome spears
22:36:05 <Bike> yeah i'd hate it
22:36:14 <Bike> it sounds silly in the worst way
22:36:44 <Gregor> oerjan: Nice necromany bro
22:37:15 <Bike> elliott: i'm surprised i've never seen an academic page telling me it's optimally viewed on Mosaic
22:37:37 <quintopia> you stole britland from me
22:37:38 <oerjan> oh right i forgot the britneys are dead
22:37:49 <elliott> what I want to know is, do you have to invent the joke
22:37:55 <elliott> or can you just give a good performance of an existing joke
22:38:06 <quintopia> depends
22:38:08 <oerjan> wait no, that's the whitneys. Gregor, you are confusing me...
22:38:11 <quintopia> is the joke "the aristocrats"
22:38:30 <Bike> it says "inoffensive"
22:38:31 <Bike> so no
22:41:45 <oerjan> <ais523> OK, so Morpeth's distinguishing feature is that people pretend to know something about it <-- no it's distinguishable feature is that its name cannot possibly be real.
22:42:03 <ais523> oerjan: it's the capital of northumberland
22:42:11 <ais523> and apparently has the most dangerous stretch of railway in the UK
22:42:18 <ais523> (which, if you think about it, has to be /somewhere/)
22:42:27 <oerjan> > "morpeth" \\ "northumberland"
22:42:28 <lambdabot> "p"
22:42:42 <oerjan> > "morpeth" \\ "northumberland capital"
22:42:44 <lambdabot> ""
22:42:58 <oerjan> see, they just made up a name from letters in the phrase
22:43:23 <ais523> am I going to have to visit Morpeth to determine its existence?
22:43:28 <ais523> that'd probably be quite expensive
22:43:31 <oerjan> obviously.
22:43:32 <ais523> it's at the far end of the country
22:43:41 <ais523> we can send elliott or Taneb instead, I guess, they're a lot nearer
22:43:53 <oerjan> yes, but you're in the middle, not in cornwall
22:44:02 <elliott> ais523: we could go to morpeth together
22:44:07 <elliott> that would be stornger evidence
22:44:11 <quintopia> it ankh morpork a pun on morpeth
22:44:21 <ais523> elliott: we wouldn't be going there directly unless we were coming from the same place
22:44:23 <ais523> *together
22:44:23 <elliott> maybe it's the other way around
22:44:34 <ais523> otherwise we'd be arriving there together, but not going there together
22:44:35 <elliott> ais523: well, we could both go there
22:44:37 <elliott> and then be there, together
22:45:12 <quintopia> you'd be doing something together
22:45:19 <oerjan> quintopia: i'm not sure pratchett uses puns much for his place names?
22:45:21 <quintopia> but, "chatting in #esoteric" is also something
22:45:59 <olsner> actually, chatting in #esoteric is nothing
22:50:24 <quintopia> well
22:50:27 <quintopia> in a sense yes
22:50:44 <quintopia> if someone were to ask me what i'm doing right now, i'd say "shopping for health insurance"
22:50:48 <quintopia> and if i weren't doing that
22:50:51 <quintopia> "nothing"
22:55:31 <ais523> oh no I forgot how awful the US's health system is
22:56:01 <ais523> health insurance exists in the UK too, but because the government runs a free health service, the health insurers have to do a lot in order to offer value for money
22:56:20 <Bike> what we lack in useful services we make up for with FREEDOM
22:56:43 <quintopia> FREEDOM to pay a lot for healthcare!
22:57:01 * Bike sets loose a crying, anemic eagle
22:57:55 <ais523> as an example: a while ago I woke up on Sunday morning and discovere that one of my eyes was swollen, we went to an NHS-run clinic that was open on Sundays, they had a doctor look at it, (correctly) tell me what was wrong, prescribe some medicine, and let me know what shops would be able to sell the medicine to me that were open on Sunday
22:58:05 <ais523> and the cost of the medicine was subsidized by the government
22:58:08 <kmc> ais523: but your FREEDOM
22:58:16 <ais523> diagnosis was free, the medicine was less than £10 after the subsidy
22:58:42 <Fiora> `help quote
22:58:42 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
22:58:54 <Fiora> how do I add quote
22:58:59 <ais523> Fiora: `addquote
22:59:02 <Fiora> okay
22:59:06 <ais523> `? quotestyle
22:59:08 <HackEgo> quotestyle? ¯\(°_o)/¯
22:59:21 <Bike> `qdbformat
22:59:22 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: qdbformat: not found
22:59:27 <Bike> `? qdbformat
22:59:29 <HackEgo> qdbformat is: <nick> message; * nick action; two spaces between messages; all elisions marked with [...] other than irrelevant intervening messages; for messages separated by elision, one space on each side, not two
22:59:31 <Bike> stupid everything
22:59:33 <ais523> `? qdbformat
22:59:35 <HackEgo> qdbformat is: <nick> message; * nick action; two spaces between messages; all elisions marked with [...] other than irrelevant intervening messages; for messages separated by elision, one space on each side, not two
22:59:49 <ais523> Bike: no fair doing that while I'm reading scrollback and so can't see recent messages
22:59:55 <Fiora> oh do I have to add ;s?
23:00:04 <ais523> no, you don't
23:00:05 <Bike> eh, no
23:00:06 <ais523> that bit's misleading
23:00:10 <Bike> just two spaces between messages
23:00:10 <quintopia> double-spaces
23:00:19 <Fiora> `addquote <Phantom_Hoover> Sgeo_, are you just trying to post kmcbait... *Fiora imagines a cardboard box propped up by a stick with a pile of monads inside. <elliott> Fiora: that is actually what Haskell is.
23:00:19 <Bike> also imo you should just add whatever and let whoever actually cares fix it
23:00:23 <HackEgo> 974) <Phantom_Hoover> Sgeo_, are you just trying to post kmcbait... *Fiora imagines a cardboard box propped up by a stick with a pile of monads inside. <elliott> Fiora: that is actually what Haskell is.
23:00:30 <quintopia> Fiora: you did it wrong
23:00:33 <Fiora> :<
23:00:34 <quintopia> Fiora: it will be deleted
23:00:37 <Fiora> ;-;
23:00:42 <elliott> the tyranny of the qdb
23:00:57 <ais523> I like that quote
23:01:15 <ais523> but yeah, you want a space between * and Fiora
23:01:22 <Fiora> <_> oops
23:01:24 <Fiora> how do I fix that
23:01:31 <Fiora> `delquote 974
23:01:33 <Bike> `echo quote
23:01:35 <HackEgo> ​*poof* <Phantom_Hoover> Sgeo_, are you just trying to post kmcbait... *Fiora imagines a cardboard box propped up by a stick with a pile of monads inside. <elliott> Fiora: that is actually what Haskell is.
23:01:37 <Bike> wow
23:01:37 <HackEgo> quote
23:01:38 <Bike> just
23:01:40 <Bike> i need to stop
23:01:42 <Fiora> `addquote <Phantom_Hoover> Sgeo_, are you just trying to post kmcbait... * Fiora imagines a cardboard box propped up by a stick with a pile of monads inside. <elliott> Fiora: that is actually what Haskell is.
23:01:45 <HackEgo> 974) <Phantom_Hoover> Sgeo_, are you just trying to post kmcbait... * Fiora imagines a cardboard box propped up by a stick with a pile of monads inside. <elliott> Fiora: that is actually what Haskell is.
23:01:55 <elliott> Bike: good command
23:01:57 <olsner> a cardboard box with read and blue pipes
23:02:00 <Fiora> `quote quote
23:02:01 <HackEgo> 28) <oklopol> i can get an erection out of a plank, you can quote me on that. \ 68) [Warrigal] `addquote <Dylan> hahaha, Lawlabee is running windows <Lawlabee> 'cuz it's pretty awesome. [Lawlabee] Warrigal: :( \ 69) Note that quote number 124 is not actually true. \ 77) <ais523> let's put that in the HackEgo quotes files, just to completely mystif
23:02:03 <olsner> *red
23:02:23 <olsner> it might also have lead pipes
23:02:30 <quintopia> red led pipes
23:04:11 * ais523 defines Tetris
23:04:31 <Bike> `quote 77
23:04:33 <HackEgo> 77) <ais523> let's put that in the HackEgo quotes files, just to completely mystify anyone who looks back along them in the future
23:05:33 <oerjan> `quine quine
23:05:37 <HackEgo> ​`quine quine
23:05:44 <olsner> i.e. let's put the quote about putting something in the quotes files in the quotes files to mystify us now?
23:05:56 <quintopia> `quine no
23:05:59 <HackEgo> ​`quine no
23:06:21 <Gregor> `quote 76
23:06:23 <HackEgo> 76) <ais523> so a.b.c.d.e.f.g.h.i.j.k.com might be self-relative, but a.b.c.d.e.f.g.h.i.j.k.l.com always means a.b.c.d.e.f.g.h.i.j.k.l.com.?
23:06:24 <ais523> `quine race condition
23:06:26 <ais523> oko
23:06:28 <HackEgo> oko
23:07:33 <oerjan> `run echo eniuq | rev | sh
23:07:36 <HackEgo> ​`run echo eniuq | rev | sh
23:08:07 <oerjan> `run quine | rev
23:08:10 <HackEgo> ver | eniuq nur`
23:08:15 <ais523> "| sh" ?
23:08:35 <ais523> oh, I see
23:08:44 <ais523> you're running quine but encrypting its name
23:09:56 <quintopia> how did the race condition thing happen
23:10:15 <quintopia> does `quine just echo back the last line sent to the channel?
23:10:24 <oerjan> MAYBE
23:10:24 <zzo38> Is that how domain names work?
23:10:33 <quintopia> that's a pretty lame implementation
23:10:33 <oerjan> zzo38: no.
23:10:59 <oerjan> hm...
23:11:02 <oerjan> `ps
23:11:04 <HackEgo> ​ PID TTY TIME CMD \ 280 ? 00:00:00 init \ 282 ? 00:00:00 sh \ 284 ? 00:00:00 ps \ 285 ? 00:00:00 cat
23:11:10 <Bike> quintopia: on the flipside it's hilariously bad
23:11:30 <quintopia> Bike: actually, it's the only way to get stuff like oerjan's encrypted call to work
23:11:39 <oerjan> `ps | sed s'/ */ /g'
23:11:40 <HackEgo> ERROR: Garbage option. \ ********* simple selection ********* ********* selection by list ********* \ -A all processes -C by command name \ -N negate selection -G by real group ID (supports names) \ -a all w/ tty except session leaders -U by real user ID (supports names) \ -d all except session leaders
23:11:42 <ais523> quintopia: `quine reads the logs and copies the last line
23:11:44 <oerjan> `run ps | sed s'/ */ /g'
23:11:45 <HackEgo> ​ PID TTY TIME CMD \ 280 ? 00:00:00 init \ 282 ? 00:00:00 sh \ 284 ? 00:00:00 bash \ 285 ? 00:00:00 cat \ 287 ? 00:00:00 ps \ 288 ? 00:00:00 sed
23:11:53 <oerjan> HackEgo: wat.
23:11:57 <quintopia> well, i suppose it isn't the only way
23:12:16 <quintopia> but it is the only way without modifying HackEgo's core code
23:12:36 <elliott> oerjan: sed -e
23:12:38 <oerjan> quintopia: i was wondering if it would be possible to get the information out of ps instead
23:12:58 <oerjan> elliott: no i was just missing `run
23:13:08 <olsner> oerjan: what are you trying to get out?
23:13:37 <oerjan> olsner: the current HackEgo command line
23:14:01 <quintopia> oerjan: hmm maybe
23:14:33 <quintopia> `run ps | sed s'/ */ /g'
23:14:34 <HackEgo> ​ PID TTY TIME CMD \ 280 ? 00:00:00 init \ 282 ? 00:00:00 sh \ 284 ? 00:00:00 bash \ 285 ? 00:00:00 cat \ 287 ? 00:00:00 ps \ 288 ? 00:00:00 sed
23:14:38 <quintopia> `run ps -e | sed s'/ */ /g'
23:14:40 <HackEgo> ​ PID TTY TIME CMD \ 1 ? 00:00:00 init \ 2 ? 00:00:00 kthreadd \ 3 ? 00:00:00 ksoftirqd/0 \ 4 ? 00:00:00 kworker/0:0 \ 5 ? 00:00:00 kworker/0:0H \ 6 ? 00:00:00 kworker/u:0 \ 7 ? 00:00:00 kworker/u:0H \ 8 ? 00:00:00 cpuset \ 9 ? 00:00:00 khelper \ 10 ? 00:00:00 kdevtmpfs \ 11 ? 00:00:00 netns \ 12 ? 00:00:00 kworker/u:1 \ 45 ? 00:00:0
23:15:00 <quintopia> `run ps -e | sed s'/ */ /g' | grep ps
23:15:01 <HackEgo> ​ 287 ? 00:00:00 ps
23:15:20 <quintopia> doesn't look promising
23:16:28 -!- augur has quit (Remote host closed the connection).
23:17:04 <oerjan> `run ps -e | sed s'/ */ /g' | grep run
23:17:05 <HackEgo> No output.
23:21:08 -!- augur has joined.
23:21:11 <olsner> `run ps -o cmd
23:21:12 <HackEgo> CMD \ /init \ sh -c 'env' 'PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin' 'HACKENV=/hackenv' 'http_proxy=http://127.0.0.1:3128' 'LANG=en_NZ.UTF-8' '/home/hackbot/hackbot.hg/multibot_cmds/lib/limits' 'bash' '-c' 'ps -o cmd' | cat \ ps -o cmd \ cat
23:22:16 <quintopia> nice jorb
23:22:39 <olsner> not sure what you were trying to do, hope that helps
23:23:52 <quintopia> `run ps -o cmd | grep 'ps*'
23:23:53 <HackEgo> sh -c 'env' 'PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin' 'HACKENV=/hackenv' 'http_proxy=http://127.0.0.1:3128' 'LANG=en_NZ.UTF-8' '/home/hackbot/hackbot.hg/multibot_cmds/lib/limits' 'bash' '-c' 'ps -o cmd | grep '\''ps*'\''' | cat \ bash -c ps -o cmd | grep 'ps*' \ ps -o cmd \ grep ps*
23:24:07 <quintopia> `run ps -o cmd | grep "'ps*'"
23:24:08 <HackEgo> No output.
23:24:16 <quintopia> i am terrible at regex
23:24:24 <quintopia> `run ps -o cmd | grep "\'ps*\'"
23:24:26 <HackEgo> No output.
23:24:30 <oerjan> `run (echo '#!/bin/sh'; echo "ps -o cmd") >bin/psocmd; chmod +x bin/psocmd
23:24:34 <HackEgo> No output.
23:24:38 <oerjan> `psocmd
23:24:39 <HackEgo> CMD \ /init \ sh -c 'env' 'PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin' 'HACKENV=/hackenv' 'http_proxy=http://127.0.0.1:3128' 'LANG=en_NZ.UTF-8' '/home/hackbot/hackbot.hg/multibot_cmds/lib/limits' 'psocmd' | cat \ /bin/sh /hackenv/bin/psocmd \ cat \ ps -o cmd
23:25:56 <oerjan> `run ps -o cmd | grep limits
23:25:57 <HackEgo> sh -c 'env' 'PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin' 'HACKENV=/hackenv' 'http_proxy=http://127.0.0.1:3128' 'LANG=en_NZ.UTF-8' '/home/hackbot/hackbot.hg/multibot_cmds/lib/limits' 'bash' '-c' 'ps -o cmd | grep limits' | cat \ bash -c ps -o cmd | grep limits \ grep limits
23:26:29 <oerjan> `run ps -o cmd | grep 'lim[i]ts'
23:26:30 <HackEgo> sh -c 'env' 'PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin' 'HACKENV=/hackenv' 'http_proxy=http://127.0.0.1:3128' 'LANG=en_NZ.UTF-8' '/home/hackbot/hackbot.hg/multibot_cmds/lib/limits' 'bash' '-c' 'ps -o cmd | grep '\''lim[i]ts'\''' | cat
23:27:51 <oerjan> `run ps -o cmd | grep 'lim[i]ts'
23:27:53 <HackEgo> sh -c 'env' 'PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin' 'HACKENV=/hackenv' 'http_proxy=http://127.0.0.1:3128' 'LANG=en_NZ.UTF-8' '/home/hackbot/hackbot.hg/multibot_cmds/lib/limits' 'bash' '-c' ' ps -o cmd | grep '\''lim[i]ts'\''' | cat
23:30:37 <oerjan> oh the limits one probably does an exec or something
23:30:48 <oerjan> `cat /home/hackbot/hackbot.hg/multibot_cmds/lib/limits
23:30:49 <HackEgo> ​#!/bin/bash \ ulimit -f 10240 \ ulimit -l 0 \ ulimit -u 128 \ exec -- "$@"
23:30:59 <oerjan> yeah
23:34:08 -!- GOMADWarrior has quit (Ping timeout: 255 seconds).
23:34:11 <oerjan> looks complicated anyhow
23:38:13 -!- nooodl has quit (Read error: Connection reset by peer).
23:42:41 <nooga> clojure is actually pretty good
23:42:49 <nooga> i think i like it
23:44:29 -!- carado_ has joined.
23:50:40 -!- carado has quit (Ping timeout: 246 seconds).
23:52:23 -!- augur has quit (Remote host closed the connection).
23:54:54 -!- nooga has quit (Ping timeout: 240 seconds).
23:59:08 -!- SirCmpwn has quit (Excess Flood).
2013-02-27
00:01:08 -!- SirCmpwn has joined.
00:05:42 -!- carado_ has changed nick to carado.
00:25:19 -!- carado has quit (Ping timeout: 246 seconds).
00:45:40 -!- augur has joined.
00:46:14 -!- augur has quit (Read error: Connection reset by peer).
00:46:37 -!- augur has joined.
00:53:47 <quintopia> why do you need my time ais523
00:54:10 <ais523> quintopia: ?
00:54:17 <ais523> oh, timezone?
00:54:20 <quintopia> yeah
00:54:23 <ais523> wanted to know if you were American
00:54:29 <ais523> I find it hard to remember who is and who isn't
00:54:36 <quintopia> yes i am and poor me
00:54:39 <ais523> and it's sometimes relevant in conversations about nationalities
00:54:45 <quintopia> i don't find it hard at all...there are so few of us here :)
00:58:07 <quintopia> gregor, me, kallisti, and sgeo i'm sure of, and i think maybe kmc and pikhq. not sure about a handful of others because they've never mentioned it.
00:58:35 <elliott> there are actually 80 people here
00:58:40 <elliott> well, including bots
00:58:50 <Gregor> fungot: What timezone are you in?
00:58:50 <fungot> Gregor: you make it to do? ( i have an idea
00:59:04 <quintopia> if we could just say "americans raise your hand" and actually expect them to do it
00:59:06 <ais523> Gregor: it doesn't respond to ctcp time, but I assume the same timezone as fizzie
00:59:13 <ais523> quintopia: you wouldn't be able to see
00:59:35 <quintopia> ais523: i mean their irc ACTION hands of course
01:00:05 <Gregor> Mmmm, gimme some o' dat CTCP ACTION.
01:02:21 <kmc> we all living in america
01:02:23 <kmc> america ist wunderbar
01:02:33 <kmc> srsy though yes I live in the USA
01:02:39 <Bike> what is a hand
01:03:33 -!- otro_viajero7 has joined.
01:04:11 <quintopia> that thing that a handlebar is designed to have wrapped around it
01:04:41 -!- SDr has left.
01:09:43 -!- GOMADWarrior has joined.
01:30:22 -!- Arc_Koen has quit (Quit: Arc_Koen).
01:31:58 -!- ais523 has quit.
01:37:21 -!- copumpkin has joined.
01:37:57 -!- Phantom_Hoover has quit (Remote host closed the connection).
02:24:07 -!- lambdabot has quit (Remote host closed the connection).
02:27:52 -!- otro_viajero7 has quit (Ping timeout: 252 seconds).
02:28:20 -!- lambdabot has joined.
02:29:39 -!- lambdabot has quit (Remote host closed the connection).
02:34:10 -!- lambdabot has joined.
02:38:27 -!- GOMADWarrior has quit (Ping timeout: 276 seconds).
02:56:33 <quintopia> kmc: WHEN IS THIS GOING TO HAPPEN https://github.com/keithw/mosh/issues/12
02:57:03 <kmc> reconnection probably never
02:57:10 <kmc> automatic killing of old sessions, maybe
02:57:29 <Gregor> That's what screen is for ;)
02:57:34 <kmc> what i want is a way for the client to associate an ID with a session, and any old session with that name is killed
02:57:58 <kmc> and then you use screen
02:58:09 <kmc> in fact you can use "mosh hosh -- screen -dR foo" today
02:58:16 <kmc> and it accomplishes that
02:58:27 <quintopia> i do use screen
02:58:35 <shachaf> mosh hosh screen -dRSU irc
02:58:35 <kmc> but it doesn't handle my use case, which is that I have two Mosh connections (laptop and desktop) and want to bounce the same screen between them, without reconnecting mosh
02:58:50 <quintopia> but i cant connect to a still attached session from another host via mosh
02:59:02 <kmc> why not?
02:59:10 <quintopia> or in general if a server is already running
02:59:12 <kmc> you can detach it using screen -D, or you can use screen multi-attach with -x
02:59:31 <quintopia> i can detach it once i'm connected
02:59:39 <quintopia> but i can't connect to the mosh server
02:59:41 <kmc> is the problem that you don't have enough ports?
03:00:30 <quintopia> i opened up one port for mosh
03:00:40 <kmc> ok, then you'll need to open more if you want to do it this way
03:00:52 <kmc> or you could hack around it
03:01:04 <kmc> mosh host --server=~/whatever/my-script-which-kills-mosh-server-and-then-launches-a-new-one
03:01:49 <quintopia> how would the multiport solution work
03:02:42 <kmc> well ideally you would open some number of UDP ports starting at 60000
03:02:50 <kmc> you need as many as you are going to have concurrent mosh sessions
03:03:03 <kmc> then you just do 'mosh host' and it picks the lowest port in the range 60000-61000 which is not in use
03:03:10 <quintopia> will it automatically increment port nu oh cool
03:03:35 <kmc> with recent mosh you can also do 'mosh host -p 30000-30010' or whatever to use another range
03:03:42 <kmc> with older mosh you can only specify a single number for -p
03:04:06 <shachaf> kmc: I found out the a͜a͜a͜a͜a͜a͜a͜a͜a͜a͜a thing is from screen, not mosh.
03:04:09 <kmc> aha!
03:04:16 <kmc> also shachaf should i be using screen -U and why?
03:04:24 <kmc> is this for IUTF8?
03:04:34 <shachaf> I don't remember.
03:04:37 <kmc> shachaf: did you read nelhage's termios posts?
03:04:49 <shachaf> I don't think so.
03:04:54 <kmc> you should
03:06:34 <shachaf> Next time I restart my IRC session I'll try tmux.
03:06:55 <shachaf> screen doesn't do 4-byte UTF-8 codepoints, either. :-(
03:07:18 <oerjan> @hoogle augment
03:07:18 <lambdabot> GHC.Exts augment :: (forall b. (a -> b -> b) -> b -> b) -> [a] -> [a]
03:07:18 <lambdabot> Data.Graph.Inductive.Query.MaxFlow augmentGraph :: (DynGraph gr, Num b, Ord b) => gr a b -> gr a (b, b, b)
03:07:32 <shachaf> lambdabot lost its quote database. :-(
03:07:38 <oerjan> WAT
03:07:47 <shachaf> Cale restored it to one that's a couple of years old or so.
03:08:05 <Bike> i don't remember lambdabot's being good
03:08:06 <shachaf> I told him he should make backups but I don't think it ever happened.
03:08:18 <shachaf> I should go through the #haskell logs and reädd them.
03:08:27 <Bike> i'm sorry
03:08:52 <shachaf> ï'm sörrÿ
03:09:03 <oerjan> @messages
03:09:03 <lambdabot> You don't have any new messages.
03:09:44 <shachaf> Cööl pëöplë tÿpë lïkë thïs, rïght?
03:10:01 <Bike> metal
03:10:52 <shachaf> never metalinguistic who didn't annoy me
03:10:55 <zzo38> I found out now that in Windows you can do auto-completion on the command history by F8 key. What is the function to do that in Linux?
03:11:04 <shachaf> Hmm, s/ic//
03:14:30 <oerjan> ah right augment is instead of build when you already have the final part of the resulting list
03:14:41 <oerjan> like in the rule for (++)
03:14:51 <shachaf> Sgeo_: 19:14 <brucem> shachaf: where is Sgeo?
03:14:58 <shachaf> (In #dylan.)
03:18:50 -!- oerjan has quit (Quit: leaving).
03:24:19 -!- c00kiemon5ter has joined.
03:39:02 -!- wareya has quit (Read error: Connection reset by peer).
03:39:47 -!- wareya has joined.
03:41:07 <shachaf> Sgeo_: Oh boy, are you going to hlpe the Dylan folks?
03:41:14 <shachaf> You should!
03:41:27 <Sgeo_> If I could get the internal motivation too
03:41:34 <Sgeo_> Also dealing with a crisis wrt my Tcl bot
03:41:41 <Sgeo_> And the Senior Project
03:42:01 <shachaf> imo help them
03:50:17 <shachaf> Sgeo_: help is he trying to rope me into that dylan craziness
03:50:20 <shachaf> what's going on
03:51:02 <Sgeo_> shachaf, it's easy, just use an XML parser to parse an xml file into a Dylan object
03:51:28 <Bike> i assume read forms a monoid
03:51:39 <shachaf> An XML parser is just a monoid in the monoid of monoid monoids.
03:53:29 <Bike> aren't we all?
03:53:37 -!- jix has quit (*.net *.split).
03:53:37 -!- ion has quit (*.net *.split).
03:55:42 -!- jix has joined.
03:55:42 -!- ion has joined.
04:24:57 <zzo38> Do you know if Linux as auto-complete of command history and which key activates it if so?
04:25:24 <shachaf> The kernel?
04:26:06 <quintopia> zzo38: from the command line, press up to get the previous command and keep pressing up for more
04:28:23 <zzo38> Yes I know that but I mean if you type something and want to find only the line starting by what you typed in.
04:28:37 <Bike> presumably that would be part of your shell, not linux
04:28:44 <zzo38> shachaf: I don't mean the kernel (which is really the part called "Linux", I know) I mean the shell used in Linux systems
04:28:50 <shachaf> Lots of shells are.
04:28:51 <shachaf> bash?
04:28:58 <shachaf> If so, maybe try ^R
04:30:09 <zzo38> I happen to have bash even on this computer, so I tried it, and no that is not quite it either.
04:30:58 <zzo38> Is there UNIX shells which includes some of the DOS/Windows command-line editing functions?
04:33:12 <zzo38> Windows removed the function of F5 in the command-line though, it seem, and I liked that one too.
04:36:15 <Sgeo_> What did F5 in the command line do?
04:36:45 <zzo38> Enter into the command history without executing the command.
04:37:14 -!- monqy has joined.
04:40:43 -!- monqy has quit (Client Quit).
04:41:26 <shachaf> @ask monqy What happened to your quit message?
04:41:27 <lambdabot> Consider it noted.
04:42:05 <kmc> that's odd
04:42:11 <Jafet> honqy
04:42:15 <kmc> in bash I will put a # at the beginning of a line if I want to save it for later
04:42:34 <shachaf> kmc: Alt-shift-3
04:42:53 <kmc> nice
04:42:59 <kmc> didn't know that
04:43:01 <kmc> tychaf
04:46:20 <zzo38> O, yes, ALT+SHIFT+3 does automatically put # at the beginning and then enter into the command history; I didn't know that either and it works too on MinGW.
04:48:16 <Jafet> `addquote <zzo38> I happen to have bash even on this computer
04:48:26 <HackEgo> 975) <zzo38> I happen to have bash even on this computer
04:48:37 <Bike> Kinda meh, don't you think?
04:48:56 <zzo38> But I think GNU readline is far more complicated than the command-line editing ought to be and still lacks whatever seem importance to me.
04:48:59 <zzo38> Bike: Probably.
04:49:11 <zzo38> Jafet: Well, I use Windows command-line too.
04:49:12 <trout> so use libedit
04:49:20 <Jafet> Is readline turing complete
04:49:22 <trout> which makes about 100x more sense than GNU readline
04:59:13 -!- linuxnewb2 has quit (Quit: linuxnewb2).
05:01:16 <quintopia> wait what. alt-shift-3 doesn't just type a # right there in the middle of the line?
05:01:22 <zzo38> I would like one license by LGPL, and including the DOS and Windows command-line features including DOS F5, and a few other things such as a different tab completion and "APC" code command. Do you know if there is anything similar? I might try to write one some day but still I want to know if there is similar.
05:01:53 <kmc> what's APC?
05:02:24 <zzo38> The "Application Program Command" control code
05:03:27 <zzo38> My idea of the purpose of it is to have a terminal program in X or a window system might use it to open a graphical file selection window.
05:03:39 <zzo38> (Although, it can also be used for other purposes, or none at all)
05:07:35 <kmc> i don't think i've ever been using a command line program and thought to myself "what this command line program really needs is a graphical file selection window"
05:07:42 <kmc> but maybe that's just me
05:09:33 <zzo38> I don't think the command-line needs it either, but it might be useful in a windowing system.
05:15:55 <zzo38> Although UTF-8 follows the principle of extended ASCII, some programs using it don't, and I don't like this.
05:16:27 <zzo38> The principle of Extended ASCII means that: all ASCII bytes (0x00 to 0x7F) have the same meaning in all variants of extended ASCII, bytes that are not ASCII bytes are used only for free text, not for tags, keywords and other features having special meaning to the interpreting software.
05:17:08 -!- monqy has joined.
05:17:56 <quintopia> and then they left me tied there to the bedpost. they never did come back with jello.
05:18:00 <quintopia> oh, hi monqy
05:18:14 <Bike> that's like the oldest joke on irc
05:18:20 <Bike> people were making that joke as the soviet union fell
05:18:22 <monqy> hi
05:18:22 <lambdabot> monqy: You have 1 new message. '/msg lambdabot @messages' to read it.
05:18:26 <monqy> another??
05:18:35 <monqy> shachaf: did my quit message chagne
05:18:45 <monqy> shachaf: maybe it's because i quit so quickly
05:18:49 <shachaf> maybe
05:18:54 <shachaf> 20:40 -!- monqy [~help@pool-98-108-214-230.snloca.dsl-w.verizon.net] has quit [Client Quit]
05:18:56 <monqy> because of unexpected
05:19:02 <shachaf> turbulence?
05:19:03 <monqy> yeah i think thats what happens when you quit too quick
05:19:14 <quintopia> Bike: that's not the proper response if you recognize it
05:19:21 <quintopia> Bike: how jaded are you anyway
05:19:34 <Bike> as jaded as twelve sixteen-year-olds put together
05:19:39 <Bike> in a pile of sixteen-year-olds
05:20:53 <monqy> is the pile just these twelve or are there more in the pile
05:21:14 <quintopia> and more importantly
05:21:19 <Bike> Just the twelve, monqy.
05:21:25 <quintopia> are they wearing clothing?
05:21:35 <quintopia> and are they sexually attracted to one another?
05:22:09 <Bike> Most sixteen-year-olds are wearing clothing, but overall the chance of two randomly selected sixteen-year-olds considering each other sexually attractive is probably negligible.
05:22:36 <monqy> does this change if they're in a pile
05:23:09 <Bike> Probably.
05:23:21 <Bike> The pile is metaphorical. I have not actually put twelve sixteen-year-olds together into a pile.
05:23:29 <monqy> shachaf: hi shachaf
05:23:32 <shachaf> monqy: what window # is #esoteric for you in irssi
05:23:38 <monqy> why do you ask
05:23:46 <shachaf> "just curious........"
05:24:11 <quintopia> why only asking monqy?
05:24:12 <monqy> does that mean you're just curious or do you have the ulterioer motives
05:24:33 <shachaf> maybe i have an ulteriœr motive
05:24:39 <shachaf> what's it to you
05:24:42 <monqy> anyway it's #3
05:24:58 <shachaf> oh
05:24:59 <quintopia> i think he's attracted to your sexy hairy wrists
05:25:01 <shachaf> what's #2
05:25:06 <monqy> #2 is a secret
05:25:10 <shachaf> oh no
05:25:14 <shachaf> what's #4
05:25:18 <monqy> crawl
05:25:22 <shachaf> which # is /query lambdabot
05:25:42 <monqy> usually 11 or 12 when it happens
05:25:59 <kmc> Bike: i like your reference to the IRC logs of the fall of the soviet union
05:26:02 <Sgeo_> It's been a while sincce Ive beeen in ##crawl
05:26:21 <monqy> remember when you were in ##crawl and you were trying to play mfie or something but you were bad at it
05:26:37 <Bike> kmc: they're good logs i think
05:27:52 <quintopia> shachaf: what # is esoteric for you
05:28:02 <shachaf> 11
05:28:33 <quintopia> how many of the first ten are on freenode
05:28:58 <shachaf> This is my "freenode-only" irssi.
05:29:23 <pikhq> This is actually #3 for me, too.
05:29:23 <lambdabot> pikhq: You have 2 new messages. '/msg lambdabot @messages' to read them.
05:29:29 <pikhq> #2 is #plof
05:29:43 <shachaf> monqy: is #2 /query or a channel
05:30:30 <pikhq> #2 used to be #bitlbee, but I've not used that in a while.
05:30:44 <monqy> shachaf: channel. secret channel
05:30:52 <shachaf> oh no
05:31:53 <quintopia> my #2 is &bitlbee. #esoteric is 9. 3 of the other first 10 are also freenode (#4, #6, and #11)
05:32:13 <monqy> shachaf: the reason i wondered about you asking about my channel numberings is you asked just 3 minutes after i moved my 10 to its rightful place (from 2) since i havent bothered figuring out how to fix channel numbering on connect, after accidentally saying "wmove 10" in it
05:32:14 <Bike> But how many are dal?
05:32:19 <quintopia> NOEN
05:32:21 <monqy> im not on dal thankfully
05:32:31 <pikhq> (I finally got sick of bitlbee; currently using Pidgin... But I wanna find a terminal client again.)
05:32:33 <Bike> monqy: You just do /layout save and then /save.
05:32:44 <monqy> Bike: i think i've tried that? i'll try again
05:32:45 <shachaf> monqy: oh
05:32:48 <pikhq> (sadly, IM protocols don't much like being logged in from multiple locations.
05:32:49 <pikhq> )
05:32:50 <shachaf> monqy: "no, just a coincidence"
05:32:53 <shachaf> monqy: what's #10
05:33:02 <monqy> also a secret channel
05:33:08 <Bike> Gosh.
05:33:15 <quintopia> monqy: there is a setting where it automatically saves channel layout whenever you join and move and stuff
05:33:21 <quintopia> works great for me
05:33:31 <shachaf> monqy are all your channels secret
05:33:40 <monqy> only those 2 i think?
05:33:41 <Bike> Maybe #esoteric is secret.
05:33:50 <Bike> Have we ever seen monqy's other channels and #esoteric in the same room?
05:33:52 <quintopia> i don't see a +s
05:34:05 <Bike> Does +s even do anything on freenode?
05:34:38 <monqy> i mean "secret" as in "im not going to blab about them that would be dumb and their members probably wouldnt appreciate that"
05:35:32 <quintopia> oh monqy is a usian also eh
05:35:48 <quintopia> we're still a minority
05:36:09 <monqy> are you stalking me!!
05:36:44 <shachaf> monqy everyone in this channel is a "big fan of" you
05:36:49 <quintopia> no, that would require me actually following you around or something
05:36:55 <kmc> i use finch for IM stuff and irssi for IRC
05:36:55 <quintopia> the hidden cameras do that just fine
05:37:06 <kmc> finch is... okay
05:37:10 <kmc> it's probably full of security holes
05:37:13 <kmc> oh well
05:37:14 <kmc> YOLO
05:38:01 <Bike> kmc do you work in a profession where it's possible someone will target you and find all your IM contacts and impersonate you
05:38:14 <quintopia> does finch support IM encryption
05:38:16 <kmc> i don't know
05:38:23 <kmc> sometimes i talk about computer security online
05:38:28 <kmc> someone might try to hack me for lols
05:38:34 <kmc> i'm not particularly concerned, just a little
05:39:15 <kmc> i should probably convert that server to a hardened system with grsecurity and such
05:39:20 <kmc> because it doesn't have to do much and it would be fun
05:39:25 <tswett> `quote
05:39:26 <HackEgo> 865) <zzo38> If you write in the text using Unicode then how are you supposed to know if you mean seraphim have seven eyes or do they have ten?
05:39:34 <kmc> :D :D :D
05:39:34 <quintopia> `quote
05:39:35 <HackEgo> 537) <Taneb> I think this has taught us one thing. We can't teach itidus20 lambda calculus by comittee
05:39:38 <Bike> best question
05:39:50 <Bike> wow someone on this channel didn't know lambda calculus huh
05:40:02 <quintopia> `quote
05:40:03 <HackEgo> 459) <oerjan> sllide: @ is an OS made out of only the finest vapour
05:40:12 <quintopia> `quote
05:40:14 <HackEgo> 634) <Phantom_Hoover> The reason the cute animals collection includes pictures of intestines is that cute animals have to have intestines.
05:40:15 <kmc> oh wow Bike did you not overlap with itidus at all
05:40:23 <Bike> unfortunately i did not
05:40:25 <quintopia> `quote
05:40:27 <HackEgo> 512) <fungot> elliott_: it's a machine that looks like you!
05:40:31 <Bike> i've been assuming itidus was a long time before me
05:40:32 <quintopia> :D
05:40:33 <Sgeo_> Should I watch Quantum Leap?
05:40:36 <shachaf> `pastequotes itidus
05:40:38 <Bike> like when the soviets were still around or something
05:40:39 <tswett> Yeah, man. Unicode really ought to have the character "CYRILLIC LETTER N-OCULAR O" for all natural numbers N.
05:40:42 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.2134
05:40:55 <Bike> tswett: all ordinals, you mean
05:41:11 <tswett> All order types, you mean.
05:41:15 <Bike> given what angels are like i think one having omega one NK eyes is pretty reasonable
05:41:41 <kmc> proposal to allocate plane 3 of the UCS as Combining Multiocular Variation Indicator Plane
05:41:54 <kmc> 2^16 eyes should be enough for anyone
05:42:32 <Bike> -- bill gates, angel of the lord
05:42:45 -!- TeruFSX has quit (Ping timeout: 276 seconds).
05:42:48 <kmc> at least this finch is build with -fPIC and stack-protector and stuff
05:42:56 <kmc> yay ubuntu yay kees cook (who is no longer at ubuntu)
05:43:00 <tswett> I dunno. I think we should be able to talk about seraphim with 808,017,424,794,512,875,886,459,904,961,710,757,005,754,368,000,000,000 eyes.
05:43:30 <Bike> I'm pretty sure that exact number is in the Zohar.
05:43:37 <Bike> Probably how tall Metatron's dick is in cubits or something.
05:43:47 <kmc> c.c
05:43:57 <Bike> Hey, it's true.
05:44:03 <Bike> Probably.
05:44:04 <kmc> i learned from Kevin Smith movies that the Metatron has no dick
05:44:09 <tswett> The presence of that number in the Zohar would be proof of... something amazing.
05:44:16 <Bike> Really? Why?
05:44:24 <kmc> angel
05:44:25 <kmc> i don't know
05:44:30 <Bike> I meant at tswett.
05:44:35 <tswett> Because that number wasn't discovered until the 20th century.
05:44:38 <Bike> The Hebrews had all kinds of big numbers. There's basic combinatorics in the I-forget-the-nth-fucking-text.
05:44:53 <Bike> Oh is it something weird like the order of the monster group or some shit
05:44:57 <quintopia> i think this one is the best
05:44:59 <Bike> probably ancient aliens
05:45:01 <tswett> Yeah, something like that.
05:45:05 <quintopia> `quote 752
05:45:06 <HackEgo> 752) <fungot> itidus21: hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, h
05:45:26 <shachaf> monqy: what do you think of "the monqy fandom"
05:45:28 <Bike> @google 808017424794512875886459904961710757005754368000000000
05:45:29 <lambdabot> http://en.wikipedia.org/wiki/Monster_group
05:45:30 <lambdabot> Title: Monster group - Wikipedia, the free encyclopedia
05:45:34 <shachaf> where we write fanfics and stuff
05:45:39 <Bike> ...I guessed correctly?
05:45:46 <monqy> shachaf: i dont undersatnd it
05:46:03 <shachaf> monqy: "nobody understands fandoms"
05:46:10 <shachaf> except Fiora??
05:46:53 <Bike> Maybe it being in the Zohar wouldn't be too remarkable. 13th century is basically like the 20th century anyway.
05:47:06 <shachaf> > 20 - 13
05:47:07 <lambdabot> 7
05:47:10 <shachaf> Yep.
05:47:17 <Bike> http://en.wikipedia.org/wiki/Sefer_Yetzirah <-- This is the one with combinatorics.
05:49:25 <shachaf> It's easy to confuse itidus with a Markov chain bot.
05:49:48 <Bike> That's a mean thing to say.
05:50:06 <tswett> fungot: hey, say something.
05:50:06 <fungot> tswett: while 1: self.raw("quit")
05:50:34 <tswett> fungot: are you set to do Markov chains out of computer code or something?
05:50:34 <fungot> tswett: how do you tell which to pick up
05:50:47 <tswett> fungot: nope, I guess that was some fluke or something.
05:50:47 <fungot> tswett: ( not that i recommend it for others. ( those are the prototypes. mouse regions. i won't ask why you do it
05:50:56 <Bike> Looks like lisp.
05:51:07 <shachaf> fungot: what's the difference between itidus and you
05:51:07 <fungot> shachaf: it's /you/! wasting energy is a sign you may want to refresh my memory.
05:51:12 <shachaf> gasp
05:51:20 <shachaf> ^style
05:51:20 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
05:51:33 <quintopia> i dunno
05:51:37 <quintopia> itidus was a bit funnier
05:51:47 <quintopia> fungot is never intentionally funny
05:51:48 <fungot> quintopia: or did it end up? i would have to create your own instruction set. on fnord stuff is less a matter of reading through existing codebases and yanking out bits of code.
05:53:02 <Bike> And now mean to fungot too. This is so cruel.
05:53:03 <fungot> Bike: i predict a rather shocking result!" to multiple-value :) even if that exception happens, i don't
05:54:43 <Sgeo_> ^list
05:54:43 <fungot> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
05:54:48 <quintopia> Bike: it's okay to be mean to befunge code. it deserves it.
05:54:57 <Sgeo_> er
05:55:08 <Bike> :(
05:55:20 <Sgeo_> Not a false alarm
05:55:34 <quintopia> befunge code doesn't tear arms out of sockets
06:05:26 -!- sirdancealot7 has quit (Remote host closed the connection).
06:40:17 <shachaf> @hug monqy
06:40:17 <lambdabot> http://hackage.haskell.org/trac/ghc/newticket?type=bug
06:40:25 <monqy> hi
06:40:29 <shachaf> oops
06:40:33 <shachaf> did i accidentally @bug monqy
06:40:40 <shachaf> sry
06:40:42 <monqy> :☺)
06:40:54 <shachaf> (☺:
06:45:35 -!- monqy has quit (Quit: hello).
06:46:19 <Bike> Hey! He fixed his quit message. That's nice.
06:47:07 <shachaf> @ask monqy good job on the quit message
06:47:08 <lambdabot> Consider it noted.
06:58:27 <zzo38> Does teletext have music?
07:30:58 -!- epicmonkey has joined.
07:33:55 -!- DHeadshot has quit (Ping timeout: 248 seconds).
07:37:02 -!- DHeadshot has joined.
07:44:03 -!- epicmonkey has quit (Ping timeout: 248 seconds).
07:56:19 -!- sirdancealot has joined.
07:56:20 -!- impomatic has quit (Quit: http://about.me/john_metcalf).
07:56:56 -!- epicmonkey has joined.
08:05:32 -!- nooga has joined.
08:06:07 -!- Bike has quit (Quit: Reconnecting).
08:06:13 -!- Bike_ has joined.
08:14:28 -!- DHeadshot has quit (Read error: Connection reset by peer).
08:14:41 -!- DHeadshot has joined.
08:22:57 -!- nooga has quit (Ping timeout: 248 seconds).
08:31:15 -!- azaq23 has quit (Quit: Leaving.).
08:50:40 -!- nooga has joined.
09:05:27 -!- otro_viajero7 has joined.
09:07:50 -!- Arc_Koen has joined.
09:08:03 -!- Arc_Koen has quit (Client Quit).
09:08:20 -!- FreeFull has quit.
09:31:33 -!- otro_viajero7 has quit (Quit: ChatZilla 0.9.88.2 [Firefox 14.0.1/20120713134347]).
09:32:02 <zzo38> [1] Statement #2 is false. [2] Statement #1 is true. [3] All three of these statements are false.
09:33:50 <Lumpio-> [4] Statements #1 through #3 are silly.
09:35:25 <zzo38> Yes, that, also, I guess.
09:38:36 <zzo38> [5] Oops, I forgot. Statement #5 is also silly.
09:38:55 <shachaf> Is statement 4 silly?
09:38:59 <Bike_> what are all these numbers for
09:39:14 <shachaf> Bike: you don't have a proper appreciation for numbers
09:39:23 <Bike_> :(
09:39:36 <shachaf> numbers don't need to be for anything
09:39:40 <shachaf> pragmatist
09:39:41 <Slereah_> [6] there is no statement 7
09:39:54 <shachaf> maybewordsshouldbeseparatedlikethis
09:42:00 <Bike_> this is some existential shit here
09:45:00 <shachaf> universal
09:49:51 <nooga> maybe sentences should be s-exps
09:55:45 <fizzie> (ROOT (S (ADVP (RB Maybe)) (NP (NNS sentences)) (VP (MD should) (ADVP (RB also)) (VP (VB be) (NP (NNS s-exps)))) (. .)))
09:56:20 <fizzie> (Parse tree courtesy of the Stanford parser.)
09:56:43 <nooga> yeah
09:56:53 <nooga> that's what i thought about
09:57:02 <FireFly> At least it'll resolve the grammar ambiguities
09:57:15 <Bike_> Syntactic ambiguities are the spice of life.
09:57:40 <nooga> oh
09:57:52 <nooga> (. .)
09:58:05 <nooga> \___/
10:01:26 -!- Bike_ has quit (Quit: leaving).
10:05:34 -!- impomatic has joined.
10:48:03 -!- Sgeo_ has quit (Read error: Connection reset by peer).
10:48:35 -!- Sgeo has joined.
11:15:42 -!- nooga has quit (Ping timeout: 264 seconds).
11:18:57 -!- zzo38 has quit (Remote host closed the connection).
11:20:22 -!- Phantom_Hoover has joined.
11:28:59 <shachaf> Sgeo: Did you help the nice Dylan folks?
11:29:38 <Sgeo> I'm busy this week
11:29:39 <Sgeo> Kind of
11:58:28 -!- Arc_Koen has joined.
12:11:25 -!- carado has joined.
12:28:14 -!- doesthiswork has quit (Quit: Leaving.).
12:38:22 -!- TeruFSX has joined.
13:07:05 -!- TeruFSX has quit (Read error: Connection reset by peer).
13:16:51 -!- carado_ has joined.
13:21:38 -!- carado_ has quit (Ping timeout: 246 seconds).
13:41:09 -!- flayke has joined.
13:43:01 -!- flayke has left.
13:44:54 -!- boily has joined.
13:54:43 -!- cuttlefish has joined.
13:56:48 -!- c00kiemon5ter has quit (Remote host closed the connection).
13:57:01 -!- c00kiemon5ter has joined.
14:06:27 -!- cuttlefish has quit (Remote host closed the connection).
14:06:46 -!- metasepia has joined.
14:07:25 -!- metasepia has quit (Remote host closed the connection).
14:07:39 -!- boily has changed nick to metasepia.
14:11:37 -!- metasepia has changed nick to boily.
14:12:00 -!- metasepia has joined.
14:13:24 <boily> good morning all. sorry for the nickname juggling. looks like somebody else registered cuttlefish with nickserv half a fortnight ago.
14:13:35 <elliott> :'(
14:13:43 <elliott> I miss cuttlefish already
14:14:57 <boily> I now own metasepia, so further nickchanges shouldn't be necessary.
14:15:57 <elliott> maybe they will forget about it and you can get cuttlefish back.
14:17:20 <Phantom_Hoover> what if you ask them very nicely
14:18:24 -!- c00kiemon5ter has quit (Remote host closed the connection).
14:18:40 -!- c00kiemon5ter has joined.
14:26:23 -!- carado has quit (Ping timeout: 246 seconds).
14:27:42 <boily> at least, the new nickname is in honour of https://en.wikipedia.org/wiki/Metasepia_pfefferi
14:27:58 -!- carado_ has joined.
14:34:01 <Sgeo> Maybe you could pay them for the nick (not a serious suggestion)
14:47:39 -!- FreeFull has joined.
14:49:16 <boily> Sgeo: depends with what I pay them with.
14:52:10 <fizzie> ^ignore
14:52:10 <fungot> ^(EgoBot|HackEgo|toBogE|Sparkbot|optbot|lambdabot|oonbotti|cuttlefish|jconn)!
14:52:21 <fizzie> ^ignore ^(EgoBot|HackEgo|toBogE|Sparkbot|optbot|lambdabot|oonbotti|metasepia|jconn)!
14:52:21 <fungot> OK.
14:52:39 <fizzie> (I really should do the HackEgo-style zero-width space prefix trick.)
14:56:12 <elliott> you should really not
14:56:17 <elliott> I loathe that trick
14:56:17 <boily> toBogE, Sparkbot and optbot are new to me. whose are they?
14:57:40 <elliott> optbot was mine
14:57:45 <elliott> it inspired fungot's babble
14:57:45 <fungot> elliott: not sure either
14:58:21 <Sgeo> Is that the most coherent thing fungot has ever said?
14:58:22 <fungot> Sgeo: you must be confusing php with perl, but i'm not sure that's a bad idea!". and if anyone works out a better formatting routine.
14:59:34 <boily> the planetary alignment must be special today. fungot makes waaaaay too much sense.
14:59:35 <fungot> boily: redefinitions are just lame... they don't work... they execute all the code that used random-integer instead: that was my point
14:59:44 <boily> I rest my case.
17:11:20 -!- esowiki has joined.
17:11:52 -!- esowiki has joined.
17:11:53 -!- glogbot has joined.
17:11:54 -!- glogbackup has left.
17:11:56 -!- esowiki has joined.
17:11:56 -!- esowiki has joined.
17:11:58 -!- glogbackup has quit (Excess Flood).
17:13:17 -!- Gregor has joined.
17:13:38 -!- Gregor has changed nick to Guest6050.
17:14:11 -!- Guest6050 has changed nick to Gregor.
17:15:00 <ais523> there is something very weird about people deducing the way Iranian nuclear plants function via reverse-engineering Stuxnet
17:18:08 <tromp_> quintopia: it may be that if w occurs in thue-morse, then it occurs within the first O(length(w)) bits
17:25:44 <Sgeo> fmap _ = unsafeCoerce
17:26:15 -!- Phantom___Hoover has joined.
17:26:28 -!- DHeadshot has quit (Ping timeout: 248 seconds).
17:27:41 <Sgeo> h1 >>= f = h1 >> f
17:27:41 <Sgeo> (error "Text.Blaze.Internal.MarkupM: invalid use of monadic bind")
17:29:04 <kmc> sucks
17:29:06 <Taneb> Today I was vaguely tempted to write Haskell bindings to the Apache Wave client API thing
17:29:14 <kmc> is this one of those "monads" that's actually a monoid?
17:29:36 <Sgeo> kmc, yes
17:29:41 <kmc> :(
17:30:06 <Sgeo> kmc, would it have been acceptable to make a Writer monad out of it, and suggest people use that? Why don't these people do that, if that would have been better?
17:30:19 <kmc> i don't know why they don't do that
17:30:42 <FreeFull> kmc: As in, a monoid that doesn't obey monad rules?
17:31:04 <ais523> err, I didn't even think monads were monoids, necessarily
17:31:15 <kmc> they aren't
17:31:18 <kmc> and that's not what i mean FreeFull
17:31:25 <ais523> oh right, MonadPlus = monad that is also a monoid?
17:31:33 <Sgeo> kmc, https://github.com/jaspervdj/blaze-markup/blob/master/src/Text/Blaze/Internal.hs
17:31:42 <FreeFull> Aren't monads monoids in the category of endofunctors?
17:31:51 <Taneb> I think if m is a Monad, (a -> m a) is a Monoid
17:31:52 <ais523> `? monad
17:32:00 <HackEgo> Monads are just monoids in the category of endofunctors.
17:32:01 <kmc> what i mean is the abuse of 'do' notation where you write do { x; y; z } instead of [x,y,z], basically, and you never write "v <- x"
17:32:05 <ais523> FreeFull: I meant in Hask
17:32:12 <ais523> not in Endofunctor
17:32:21 <kmc> this usually means you're given some monad that's an abstract type, and all the "primitives" are of type "M ()"
17:32:30 <FreeFull> Taneb: Can you make a Monoid instance for that?
17:32:39 <Sgeo> kmc, would it be more acceptable if it were Writer though? Because it's tempting, and Writer would be a real monad
17:33:00 <kmc> so you never need to use (>>=), and (>>) is basically taking over for mappend
17:33:07 <ais523> oh wow I just read scrollback to see what the conversation was about
17:33:07 <FreeFull> kmc: Abuse of do notation is bad
17:33:10 <Gregor> `run echo 'Doodads are just duoids in the category of endofunctors.' > wisdom/doodad
17:33:14 <HackEgo> No output.
17:33:15 <ais523> that… isn't a monad
17:33:16 <Gregor> `run ln -s doodad wisdom/doodads
17:33:20 <HackEgo> No output.
17:33:23 <ais523> it may fulfil the Haskell definition
17:33:27 <ais523> sort of
17:33:35 <ais523> does it even obey the monad laws?
17:33:43 <FreeFull> ais523: I don't think it would
17:33:44 <Taneb> newtype EndoM m a = EndoM {appEndo :: a -> m a}; instance Monad m => Monoid (EndoM m a) where mempty = EndoM return; mappend (EndoM a) (EndoM b) = EndoM (a >=> b)
17:33:53 <Gregor> `? doodad
17:33:55 <HackEgo> Doodads are just duoids in the category of endofunctors.
17:34:02 <Sgeo> return ignores its argument...
17:34:02 <Gregor> *sage nod*
17:34:02 <kmc> anyway people do this a lot because they like the 'do' notation
17:34:08 <kmc> syntax over semantics :(
17:34:10 <ais523> I'm not even sure what "fmap _ = unsafeCoerce" does
17:34:16 <FreeFull> Taneb: Ah, so you can but you need a newtype
17:34:16 <Taneb> `? d-modules
17:34:18 <HackEgo> D-modules are just modules over the ring of differential operators. Taneb invented them.
17:34:20 <kmc> Sgeo: yes, I think it would be better with Writer, but I haven't thought about it in detail
17:34:21 <Sgeo> ais523, that was in an instance declaration
17:34:21 <Taneb> FreeFull,
17:34:21 <Taneb> yes
17:34:53 <kmc> FreeFull: the fact that monads are monoids in the category of endofunctions has basically nothing to do with this
17:34:53 <Taneb> You could do it without newtypes if you use a bunch of extensions, but you really, REALLY, shouldn't
17:35:01 <kmc> endofunctors*
17:35:11 <kmc> i wonder if you know what it means
17:35:31 <elliott> Writer is slower
17:35:40 <ais523> perhaps because I can't figure out what unsafeCoerce does outside the context of Haskell
17:35:42 <elliott> blaze-html does the fake monad for notation thing
17:35:58 <FreeFull> @hoogle (Monad m) => [a -> m a] -> a -> m a
17:35:59 <lambdabot> Data.Generics.Aliases extM :: (Monad m, Typeable a, Typeable b) => (a -> m a) -> (b -> m b) -> a -> m a
17:35:59 <lambdabot> Data.Generics.Aliases mkM :: (Monad m, Typeable a, Typeable b) => (b -> m b) -> a -> m a
17:35:59 <lambdabot> Data.Data gmapM :: (Data a, Monad m) => (forall d. Data d => d -> m d) -> a -> m a
17:36:14 <ais523> do notation should clearly randomly permute the input to something else that would have the same meanings if the monad laws were satisfied
17:36:21 <Sgeo> FreeFull, ... some sort of fold with (>=>) ?
17:36:29 <ais523> hmm… this would never happen in Agda, assuming that Agda monads come with proof that they obey the monad laws
17:36:35 <FreeFull> Sgeo: Yeah
17:36:38 <kmc> :t foldr (>=>) return
17:36:40 <FreeFull> Was wondering if it had a name
17:36:47 <kmc> @type foldr (>=>) return
17:36:53 <lambdabot> Monad m => [c -> m c] -> c -> m c
17:36:54 <lambdabot> Monad m => [c -> m c] -> c -> m c
17:37:25 <Sgeo> :t foldl (>=>) return
17:37:26 <lambdabot> Monad m => [b -> m b] -> b -> m b
17:39:22 <Sgeo> Doesn't F#'s syntax for using monads also support monoids? Or am I misremembering?
17:39:36 <Sgeo> Because IIRC "computation expressions" don't just support monads
17:39:39 <ais523> I didn't realise F# had syntax for monads
17:39:47 <ais523> it's a strict language with a defined evaluation order
17:39:54 <ais523> so it doesn't need dedicated monad syntax nearly as much as Haskell
17:40:26 -!- sirdancealot has quit (Read error: Connection reset by peer).
17:41:02 <kmc> monads aren't really about evaluation order
17:41:13 <kmc> nor are they about purity
17:41:39 -!- ais523 has quit (Quit: kernel update, rebooting).
17:41:46 <kmc> lots of useful 'styles of computation' can be written as monads
17:41:49 <elliott> #esoteric is the #haskell retirement home where you can have all the same arguments you did in #haskell but at a slower, more relaxed pace
17:41:49 <oonbotti> Nothing here
17:41:51 <kmc> nondeterminism, parsing, whatever
17:41:54 <elliott> and with fewer whippersnappers
17:42:01 <kmc> elliott: yup
17:43:02 <kmc> in Haskell, laziness was the motivation for pure functions, and pure functions were the motivation for monadic IO, and monadic IO was the motivation for generic monads
17:43:12 <kmc> but each of these ideas is useful beyond its original motivation
17:43:34 <kmc> C# also has something vaguely monad-like in LINQ
17:43:54 <Sgeo> LINQ syntax also allows peaking at the AST I think?
17:43:59 <kmc> yes
17:44:00 <Sgeo> Or... something
17:44:15 <kmc> and that makes it more useful that Haskell's 'do' for deep EDSLs
17:44:40 <kmc> it's really good that the syntax you use to query a database and the syntax you use to do an ordinary list comprehension in memory are the same
17:44:56 <kmc> this is a constant frustration with e.g. the Django ORM in Python
17:45:19 <kmc> we all want to write list comprehensions, but a list comprehension making a bunch of individual database queries is terribly slow
17:45:30 -!- ais523 has joined.
17:45:58 <kmc> so you have to express your joins, filters, etc. in totally different and slightly awkward syntax
17:46:04 <Sgeo> The Haskell package that inspired LINQ used things like .>. I think
17:46:14 <kmc> i didn't know it was inspired by a specific Haskell package!
17:46:45 <Sgeo> Well, partly inspired
17:46:50 -!- Phantom___Hoover has quit (Ping timeout: 255 seconds).
17:47:15 * Sgeo looks for it
17:48:09 -!- Phantom___Hoover has joined.
17:49:41 <Sgeo> http://stackoverflow.com/a/1418200
17:49:53 <Sgeo> "LINQ was inspired by HaskellDB, as Erik Meijer has numerously stated, e.g. in Confessions of a Used Programming Language Salesman (Getting the Masses Hooked on Haskell), so it is not in itself a new concept. "
17:51:07 <FreeFull> Didn't haskell do pure IO before having monadic IO
17:51:20 <FreeFull> Or is my history wrong
17:51:38 <kmc> yeah it was like 'interact' basically
17:52:04 <kmc> 'main' was a function that took a lazy list of IO results and produced a lazy list of things to do
17:52:08 <kmc> it didn't work very well
17:52:30 -!- doesthiswork has joined.
17:53:10 <Gregor> doesthiswork: No, it doesn't work, you're not here.
17:53:37 <doesthiswork> there is always the logs
17:53:57 <Gregor> Well, I control the logs, sooooooooooooo >: )
17:55:29 <Sgeo> kmc, one of the Blaze examples uses forM_, so it's not just for do syntax...
17:55:48 <kmc> well ok
17:56:14 <Sgeo> Although not sure I would trust using functions like that when the monad laws are broken
17:56:39 <kmc> but there must be a similar function for monoids
17:56:51 <FreeFull> :t forM_
17:56:52 <elliott> :t foldMap
17:56:53 <lambdabot> Monad m => [a] -> (a -> m b) -> m ()
17:56:54 <lambdabot> (Foldable t, Monoid m) => (a -> m) -> t a -> m
17:57:08 <kmc> yeah that
17:57:15 -!- sirdancealot has joined.
17:57:18 <FreeFull> So flip foldMap
17:57:35 <FreeFull> And it works for things that aren't lists too
18:02:02 <boily> `quit
18:02:04 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: quit: not found
18:02:04 -!- boily has quit (Quit: Poulet!).
18:02:18 -!- boily has joined.
18:02:36 -!- metasepia has quit (Remote host closed the connection).
18:02:45 -!- metasepia has joined.
18:03:41 -!- azaq23 has joined.
18:03:43 -!- augur has quit (Remote host closed the connection).
18:03:54 -!- azaq23 has quit (Max SendQ exceeded).
18:04:31 <FreeFull> `pkill
18:04:33 <HackEgo> pkill: No matching criteria specified \ Usage: pkill [-SIGNAL] [-fvx] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST] \ [-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN]
18:04:47 <FreeFull> `pkill -9 a
18:04:51 <HackEgo> pkill: No matching criteria specified \ Usage: pkill [-SIGNAL] [-fvx] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST] \ [-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN]
18:05:01 <FreeFull> `run pkill -9 a
18:05:03 <HackEgo> pkill: 2 - Operation not permitted \ pkill: 45 - Operation not permitted \ pkill: 70 - Operation not permitted \ pkill: 71 - Operation not permitted \ Killed
18:05:17 <FreeFull> I wonder what it killed
18:05:24 <ais523> nothing useful
18:05:32 <ais523> there's a separate set of processes for each command you run
18:05:36 <ais523> `run echo $$
18:05:38 <HackEgo> 284
18:05:39 <ais523> `run echo $$
18:05:41 <HackEgo> 284
18:05:44 <ais523> see?
18:06:59 <kmc> every command to HackEgo boots a separate User Mode Linux machine, and then merges any filesystem changes using Mercurial
18:07:07 <kmc> it's awesomely insane
18:07:13 <kmc> `uptime
18:07:15 <HackEgo> ​ 18:07:14 up 0 min, 0 users, load average: 0.00, 0.00, 0.00
18:07:16 <elliott> if you told someone on IRC your IRC bot booted up linux for every single command you run on it
18:07:20 <elliott> in like the 90s
18:07:25 <elliott> what would they say
18:07:41 <kmc> that you're lying most likely
18:07:48 <Taneb> Huh
18:07:49 <Gregor> "Boot" is true but enormously misleading.
18:07:55 <Taneb> On Tumblr, '>' does something
18:08:02 <Taneb> No, '.' does
18:08:39 <kmc> Gregor: why? just because UML is lightweight?
18:09:16 <Gregor> Because when I hear "boot" I imagine a BIOS loading a bootloader which loads a kernel and then starts up, not a kernel running as a usermode process which has very little startup to do on its own.
18:09:54 <Gregor> The actual word doesn't mean that, but by the same token you can say that you "boot up" a shell every time you run a shell script. It's not a lie, but why would you use that term *shrugs*
18:10:15 <kmc> because it's the term usually used for starting an instance of Linux?
18:10:24 <kmc> if anything, i think the "machine" part is more misleading
18:10:41 <Gregor> Oh, heh, T.B.H. I didn't even notice that word X-D
18:10:41 -!- nooodl has quit (Ping timeout: 248 seconds).
18:10:42 <Gregor> But yes.
18:10:43 * kmc downloads and boots TCCBOOT
18:11:13 <elliott> Gregor: IMO make HackEgo use qemu for extra security
18:11:43 <ais523> elliott: hmm
18:11:43 <boily> elliott: I'd go with vagrant, just because it's more points at scrabble.
18:11:51 <ais523> in the 90s I didn't have such a good idea of what Linux was
18:11:53 <Gregor> Qemu which boots to a Debian instance which in turn runs umlbox?
18:11:59 <kmc> i assume everyone here has seen tccboot and also jslinux
18:12:17 <Gregor> kmc: jslinux was cooler when I did the same thing with MIPS a year earlier.
18:12:25 <kmc> heh
18:12:27 <kmc> is it online?
18:12:32 <Gregor> http://codu.org/jsmips/
18:12:39 <Gregor> Oh, yes, but not there X-D
18:12:43 <elliott> Gregor: I remember when it was MMIX
18:12:52 <ais523> I was actually explaining the difference between UNIX and Linux to a student today, because they asked
18:13:00 <Gregor> OK, I guess it's not especially online any more X-D
18:13:04 <Gregor> kmc: It was then ;)
18:13:14 <kmc> did you pick MIPS because it's one of the simpler arches with a full GNU/Linux stack?
18:13:28 <kmc> and what are the platform interfaces like? presumably there are a lot to choose from
18:13:41 <Gregor> I actually didn't implement the whole architecture, just the ISA, and I didn't run a kernel, just had JS respond directly to syscalls.
18:13:46 <Gregor> So I didn't REALLY do the same as jslinux.
18:13:55 <kmc> ah
18:14:03 <Gregor> But you could compile C code to the browser and run it at semi-reasonable speed *shrugs*
18:14:07 <kmc> so what do you mean by "just the ISA"
18:14:18 <Gregor> Just the instruction set.
18:14:35 <kmc> i saw a paper where they implemented C, C++, etc. for JVM by using gcc to compile to MIPS and then translating that to JVM bytecode
18:14:55 <kmc> Gregor: what parts of the architecture did you not implement, then
18:14:57 <Gregor> Yup. NestedVM was the latest version of that stack I recall.
18:15:03 <Gregor> kmc: Everything other than the instruction set X-D
18:15:10 <kmc> meaning what? memory management?
18:15:16 <Gregor> Memory management I have.
18:15:30 <Gregor> But no buses, no disks, no graphics, etc.
18:15:34 <kmc> ok
18:15:41 <kmc> i don't consider that part of "MIPS architecture"
18:15:41 <Gregor> Everything that would be a syscall in a normal OS jumps to JS code.
18:15:46 <kmc> unless MIPS is specified in an unusual way
18:15:46 <Gregor> Ah.
18:15:51 <elliott> Gregor: you never listened to me when I told you to get X-on-canvas running :(
18:16:03 <Gregor> elliott: Sure I did, I just didn't do it ;)
18:16:05 <kmc> lots of CPU architectures come on many different platforms
18:16:10 <Gregor> kmc: Well, you can't boot Linux without them, so that makes jslinux incomparable ;)
18:16:32 <kmc> x86 is kind of an anomaly in that when people say x86 they usually mean "PC compatible" and then you have a BIOS with disk, keyboard, etc., and probably a PCI bus, etc
18:16:38 <kmc> but even for x86 there are plenty of exceptions
18:16:55 <kmc> OLPC XO-1 isn't PC-compatible; neither are SGI's huge NUMA machines
18:17:47 <kmc> neither is that fucking custom 80186 dev board from the embedded systems class from hell
18:17:48 <elliott> i think the olpcs are pc-compatible nowadays
18:17:52 <kmc> maybe
18:17:53 <elliott> because they run fucking windows :(
18:17:56 <kmc> i guess they caved and... yeah
18:18:08 <elliott> i hear it was more "negroponte" rather than "they"
18:18:09 <kmc> maybe they dual-boot between Open Firmware and BIOS
18:18:15 <kmc> shrug
18:21:18 -!- copumpkin has quit (Ping timeout: 252 seconds).
18:21:29 -!- Bike has joined.
18:22:28 -!- copumpkin has joined.
18:25:26 -!- c00kiemon5ter has joined.
18:25:44 -!- azaq23 has joined.
18:25:52 -!- azaq23 has quit (Max SendQ exceeded).
18:28:45 -!- azaq23 has joined.
18:35:29 <elliott> maximum . map abs = abs . maximum, right?
18:35:35 <elliott> ignoring floating point weirdness and such
18:35:40 <coppro> elliott: no
18:35:43 <coppro> {-2, 1}
18:35:48 <elliott> oh
18:35:49 <elliott> I'm an idiot
18:35:52 <elliott> I thought abs was rounding??
18:35:54 <elliott> for a brief second
18:36:01 <Bike> good second
18:39:48 -!- Taneb has quit (Ping timeout: 264 seconds).
18:41:52 <olsner> abs rounds to the value closest to the absolute value
18:43:37 <Bike> @src maximum
18:43:38 <lambdabot> maximum [] = undefined
18:43:38 <lambdabot> maximum xs = foldl1 max xs
18:44:00 <elliott> I like how that undefined clause is pointless.
18:44:36 <mroman> Out of 10 Random Wikipediapages 7 are people.
18:44:42 <Bike> > fold1 max []
18:44:44 <lambdabot> Not in scope: `fold1'
18:44:44 <lambdabot> Perhaps you meant one of these:
18:44:44 <lambdabot> `foldl1' (importe...
18:44:49 <Bike> > foldl1 max []
18:44:51 <lambdabot> *Exception: Prelude.foldl1: empty list
18:45:03 <Bike> > maximum []
18:45:05 <lambdabot> *Exception: Prelude.maximum: empty list
18:45:07 <boily> does deriving Ord in Haskell guarantee a total order, or at least a lattice?
18:45:10 <Bike> useful
18:45:24 -!- sebbu has quit (Ping timeout: 248 seconds).
18:46:57 -!- Taneb has joined.
18:47:43 -!- augur has joined.
18:48:00 <Taneb> Well, my C code core-dumps
18:48:27 <Taneb> But it's climbed the -Wall
18:49:21 <Gregor> That's easy to fix.
18:49:23 <Gregor> ulimit -c 0
18:49:26 <Gregor> Tada, doesn't core-dump.
18:49:35 <coppro> Taneb: try the -Wextra
18:49:39 <ais523> Gregor: it still says (core dumped)
18:49:44 <ais523> it just doesn't save the core anywhere
18:49:46 <ais523> Taneb: also try valgrind
18:49:47 <coppro> Taneb: or, if you're using clang, try -Weverything
18:49:54 <Gregor> ais523: It doesn't for me...
18:49:54 <coppro> which actually does *all*
18:50:04 <ais523> Gregor: does for me
18:50:09 <ais523> although, hmm
18:50:13 <ais523> perhaps it depends on whether it's -Sc or -Hc
18:50:21 <ais523> coppro: yeah, but some of them are bad ideas
18:50:26 <ais523> or very specific
18:50:38 -!- Phantom___Hoover has quit (Ping timeout: 255 seconds).
18:50:47 <ais523> splint has warning levels higher than is remotely sane, and is buggy enough that you could never expect to comply with them
18:50:50 <ais523> also complains about system headers
18:50:58 -!- Phantom___Hoover has joined.
18:51:49 <Gregor> ais523: http://sprunge.us/WMUd
18:52:24 <coppro> ais523: yeah
18:52:41 <coppro> ais523: -Weverything is literally everything, including style warnings and the like
18:52:46 <coppro> not recommended for human consumption
18:52:56 <Gregor> I s'pose since it's the shell that interprets the SIGCHLD, it could determine intelligently whether a core had been dumped and just change the message *shrugs*
18:53:39 -!- sebbu has joined.
18:59:12 <Taneb> coppro, I'm using gcc
19:00:14 <Taneb> Hmm
19:01:29 <Taneb> ais523, should I take your warning as a "here's splint, give it a go", or an "avoid at all costs"
19:01:29 -!- c00kiemon5ter has quit (Remote host closed the connection).
19:01:46 -!- c00kiemon5ter has joined.
19:01:50 <ais523> Taneb: take it as "splint is a good idea in theory but too buggy for practical use"
19:02:02 <Taneb> Use it right now y/n
19:02:12 <ais523> also, it has many of the same ideas as Rust does, except Rust is a language and Splint is a linter
19:02:24 <ais523> Taneb: it can't hurt
19:02:52 <Taneb> (it gets past -Wextra)
19:03:19 <Taneb> splint hits a parse error...
19:03:21 <elliott> ais523: that bodes terribly for either rust or splint
19:03:25 <coppro> what gets past -Wextra?
19:03:30 <Taneb> coppro, my program
19:03:47 <Taneb> It compiles with -Wall -Werror -Wextra
19:03:54 <ais523> elliott: for splint, probably; I even think of Rust as a fixed version of C+Splint
19:04:03 <ais523> oh yeah, splint hits parse errors a lot
19:05:27 <coppro> ais523: what do you think of Rust?
19:06:07 <Taneb> It hits a parse error because I'm using gmp
19:06:08 <Gregor> coppro: He thinks of it as a fixed version of C+Splint.
19:06:17 <ais523> coppro: I like it
19:06:22 <ais523> or Gregor's answer
19:06:23 -!- Phantom___Hoover has quit (Ping timeout: 255 seconds).
19:07:05 <Taneb> "thanks, split"
19:07:42 -!- Phantom___Hoover has joined.
19:08:52 -!- c00kiemon5ter has quit (Remote host closed the connection).
19:09:23 -!- c00kiemon5ter has joined.
19:12:35 -!- Phantom___Hoover has quit (Ping timeout: 244 seconds).
19:13:34 -!- Phantom___Hoover has joined.
19:13:35 -!- c00kiemon5ter has quit (Ping timeout: 255 seconds).
19:14:18 <Taneb> Okay, I have no idea how to get splint and gmp to play nice
19:15:09 <Taneb> :(
19:15:12 <elliott> probably you don't
19:18:17 <ais523> there is a chance that someone else has an idea, somewhere else in the world
19:18:30 -!- Phantom___Hoover has quit (Ping timeout: 252 seconds).
19:18:36 <Bike> poor bastard
19:18:46 <olsner> it is unlikely that anyone has any idea anywhere
19:19:41 <Taneb> http://www.mail-archive.com/lclint-interest@virginia.edu/msg00303.html looks like the same thing
19:21:44 <Taneb> Ooh, that's a prettier core dump
19:23:23 <Taneb> http://hastebin.com/wegaqedudo.txt
19:27:42 -!- Phantom___Hoover has joined.
19:28:21 -!- monqy has joined.
19:31:35 -!- nooga has quit (Ping timeout: 255 seconds).
19:32:03 <Taneb> You can tell a lot about me from that paste
19:32:14 <Taneb> Firstly, I use multiple pastebins
19:32:31 <Bike> hello vdso.... if that is your real name..........
19:32:41 -!- Phantom___Hoover has quit (Ping timeout: 256 seconds).
19:33:13 <elliott> :t intercalate
19:33:15 <lambdabot> [a] -> [[a]] -> [a]
19:33:43 <Taneb> Bike...
19:33:46 <monqy> :t intersperse
19:33:48 <lambdabot> a -> [a] -> [a]
19:34:03 <Bike> :t interplanetary
19:34:05 <lambdabot> Not in scope: `interplanetary'
19:34:55 <ion> intersPerse
19:35:10 <boily> Bike: interplanetary is too far away to be in scope.
19:36:32 <Bike> :(
19:36:45 <Bike> :t intergalactic
19:36:46 -!- oerjan has joined.
19:36:47 <lambdabot> Not in scope: `intergalactic'
19:37:08 -!- epicmonkey has quit (Ping timeout: 248 seconds).
19:37:11 <Taneb> :t interfamilial
19:37:13 <lambdabot> Not in scope: `interfamilial'
19:37:32 <oerjan> now wat
19:37:52 <boily> oerjan: Bike tried to be spacial.
19:38:05 <oerjan> a common mistake.
19:38:41 <Bike> :( (
19:39:02 <oerjan> <Bike> i assume read forms a monoid <-- assume a spherical monoid in a Void
19:41:07 <oerjan> <shachaf> @ask monqy What happened to your quit message? <-- quit messages are censored if you haven't been logged on long enough, hth
19:41:50 <oerjan> (3 minutes and 28 seconds are presumable not long enough.)
19:41:50 <olsner> if the one who quits hasn't been logged on long enough?
19:41:55 <oerjan> yes
19:41:56 <olsner> or the one who reads the quit message?
19:42:26 -!- Phantom___Hoover has joined.
19:42:54 <oerjan> olsner: yes.
19:43:00 <olsner> oerjan: ok
19:43:24 -!- metasepia has quit (Ping timeout: 264 seconds).
19:44:35 -!- boily has quit (Ping timeout: 256 seconds).
19:46:45 <elliott> yes and no I think
19:47:23 <FreeFull> :t interracial
19:47:24 <lambdabot> Not in scope: `interracial'
19:47:53 <Bike> o:
19:48:07 -!- metasepia has joined.
19:48:08 -!- boily has joined.
19:51:42 -!- Phantom___Hoover has quit (Ping timeout: 264 seconds).
19:52:34 -!- Phantom___Hoover has joined.
19:52:55 -!- carado_ has quit (Ping timeout: 246 seconds).
19:58:03 -!- Phantom___Hoover has quit (Ping timeout: 244 seconds).
19:59:46 <oerjan> `factor 808017424794512875886459904961710757005754368000000000
19:59:47 <HackEgo> factor: `808017424794512875886459904961710757005754368000000000' is too large
19:59:51 <oerjan> LAME
20:00:01 <Taneb> 2
20:00:22 <boily> ~eval primeFactors 123
20:00:23 <metasepia> [3,41]
20:00:24 <oerjan> i don't think that's its complete prime factorization, Taneb
20:00:32 <boily> ~eval primeFactors 808017424794512875886459904961710757005754368000000000
20:00:33 <metasepia> [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,7,7,7,7,7,7,11,11,13,13,13,17,19,23,29,31,41,47,59,71]
20:00:35 <Taneb> oerjan, it's a start
20:01:04 <oerjan> metasepia 1, HackEgo 0.
20:01:40 -!- carado has joined.
20:01:46 <oerjan> is metasepia a reference to the claim cuttlefishes don't have color vision
20:02:16 <Taneb> ~eval 7 ^. re (_Just . _Left . enum) :: Maybe (Either Char Bool)
20:02:18 <metasepia> Error (1): Couldn't match type `GHC.Types.Int' with `GHC.Types.Char'
20:02:18 <metasepia> Expected type: Control.Lens.Internal.Review.Reviewed
20:02:18 <metasepia> t0 (Data.Functor.Identity.Identity t0)
20:02:18 <metasepia> -> Control.Lens.Internal.Review.Reviewed
20:02:18 <metasepia> GHC.Types.Int (Data.Functor.Identity.Identity GHC.Types.Char)
20:02:19 <metasepia> Actual type: Control.Lens.Internal.Review.Reviewed
20:02:19 <metasepia> t0 (Data.Functor.Identity.Identity t0)
20:02:20 <metasepia> -> Control.Lens.Internal.Review.Reviewed
20:02:20 <metasepia> GHC.Types.Int (Data.Functor.Identity.Identity GHC.Types.Int)
20:02:28 <Taneb> ~eval 7 ^. re (_Just . _Left . from enum) :: Maybe (Either Char Bool)
20:02:29 <metasepia> Just (Left '\a')
20:02:36 <Taneb> ~eval 49 ^. re (_Just . _Left . from enum) :: Maybe (Either Char Bool)
20:02:37 <metasepia> Just (Left '1')
20:02:41 <boily> oerjan: it's name after Metasepia Pfefferi.
20:02:48 <boily> s/e\b/ed/
20:02:58 <oerjan> ah
20:04:14 <boily> created a github project earlier this morning, just to be sure.
20:05:00 <elliott> i still miss cuttlefish
20:05:09 <FreeFull> Does metasepia use the primes package or something else?
20:05:35 <oerjan> ~eval (0$0 `primeFactors`)
20:05:35 <metasepia> Error (1): The operator `Data.Numbers.Primes.primeFactors' [infixl 9] of a section
20:05:36 <metasepia> must have lower precedence than that of the operand,
20:05:36 <metasepia> namely `GHC.Base.$' [infixr 0]
20:05:36 <metasepia> in the section: `0 $ 0 `primeFactors`'
20:05:53 <Taneb> ~type (+)
20:05:54 <metasepia> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:06:03 <Taneb> boily, you know what to do
20:06:26 <oerjan> ~type (+)==()
20:06:27 <metasepia> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:06:31 <oerjan> ~eval (+)==()
20:06:32 <metasepia> Error (1): Couldn't match expected type `a0 -> a0 -> a0' with actual type `()'
20:06:33 <boily> Taneb: I'm reading RFC 2812 for now, I still have to reimplement that IRC client stack for it to support SSL.
20:06:35 <FreeFull> :t (+)
20:06:37 <lambdabot> Num a => a -> a -> a
20:06:47 <FreeFull> ~duck
20:06:48 <metasepia> --- ~duck query
20:06:48 <metasepia> --- Query information from Duck Duck Go
20:06:57 <Taneb> ~duck Hexham
20:06:57 <FreeFull> ~duck longest pie
20:06:58 <metasepia> --- No relevant information
20:06:58 <metasepia> --- No relevant information
20:07:05 <Taneb> ~duck Northumberland
20:07:05 <metasepia> n the northernmost county of England, on the North Sea: hilly in the north and west, with many Roman remains, notably Hadrian's Wall; shipbuilding, coal mining.
20:07:21 <boily> any and all suggestions, desires, opinions and other wishes you can come up with will probably be readily accepted and implemented.
20:07:35 <FreeFull> ~duck programming language
20:07:36 <metasepia> A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer.
20:07:46 <Taneb> boily, can you make a DOS version of HackEgo?
20:08:12 <elliott> ~botsnack
20:08:12 <metasepia> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:08:16 <elliott> boily: it needs ~botsnack.
20:08:22 <boily> what's botsnack?
20:08:24 <elliott> @botsnack
20:08:24 <lambdabot> :)
20:08:31 <Taneb> `botsnack
20:08:33 <HackEgo> ​:-D
20:08:36 <Taneb> ^botsnack
20:08:49 <Taneb> fungot why
20:08:49 <fungot> Taneb: i mean that in the ' save as text' shows bold text. whoops.
20:09:00 <Taneb> !botsnack
20:09:09 <Taneb> EgoBot why
20:09:12 <Taneb> #botsnack
20:09:23 <Taneb> Who was #
20:09:24 -!- ogrom has joined.
20:09:51 <boily> ok, so: 1. Implement an IRC stack; 2. Add botsnack; 3. Kill Morgoth.
20:10:13 <Taneb> boily, can I take this opportunity to say that it's okay for metasepia to use '~' because Pietbot sucked?
20:10:43 <ais523> + is thutubot
20:10:48 <boily> somebody else was using ~ besides me?
20:10:52 <Taneb> Yeah, me
20:10:55 <Taneb> Pietbot
20:10:57 <Taneb> It sucked
20:11:09 <Taneb> It couldn't quite run deadfish programs
20:11:23 <boily> I boldly reaffirm my possession and exclusive usage of ~!
20:11:43 <oerjan> `botsnack
20:11:44 <boily> Taneb: uhm. ok. I... uhm... well... uh... that's quite an impressive achievement, if I may say so.
20:11:45 <HackEgo> ​:-D
20:12:41 <oerjan> !addinterp botsnack sh echo "^_^"
20:12:42 <EgoBot> ​Interpreter botsnack installed.
20:12:45 <oerjan> !botsnack
20:12:47 <EgoBot> ​^_^
20:13:33 -!- sirdancealot has quit (Remote host closed the connection).
20:13:38 <oerjan> ^prefixes
20:13:38 <fungot> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?
20:13:45 <Taneb> ?botsnack
20:13:46 <lambdabot> :)
20:13:53 <oerjan> ^show prefixes
20:13:53 <fungot> (Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?)S
20:14:19 <oerjan> ^def prefixes ul (Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~)S
20:14:20 <fungot> Defined.
20:14:23 <oerjan> ^prefixes
20:14:23 <fungot> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~
20:14:31 <oerjan> !show prefixes
20:14:31 <Bike> +botsnack
20:14:31 <EgoBot> underload (Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?)S
20:14:45 <oerjan> !delinterp prefixes
20:14:46 <EgoBot> ​Interpreter prefixes deleted.
20:14:58 <oerjan> ^addinterp prefixes underload (Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~)S
20:15:04 <oerjan> !addinterp prefixes underload (Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~)S
20:15:04 <fungot> oerjan: let it equal that from the bf algorithms page. i'm thinking about
20:15:05 <EgoBot> ​Interpreter prefixes installed.
20:15:18 <oerjan> `cat bin/prefixes
20:15:20 <HackEgo> ​#!/bin/sh \ echo 'Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?'
20:15:37 <Bike> All the other bots should just query HackEgo, clearly.
20:15:56 <oerjan> `sed -i '2s/$/, thutubot +, metasepia ~/' bin/prefixes
20:15:58 <HackEgo> Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... \ \ -n, --quiet, --silent \ suppress automatic printing of pattern space \ -e script, --expression=script \ add the script to the commands to be executed \ -f script-file, --file=script-file \ add the contents of script-
20:16:06 <oerjan> `run sed -i '2s/$/, thutubot +, metasepia ~/' bin/prefixes
20:16:08 -!- Phantom___Hoover has joined.
20:16:09 <HackEgo> No output.
20:16:13 <oerjan> `prefixes
20:16:15 <HackEgo> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia /tmp
20:16:16 <oerjan> !prefixes
20:16:17 <EgoBot> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~
20:16:23 <oerjan> ...wat
20:16:27 <boily> uhm...
20:16:34 <oerjan> `revert
20:16:37 <HackEgo> Done.
20:16:50 -!- nooga has joined.
20:17:00 <oerjan> `run sed -i '2s/$/, thutubot +, metasepia \~/' bin/prefixes
20:17:04 <HackEgo> No output.
20:17:08 <oerjan> `prefixes
20:17:10 <HackEgo> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia /tmp
20:17:15 <boily> ...
20:17:25 <oerjan> `echo ~/
20:17:27 <HackEgo> ​~/
20:17:33 <oerjan> `run echo '~/'
20:17:35 <HackEgo> ​~/
20:17:43 <oerjan> huh
20:18:03 <oerjan> `revert
20:18:06 <HackEgo> Done.
20:18:07 <oerjan> `prefixes
20:18:09 <HackEgo> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?
20:18:30 <oerjan> `run sed -i '2s_$_, thutubot +, metasepia \~_' bin/prefixes
20:18:34 <HackEgo> No output.
20:18:36 <oerjan> `prefixes
20:18:38 <HackEgo> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia /tmp
20:18:43 <oerjan> ffuu
20:18:44 <Bike> awesome.
20:18:50 <Bike> `run echo 'hi' | sed 's/hi/~/'
20:18:51 <oerjan> `revert
20:18:51 <boily> as we say, «bin là».
20:18:51 <HackEgo> ​~
20:18:53 <HackEgo> Done.
20:19:45 <elliott> oerjan: tip: cat bin/prefixes
20:19:49 <oerjan> `run echo 'hi' | sed 's/hi/ ~/'
20:19:51 <HackEgo> ​ ~
20:20:00 <oerjan> `cat bin/prefixes
20:20:01 <HackEgo> ​#!/bin/sh \ echo 'Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?'
20:20:16 <oerjan> ...
20:20:21 <elliott> @ or ?', blah blah ~
20:20:22 <Bike> `run sed -i '2s_$_, thutubot +, metasepia \~_' bin/prefixes
20:20:26 <HackEgo> No output.
20:20:28 <elliott> no god dammit
20:20:31 <Bike> `cat bin/prefixes
20:20:32 <HackEgo> ​#!/bin/sh \ echo 'Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?', thutubot +, metasepia ~
20:20:34 <Bike> yes god dammit.
20:20:35 <boily> ah!
20:20:37 <Bike> Yes.
20:20:39 <boily> at last!
20:20:41 <boily> :D
20:20:46 <elliott> `revert
20:20:48 <HackEgo> Done.
20:20:49 <elliott> boily: no it's not working :P
20:21:01 <boily> elliott: toé mon espèce de...
20:21:17 <Bike> I swear, this channel actually makes me want to figure out ed some time, because it couldn't possibly be more bullshit than sed.
20:21:19 * boily swats elliott with a random cephalopod
20:21:41 <oerjan> `run sed -i '2s_'$_, thutubot +, metasepia ~'\''_' bin/prefixes
20:21:43 <HackEgo> sed: -e expression #1, char 8: unterminated `s' command
20:21:45 <oerjan> ff
20:21:57 <oerjan> `run sed -i '2s_'\''$_, thutubot +, metasepia ~'\''_' bin/prefixes
20:22:01 <HackEgo> No output.
20:22:04 <oerjan> `prefixes
20:22:06 <HackEgo> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~
20:22:07 <elliott> you fools. you think you can figure out unix
20:22:10 <oerjan> whew
20:22:16 <elliott> you know nothing!
20:22:30 <Bike> elliott: Lucky for me I don't actually do things that I want to do.
20:25:18 <monqy> metasepia??
20:25:30 <elliott> monqy: its like cuttlefish but not called cuttlefish
20:25:33 <elliott> instead it has a worse name
20:25:35 <monqy> ah...
20:25:45 <oerjan> ) 2+2
20:25:46 <jconn> oerjan: 4
20:25:51 <oerjan> OH NO
20:26:05 <oerjan> !blsq 1
20:26:05 <blsqbot> 1
20:26:32 <monqy> i should make a bot where the prefix is >. that's not used right
20:26:54 <oerjan> `run sed -i '2s_'\''$_, jconn ), blsqbot !'\''_' bin/prefixes
20:26:58 <Bike> i like having bots that respond to their name
20:26:59 <HackEgo> No output.
20:27:00 <oerjan> `prefixes
20:27:01 <HackEgo> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot !
20:27:08 <Bike> so you can do "HackEgo, make me a pie" or w/e
20:27:11 <oerjan> ^prefixes
20:27:11 <fungot> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~
20:27:12 <monqy> what happened to preflex
20:27:33 <oerjan> !delinterp prefixes
20:27:34 <EgoBot> ​Interpreter prefixes deleted.
20:28:00 <elliott> monqy: well mauke left
20:28:03 <monqy> rip
20:28:08 <oerjan> oh fff
20:28:23 <oerjan> cannot add jconn with underload :P
20:28:42 <elliott> bf_txtgen time
20:28:55 <Gregor> monqy: You should use » as a prefix.
20:30:18 <monqy> could use ☺ as a prefix
20:30:19 <oerjan> !bf_txtgen Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot !
20:30:19 <fungot> oerjan: fnord doesn't have magus available. when you use it, then?
20:31:02 <monqy> good bf_txtgen
20:31:30 <oerjan> !addinterp prefixes sh echo 'Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot !'
20:31:31 <fungot> oerjan: s/ whi/ who/ that's an error to use car on a string
20:31:32 <EgoBot> ​1111 +++++++++++[>++++++>+++>++++++++++>+++++++++<<<<-]>.>>+.+++++.<-.>----.++.>++.+.+++.<++++++.>----.<-----.<<--------.--------------------------.>>>+.<++.>++++++++.-------.<------.+++++.<<.>>>---------.<<++++++++++++.<.>++++++++++++++++++++++++++++.>>+++.++.<---------.<---.>>++++.<++++.<<.>>>-------.<<<++++++++++++.------------.>.>>+++++++.<.<---.>>++++++++.+++++.<<<.+.+++++++++++.------------.>>---.<+++++++++++++++++++++++++++++++.>+.<+.++.---.+.>++.>.<<<.>-
20:31:43 <boily> ☺ is a good choice, IMHO. just have to remember it's U+263A.
20:31:47 <oerjan> SOMETHING TELLS ME IT GOT CUT OFF
20:31:53 <oerjan> !echo hi
20:31:54 <EgoBot> hi
20:32:04 <oerjan> !prefixes
20:32:05 <EgoBot> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot !
20:32:21 <oerjan> !bf +++++++++++[>++++++>+++>++++++++++>+++++++++<<<<-]>.>>+.+++++.<-.>----.++.>++.+.+++.<++++++.>----.<-----.<<--------.--------------------------.>>>+.<++.>++++++++.-------.<------.+++++.<<.>>>---------.<<++++++++++++.<.>++++++++++++++++++++++++++++.>>+++.++.<---------.<---.>>++++.<++++.<<.>>>-------.<<<++++++++++++.------------.>.>>+++++++.<.<---.>>++++++++.+++++.<<<.+.+++++++++++.------------.>>---.<+++++++++++++++++++++++++++++++.>+.<+.++.---.+.>+
20:32:22 <EgoBot> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdab
20:32:48 <oerjan> SEEMS IMPRACTICAL
20:33:05 <Gregor> lol
20:33:22 <Gregor> What IS lambdab's prefix anyway???
20:35:03 <oerjan> `run interp 'bf_txtgen Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot !' >prefs
20:35:03 <fungot> oerjan: http://www.kollektiv-hamburg.de/forcer/ test.html could you upload it to fnord
20:35:08 <HackEgo> exec: 4: ibin/bf_txtgen: not found
20:35:14 <oerjan> AAAAAAAAAAAAAAAAAaaa
20:35:48 <oerjan> `ls interp
20:35:51 <HackEgo> ​/bin/ls: cannot access interp: No such file or directory \ /bin/ls: cannot access interp: No such file or directory
20:35:52 <oerjan> `ls interps
20:35:53 <HackEgo> 1l \ 2l \ adjust \ axo \ befunge \ bfjoust \ bf_txtgen \ boof \ build.sh \ cfunge \ c-intercal \ clc-intercal \ dimensifuck \ egobch \ egobf \ fukyorbrane \ gcccomp \ gforth_quit \ ghc \ glass \ glypho \ kipple \ lambda \ lazyk \ linguine \ Makefile \ malbolge \ pbrain \ qbf \ rail \ rhotor \ sadol \ sceql \ trigger \ udage01 \ underload \ unlambda
20:36:09 <oerjan> `ls interps/bf_txtgen
20:36:11 <HackEgo> CompareIndividuals.class \ Individual.class \ textgen.class \ textgen.java \ textgen.tar.gz
20:36:53 -!- atriq has joined.
20:36:55 <oerjan> `cat bin/interp
20:36:56 <HackEgo> ​#!/bin/sh \ CMD=`echo "$1" | cut -d' ' -f1` \ ARG=`echo "$1" | cut -d' ' -f2-` \ exec ibin/$CMD "$ARG"
20:37:06 -!- Taneb has quit (Disconnected by services).
20:37:09 -!- atriq has changed nick to Taneb.
20:37:56 <oerjan> `ls ibin
20:37:59 <HackEgo> 1l \ 2l \ adjust \ asm \ axo \ bch \ befunge \ befunge98 \ bf \ bf16 \ bf32 \ bf8 \ boolfuck \ c \ cintercal \ clcintercal \ cxx \ dimensifuck \ forth \ glass \ glypho \ haskell \ k \ kipple \ lambda \ lazyk \ linguine \ malbolge \ pbrain \ qbf \ rail \ rhotor \ sadol \ sceql \ sh \ trigger \ udage01 \ underload \ unlambda \ whirl
20:38:05 <Taneb> Good news!
20:38:06 <oerjan> `ls
20:38:08 <HackEgo> bin \ brainfuck.fu \ canary \ dbg.out \ dkVb20VL \ egobot.tar.xz \ etc \ factor \ foo \ foo.err \ foo.out \ ibin \ interps \ karma \ lib \ paste \ prefs \ quines \ quotes \ radio.php?out=inline&shuffle=1&limit=1&filter=*MitamineLab* \ sgfoobar \ share \ slist.rej \ src \ sudo \ %sudo \ test \ wisdom \ zalgo.hs
20:38:13 <Taneb> My program no longer segfaults and coredumps!
20:38:18 <Taneb> Probably!
20:38:27 <Gregor> It now coredumps due to some other fault?
20:38:36 <Taneb> It space leaks
20:38:43 <Gregor> PROBLEM: SOLVED
20:38:44 -!- nooga has quit (Ping timeout: 255 seconds).
20:38:51 <oerjan> Gregor: why isn't bf_txtgen in ibin/
20:38:59 <Gregor> Excellent question.
20:39:02 <Gregor> I haven't an excellent answer.
20:39:05 <Gregor> `ls bin/bf*
20:39:06 <HackEgo> ​/bin/ls: cannot access bin/bf*: No such file or directory \ /bin/ls: cannot access bin/bf*: No such file or directory
20:39:10 <Gregor> 'snot there either.
20:39:13 <Gregor> Nowait
20:39:15 <Gregor> `run ls bin/bf*
20:39:16 <HackEgo> ​/bin/ls: cannot access bin/bf*: No such file or directory \ /bin/ls: cannot access bin/bf*: No such file or directory
20:39:20 <Gregor> Still not there.
20:41:05 <oerjan> `run find | grep txtgen
20:41:08 <HackEgo> ​./.hg/store/data/interps/bf__txtgen \ ./.hg/store/data/interps/bf__txtgen/_compare_individuals.class.i \ ./.hg/store/data/interps/bf__txtgen/_individual.class.i \ ./.hg/store/data/interps/bf__txtgen/textgen.class.i \ ./.hg/store/data/interps/bf__txtgen/textgen.java.i \ ./.hg/store/data/interps/bf__txtgen/textgen.tar.gz.i \ ./interps/bf_txtgen \
20:41:32 <oerjan> `run find | grep txtgen | grep -v '[.]hg'
20:41:35 <HackEgo> ​./interps/bf_txtgen \ ./interps/bf_txtgen/CompareIndividuals.class \ ./interps/bf_txtgen/Individual.class \ ./interps/bf_txtgen/textgen.class \ ./interps/bf_txtgen/textgen.java \ ./interps/bf_txtgen/textgen.tar.gz
20:41:48 <Gregor> I probably didn't import it correctly.
20:41:52 <Gregor> s/probably/clearly/
20:42:03 <oerjan> `run find | grep txtgen | grep -v '[.]hg' | grep -v '[.]/interps/'
20:42:06 <HackEgo> No output.
20:42:38 -!- sirdancealot has joined.
20:43:11 <oerjan> boily: i see no other solution than you changing your prefix to ( i'm afraid
20:43:30 <elliott> oerjan: how about hide a ) at the end of the list
20:43:34 * boily preciously guards his shiny and wiggly ~
20:43:36 <Taneb> Wait
20:43:38 <elliott> wait
20:43:39 <elliott> never mind
20:43:43 <Taneb> Pietbot never had ~
20:43:45 <Taneb> It had )
20:43:51 <Taneb> "whoops"
20:43:55 <oerjan> or maybe blsqbot could do it, it's overlapping with EgoBot anyway
20:44:33 <monqy> how about we invent a bot that uses (
20:44:40 <oerjan> oh wait hm
20:45:11 <oerjan> !prefixes
20:45:12 <EgoBot> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot !
20:46:49 -!- carado has quit (Ping timeout: 246 seconds).
20:48:47 <boily> ~metar CYUL
20:48:47 <metasepia> CYUL 272045Z 05014KT 5/8SM R06L/3000FT/D R06R/3500FT/N SN OVC003 00/M00 A2980 RMK SN5SF3 SLP093
20:50:06 <oerjan> oh hm
20:50:38 <oerjan> ^rainbow
20:50:50 <oerjan> ^rainbow HOWDOESTHISWORKAGAINTESTINGHO
20:50:50 <fungot> HOWDOESTHISWORKAGAINTESTINGHO
20:50:57 <oerjan> ^show rainbow
20:50:57 <fungot> +3>4+6[->+8<],[<4.>[->+>+<2]>2-[-[-[-[-[-[-[<[-]>[-]]]]]]]]<[-<+>2+<]<+>4.[-<2+>3+<]<2+2.[-]>.>2[-<+>]<2,]
20:52:02 <oerjan> Testing
20:52:31 <boily> ^rainbow FWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLFLBLBLBLBLBLBLBLBL!
20:52:32 <fungot> FWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLFLBLBLBLBLBLBLBLB ...
20:52:40 <monqy> hi
20:52:50 <oerjan> oh wait that lack of dummy thing...
20:53:17 <oerjan> (semi-portable, that is)
20:53:40 <oerjan> Testing
20:53:45 <oerjan> nope
21:00:08 <oerjan> `ls interps/bf_txtgen
21:00:10 <HackEgo> CompareIndividuals.class \ Individual.class \ textgen.class \ textgen.java \ textgen.tar.gz
21:00:27 <oerjan> `run java interps/textgen.java test
21:00:32 <HackEgo> Exception in thread "main" java.lang.NoClassDefFoundError: interps/textgen/java \ Caused by: java.lang.ClassNotFoundException: interps.textgen.java \ at java.net.URLClassLoader$1.run(URLClassLoader.java:217) \ at java.security.AccessController.doPrivileged(Native Method) \ at java.net.URLClassLoader.findClass(URLClassLoader.java:205) \ at java.
21:00:53 <oerjan> !sh ls
21:00:54 <EgoBot> interps \ lib \ slox
21:01:00 <oerjan> !sh ls interps
21:01:01 <EgoBot> 1l \ 2l \ Makefile \ adjust \ axo \ befunge \ bf_txtgen \ bfjoust \ boof \ c-intercal \ cat \ cfunge \ clc-intercal \ dimensifuck \ egobch \ egobf \ fukyorbrane \ gcccomp \ gforth_quit \ ghc \ glass \ glypho \ kipple \ lambda \ lazyk \ linguine \ malbolge \ pbrain \ qbf \ rail \ rhotor \ sadol \ sceql \ trigger \ udage01 \ underload \ unlambda \ whirl
21:01:12 <oerjan> !sh ls interps/bf_txtgen
21:01:13 <EgoBot> CompareIndividuals.class \ Individual.class \ textgen \ textgen.class \ textgen.java \ textgen.tar.gz
21:01:23 <oerjan> !sh ls ..
21:01:24 <EgoBot> multibot_cmds
21:01:47 <oerjan> !sh ls ../..
21:01:47 <EgoBot> egobot.hg
21:01:53 <oerjan> !sh ls ../../..
21:01:54 <EgoBot> egobot
21:01:57 <oerjan> !sh ls ../../../..
21:01:58 <EgoBot> bin \ dev \ etc \ home \ lib \ lib64 \ opt \ proc \ tmp \ usr
21:02:10 <oerjan> Gregor: ok where the fuck is ibin in EgoBot
21:02:26 <Gregor> Nowhere.
21:02:31 <Gregor> You'd have to get it from the repo.
21:03:02 <Gregor> http://codu.org/projects/egobot/hg/index.cgi/file/ffe171208ae9/multibot_cmds/scmds/bf_txtgen
21:04:15 <oerjan> `ls lib/interp
21:04:17 <HackEgo> lib/interp
21:04:39 <oerjan> `fetch http://codu.org/projects/egobot/hg/index.cgi/raw-file/ffe171208ae9/multibot_cmds/scmds/bf_txtgen
21:04:41 <HackEgo> 2013-02-27 21:04:40 URL:http://codu.org/projects/egobot/hg/index.cgi/raw-file/ffe171208ae9/multibot_cmds/scmds/bf_txtgen [125/125] -> "bf_txtgen" [1]
21:04:54 <oerjan> `mv bf_txtgen ibin
21:04:56 <HackEgo> mv: missing destination file operand after `bf_txtgen ibin' \ Try `mv --help' for more information.
21:05:08 <oerjan> `run chmod a+x bf_txtgen; mv bf_txtgen ibin
21:05:13 <HackEgo> No output.
21:05:44 <oerjan> `run interp 'bf_txtgen Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot !' >prefs
21:05:45 <tswett> Futari arukidasu.
21:06:05 <HackEgo> No output.
21:06:14 <oerjan> `wc prefs
21:06:15 <HackEgo> ​ 1 3 1116 prefs
21:06:19 <oerjan> O_O
21:06:36 <Gregor> `java
21:06:40 <HackEgo> Usage: java [-options] class [args...] \ (to execute a class) \ or java [-options] -jar jarfile [args...] \ (to execute a jar file) \ where options include: \ -d32 use a 32-bit data model if available \ -d64 use a 64-bit data model if available \ -server to select the "server" VM \ The d
21:06:51 <Gregor> `cat prefs
21:06:52 <HackEgo> 1104 +++++++++++++++[>++++++++>++++>+++++++>+++++++<<<<-]>>++++++.>++++++.<<----.>----------------------------------.<----.>>+++.<<-----------.+.>>>.<++++++.<<-.>>-----.<++++++++++++++++++++++++++.--------------------------.<+.>>++.>+++++.<<<+.>>>+.<-.<.>----------------------.<++++++++++++.------------.>----------------------.<<------.>+++++++++++
21:07:06 <Gregor> `run cut -d' ' -f2 prefs
21:07:07 <HackEgo> ​+++++++++++++++[>++++++++>++++>+++++++>+++++++<<<<-]>>++++++.>++++++.<<----.>----------------------------------.<----.>>+++.<<-----------.+.>>>.<++++++.<<-.>>-----.<++++++++++++++++++++++++++.--------------------------.<+.>>++.>+++++.<<<+.>>>+.<-.<.>----------------------.<++++++++++++.------------.>----------------------.<<------.>+++++++++++++
21:07:13 <Gregor> `run cut -d' ' -f2 prefs > prefs.bf
21:07:16 <HackEgo> No output.
21:07:28 <oerjan> Gregor: um what are you doing
21:07:51 <oerjan> `url prefs
21:07:53 <Gregor> Getting out the bf?
21:07:54 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/prefs
21:08:51 <oerjan> Gregor: i'm hand massaging it anyway
21:09:00 <oerjan> to get it into fungot
21:09:08 <Gregor> Oh
21:09:20 <Gregor> `prefixes
21:09:21 <HackEgo> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot !
21:09:29 <Gregor> We should have a more automated way of doing this X-D
21:09:48 <oerjan> it's just that HackEgo was the easiest place to get the full bf_txtgen output
21:09:51 <elliott> if only the bots could query each other
21:09:52 <elliott> RIGHT GREGOR
21:10:00 <oerjan> > 1104/3
21:10:06 <lambdabot> 368.0
21:10:15 <Gregor> elliott: Badurpdurpdurp
21:10:34 <oerjan> ^help
21:10:34 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
21:11:23 <FreeFull> http://slant.co/topics/what-are-your-favorite-hidden-features-of-haskell/opinions/user-defined-control-structures I didn't think that anyone would define ? like that
21:11:37 <oerjan> ^str 0 set +++++++++++++++[>++++++++>++++>+++++++>+++++++<<<<-]>>++++++.>++++++.<<----.>----------------------------------.<----.>>+++.<<-----------.+.>>>.<++++++.<<-.>>-----.<++++++++++++++++++++++++++.--------------------------.<+.>>++.>+++++.<<<+.>>>+.<-.<.>----------------------.<++++++++++++.------------.>----------------------.<<------.>++++++++++++++++++++++++++++++++++
21:11:37 <fungot> Set: +++++++++++++++[>++++++++>++++>+++++++>+++++++<<<<-]>>++++++.>++++++.<<----.>----------------------------------.<----.>>+++.<<-----------.+.>>>.<++++++.<<-.>>-----.<++++++++++++++++++++++++++.--------------------------.<+.>>++.>+++++.<<<+.>>>+.<-.<.>----------------------.<++++++++++++.------------.>----------------------.<<------.>++++++++++++++++++++++++++++++++++
21:11:43 <oerjan> ^str 0 add +++++++++++++++++++++++++++++++++.>>----.<---.<++++.++++++++.>-------------------------------------.<<-.>>++++++++++++.------------.<<---------------------------.>>>----.<<.<---.>.+++++.>.+.+++++++++++.------------.>+++++.-----------.++++++++++++.-----------.++.---.+.+++++++++++++.<<.>.<<--.>>.>.<<--.>.>------------------------------------------------.--------------
21:11:43 <fungot> Added.
21:11:50 <oerjan> ^str 0 add -----.<.<++.<++++++++++++++++++++++++++++++++++++++++.>+.-.+.<------.+++++++++++++.>-.>.>-.+.<.<<--.--------.>.<----.>-.<++++.+++++++++++.>----------.--------.>.<<++++++++++++++.>>>.<.<+++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.<+++++.-..>>------------.+++++++++.+++.------------.<-.<--.<-----------.--.>>.+++++++++++++.<<+++.>>>.+.
21:11:50 <fungot> Added.
21:11:58 <oerjan> ^def prefixes bf str:0
21:11:58 <fungot> Defined.
21:12:03 <oerjan> ^prefixes
21:12:03 <fungot> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot !
21:12:12 <elliott> toot
21:12:38 <oerjan> fizzie: PLEASE SAVE
21:12:42 <Gregor> You could add a command to HackEgo that would, in a file, give you the complete list of commands needed to update all the bots.
21:12:51 <oerjan> is he even online
21:13:11 <oerjan> Gregor: heh
21:14:37 <FreeFull> Doesn't allow nesting like C's ?: does though
21:14:43 -!- AnotherTest has quit (Ping timeout: 256 seconds).
21:16:17 <shachaf> oerjan: iih, tyfti
21:16:27 <FreeFull> Also apparently you can use >>= instead of concatMap
21:16:33 <oerjan> shachaf: wat
21:16:39 <oerjan> oh
21:16:44 <FreeFull> Although I think concatMap is clearer in intent
21:16:48 <oerjan> shachaf: YW
21:16:56 <boily> shachaf: is that finnish?
21:17:07 <oerjan> iihtyftillä
21:17:20 <boily> thät definitely is finnish.
21:17:41 <oerjan> seriösly
21:18:56 <shachaf> it indeed helps
21:19:00 <shachaf> thank you for that information
21:19:04 <shachaf> htdrify
21:19:49 <oerjan> shachaf: well i for one am not one to stop anyone from dating female yetis.
21:20:42 -!- sebbu2 has joined.
21:21:03 <oerjan> @tell fizzie please ^save fungot thanks
21:21:03 <lambdabot> Consider it noted.
21:21:09 <FreeFull> > let 5 = 6 in 5
21:21:10 <lambdabot> 5
21:21:35 <shachaf> ^save
21:21:54 <oerjan> shachaf: i do not believe it responds to you hth
21:22:05 <tromp_> > let False = True in False
21:22:05 -!- ogrom has quit (Quit: Left).
21:22:22 * FreeFull pokes lambdabot
21:22:35 <oerjan> ~eval let False = True in False
21:22:36 <metasepia> False
21:22:37 <lambdabot> False
21:22:48 <oerjan> lambdabot: TOO LATE
21:22:54 <shachaf> > compadre "shachaf" "fizzie"
21:22:56 <lambdabot> EQ
21:23:00 -!- sebbu has quit (Ping timeout: 272 seconds).
21:23:14 <oerjan> los compadres banditos
21:23:20 <FreeFull> What's the definition of compadre?
21:23:32 <FreeFull> compadre = EQ ??????
21:23:39 <shachaf> @ty compadre
21:23:40 <FreeFull> ????????????????????????????
21:23:41 <lambdabot> Ord b => b -> b -> Ordering
21:24:03 <Taneb> > compadre 1 0
21:24:03 <oerjan> > compadre "shachaf" "hitler"
21:24:05 <lambdabot> can't find file: L.hs
21:24:05 <lambdabot> EQ
21:24:08 <Taneb> > compadre 1 0
21:24:11 <lambdabot> EQ
21:24:13 <Taneb> > compadre 1 1
21:24:14 <FreeFull> > compadre "" "R"
21:24:17 <lambdabot> EQ
21:24:19 <lambdabot> EQ
21:24:19 <Taneb> > compadre 1 2
21:24:25 <lambdabot> EQ
21:24:34 <Taneb> Have concluded that it always returns EQ
21:24:36 <FreeFull> It probably is compadre a b = EQ
21:24:44 <boily> :t compadre
21:24:49 <lambdabot> Not in scope: `compadre'
21:24:53 <lambdabot> Perhaps you meant `compare' (imported from Data.Ord)
21:24:53 <FreeFull> With a type annotation that adds the Ord restraint
21:25:01 <oerjan> Taneb: i think that can be deduced from the type, and how it behaves on those tested numbers
21:25:13 <Taneb> oerjan, that's what I tested
21:25:27 <FreeFull> oerjan: Well, just returning EQ wouldn't add the Ord constarint
21:25:29 <oerjan> it must be a modification of compare and maybe seq
21:25:44 <oerjan> FreeFull: no, but it's easy to add that explicitly
21:25:51 <FreeFull> Yeah
21:25:54 <FreeFull> Or using seq
21:26:01 -!- zzo38 has joined.
21:26:06 <Taneb> > compadre [1..] [1..]
21:26:08 <lambdabot> Not in scope: `compadre'
21:26:08 <lambdabot> Perhaps you meant `compare' (imported from Data.O...
21:26:12 <FreeFull> compadre a b = (a == b) `seq` EQ
21:26:16 <Taneb> Who removed it
21:26:29 <FreeFull> :t (\a b -> (a == b) `seq` EQ)
21:26:29 <oerjan> some bandido
21:26:31 <lambdabot> Eq a => a -> a -> Ordering
21:26:36 <FreeFull> No
21:26:38 <FreeFull> :t (\a b -> (a < b) `seq` EQ)
21:26:39 <lambdabot> Ord a => a -> a -> Ordering
21:26:42 <FreeFull> There
21:26:53 <Taneb> :t (\a b -> (a `compare` b) `seq` EQ)
21:26:54 <FreeFull> Possibly const
21:26:55 <lambdabot> Ord a => a -> a -> Ordering
21:27:07 <FreeFull> :t (\a b -> const EQ (a < b))
21:27:09 <lambdabot> Ord a => a -> a -> Ordering
21:27:22 <oerjan> FreeFull: we never got to check it with undefined
21:27:27 <Taneb> > (\a b -> const EQ (a < b)) [1..] [1..]
21:27:29 <lambdabot> EQ
21:27:35 <Taneb> > (\a b -> const EQ (a < b)) undefined undefined
21:27:37 <lambdabot> EQ
21:28:00 <FreeFull> > compadre undefined undefined
21:28:03 <lambdabot> Not in scope: `compadre'
21:28:03 <lambdabot> Perhaps you meant `compare' (imported from Data.O...
21:28:13 <FreeFull> Where did it go ):
21:28:31 <oerjan> someone did @undefine
21:28:38 <oerjan> and *POOF*
21:29:10 <oerjan> it could theoretically be a coincidence and have happened in some completely different channel
21:29:11 <FreeFull> > [ maxBound - 1 .. ]
21:29:12 <lambdabot> Ambiguous type variable `t0' in the constraints:
21:29:13 <lambdabot> (GHC.Enum.Bounded t0)
21:29:13 <lambdabot> ...
21:29:16 * oerjan eyes shachaf suspiciously
21:29:18 <FreeFull> > [ maxBound - 1 :: Int .. ]
21:29:20 <lambdabot> [9223372036854775806,9223372036854775807]
21:29:37 <FreeFull> Expected
21:29:46 * boily prods shachaf with ørjan's eyes
21:29:48 <oerjan> as per haskell report
21:30:00 <shachaf> oerjan: ?
21:30:05 <shachaf> Oh.
21:30:13 <oerjan> shachaf: you are suspected of using @undefine hth
21:30:18 <boily> ~eval [maxBound -1 :: Int .. ]
21:30:19 <metasepia> [9223372036854775806,9223372036854775807]
21:30:27 <oerjan> and thus sabotaging SCIENCE
21:30:32 <shachaf> oerjan: i readily confess
21:30:36 <Taneb> ~eval ['a'..'z']
21:30:37 <metasepia> "abcdefghijklmnopqrstuvwxyz"
21:30:39 <shachaf> 13:22 <shachaf> @let compadre = const (const EQ) `asTypeOf` compare
21:30:41 <oerjan> hm haven't got around to reading girl genius yet
21:30:50 <boily> hmm... that gives me an idea.
21:30:52 <boily> let's flood!
21:30:54 <Taneb> oerjan, it's pretty good
21:30:59 <boily> ~eval ['a'..]
21:31:00 <metasepia> "abcdefghijklmnopqrstuvwxyz{|}~\DEL\128\129\130\131\132\133\134\135\136\137\138\139\140\141\142\143\144\145\146\147\148\149\150\151\152\153\154\155\156\157\158\159\160\161\162\163\164\165\166\167\168\169\170\171\172\173\174\175\176\177\178\179\180\181\182\183\184\185\186\187\188\189\190\191\192\193\194\195\196\197\198\199\200\201\202\203\204\205\206\207\208\209\210\211\212\213\214\215\216\217\218\219\220\221\222\223\224\225\226\227
21:31:02 <oerjan> Taneb: i mean for today
21:31:04 <boily> well darn.
21:31:07 <Taneb> Oh
21:31:14 <Taneb> It's alright
21:31:54 <Sgeo> `olist
21:31:55 <HackEgo> shachaf oerjan Sgeo
21:31:57 <oerjan> winning the comics hugo 3 years in a row _should_ be some kind of quality mark, you'd think
21:32:17 <oerjan> Sgeo: he's on a roll?
21:32:24 <Taneb> oerjan, Daniel Day Lewis has one three Best Actor Oscars and I still have no idea who he is
21:32:26 <Sgeo> Apparently
21:32:52 <Taneb> I couldn't get into OOTS
21:32:58 <oerjan> Taneb: touché
21:35:38 -!- nooodl has joined.
21:44:27 <oerjan> <tromp_> quintopia: it may be that if w occurs in thue-morse, then it occurs within the first O(length(w)) bits
21:44:46 <oerjan> 8*length(w) is sufficient, i think (4 if length(w) is a power of 2)
21:45:33 <oerjan> oh wait
21:45:45 <oerjan> maybe 10
21:46:09 <oerjan> 01100 has all possible boundaries of single bits
21:46:11 <elliott> :t any
21:46:11 -!- epicmonkey has joined.
21:46:13 <lambdabot> (a -> Bool) -> [a] -> Bool
21:46:24 <elliott> why isn't that [Bool] -> Bool.
21:46:29 <Taneb> :t or
21:46:31 <lambdabot> [Bool] -> Bool
21:46:34 <elliott> well ok
21:46:42 <oerjan> @src any
21:46:43 <lambdabot> any p = or . map p
21:48:26 -!- carado_ has joined.
21:48:58 <kmc> it reads well
21:49:08 <kmc> > any even [1, 3, 7]
21:49:09 <lambdabot> False
21:49:16 * kmc .ruby.moed++
21:49:21 <elliott> something about fairbairn threshold
21:49:53 <boily> moed? fairbairn?
21:50:22 -!- carado has joined.
21:50:44 <Taneb> Fairbairn threshold is to do with whether it is worth making an identifier
21:52:13 <boily> ~duck fairbairn
21:52:13 <metasepia> --- No relevant information
21:52:18 <boily> ~duck identifier
21:52:18 <metasepia> An identifier is a name that identifies either a unique object or a unique class of objects, where the "object" or class may be an idea, physical [countable] object, or physical [noncountable] substance.
21:52:20 -!- nooga has joined.
21:53:20 -!- sebbu2 has quit (Ping timeout: 276 seconds).
21:55:01 <Taneb> Remember that book about that guy who fell in love and bred a bright green mouse?
21:55:19 <Taneb> He had a robot dog and some trains
21:55:22 <oerjan> <Gregor> Well, I control the logs, sooooooooooooo >: ) <-- i'm reading this on tunes, neener neener
21:56:29 <olsner> Taneb: the green mile?
21:56:47 <Taneb> olsner, nah, there was nothing to do with miles
21:57:34 <Taneb> http://www.amazon.co.uk/How-Green-Was-My-Mouse/dp/0140388079/ref=sr_1_1?ie=UTF8&qid=1362002247&sr=8-1
21:57:55 <fizzie> ^save
21:57:55 <fungot> OK.
21:57:56 <lambdabot> fizzie: You have 1 new message. '/msg lambdabot @messages' to read it.
21:58:00 <fizzie> @messages
21:58:00 <lambdabot> oerjan said 36m 57s ago: please ^save fungot thanks
21:58:05 <fizzie> (I must be psychic.)
21:58:08 <oerjan> yay!
21:58:10 <Taneb> ^save the world
21:58:26 -!- Taneb has quit (Quit: Leaving).
21:58:38 <oerjan> he saved the world, then left
21:59:34 <boily> ^^
22:00:22 -!- epicmonkey has quit (Ping timeout: 272 seconds).
22:02:12 -!- augur has quit (Remote host closed the connection).
22:05:02 <oerjan> <elliott> I like how that undefined clause is pointless. <-- i think there is some kind of intention in the haskell report that undefined may be replaced by something giving file name and code position, in which case it's not pointless.
22:05:08 <oerjan> > undefined
22:05:10 <lambdabot> *Exception: Prelude.undefined
22:05:21 <oerjan> sadly ghc never bothered with that?
22:05:39 <oerjan> or doesn't now, anyhow
22:05:57 <Bike> > 7 + maximum []
22:05:59 <lambdabot> *Exception: Prelude.maximum: empty list
22:06:05 <Bike> that error seems fine to me
22:06:20 <kmc> > 7 + (case 2 of { 0 -> () })
22:06:22 <lambdabot> No instance for (GHC.Num.Num ())
22:06:22 <lambdabot> arising from a use of `GHC.Num.+'
22:06:22 <lambdabot> Poss...
22:06:25 <kmc> > 7 + (case 2 of { 0 -> 1 })
22:06:27 <lambdabot> *Exception: <interactive>:3:6-25: Non-exhaustive patterns in case
22:06:35 <oerjan> yeah ghc doesn't use undefined in its maximum definition
22:06:58 <oerjan> or does it, hm
22:07:01 <kmc> presumably there's some documentation value to writing "= undefined" as well
22:07:11 <oerjan> @let testing [] = undefined
22:07:13 <lambdabot> Defined.
22:07:16 <oerjan> > testing
22:07:18 <lambdabot> No instance for (GHC.Show.Show ([t0] -> a0))
22:07:18 <lambdabot> arising from a use of `M819...
22:07:23 <oerjan> > testing :: Char
22:07:25 <lambdabot> Couldn't match expected type `GHC.Types.Char'
22:07:25 <lambdabot> with actual type...
22:07:31 <oerjan> wat
22:07:34 <oerjan> oh
22:07:39 <oerjan> > testing [] :: Char
22:07:39 <Bike> what? why would that work?
22:07:41 <lambdabot> *Exception: Prelude.undefined
22:08:25 <oerjan> Bike: if ghc did that thing the report seemed to intend, that might have returned an error message involving testing
22:08:45 <Bike> :t testing
22:08:47 <lambdabot> [t] -> a
22:09:01 <ais523> elliott: Perl 6 has ..., ???, and !!!
22:09:04 <Bike> eh...
22:09:18 <ais523> which are all lazy values that throw various sorts of exception when forced
22:09:25 <oerjan> Bike: it was just a definition to test what ghc does with undefined in a definition, sheesh
22:10:07 <Bike> wasn't eh'ing at you
22:10:22 <ais523> :t fix testing
22:10:24 <lambdabot> [t]
22:10:31 <ais523> > fix testing
22:10:35 <lambdabot> mueval-core: Time limit exceeded
22:10:43 <ais523> yeah, I guess it would be
22:11:02 <oerjan> infinite recursion
22:11:19 -!- sebbu has joined.
22:11:24 -!- Phantom___Hoover has changed nick to Phantom_Hoover.
22:11:26 <oerjan> of pattern matching itself against []
22:11:56 <ais523> > testing [4]
22:11:58 <lambdabot> *Exception: <local>:1:1-22: Non-exhaustive patterns in function testing
22:12:04 <boily> ~eval let x = x in x
22:12:05 <metasepia> Error (1): No instance for (GHC.Show.Show a0)
22:12:05 <metasepia> arising from a use of `M4817096764458891460.show_M4817096764458891460'
22:12:05 <metasepia> The type variable `a0' is ambiguous
22:12:05 <metasepia> Possible fix: add a type signature that fixes these type variable(s)
22:12:05 <metasepia> Note: there are several potential instances:
22:12:06 <metasepia> instance GHC.Show.Show GHC.Types.Double
22:12:06 <metasepia> -- Defined in `base:GHC.Float'
22:12:07 <metasepia> instance GHC.Show.Show GHC.Types.Float
22:12:07 <metasepia> -- Defined in `base:GHC.Float'
22:12:08 <ais523> now, /that's/ a good way to get line numbers
22:12:08 <metasepia> instance (GHC.Real.Integral a, GHC.Show.Show a) =>
22:12:08 <metasepia> GHC.Show.Show (GHC.Real.Ratio a)
22:12:09 <metasepia> -- Defined in `base:GHC.Real'
22:12:09 <metasepia> ...plus 50 others
22:12:27 <ais523> bleh, I was hoping that really large constant would be a mersenne prime
22:12:30 <kmc> metasepia pfefferi
22:12:34 <ais523> but it obviously isn't
22:12:36 <boily> kmc: yep.
22:12:38 -!- boily has quit (Quit: Poulet!).
22:12:42 -!- metasepia has quit (Remote host closed the connection).
22:12:49 -!- atehwa has quit (Remote host closed the connection).
22:12:56 <Bike> why are the type variables such huge numbers anyway
22:13:26 <nooga> ~0
22:13:28 <oerjan> <boily> does deriving Ord in Haskell guarantee a total order, or at least a lattice? <-- as long as you don't get infinite recursion, it should. well as long as the parts are total orders (floating point is well known to break this with NaN)
22:13:30 <nooga> ~ 0
22:14:20 <oerjan> ~eval let x = x in x
22:14:35 <oerjan> oh it quit
22:14:45 * oerjan wanted to see if the number changed
22:15:27 <oerjan> Bike: maybe they're hashes
22:15:39 <Bike> `factor 4817096764458891460
22:15:40 <HackEgo> 4817096764458891460: 2 2 5 288349 835289313377
22:15:55 <oerjan> although they might be too low to be safe from collisions...
22:16:21 <oerjan> @tell boily <boily> does deriving Ord in Haskell guarantee a total order, or at least a lattice? <-- as long as you don't get infinite recursion, it should. well as long as the parts are total orders (floating point is well known to break this with NaN)
22:16:22 <lambdabot> Consider it noted.
22:16:41 <oerjan> pesky guy quitting between me checking /whois and writing the message
22:16:52 -!- wareya has quit (Read error: Connection reset by peer).
22:17:01 <kmc> it's not a lattice if it doesn't have a least upper bound right?
22:17:05 <kmc> so e.g. Integer isn't
22:17:17 <oerjan> kmc: sure it is
22:17:22 <oerjan> it's not a _complete_ lattice.
22:17:40 -!- wareya has joined.
22:18:11 <kmc> oh, right, lub / glb are binary operations and there's no guarantee you can apply them to everything at once
22:19:23 <oerjan> well they can be defined as taking sets but the result may not always exist
22:20:23 -!- impomatic has quit (Quit: impomatic).
22:20:43 <oerjan> e.g. the completeness axiom of real numbers say that lub for a set exists if _any_ upper bound exists
22:20:54 <oerjan> but you don't always have an upper bound
22:20:59 <oerjan> *nonempty set
22:24:47 <oerjan> <coppro> ais523: -Weverything is literally everything, including style warnings and the like <-- i think maybe such a flag should on principle be so sensitive that you _cannot_ avoid getting at least one warning, thus preventing people from combining it with -Werror.
22:24:53 <oerjan> (just a thought.)
22:25:05 <ais523> oerjan: warning: -Werror does not mix well with -Weverything
22:25:24 <oerjan> ais523: yeah but someone might still try if it's possible
22:25:49 <oerjan> ais523: oh wait
22:25:52 <oerjan> XD
22:26:35 <ais523> wow that's confusing me too, it's so neat in the way it ties things together
22:27:21 <FreeFull> What would be a good num instance for lists, assuming (Num a) => [a]
22:27:52 <FreeFull> Other than the obvious thing of operating on one element of the list
22:27:57 <oerjan> FreeFull: zipWise maybe?
22:28:11 <kmc> length of list, undefined elements
22:28:17 <kmc> you don't even need (Num a)
22:28:19 <FreeFull> kmc: Negative numbers?
22:29:00 <oerjan> hm...
22:29:01 <elliott> ais523: haha, that is great
22:29:19 <FreeFull> [] - [undefined] would end up as bottom
22:29:43 <zzo38> Well, the Copeanoid instance for a list does not care the contents, at least. But there doesn't seem a reasonable Num instance.
22:29:44 <FreeFull> Or an error
22:29:44 <oerjan> FreeFull: make [x1,x2,x3,...] represent the ordinal number ...+omega^2*x3+omega*x2+x1
22:29:56 <Bike> ^
22:30:09 <oerjan> or surreal number, maybe, so negatives make sense
22:30:26 <FreeFull> oerjan: That's an interesting instance
22:30:35 <oerjan> except then it's no different from a polynomial, really
22:30:43 <oerjan> which is also an interesting instance
22:30:45 <elliott> FreeFull: the standard applicative lifting one
22:30:55 <elliott> is much better than using undefined and such nonsense
22:31:13 <elliott> any Applicative f gives rise to an instance Num a => Num (f a)
22:31:18 <oerjan> elliott: hm nice
22:31:35 <kallisti> :>
22:31:45 <FreeFull> Well, wouldn't negate [x1,x2,x3,...] be the same as map negate [x1,x2,x3,...]
22:31:48 <elliott> yes
22:31:51 <FreeFull> So no need for surreals
22:31:59 <elliott> note that I don't think these instances are terribly good because you can't e.g. do them for things like Eq
22:32:08 <elliott> it's just happy coincidence that Num is overloaded in just the right ways
22:32:26 <FreeFull> I mena for the ordinals
22:32:55 <oerjan> FreeFull: um if you apply that to an ordinal you don't get an ordinal back
22:33:06 <FreeFull> oerjan: I was thinking you could do polynomials but I can't think of how to do it using just one list, other than interleaving
22:33:55 <FreeFull> So [x1,x2,x3,x4] could be x1*x^0 + x2*x^(-1) + x3*x^1 etc
22:33:58 <oerjan> FreeFull: hm? [a0,a1,...,an] represents a0+x*a1+...+x^n*an
22:34:16 <oerjan> FreeFull: no negative exponents
22:34:22 <FreeFull> Because if you don't include the negatives, you can't do division afaik
22:34:28 <oerjan> Num doesn't have division
22:34:44 <FreeFull> Oh, you're right
22:34:50 <FreeFull> Fractional does
22:35:13 <FreeFull> Well, and Integral has div
22:35:42 <FreeFull> Would this make sense as an Integral instance?
22:35:48 <oerjan> if you try to do division you'll probably want laurent series
22:36:43 <oerjan> FreeFull: hm maybe, if you interpret x as a hyperinteger
22:36:58 <oerjan> which is divisible by all the usual ones
22:37:24 <oerjan> hm not sure it will work
22:38:04 <oerjan> well there _is_ division of polynomials
22:38:25 <FreeFull> You could do it without negative degrees as long as you have remainders
22:38:34 <oerjan> closest to the Integral sense
22:38:52 <oerjan> although we _do_ have the problem that Integral requires toInteger :P
22:39:04 <FreeFull> So [0,0,3] `div` [0,0,0,4] would be [0] and you'd have the remainder of [0,0,3]
22:39:13 <FreeFull> Oh, yeah, that would be a problem =P
22:40:15 <oerjan> <elliott> it's just happy coincidence that Num is overloaded in just the right ways <-- aka "Num describes a universal algebra"
22:40:40 <FreeFull> I should fix my BTernary, I used to not know about quot =P
22:41:17 <oerjan> as opposed to div, or both quot and div?
22:41:21 <elliott> oerjan: HAPPY COINCIDENCE
22:41:49 <oerjan> elliott: universal algebras aren't exactly uncommon. groups, rings, monoids...
22:42:13 <Bike> be happy oerjan
22:42:16 <FreeFull> oerjan: I knew about div and tried to implement my own quot in terms of div
22:42:22 <oerjan> FreeFull: ah
22:42:46 <FreeFull> I should have just looked at where div came from and used :info =P
22:42:59 <FreeFull> But I think I didn't learn about how useful :info was back then either
22:43:14 <oerjan> Bike: reminding me to be happy sadly mainly has the effect of reminding me of my reasons not to be.
22:43:21 <doesthiswork> are any of you familiar with fisher information?
22:43:32 <FreeFull> mdiv x y = abs x `div` abs y * signum x * signum y
22:43:33 <Bike> oerjan: :'(
22:43:35 <FreeFull> That's what I had
22:43:37 <ais523> hmm… I somehow have a US quarter in my wallet
22:43:42 <Bike> can i have it
22:43:47 <ais523> I guess someone accidentally assumed it was a UK 10p coin
22:43:47 <Bike> doesthiswork: no
22:43:51 <oerjan> ais523: give him no quarter
22:44:12 <ais523> hmm… it has a date of 1974
22:44:17 <elliott> oerjan: HAPPY.
22:44:20 <elliott> oerjan: COINCIDENCE.
22:44:23 <ais523> are quarters dating from that long ago in common circulation?
22:44:34 <doesthiswork> yes
22:44:45 <ais523> a bit surprised, UK coins tend to be rather newer on average
22:44:58 <oerjan> it's more than a quarter century
22:45:00 <ais523> the Royal Mint keeps melting old coins down to make new ones, as they get old and damaged
22:45:05 <FreeFull> ais523: That's because UK underwent a currency shift
22:45:09 <FreeFull> From an old system to a new
22:45:18 <FreeFull> And it wasn't that long ago
22:45:53 <ais523> "0.25 USD = 0.1653 GBP (British Pound Sterling)"
22:45:59 <ais523> FreeFull: no, not just because of that
22:46:18 <oerjan> norway tends to occasionally declare old currency no longer legal tender
22:46:27 <Bike> 1974 quarters might be in circulation but not that common
22:46:55 <oerjan> with a period when you can only convert them in banks
22:47:03 <Bike> well, looks like you might be able to sell it for five bucks
22:47:07 <kmc> the coins in my pocket are from 1985, 1992, and 3 x 2011
22:47:11 <doesthiswork> I have on me 94 90 05 80 06 99 92 06 81 83 05 and a roll of Hawaii fresh from the bank
22:47:20 <ais523> actually, the UK redesigns its currency quite a lot
22:47:27 <FreeFull> The decimal pound came in around 1971
22:47:35 <ais523> old currency can always be changed at the Bank of England, but most other places don't accept it
22:47:37 <kmc> what i love about american coins is that they don't actually put the value in arabic numerals anywhere on them
22:47:46 <oerjan> we got rid of the last sub-krone denomination a couple years ago
22:47:53 <kmc> you have to know about english words like "cent" and "dime"
22:48:05 <FreeFull> I guess it's not as recent as the Polish currency change
22:48:18 <FreeFull> Which underwent redenomination in 1995
22:48:19 <ais523> also, touching that quarter made my hands itch
22:48:24 <ais523> and now I'm worried it was poisonous
22:48:30 <ais523> US coins aren't made of contact poison, right?
22:48:31 <Bike> it's probably covered in america cooties
22:48:53 <ais523> I guess it could be fake?
22:49:00 <kmc> $20 bills are covered in cocaine
22:49:01 <elliott> kmc: well you know how americans feel about arabs
22:49:03 <elliott> :-)
22:49:04 <kmc> elliott: yeah
22:49:11 <oerjan> our smallest coin is worth more than a US dime, and still the US won't get rid of pennies :P
22:49:16 <elliott> its ok kmc you don't have to acknowledge my terrible joke
22:49:30 <kmc> elliott: it's different now that we have elected a president who was born in a terrorist training camp in pakistan
22:50:00 <kmc> oerjan: yeah :/
22:50:10 <kmc> the Euro pennies are still around too, but only in some countries?
22:50:21 <kmc> and they have a 2¢ as well
22:51:06 <FreeFull> I think Britain should get rid of 1p and 2p coins
22:51:22 <oerjan> <kmc> $20 bills are covered in cocaine <-- is the cocaine worth more than the bill itself?
22:51:26 <Bike> coins are so passé, we should use BITcoins
22:51:26 <kmc> doubtful
22:51:31 <elliott> its worth exactly $20 of cocaine
22:51:32 <FreeFull> oerjan: Not enough of it
22:51:36 <elliott> thats where they get their value from
22:51:37 <FreeFull> But enough to detect it's there
22:51:49 <elliott> fort knox actually just stores a shitload of cocaine
22:52:01 <elliott> thats how much money the us has
22:52:13 <elliott> exactly $1 shitload of cocaine
22:52:13 <oerjan> prediction: in 20 years the US will switch to the cannabis standard
22:52:27 <Bike> sometimes cheney just swims around in it, scrooge style
22:52:41 <ais523> oerjan: the UK has pennies too
22:52:50 <ais523> although they're worth more than US pennies
22:54:14 <ais523> hmm… a quick trip to Wikipedia implies that this quarter is made of copper and nickel, much like UK coins, and was made in Philadelphia
22:54:50 <kmc> la cocaina no es buena para su salud
22:55:40 <Bike> i'm going to assume that salud is salad
22:55:42 <ais523> Bike: bitcoins take a noticeably large amount of time to verify that they've transferred
22:55:44 <ais523> a bit like cheques
22:56:10 <ais523> or rather, cheques take a while to transfer
22:56:22 <ais523> whereas bitcoins transfer instantly but you can't observe that they've transferred until some time afterwards
22:56:38 <kmc> mmmm cocaine salad
22:56:58 <kmc> ais523: what's the privileged reference frame there?
22:57:34 <ais523> kmc: the actual problem is the existence of multiple reference frames, it takes some while to establish which one is the canonical one
22:57:41 <kmc> sure
22:57:49 <kmc> i don't think you can say they've 'really' transferred until that's established
22:57:53 <kmc> and in fact it can change after the fact
22:57:55 <ais523> hmm, yeah
22:58:02 <ais523> well it doesn't if the sender doesn't attempt to double-spend
22:58:18 <kmc> i can't wait for some eccentric billionaire or government intelligence agency to get a bunch of ASIC miners and fuck with the bitcoin transaction history
22:58:22 <kmc> it wouldn't be that expensive
22:58:33 <Bike> but it would require for someone to give a damn about bitcoins
22:58:38 <elliott> kmc: well they already do gpu mining
22:58:42 <kmc> i think enough people do at this point
22:58:44 <kmc> elliott: sure
22:58:47 -!- wareya has quit (Ping timeout: 260 seconds).
22:58:53 <kmc> ASIC mining will be much much cheaper once someone is making them at scale though
22:59:00 <elliott> Bike: well you could make a lot of money off it
22:59:03 <kmc> and there are several commercial products supposedly launching ~now
22:59:14 <ais523> from what I've heard about ASIC mining is that the ASICs are being made at the moment and aren't in circulation yet
22:59:21 <kmc> yes
22:59:28 <ais523> although AFAICT, ASIC mining is a prisoner's dilemma
22:59:33 <kmc> also the mining difficulty only rebalances every 2 weeks
22:59:41 <ais523> oh, ooh
22:59:49 <ais523> ASICs aren't /that/ much better than FPGAs, though
22:59:53 <ais523> and even GPUs are beating FPGAs atm
23:00:00 <kmc> so if ASIC mining rigs are being distributed quickly, they might mine a /ton/ of money
23:00:04 <Fiora> they're claiming some really high numbers, though, I think?
23:00:06 -!- nooodl has quit (Ping timeout: 264 seconds).
23:00:06 <kmc> an instant bubble, over almost before it's begun
23:00:08 <Fiora> like 65000 MH/s for a $1000 box
23:00:15 <kmc> this is of course a property of a healthy and stable currency ;P
23:00:22 <elliott> iirc i was aware of bitcoins for long enough to have been able to have made 10x profit on them
23:00:22 <kmc> yeah
23:00:30 <kmc> ASICs are way faster than FPGAs in a general / average kind of case
23:00:33 <elliott> and not having done this annoys me even though I had no reasonable way to expect it would have been possible
23:00:35 <kmc> i don't know about for bitcoin cores
23:00:51 <Fiora> I bought a couple for 10 cents each and sold them at $30, I feel like a bad person
23:01:04 <kmc> a friend made like $1k because he happened to have set up a mining box and forgotten about it
23:01:35 <Bike> Fiora: you are now a member of the bit bourgeoisie
23:01:38 <ais523> bitcoin economics makes no sense to me
23:01:52 <elliott> Fiora: welcome to capitalism, here's your gold star
23:01:54 <ais523> like, I don't see why people value bitcoins as highly as they do
23:02:00 <Bike> bitgeoisie?
23:02:23 <Fiora> they're a medium of exchange wth a limited quantity, and people feel like that medium will continue to be used in the future?
23:02:25 <Bike> ais523: it's like tulip mania wouldn't you say
23:02:49 <ais523> Fiora: yeah, I think I agree, but I don't see why people think it will continue to be used in the future
23:03:43 <Fiora> probably a mix of inertia, a few years have passed and nothing's displaced it, blind hope, etc?
23:04:26 <kmc> i think something with the general properties of Bitcoin is undeniably useful
23:04:30 <Bike> displaced it, how would you displace it, what's its niche?
23:04:43 <kmc> and bitcoin has enough of a network effect by now that people will stick with it unless there are huge reasons to switch
23:04:44 <ais523> so say, I own no bitcoins at the moment, if I start up another currency with the same underlying software and protocol
23:04:51 <ais523> then that'd work better for me than bitcoins would
23:04:57 <kmc> does that justify a $30 value? almost certainly not
23:05:02 <kmc> there will be another bubble pop
23:05:05 <ais523> the network effect sort-of matters, but existing bitcoin holdings don't really make sense
23:05:11 <kmc> but I don't think they'll go to 0, just like they didn't last time the bubble popped
23:05:20 <ais523> I think bitcoins would work better if they were backed by something, rather than being generated by mining
23:05:20 * quintopia esos everyone's langs
23:05:21 <kmc> ais523: if you're saying people should be short bitcoins right now, then absolutely
23:05:22 <elliott> PSA: this isn't about bitcoins ais523 just doesn't understand fiat currency
23:05:23 <quintopia> mwahahahaha
23:05:33 <ais523> kmc: yeah, indeed
23:05:36 <elliott> i am telling you this now so that you don't have to go through the same process of realisation i did like a year ago when he said the same things
23:05:36 <kmc> but that doesn't imply you expect the price will go to 0 or that they're worthless
23:05:40 <ais523> elliott: oh yeah, I indeed don't understand fiat currency
23:05:45 <kmc> i wish there were a good options exchange for bitcoins
23:05:47 <ais523> I'm not sure whether that's relevant here, though
23:05:47 <kmc> could have some real fun
23:05:49 <Bike> elliott: eheh
23:05:49 <kmc> speaking of GPUs and all
23:05:50 <Fiora> shorting can be really dangerous though
23:05:56 <kmc> Fiora: yeah
23:05:58 <Fiora> remember, the market an remain irrational longer than you can remain solvent
23:05:59 <kmc> safer to buy put options
23:06:00 <ais523> Fiora: you can do a covered short
23:06:02 <Fiora> *can
23:06:04 <ais523> you buy put options at the same time
23:06:06 <Bike> anyway does anyone know what the prefix "klino-" means because i'm blanking
23:06:14 <Fiora> yeah, you'd need some reliable/liquid options though :<
23:06:19 <quintopia> btc is backed by everyone thinking it is worthwhile (and the electricity and time expended in its creation)
23:06:20 <ais523> if the short goes wrong, you use the put options in order to get the bitcoins you need
23:06:38 <ais523> and put options for bitcoins at a price much higher than the current price would be pretty cheap
23:06:43 <ais523> quintopia: it's not backed by that
23:06:48 <kmc> BTC also has the property that goverments can't fuck with it arbitrarily as easy as they fuck with their own fiat currencies
23:06:52 <ais523> that's the cost of minting it, not something backing it
23:06:59 <kmc> which is a weakness compared to USD but a strength compared to some fiat currencies
23:07:00 <Fiora> put options that are deep in the money cost a lot...
23:07:07 <Bike> oh, it's "slope"
23:07:11 <Bike> i think
23:07:13 <kmc> ais523: itym call options
23:07:15 <ais523> kmc: there are quite a few ways to screw with it arbitrarily
23:07:17 <kmc> but i'm always getting them mixed up anyway
23:07:18 <ais523> kmc: err yes
23:07:19 <ais523> so am I
23:07:24 <quintopia> ais523: nonetheless, as it becomes more difficult and energy-intensive to mine, the value goes up. same with the demand going up.
23:07:48 <ais523> a government could very easily increase the value of bitcoins by taxing people in bitcoins
23:07:53 <quintopia> `pastlog PSA
23:08:07 <ais523> this method was used to establish fiat currencies in the US shortly after it was colonised
23:08:12 <ais523> and sometimes worked, sometimes didn't
23:08:16 <kmc> one weird thing about bitcoin is that the mining payoff isn't just supply/demand, but is actually adjusted by the protocol
23:08:25 <HackEgo> No output.
23:08:25 <kmc> using a formula that nobody can change really
23:08:38 <quintopia> you are wrong HackEgo
23:08:47 <quintopia> there is definitely something in the logs with PSA
23:08:54 <kmc> draft people into the army, pay them in your new currency, then tax them in that currency
23:08:54 <ais523> quintopia: try again
23:08:57 <kmc> that's the way
23:09:00 <quintopia> `pastlog mining
23:09:06 <ais523> HackEgo sometimes randomly does "No output." if it hasn't been used for a while
23:09:12 <HackEgo> 2009-10-28.txt:06:47:56: <Oranjer> I did find out that the "qibla problem" is the problem of determining the direction of Mecca at any point on earth
23:09:14 <quintopia> `pastlog PSA
23:09:22 <HackEgo> 2012-02-13.txt:00:08:59: <Psalm_Journey> itidus20 invents self hypnosis
23:09:30 <quintopia> heh
23:09:48 <elliott> i like how both of those imply the other kind of #esoteric
23:10:11 <ais523> I'm reasonably sure self hypnosis already exists
23:10:12 <Bike> islam isn't that esoteric as religions go... i guess the qibla problem can get pretty weird though
23:10:21 <elliott> Bike: are you saying it's more related to programming
23:10:27 <Bike> once you forget the "god doesn't actually care that much, just do your best" aspect
23:10:59 <Bike> elliott: WELL YOU SEE prayer is much easier for muslims because their prayers don't have to have an escape vector!!
23:15:32 <Phantom_Hoover> are we talking about islamic prayer geodesics again
23:15:52 <elliott> it's a pretty frighteningly common topic for us isn't it
23:16:11 <Phantom_Hoover> we're not even a physics channel
23:16:31 -!- wareya has joined.
23:16:34 <Bike> don't mock me :(
23:16:38 <kmc> every religion has its esoteric corner
23:16:45 <kmc> what specifically about the qibla is weird?
23:16:55 <elliott> Bike: no this topic has actually come up several times in here
23:16:57 <elliott> it's bizarre
23:17:07 <quintopia> `pastlog binomial
23:17:13 <Bike> kmc: there was a story a while ago about a muslim astronaut figuring out how to pray
23:17:15 <HackEgo> 2012-03-25.txt:19:46:41: <Taneb> Because he could binomial!
23:17:18 <kmc> oh yeah
23:17:18 <Phantom_Hoover> kmc, the way it generalises to points not on the earth's surface?
23:17:23 <kmc> "it's the thought that counts"
23:17:36 <quintopia> i wonder what the joke is that was the punchline for
23:17:42 <Phantom_Hoover> (there are also even disputes among muslims how to do it on the earth's surface, though most of them do it the right way)
23:17:53 <quintopia> maybe "why did the normal distribution starve to death"
23:19:59 <Bike> sufiism or druze might be more obviously esoteric but qibla involves spaaaaace
23:20:45 <kmc> 'right way' = shortest path along the great circle?
23:21:10 <elliott> imo all circles are great
23:21:24 <Bike> every circle is special
23:21:26 <Bike> in its own way
23:22:45 <oerjan> quintopia: <Taneb> Why was the statistician hungry?
23:22:51 <FreeFull> Seems what I want for my fhead is something like Data.Foldable.foldl1 (\x _ -> x) but with the type signature (Foldable t) => t a -> t a
23:23:23 <oerjan> actually the funniest thing about it is elliott's laughing afterwards
23:23:23 <FreeFull> Since foldl1 will fail for an empty thing
23:23:59 <elliott> you can do Foldable t => t a -> Maybe a
23:24:10 <FreeFull> I don't know if I can implement that without knowing the empty element type constructor though
23:24:19 <FreeFull> elliott: That's not what I want
23:24:21 <kmc> you can't build things using Foldable, only take them apart
23:24:22 <kmc> i think
23:24:26 <elliott> you cannot do Foldable t => t a -> t a
23:24:33 <elliott> nor Traversable t => t a -> t a if you want to get the head
23:24:42 <elliott> consider that data P a = P a a is Traversable
23:25:18 <elliott> oerjan: i loaded up the log to see my laughing and there was NSQX :')
23:25:28 <oerjan> elliott: and also Foldable
23:25:44 <ais523> esolang idea: language works via great circles and shortest-path calculations, you store data (and program it) via literal earthquakes
23:25:44 <FreeFull> elliott: P a a -> P a a would be perfectly acceptable
23:25:47 <ais523> to change the shape of the earth
23:25:50 <ais523> also tectonic drift, I guess
23:26:08 <FreeFull> Basically I want a more general take 1
23:26:14 <elliott> oerjan: well any Traversable is Foldable...
23:26:18 <elliott> FreeFull: um it is P a -> P a
23:26:23 <elliott> and you cannot implement something like "take 1" for it
23:26:27 <kmc> FreeFull: you need Traversable for that
23:26:27 <elliott> because it is a fixed-size container
23:26:39 <elliott> you could do foo (P x y) = P x x or something
23:26:44 <elliott> but then foo [1,2,3,4] would be [1,1,1,1]
23:26:45 <kmc> don't mix up type expressions and value expressions
23:26:52 <oerjan> kmc: Traversable cannot change number of elements
23:26:57 <kmc> hm
23:27:02 <kmc> guess so
23:27:19 <kmc> ok so elliott was right before
23:27:24 <kmc> t a -> Maybe a -- is about the best you can do
23:27:30 <oerjan> there's something called Listlike, maybe it does that
23:27:46 <elliott> you could have a class that lets you do "take 1". I suspect that class will be "isomorphic to [a]"
23:27:54 <elliott> or worse, "has an operation of type t a -> t a that we call take1"
23:27:54 <kmc> or (Applicative m) => t a -> m a or whatever
23:28:06 <elliott> kmc: you mean Alternative, presumably?
23:28:16 <kmc> oerjan, elliott: yeah I think ListLike is one of those not very elegant "put every list function in a type class" projects
23:28:19 <kmc> elliott: maybe
23:28:20 <kmc> bah
23:28:25 <kmc> don't listen to me
23:28:26 <elliott> kmc is rusty
23:28:26 <kmc> i am disreputable
23:28:31 <kmc> i'm the tin man
23:28:36 <FreeFull> elliott: my fhead would work perfectly well on, say, a tree
23:28:51 <elliott> FreeFull: maybe "one specific tree structure"
23:28:57 <elliott> certainly not all tree structures in general
23:29:06 <FreeFull> Maybe not an infinite tree
23:29:12 <FreeFull> But a terminating tree, sure
23:29:13 -!- carado has quit (Ping timeout: 246 seconds).
23:29:14 -!- carado_ has quit (Ping timeout: 246 seconds).
23:29:44 <FreeFull> Note I'm not assuming transversable
23:30:26 <kmc> FreeFull: what about a tree that's required to have an even number of elements
23:30:41 -!- GOMADWarrior has quit (Ping timeout: 248 seconds).
23:30:42 <kmc> you can write that type
23:30:46 <quintopia> kmc: why do the home and end buttons just type a ~ when i use mosh
23:30:48 <kmc> or just a list with an even number of elements
23:30:53 <kmc> quintopia: are you using rxvt?
23:30:57 <quintopia> yes
23:31:01 <kmc> it's a known bug i'm afraid
23:31:03 <kmc> more info on the bug tragcker
23:31:07 <quintopia> :(
23:31:24 <ais523> kmc: do you have a link? I don't care so much about mosh, but I do care about how terminals interpret keys
23:31:31 <FreeFull> kmc: How about the first element is allowed to be repeated
23:31:46 <kmc> https://github.com/keithw/mosh/issues/178
23:31:49 <ais523> thanks
23:32:03 <kmc> FreeFull: then you can do that with Traversable
23:32:30 <ais523> oh wow, inconsistencies :(
23:32:39 <ais523> at least it's on the input side, not the output side
23:32:43 <ais523> so it only affects ttyrec2, not ttyrec
23:32:58 <kmc> or maybe just Functor and Folable
23:33:12 <elliott> FreeFull: this operation is sounding less defined by the second
23:33:34 <elliott> FreeFull: though if you allow foo [1,2,3] = [1,1,1] then it is quite eays
23:33:36 <elliott> *easy
23:33:36 <kmc> :t \x -> fmap (const (Data.Foldable.foldr1 const)) x
23:33:37 <lambdabot> (Functor f, Foldable t) => f a -> f (t a1 -> a1)
23:33:40 <kmc> buh
23:34:03 <kmc> :t \x -> fmap (const (Data.Foldable.foldr1 const x)) x
23:34:04 <lambdabot> (Functor f, Foldable f) => f a -> f a
23:34:06 <kmc> yeah
23:34:12 <kmc> > (\x -> fmap (const (Data.Foldable.foldr1 const x)) x) [1,2,3]
23:34:14 <lambdabot> [1,1,1]
23:34:17 <kmc> > (\x -> fmap (const (Data.Foldable.foldr1 const x)) x) (Maybe 5)
23:34:19 <lambdabot> Not in scope: data constructor `Maybe'
23:34:22 <kmc> buhuhhh
23:34:26 <kmc> im 'so sorry everyone
23:34:30 <kmc> > (\x -> fmap (const (Data.Foldable.foldr1 const x)) x) (Just 5)
23:34:31 <lambdabot> Just 5
23:34:32 <elliott> kmc are you drunk
23:34:34 <kmc> no
23:34:35 <Bike> i <3 you lambdabot
23:34:35 <elliott> or just really old
23:34:39 <kmc> ouch
23:34:40 <kmc> burn
23:35:25 <FreeFull> Maybe foldable + applicative
23:35:38 <ais523> Maybe seems like a reasonable constructor to me, it'd be like amb for Maybe the type
23:35:43 <FreeFull> :t foldl1
23:35:45 <lambdabot> (a -> a -> a) -> [a] -> a
23:35:52 <FreeFull> :t Data.Foldable.foldl1
23:35:53 <lambdabot> Foldable t => (a -> a -> a) -> t a -> a
23:36:20 <FreeFull> :t Data.Foldable.foldl1 (\x -> const (pure x))
23:36:22 <lambdabot> Occurs check: cannot construct the infinite type: a0 = f0 a0
23:36:22 <lambdabot> In the first argument of `pure', namely `x'
23:36:22 <lambdabot> In the first argument of `const', namely `(pure x)'
23:36:25 <elliott> kmc: btw that only technically works for empty containers
23:36:35 <FreeFull> :t Data.Foldable.foldl1 (\x acc -> (pure x))
23:36:37 <lambdabot> Occurs check: cannot construct the infinite type: a0 = f0 a0
23:36:37 <lambdabot> In the first argument of `pure', namely `x'
23:36:37 <lambdabot> In the expression: (pure x)
23:36:40 <elliott> as in it works but you have a _|_ :(
23:36:51 <Bike> > (\x -> fmap (const (Data.Foldable.foldr1 const x)) x) []
23:36:53 <lambdabot> []
23:38:04 <FreeFull> What am I doing wrong
23:38:18 <FreeFull> :t Data.Foldable.foldl1 (\x acc -> (x)
23:38:20 <lambdabot> parse error (possibly incorrect indentation)
23:38:20 <FreeFull> :t Data.Foldable.foldl1 (\x acc -> x)
23:38:22 <lambdabot> Foldable t => t a -> a
23:38:26 <FreeFull> :t Data.Foldable.foldl1 (\x acc -> pure x)
23:38:28 <lambdabot> Occurs check: cannot construct the infinite type: a0 = f0 a0
23:38:28 <lambdabot> In the first argument of `pure', namely `x'
23:38:28 <lambdabot> In the expression: pure x
23:38:35 <FreeFull> :t pire
23:38:36 <FreeFull> :t pure
23:38:37 <lambdabot> Not in scope: `pire'
23:38:37 <lambdabot> Perhaps you meant one of these:
23:38:37 <lambdabot> `pure' (imported from Control.Applicative),
23:38:38 <lambdabot> Applicative f => a -> f a
23:39:16 <FreeFull> Wait, that wouldn't work for an empty a anyway
23:40:15 <FreeFull> What I really need is something with the type (Something f) => f a
23:40:33 <elliott> kmc's solution works...
23:40:35 <FreeFull> Where something :: [a] == []
23:40:56 <FreeFull> elliott: Yeah but having [1,2,3,4,5] become [1,1,1,1,1] rather than [1] isn't preferable
23:41:21 <kmc> why don't you just give up and make class Head f where head :: f a -> a
23:41:29 <kmc> or whatever it is you wanted
23:41:34 <ais523> kmc: isn't that one of the comonad laws?
23:41:35 <FreeFull> f a -> f a
23:41:40 <ais523> err, not laws
23:41:42 <ais523> definer things
23:41:49 <ais523> f a -> a, and f a -> f (f a)
23:41:56 <elliott> FreeFull: it is best to first know what your operation should do and then achieve it
23:42:02 <FreeFull> For f a -> a you only need Foldable
23:42:06 <ais523> perhaps a comonad is what you want
23:42:08 <elliott> rather than defining it as a tangled web of special cases in accordance with what you find out is possible to achieve
23:43:31 <FreeFull> For a list, it should always be equivalent to take 1
23:44:19 <FreeFull> For Tree a = Empty | Node a (Tree a) (Tree a) it should be Node a Empty Empty
23:44:47 <ais523> I agree with elliott, I think
23:45:03 <FreeFull> I think the empty possibility is necessary
23:45:08 <elliott> this counts as a tangled web of special cases btw :P
23:45:08 <quintopia> when you start a screen within a screen and hit ^a d, which screen detaches?
23:45:13 <Bike> http://www.amazon.com/Mont-Blanc-Tribute-Fountain-Pen/dp/B007PV1MV8 i don't understand this world
23:45:14 <FreeFull> fhead empty == empty
23:45:19 <ais523> quintopia: outside one, inside one is ^a a d
23:45:21 <elliott> quintopia: presumably the outer one
23:45:25 <elliott> unless screen detects when it runs inside itself
23:45:29 <elliott> there is no other possibility
23:45:31 * ais523 has quite a lot of nethack-tas-tools experience
23:45:42 <ais523> although yeah, you can figure it out via logical thinking too
23:45:52 <FreeFull> elliott: I know, I'm just gathering examples
23:46:10 <FreeFull> Both of these are foldable and allow you to get a
23:46:13 <oerjan> :t ala (wrapped First)
23:46:15 <lambdabot> No instance for (Functor First)
23:46:15 <lambdabot> arising from a use of `wrapped'
23:46:15 <lambdabot> Possible fix: add an instance declaration for (Functor First)
23:46:24 <elliott> oerjan: ala First. sorry.
23:46:28 <elliott> we tried to convince him not to.
23:46:34 <oerjan> oh.
23:46:36 <FreeFull> But they error instead of producing an empty when given an empty
23:46:45 <oerjan> :t ala First
23:46:47 <lambdabot> ((Maybe a -> First a) -> e -> First a) -> e -> Maybe a
23:46:56 <ais523> FreeFull: what if you have Tree a = Empty1 | Empty2 | Node a (Tree a) (Tree a) ?
23:47:08 <oerjan> :t under _First
23:47:10 <lambdabot> Not in scope: `_First'
23:47:10 <lambdabot> Perhaps you meant `first' (imported from Control.Arrow)
23:47:16 <oerjan> argh
23:47:46 <FreeFull> ais523: Then it should return the Empty it receives
23:47:52 <elliott> oerjan: under (wrapped First)
23:48:00 <ais523> FreeFull: from where?
23:48:06 <elliott> note that this Wrapped insanity also stops you doing type-changing :(
23:48:07 <FreeFull> How about fhead empty == id
23:48:16 <elliott> have to write au (wrappings First First) or whatever it was
23:48:34 <elliott> Bike: I didn't give 5 stars because I thought that as a tribute the pen would be wider and no so thin but other than that its excellent.
23:48:57 <Bike> guy's got a point you must admit
23:49:03 <FreeFull> ais523: I'm wondering if this would have to be it's own typeclass to work like I want
23:49:10 <oerjan> :t under (wrapped First) . foldMap Just
23:49:11 <lambdabot> Couldn't match expected type `Control.Lens.Internal.Iso.Exchange
23:49:12 <lambdabot> a0 b0 s0 b1'
23:49:12 <lambdabot> with actual type `First a1'
23:49:12 <FreeFull> Or if it could be possible with foldable + applicative
23:49:15 <oerjan> eek
23:49:19 <oerjan> hm
23:49:23 <ais523> FreeFull: possibly, but I'm not sure if what you want is even useful
23:49:39 <oerjan> :t under (wrapped First)
23:49:41 <lambdabot> Couldn't match expected type `Control.Lens.Internal.Iso.Exchange
23:49:41 <lambdabot> a0 b0 s0 b1'
23:49:41 <lambdabot> with actual type `First a1'
23:49:49 <oerjan> elliott: NOPE
23:49:52 <elliott> probably you want wrapping
23:49:54 <elliott> not wrapped
23:49:59 <elliott> (-:
23:50:01 <oerjan> :t under (wrapping First)
23:50:04 <lambdabot> (Maybe a -> Maybe a) -> First a -> First a
23:50:21 <oerjan> gah
23:50:27 <ais523> so do people write this sort of Haskell seriously?
23:50:30 <oerjan> :t ala
23:50:32 <ais523> or is it some sort of self-parody?
23:50:32 <lambdabot> Wrapped s s a a => (s -> a) -> ((s -> a) -> e -> a) -> e -> s
23:50:32 <oerjan> :t auf
23:50:34 <lambdabot> AnIso s t a b -> ((r -> a) -> e -> b) -> (r -> s) -> e -> t
23:50:40 <oerjan> :t alaf
23:50:41 <lambdabot> Wrapped s s a a => (s -> a) -> ((r -> a) -> e -> a) -> (r -> s) -> e -> s
23:50:45 <Bike> "this sort"?
23:50:55 <oerjan> :t wrapping
23:50:57 <lambdabot> (Functor f, Profunctor p, Wrapped s s a a) => (s -> a) -> p a (f a) -> p s (f s)
23:51:30 <Bike> lens turns out to be an elaborate aristocrats instance
23:51:45 <FreeFull> lens is actually useful
23:51:59 <oerjan> :t fold
23:52:00 <lambdabot> (Foldable t, Monoid m) => t m -> m
23:52:24 <oerjan> :t foldMap Just
23:52:26 <lambdabot> (Foldable t, Monoid a) => t a -> Maybe a
23:53:08 <FreeFull> We already established t a -> Maybe a was possible a long time ago =P
23:53:16 <FreeFull> Now, if we had a Maybe a -> t a
23:53:20 <FreeFull> For whatever t
23:53:26 <oerjan> i was just wondering how to write it nicely with lens
23:53:59 <elliott> oerjan: oh that's what you wanted?
23:54:05 <elliott> :t firstOf traverse
23:54:07 <lambdabot> Traversable t => t a -> Maybe a
23:54:08 <elliott> :t firstOf folded
23:54:09 <lambdabot> Foldable f => f b -> Maybe b
23:54:22 <elliott> :t firstOf id
23:54:24 <lambdabot> s -> Maybe s
23:54:28 <oerjan> OKAY
23:54:42 <oerjan> :t firstOf
23:54:44 <lambdabot> Getting (Leftmost a) s t a b -> s -> Maybe a
23:54:50 <elliott> > firstOf (traverse._Right) [Left 1, Left 2, Right 3, Right 4]
23:54:52 <lambdabot> Just 3
23:55:08 <oerjan> nice
23:55:19 <FreeFull> I could always require that fhead takes two parameters
23:55:31 <FreeFull> One being the empty case
23:55:33 <elliott> > firstOf (traverse._Right.filtering (> 3)) [Left 1, Left 2, Right 3, Right 4]
23:55:35 <lambdabot> Not in scope: `filtering'
23:55:40 <elliott> > firstOf (traverse._Right.filtered (> 3)) [Left 1, Left 2, Right 3, Right 4]
23:55:43 <lambdabot> Just 4
23:56:36 <FreeFull> > let fhead x = fromMaybe x . foldMap Just in fhead [] [1,2,3]
23:57:14 <lambdabot> No instance for (GHC.Num.Num [a0])
23:57:15 <lambdabot> arising from a use of `e_1123'
23:57:16 <lambdabot> Possi...
23:57:25 <oerjan> FreeFull: Just has the wrong Monoid instance for this, that's why the First mess
2013-02-28
00:00:05 <elliott> Maybe's monoid instance sucks a bit
00:00:16 <FreeFull> > let fhead x = fromMaybe x . Data.Foldable.foldl (\x acc -> Just x) Nothing in fhead [] [1,2,3]
00:00:19 <lambdabot> Occurs check: cannot construct the infinite type:
00:00:19 <lambdabot> b0 = Data.Maybe.Maybe b0
00:01:00 <zzo38> Does teletext have music? The documentation for Yamaha OPLL mentions tones applicable to teletext.
00:01:16 <FreeFull> zzo38: I don't recall it ever having music
00:01:56 <ais523> zzo38: teletext information placed in the vblank space of a TV broadcast has no music
00:02:19 <ais523> sometimes, though, the rendered version of teletext used to be sent over TV to fill in a gap where nothing was broadcasting
00:02:23 <ais523> and in that case, music was often sent with it
00:03:04 <FreeFull> ais523: But that would be just standard audio?
00:03:12 <ais523> yes
00:04:15 <zzo38> But then it isn't FM synthesis? Then why does OPLL documentation mention tones applicable to teletext?
00:07:51 <FreeFull> I don't think most TVs have FM synth chips
00:08:18 <zzo38> I would like if the channel 2 (On TVL) we have in my area would also include teletext (but as far as I know it doesn't).
00:08:24 <zzo38> FreeFull: I don't think so either
00:09:10 <zzo38> They should also put teletext on the weather channel too.
00:28:57 -!- md_5 has quit (Ping timeout: 252 seconds).
00:48:48 -!- nooga has quit (Ping timeout: 264 seconds).
00:51:48 -!- c00kiemon5ter has joined.
00:58:40 -!- olsner has quit (Ping timeout: 252 seconds).
01:02:19 -!- md_5 has joined.
01:12:47 -!- olsner has joined.
01:17:01 -!- TeruFSX has joined.
01:18:14 -!- augur has joined.
01:30:27 -!- GOMADWarrior has joined.
01:32:15 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:37:56 -!- azaq23 has quit (Ping timeout: 248 seconds).
01:38:49 -!- azaq23 has joined.
01:38:59 -!- azaq23 has quit (Max SendQ exceeded).
01:39:30 -!- azaq23 has joined.
01:49:00 -!- azaq23 has quit (Ping timeout: 272 seconds).
01:54:08 -!- azaq23 has joined.
01:59:00 -!- olsner has quit (Ping timeout: 264 seconds).
02:11:49 -!- olsner has joined.
02:17:00 <elliott> ais523: wow
02:17:08 <ais523> wow at what?
02:17:13 -!- olsner has quit (Ping timeout: 246 seconds).
02:17:14 <elliott> ais523: Wonko was the person who wrote -Like this.-, right?
02:17:20 <Bike> wat
02:17:21 <ais523> no, that was the Baron
02:17:23 <elliott> oh
02:17:25 <elliott> dammit
02:17:28 <ais523> -Bike: it's very unnerving-
02:17:29 <elliott> it has been too long
02:17:39 <ais523> -it's ridiculous how creepy it is-
02:18:25 <Bike> um
02:19:05 <oerjan> I don't see what's so creepy
02:19:21 <ais523> -well that was only around the nick, it doesn't count-
02:19:28 <ais523> -ok commas ruin the effect-
02:19:31 <oerjan> -OKAY-
02:19:32 <ais523> -as does monqy grammar-
02:19:46 <kmc> -30-
02:19:51 <ais523> gah
02:19:52 <oerjan> -what is monqy grammar-
02:19:54 <ais523> kmc: never do that again
02:19:58 <kmc> :(
02:20:03 <elliott> -40-
02:20:08 <ais523> elliott: somehow that's not as bad
02:20:10 <oerjan> -50-
02:20:13 <elliott> -30-
02:20:17 -!- ais523 has left ("<fungot> fizzie: it makes demons fly out of my window, washing the windows api").
02:20:22 <elliott> i dont get it
02:20:29 <Bike> ok
02:20:40 <monqy> -amusement-
02:20:44 <elliott> monqy: hahahaha
02:20:56 <oerjan> another chapter for our "1001 ways to make ais523 ragepat" book
02:21:03 <elliott> ragepat
02:21:28 <oerjan> `pastlog ragepat
02:21:36 <Bike> what is 30????
02:21:44 <elliott> oh i forgot ragepat is a thing
02:22:06 <HackEgo> No output.
02:22:17 <oerjan> `pastlog ragepat
02:22:26 <HackEgo> 2012-01-20.txt:15:06:55: <oerjan> i haven't seen him since he ragepatted
02:22:53 <oerjan> `pastlog ragepat
02:23:00 <HackEgo> 2012-01-11.txt:19:25:53: <elliott> *Ragepat
02:23:30 <oerjan> -i still want to understand what monqy grammar is-
02:23:42 <monqy> -agreement-
02:24:17 <oerjan> -is it using nouns as sentences-
02:24:18 <Bike> Eliding punctuation and capitalization, lots of "um" "ok" etc.?
02:24:47 <oerjan> -oh ok ic got it right down there-
02:25:15 <oerjan> >i think these as starting to fray at the ends<
02:25:21 <oerjan> >*are<
02:26:01 <oerjan> |what is the creepiest way of doing this anyway|
02:26:16 <monqy> ☺good question☺
02:26:27 <oerjan> monqy: hi
02:26:39 <monqy> ??????hi
02:26:50 <zzo38> oerjan: Use control characters, maybe?
02:27:07 <oerjan> ah ic youre eliding punctuation to save it all for big bursts?
02:28:00 <oerjan> that's just crazy talk
02:28:13 <Bike> is this, like, foreplay
02:28:57 <oerjan> no this is all good wholesome driving people crazy
02:29:14 <zzo38> No. It is, like, 4play, which is different.
02:29:17 <Bike> who are you driving crazy? yourselves?
02:29:22 <zzo38> Yes.
02:29:30 <Bike> that seems inefficient
02:29:43 <zzo38> To you it is, perhaps.
02:29:48 <oerjan> `run ? mad | colorize
02:29:50 <HackEgo> "But I don't want to go among mad people," Alice remarked. "Oh, you can't help that," said the Cat: "we're all mad here. I'm mad. You're mad." "How do you know I'm mad?" said Alice. "You must be," said the Cat, "or you wouldn't have come here."
02:30:25 -!- olsner has joined.
02:30:29 <oerjan> `? color
02:30:31 <HackEgo> color? ¯\(°_o)/¯
02:30:32 <Bike> I haven't read Alice. I am immune to its power.
02:30:35 <oerjan> `? colour
02:30:37 <HackEgo> colour? ¯\(°_o)/¯
02:32:43 <oerjan> `run echo "Color is a phenomenon from outer space designed to drive humanity insane and bring forth the new age of Cthulhu." | colorize | tee wisdom/colour >wisdom/color; sed -i 's/or/our/' wisdom/colour
02:32:48 <HackEgo> No output.
02:32:55 <oerjan> `? colour
02:32:57 <HackEgo> Colour is a phenomenon from outer space designed to drive humanity insane and bring forth the new age of Cthulhu.
02:33:39 <zzo38> Color is not limited to outer space and it is not only for driving humanity insane and it is also not only for Cthulhu. But I suppose that can be one possible use.
02:34:08 <oerjan> that's just what a shoggoth would say
02:34:09 <zzo38> The other use is for syntax highlighting.
02:34:16 <Jafet> This explains why americans are crazy and worship cthulhu
02:35:02 <Bike> oerjan: http://www.scp-wiki.net/scp-8900-ex
02:36:05 <zzo38> What is the SCP number for Death Note? What I hate about SCP is keep deleting files and changing around the numbers when they replace a deleted one using a same number.
02:36:45 <Bike> zzo38: http://www.scp-wiki.net/archived-scps they keep 'em
02:37:46 <Sgeo> That's only for ones notable enough to keep
02:37:55 <Sgeo> Ruby of Ruination is deleted forever :(
02:38:19 <Bike> never heard of it.
02:38:29 <zzo38> Is the number reused?
02:38:48 <Sgeo> zzo38, yes. Whether or not an old one was ARCed or merely deleted
02:38:51 <Bike> http://scpclassic.wikidot.com/scp-031 Oh.
02:38:55 <Jafet> http://brake-down.com/wordpress/wp-content/uploads/2010/02/Invention-of-Color.jpg
02:39:56 <Bike> Calvin's dad is a jaded ex-O5.
02:40:25 <Sgeo> Was deleted a long time ago because the origins make no sense... how has it not destroyed the world already
02:40:55 <monqy> good question
02:41:19 <zzo38> Sgeo: That is problem to me! Other than that, there are other things I hate about it too such as, it is not open to everyone (including thought-experiments), and some other problems too. So we could make "Open SCP" which is open for everyone, even if the origins make no sense, and which nothing is ever deleted or numbers reused either.
02:41:30 <Bike> It's kind of boring... SCP already has a lot of "object destroys matter"
02:41:35 <zzo38> To distinguish number write a different prefix so you know it is not the same one.
02:42:11 <Jafet> `wc wisdom/color
02:42:12 <Sgeo> zzo38, but then you'd get a lot of poorly written ones, boring ones, etc.
02:42:12 <HackEgo> ​ 1 20 347 wisdom/color
02:42:36 <zzo38> If it is boring then instead let's community (open to everyone) to down-vote so that they can sorted by rating and by similarity, too, so if they have a lot of one you can still improve the quality subjectively without having to delete things and reuse numbers.
02:42:39 <Bike> Also it would be indistinguishable from "hey write something and number it"
02:43:25 <Bike> and scp has ratings.
02:43:46 <zzo38> In addition, to find the entries which are considered as best and put those into the book, so that you will have a improve quality as well as a normal one?
02:43:59 <Bike> but, i'm shallow, i'll be happy as long as they keep Red Sea Object
02:44:27 <zzo38> But maybe they won't? I think they change things too much.
02:45:01 <zzo38> (Anyways, even if such thing as Open SCP is made it is not meaning SCP will stop! It just means an alternative......)
02:45:12 <Bike> haven't they already forked once or twice?
02:46:10 <zzo38> Maybe, I don't know, but we need the one which is open, rather than closed to the selected group of writers, doctors, overseers, wikidot employees, and so on.
02:46:26 <zzo38> And which never reuses numbers.
02:46:45 <zzo38> If you really need to delete something, just put it in the attic and then promise not to reuse their numbers for other things.
02:46:46 <Bike> well, would be easy to make one, i guess
02:47:00 <Bike> are numbers that important
02:47:13 <zzo38> (Doesn't CVS put things in the attic or something like that?)
02:49:56 <zzo38> SCP also misses so many things I can think of, but they won't work like that, so that is why, to make the open one which can make anyone's "thought experiment" you can improved; if one is no good you can still use pure wiki deletion and individual user can still have archive of their best ones too, all while still keeping the numbering to be not confused.
02:50:10 <zzo38> Bike: Yes, the numbers is the most important.
02:50:15 <Bike> Why?
02:52:55 <zzo38> It also helps if one document references another, to keep the references to work properly, instead of wrongly.
02:53:18 <tswett> Sgeo: Ruby of Ruination? The one that, when placed on top of a solid object, vibrates at that object's resonant frequency?
02:53:29 <Sgeo> tswett, yes
02:53:32 <zzo38> But there are other reasons too such as some people might like one even though other people hate it, it can be a hiding threshold (somewhat like Slashdot does, but different)
02:54:02 <Bike> do all objects even have resonant frequencies, that seems impossible
02:54:49 <zzo38> And one of the entries could be, referencing the nonexistent wiki which is similar and has a reference to this real one, though (similar to what Hofstadter did)
02:55:10 <tswett> I think most if not all solid objects have resonant frequencies, but vibrating at that frequency will not necessarily have any significant effect.
02:55:37 <tswett> Come to think of it, "resonant frequency" pretty much means "frequency that you hear when you bang on it".
02:55:58 <zzo38> tswett: I suppose it can be interesting to some circumstance nevertheless
02:56:24 <zzo38> For example, make up a situation which it is difficult but if you have such a thing see how to succeed at it?
02:57:53 <tswett> Do what now?
02:58:06 <zzo38> I don't know.
02:58:21 <tswett> Righty then.
03:00:45 <zzo38> "Object destroys matter" is not the interested much by itself, but some object which can sometimes do so, and has other effect, might have something to be interesting of in some cases, possibly.
03:02:31 <zzo38> Does a resonant frequency of a piano change if the keys is not pushed than if it is?
03:03:09 <tswett> Well, different parts of the piano have different resonant frequencies.
03:03:43 <tswett> If the damper is down on a string, that probably slightly raises the resonant frequency of that string.
03:04:07 <tswett> But the main effect of the damper is, of course, to keep that string from vibrating at all.
03:11:20 -!- augur has quit (Read error: Connection reset by peer).
03:11:34 -!- augur has joined.
03:15:00 -!- GOMADWarrior has quit (Ping timeout: 248 seconds).
03:27:15 -!- Arc_Koen has quit (Quit: Arc_Koen).
03:30:08 -!- augur has quit (Read error: Connection reset by peer).
03:30:17 -!- augur has joined.
03:30:34 <zzo38> I know the damper stops it from vibrating. I also know (because I tried it), that if you slowly push one key to make it silent, push another one it might resonate the string that is released but currently not vibrating.
03:34:27 -!- olsner has quit (Ping timeout: 276 seconds).
03:41:40 -!- NihilistDandy has joined.
03:42:30 -!- madbr has joined.
03:42:32 <madbr> hey
03:43:11 <oerjan> hello
03:44:18 <madbr> man, trying to do a pipelined/superscalar 32bit version of the 65816 is not so cool
03:44:40 <madbr> the instruction set is just designed to stop up
03:45:53 <zzo38> Maybe you have to make up additional instructions or flags or whatever then, or require explicit pipelines and delays and so on in the program
03:46:25 <madbr> the instruction set is completely full
03:46:29 -!- olsner has joined.
03:46:59 <zzo38> Or to modify things, especially if making 32-bits and so on you may need to modify some things I would think
03:47:13 <madbr> mhm
03:48:35 <madbr> Man, C++ pointer aliasing is awful... it's pretty much the one thing that prevents you from autovectorizing all sorts of code
03:48:58 <zzo38> Does the LLVM pointer aliasing work better?
03:49:36 <Fiora> I saw this cool optimization ICC did in some cases a bit ago where it actually makes a runtime branch to check for aliasing
03:49:51 <Fiora> so where it can prove there won't be aliasing, it can branch and do the simd optimizations on the non-aliasing side
03:50:11 <zzo38> OK, I suppose in some cases it might be useful.
03:51:33 <madbr> fiora: yeah
03:51:48 <madbr> the crusoe pushed that even further
03:52:01 <madbr> it has protected memory load/store instructions
03:52:34 <madbr> it doesn't actually store information, it writes to a store buffer
03:52:53 <madbr> and once it can verify that no aliasing occured, it does the real write
03:53:10 <madbr> that way it can reorder read/writes
03:53:37 <madbr> llvm has an alias analysis class yes: http://llvm.org/docs/AliasAnalysis.html
03:53:44 <Fiora> don't a lot of modern machines do that internally?
03:53:59 <Fiora> I know at least intel chips actually do speculative loads where they try loading something assuming aliasing won't occur
03:54:04 <Fiora> and then redo the load if aliasing did occur
03:54:16 <zzo38> madbr: Yes I have seen that, what I mean, is it better than C++ if you enter the LLVM instructions to make aliasing?
03:55:11 <Bike> Can you not improve the optimization with whatever that declaration is?
03:55:13 <Fiora> they have a thing in the optimization manual if I remember right about the case where code with lots of conflicts results in lots of wasted speculative loads, and how to avoid it
03:56:28 <madbr> zzo: you can use some strange C++ keywords like noalias
03:57:03 <madbr> zzo: there's also strict aliasing that helps (the rule that says that different types of pointers except char * can't alias)
03:57:10 <Bike> Um... restrict, that one.
03:57:19 <Bike> Oh that's not in C++ is it.
03:57:30 <Fiora> I think C++ has different aliasing rules from C but I'm not sure
03:57:38 <Bike> «In C++, pointer arguments are assumed not to alias if they point to fundamentally different types ("strict aliasing" rules). This allows more optimizations to be done than in C.» uhhhhh ok then
03:57:40 <madbr> yeah I can't remember
03:57:50 <Fiora> strict-aliasing isn't really a rule I think, it's more like
03:58:00 <madbr> bike: yeah they have to do that
03:58:09 <Fiora> "set no-strict-aliasing to make things less likely to break if your code violates the rules"
03:58:18 <madbr> or else you can do horrible stuff like alias to pointers of other things
03:58:23 <zzo38> I think LLVM has a kind of metadata for aliasing, to specify which types alias which others more specifically
03:58:29 <madbr> so very fast everything aliases everything else
03:59:25 <zzo38> Fiora: Well, it would be better, having it you can set on each individual variable, what aliasing to use. I think GCC might have such a thing possibly?
03:59:59 <Fiora> um... the two keywords I know of are may_alias and restrict
04:00:14 <Fiora> __attribute__((may_alias)) lets you override the C aliasing rules
04:00:19 <Fiora> it's useful sometimes when you want to do horrible things
04:00:37 <shachaf> i love horrible things
04:00:37 <Fiora> restrict is just, this pointer won't alias anything else basically I think
04:00:47 <shachaf> restrict is in C99 or something now, isn't it?
04:00:54 <Fiora> Yeah, it's standard now
04:01:01 <Bike> "it wasn't in C99 a while ago"
04:01:40 <shachaf> Bike: C99 only started existing in 2008 or so.
04:02:44 <myndzi> hey dudes, any security-minded types in here? wanna bounce something off ya re: nonces
04:02:47 <Bike> Whoa, Man.
04:02:48 <shachaf> ℂ99 is a category where the objects are types and the arrows are undefined behavior.
04:03:05 <Bike> Huh, c90 didn't have inline
04:03:45 <shachaf> myndzi: imo you should just say it into the abyss
04:03:58 <shachaf> ("thats a metaphor for this channel")
04:04:00 <zzo38> myndzi: What about it?
04:04:00 <Fiora> I think a lot of the c99 stuff got added to compilers as extensions first
04:04:08 <Fiora> and then they were like "oh well we should, like, standardize this"
04:04:22 <shachaf> Sounds like a reasonable way to add things.
04:04:22 -!- olsner has quit (Ping timeout: 240 seconds).
04:04:45 <zzo38> I don't like a lot of the things C99 does (but I like some).
04:05:09 -!- NihilistDandy has quit (Quit: Textual IRC Client: www.textualapp.com).
04:05:11 <myndzi> haha
04:05:15 <myndzi> yeah, i was talking somewhere else too
04:05:19 <Bike> Fiora: wikipedia agrees so you're right
04:05:35 <myndzi> so in the context of web forms, nonces are useful to protect against blind submissions yeah?
04:05:53 <myndzi> but they don't add much other than that; if an attacker had access to the network traffic they could simply sniff the nonce and spoof the form submission directly
04:05:53 <shachaf> As in CSRF?
04:06:08 <myndzi> i suppose so, i don't know the exact technical definition there
04:06:25 <shachaf> The main goal is that you can't take someone's browser -- which is logged in -- and have it submit some evil request.
04:06:29 <myndzi> so, i'm moving a bunch of code from php pages to ajax stuff
04:06:31 <shachaf> Like /delete_my_account or something.
04:06:48 <myndzi> that's more about requiring reauthorization
04:06:57 <myndzi> if you were authenticated by cookie/session
04:07:04 <shachaf> ?
04:07:12 <myndzi> to prevent someone from issuing arbitrary commands
04:07:16 <shachaf> Or maybe we're talking about different things anyway.
04:07:17 <myndzi> you make them re-supply the password
04:07:22 <zzo38> Using HTTP/HTML stuff at all (even HTTPS) can make it very insecure in general.
04:07:23 <shachaf> For every possible action?
04:07:24 <myndzi> if they were "remembered"
04:07:33 <myndzi> no, just for important ones
04:07:41 <myndzi> billing, authentication related
04:07:42 <shachaf> OK, then take the most important unimportant action.
04:07:43 <myndzi> stuff like that
04:07:50 <shachaf> You still don't want some random person to be able to submit that.
04:08:01 <myndzi> sure, but a nonce doesn't protect against that
04:08:06 <myndzi> anyway, this isn't even the question
04:08:08 <myndzi> lol ;P
04:08:24 <shachaf> OK, never mind that.
04:08:26 <myndzi> the question is, is it worth using a nonce to protect against blind form submission if you reuse it?
04:08:30 <zzo38> You could make a SSH based system, to do secure stuff
04:08:35 <myndzi> i think so but it feels wrong to reuse anyway
04:08:49 <shachaf> What kind of blind form submission?
04:08:51 <myndzi> the only alternative would be to make ajax requests to get new nonces or something
04:09:05 <myndzi> by blind form submission i mean, submitting data to a form without having loaded the page that the form is on
04:09:13 <myndzi> directly entering a get or post url, for example
04:09:22 <myndzi> that's the only purpose i know of for including nonces with forms
04:09:37 <shachaf> Whom are you preventing from doing what here?
04:10:41 <doesthiswork> you should use "who" because it's the subject of the sentence
04:10:48 <myndzi> lol.
04:11:05 <shachaf> ?
04:11:12 <shachaf> That looks like "whom" to me.
04:11:36 <zzo38> No! You should use "wham".
04:11:39 <doesthiswork> whom is the obsolete form used for the direct object
04:11:47 <Bike> questions are weird as shit though
04:12:05 <myndzi> haha, well i have a solution ;)
04:12:11 <myndzi> ajax form submission -> return new nonce
04:12:11 <myndzi> duh.
04:12:14 <shachaf> zzo38++
04:12:31 <shachaf> OK, I don't understand the situation or what you're trying to prevent or allow.
04:12:43 <zzo38> I have now typed the 2013Feb26 Dungeons&Dragons game session recordings.
04:13:23 <zzo38> Do you like this?
04:13:50 <myndzi> i'm simply trying to implement good practices as i go :P
04:14:11 <shachaf> myndzi: Good!
04:14:37 <shachaf> Good practice #1: Understand what's even, like, going on, man.
04:14:44 <shachaf> Probably you do, but I don't.
04:14:45 <myndzi> i do understand it
04:14:46 <myndzi> ;)
04:15:03 <myndzi> in this case, the single-use token (nonce) prevents two things
04:15:08 <myndzi> 1) multiple submission
04:15:08 <shachaf> zzo38: I like this.
04:15:14 <myndzi> 2) 'blind' submission
04:15:36 <myndzi> it ensures that to submit data to a form, the user must 1) load the page, 2) enter the data on the form presented on that page and 3) submit that form
04:15:57 <myndzi> i'm uncertain of any other purposes
04:15:59 <zzo38> I think "worse-is-better" is better.
04:16:06 <shachaf> myndzi: OK. Why?
04:16:20 <myndzi> why would you want to prevent multiple submission, or why would you want to prevent blind submission?
04:16:26 <myndzi> i should think that's obvious
04:16:45 <shachaf> Is the user evil here, or is someone being evil to the user?
04:16:52 <myndzi> the latter
04:17:00 <myndzi> or the user could simply be being impatient
04:17:13 <myndzi> or typoing etc. (double enter)
04:17:19 -!- olsner has joined.
04:18:07 <shachaf> Impatience as in clicking Submit twice seems more like a UI thing than a security thing to me.
04:18:10 <shachaf> But anyway.
04:18:22 <myndzi> it's not a security thing
04:18:31 <myndzi> but it's prevented by the solution so *shrug*
04:18:36 <myndzi> or at least, accounted for
04:18:52 <shachaf> So someone is being evil to the user. What would they be able to do to the user without this thing?
04:19:03 <myndzi> submit arbitrary form data
04:19:19 <myndzi> in the event that they can get the user to visit a url
04:19:40 <shachaf> OK. So it *is* CSRF that you're worrying about.
04:19:56 <oerjan> <doesthiswork> you should use "who" because it's the subject of the sentence <-- no it is the direct object there, despite word order. "you are preventing _him_ from doing what here?"
04:19:56 <myndzi> i'm not worrying about anything
04:20:02 <shachaf> In that case a CSRF token should be fine.
04:20:16 <shachaf> And reusing it is not particularly awful.
04:20:18 <myndzi> i was simply wondering how to deal with this paradigm over ajax requests
04:20:42 <myndzi> i agree, but it feels dirty somehow
04:20:43 <myndzi> lol
04:20:48 <myndzi> luckily i don't have to
04:21:54 <myndzi> anyway, thanks
04:30:06 <kmc> "'Marijuana cannon' used to fire drugs over US border seized in Mexico"
04:30:32 <Bike> out of a sub I hope
04:30:41 <kmc> nah just a pickup
04:30:45 <kmc> but soon i'm sure
04:31:06 <Bike> short-range submarine-launched marijuana missile
04:31:17 <Bike> delivery straight to your home
04:33:26 <kmc> the convenience
04:33:46 <kmc> i predict quadcopter deliveries of marijuana will begin in SF within the decade
04:33:51 <kmc> if they haven't already
04:37:23 <zzo38> Illegal drugs is an important part of the economy and makes people creative too. Legalizing it might cause problems for these reasons?
04:37:50 <shachaf> would drugs not make you creative if they were legal?
04:38:02 <zzo38> It won't.
04:38:15 <Bike> Yeah would be a shame if we lost all that economic innovation from having gangs literally at war in Mexico
04:38:35 <zzo38> I have no problem if you want to use these drugs and make yourself dead and whatever, but making them legal might ruin the economy.
04:38:53 <shachaf> `addquote <zzo38> I have no problem if you want to use these drugs and make yourself dead and whatever, but making them legal might ruin the economy.
04:38:57 <HackEgo> 976) <zzo38> I have no problem if you want to use these drugs and make yourself dead and whatever, but making them legal might ruin the economy.
04:39:44 <kmc> this is an... odd position to take
04:39:55 <Bike> But seriously, broken window fallacy, etc.
04:40:09 <Bike> I mean do you know how much the US spends on enforcement?
04:40:30 <kmc> zzo38: so why does the drug only make you creative if it's illegal?
04:40:45 <shachaf> imo we should illegalize placebos
04:40:52 <Bike> I think he means the creativity engendered by trying to get around the illegality.
04:40:55 <Bike> Like drug cannons.
04:40:58 <kmc> oh, heh
04:41:05 <zzo38> Yes, like that is what I meant.
04:41:08 <doesthiswork> we should make industrial strength placebos
04:41:12 <kmc> well let's legalize marijuana and then they can make cocaine cannons instead
04:41:14 <elliott> illegalise gazebo
04:41:14 <elliott> s
04:41:15 <kmc> it's better because of alliteration
04:41:21 <Bike> Man's got a point.
04:41:28 <Bike> kmc for ATF commissioner!
04:41:53 <kmc> if elected I will personally consume more alcohol, tobacco, and firearms than any previous ATF commissioner
04:41:56 <kmc> that is the promise i make
04:42:02 <elliott> are we talking like actually eating guns
04:42:13 <kmc> THE GUN IS GOOD
04:42:16 <kmc> THE PENIS IS EVIL
04:42:39 <Bike> you know how there's that presidential candidate whose platform is just the KJV
04:42:48 <Bike> kmc's like that but with the Zardoz screenplay
04:42:55 <kmc> yes
04:43:07 <kmc> Stay close to me - inside my aura!
04:44:19 <shachaf> If only I could be a presidential candidate. :-(
04:44:19 <kmc> the voice of the turtle is heard in the land
04:44:25 <kmc> (that's a Zardoz quote *and* a bible quote)
04:44:46 <Bike> shachaf: It's pretty easy! I mean, if you don't mind not being on the ballot.
04:44:58 <shachaf> Bike: Don't I have to be born in the US or something?
04:45:03 <Bike> Nah.
04:45:14 <shachaf> Well, depends on president of what, I guess.
04:45:19 <Bike> The CPUSA's VP candidate last year was Colombian, and the prez candidate was underage.
04:45:23 <Bike> I think it was the CPUSA anyway.
04:45:27 -!- quintopia has quit (Remote host closed the connection).
04:46:15 <shachaf> Apparently I can't be president of .fi either.
04:46:21 <shachaf> Can I be president of #esoteric?
04:46:45 <zzo38> How do you write thirteen and a half in roman numbers?
04:47:15 -!- Frooxius has quit (Ping timeout: 276 seconds).
04:47:20 <shachaf> XI\
04:47:52 <shachaf> xıv
04:48:33 -!- quintopia has joined.
04:49:47 <Bike> Oh, it was the Party for Socialism and Liberation.
05:03:53 -!- oerjan has quit (Quit: Good night).
05:21:36 <shachaf> Sgeo: Thanks!
05:23:42 <Sgeo> shachaf, er?
05:24:26 <shachaf> For `olisting.
05:25:08 <Sgeo> Ah
05:25:22 * Sgeo wonders if Blaze's monad could be made to fit the monad laws
05:25:45 <monqy> what does that mean
05:25:53 <Sgeo> Add a Return constructor. Make m >>= f pass () to f if m is anything other than Return.
05:26:07 -!- md_5 has quit (Ping timeout: 260 seconds).
05:26:07 <Sgeo> I _think_ that at least satisfies the first two laws
05:26:16 <monqy> it's not quite a monad if it doesn't satisfy the monad laws, now is it
05:26:16 <Sgeo> Haven't looked at the third yet.
05:26:25 <Sgeo> Fine. Blaze's "monad"
05:26:36 <Sgeo> Thinking about how it could be altered to fix it
05:26:37 <copumpkin> people can talk about satisfying them modulo some equivalence relation
05:26:51 <monqy> btw what's blaze's "monad"
05:27:01 <Sgeo> monqy, Html.
05:27:17 <Sgeo> https://github.com/jaspervdj/blaze-markup/blob/master/src/Text/Blaze/Internal.hs
05:27:18 <monqy> is html a monad now
05:27:32 <Sgeo> (MarkupM)
05:27:37 <tswett> Why would Html be a monad?
05:27:37 <shachaf> monqy: Blaze's Monad. hth
05:27:49 <monqy> shachaf: thank you
05:27:54 <Sgeo> The author of the library acted like it was for some conveniences
05:28:04 <tswett> Why would Html even be a type constructor?
05:28:12 <monqy> Sgeo: this is bad
05:28:13 <Sgeo> https://github.com/jaspervdj/blaze-markup/blob/master/src/Text/Blaze/Internal.hs#L156
05:28:16 <shachaf> Wasn't Blaze just like Writer Something except broken for some reason?
05:28:30 <shachaf> Sgeo: good instance
05:28:34 <shachaf> we should import it into lens
05:28:38 -!- azaq23 has quit (Quit: Leaving.).
05:29:06 <shachaf> I guess that one is safe...
05:29:28 <monqy> fsvo safe
05:29:29 <shachaf> Maybe.
05:29:35 <Bike> glad they marked all those inline
05:30:01 <monqy> it's about as safe as fromjust*LESS SAFE????
05:30:12 <monqy> "imo yes"
05:30:45 <shachaf> monqy: why,youcan't get bottom out of it canyou?
05:31:32 <monqy> upon rereading, yeah i guess so
05:31:38 <monqy> except
05:31:40 <monqy> maybe not???
05:31:50 <monqy> what if you bind and then you have a bottom just sitting around
05:32:04 <monqy> and then you try and force that bottom
05:32:09 <monqy> bam dead
05:32:13 <shachaf> oh i thought you meant the functor instance
05:32:15 <monqy> oh
05:32:19 <shachaf> "i didn't even see the monad instance"
05:32:31 <shachaf> ew that instance is bad
05:32:45 <shachaf> why would you make an instance like that
05:32:47 <monqy> exactly
05:32:52 <monqy> its so bad
05:33:01 <shachaf> why not just use writer..........................
05:33:11 <monqy> theres a nice monoid instance over there
05:33:21 <shachaf> what is even going on here
05:33:36 <shachaf> it makes me mad
05:33:45 -!- md_5 has joined.
05:33:51 <shachaf> (actually i was already mad to begin with)
05:34:00 <tswett> It makes me MAD.
05:34:02 <monqy> extramad???
05:34:17 <tswett> Because MAD is even more mad than mad.
05:34:58 -!- keb has joined.
05:35:05 <Sgeo> `welcome keb
05:35:06 <HackEgo> keb: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
05:35:10 <shachaf> so is the point of this instance just to abuse donotation
05:35:18 <tswett> But mad is more mad than MAD. In fact, MAD isn't mad at all; it's just sort of peacefully introspective.
05:35:44 <shachaf> this instance: seriously awful??
05:35:48 <Sgeo> shachaf, one of the examples of using Blaze uses forM_
05:35:50 <monqy> shachaf: well you can use functions that expect monads??? but you'll probably get a lot of bottoms sitting around
05:36:06 <shachaf> monqy: not if they assume the monad laws.........
05:36:08 <tswett> @type forM_
05:36:09 <lambdabot> Monad m => [a] -> (a -> m b) -> m ()
05:36:13 <monqy> shachaf: well, that too
05:36:20 <shachaf> which i typically assume
05:37:11 <tswett> @type foldMap
05:37:16 <lambdabot> (Foldable t, Monoid m) => (a -> m) -> t a -> m
05:37:30 * tswett gestures.
05:37:37 <Sgeo> shachaf, is it ethical to use a Writer monad primarily for the do notation?
05:38:04 <monqy> using writer is better than making your own broken instance at least
05:38:36 <Bike> Is "Is it ethical" the central question of Haskell?
05:38:49 <monqy> yes you've figured it out
05:38:57 <Bike> The key.
05:39:03 <copumpkin> I think we should build the endokleislicategory monoid and use that with writer
05:39:05 <Bike> The key to Sgeo, also.
05:39:06 <copumpkin> so we can embed other monads
05:39:18 <copumpkin> in a writer's accumulator
05:39:25 <monqy> yes
05:39:44 <shachaf> http://www.bbc.co.uk/berkshire/content/articles/2006/12/06/divide_zero_feature.shtml
05:39:58 <monqy> oh ive seen that
05:40:18 <Bike> Man that was funny when it was new.
05:40:25 <shachaf> I haven't even seen it before.
05:40:28 <monqy> remember that guys other stuff too
05:40:59 <Bike> Yeah. It's good stuff.
05:41:07 <shachaf> monqy: no
05:41:21 * tswett ponders Haskell type magickery for cryptography.
05:41:57 <shachaf> monqy: "what other stuff"
05:42:11 <tswett> We need to turn chosen-key-relations-in-the-middle into Haskell stuff.
05:42:21 <tswett> Oh right, I forgot. I came here to say a specific thing.
05:42:34 <Bike> well i've always heard homomorphic encryption explained in cat theory terms, that's pretty much haskell
05:42:56 <monqy> shachaf: http://www.bookofparagon.com/
05:42:57 <shachaf> Cat theory? That's pretty popular on the Internet.
05:43:15 <Bike> I have a cat on me right now.
05:43:20 <Bike> Her egory is missing.
05:43:23 <tswett> <reset bound="b">you should never tell anyone that <shift bound="b" cont="c">According to a friend of mine, <cont cont="c">you don't like pancakes.</cont></shift></reset>
05:43:31 <Bike> monqy: Oh, christ.
05:43:48 <monqy> Anderson has been trying to market his ideas for transreal arithmetic and "Perspex machines" to investors. He claims that his work can produce computers which run "orders of magnitude faster than today's computers".[7][12] He has also claimed that it can help solve such problems as quantum gravity,[7] the mind-body connection,[13] consciousness[13] and free will.[13]
05:44:23 <shachaf> monqy: how does it compare to vortex math
05:44:34 <monqy> it's in a similar vein
05:44:37 <Bike> Related:
05:44:39 <Bike> Holy shit, I found the solution to the prime numbers. They are a slightly altered fibonacci like sequence on a translated number line! What do I have to be able to show for my discovery to be taken seriously and what issues are there in math regarding primes are there? I don't want people getting credit using my discovery when I can do it myself.
05:44:45 <tswett> Oh yeah,[15] I've heard of those.[2] Kind of a silly[6] idea, isn't it.[6]
05:45:21 <monqy> Bike: good
05:45:27 <monqy> Bike: where is this
05:46:11 <Bike> 4chan.
05:47:02 <monqy> is there any followup i want to know more
05:47:53 <Bike> http://boards.4chan.org/sci/res/5569709
05:47:58 <shachaf> The symbol for nullity (bottom)
05:50:26 <Sgeo> "literally no idea what everyone here is babbling on about, OP found a proof that a countably infinite set lies in bijection with a different countably infinite set."
05:52:22 -!- TeruFSX has quit (Ping timeout: 240 seconds).
05:52:59 <monqy> gosh this all went down today?
05:53:10 <monqy> 4chan is hell
05:53:22 <Bike> Only the latest bullshit news from your friendly village bicycle.
05:53:33 <shachaf> more like villain bicycle
05:56:28 <doesthiswork> that striping pattern is the result of factors of 3
05:56:29 <tswett> "They are a well define sequence but lack a generating functions."
05:56:32 <tswett> Why, that's not true.
05:57:08 <tswett> One generating function for the prime numbers is the function f(x) = \sum_{n=1}^\infty p_n x^n, where p_n is the nth prime number.
05:58:02 <Bike> I have a simple algorithm that generates all primes which are multiples of 5. I'm proofreading the paper now, and will submit it this weekend.
05:58:06 <monqy> tswett: :-) have you noticed that 4chan is hell
06:01:23 <doesthiswork> so far I have found a way to generate the first 50 primes using this algorithm
06:01:52 <tswett> "Define the meaning of the limit of a function using only rational numbers."
06:02:13 <tswett> Needless to say.
06:06:10 <madbr> that thread is horrible
06:06:39 <monqy> what did you expect
06:06:52 <madbr> nothing
06:10:32 <doesthiswork> why do they even have a science and math forum, what do they expect to get out of it?
06:10:46 <monqy> gems like this
06:11:46 -!- sirdancealot has quit (Quit: ragequit).
06:12:05 <zzo38> Why will some programs fail to follow the principle of extended ASCII?
06:12:17 <Sgeo> There's a principle of extended ASCII?
06:12:18 -!- cantcode has joined.
06:12:24 <Bike> It's a zzoprinciple.
06:13:43 <zzo38> The principle of extended ASCII is that the codes 0x00 to 0x7F are always ASCII, and that the non-ASCII codes are not used for commands and that kinds of stuff (and I didn't just make up this principle).
06:14:08 <shachaf> Is "(and I didn't just make up this principle)" part of the principle?
06:14:34 <zzo38> No
06:14:44 <zzo38> At least, I don't think so.
06:15:13 -!- keb has quit (Ping timeout: 246 seconds).
06:15:51 <doesthiswork> join #erotic
06:16:05 <monqy> hi
06:16:09 <doesthiswork> woops forgot the slash
06:16:50 <kmc>
06:16:55 <Bike> Does #erotic real?
06:16:58 <zzo38> Does the filename need a slash?
06:17:38 <Bike> Does #esoteric have an auxilary channel for erotic internet roleplay?
06:17:47 <doesthiswork> zzo38: no but I like it better with it, harry/draco all the way
06:17:49 <kmc> erotic esolangs?
06:18:11 <monqy> does fuckfuck count
06:18:59 <kmc> hm
06:19:07 <kmc> maybe if you wrote some erotic fiction that is also a fuckfuck program
06:19:56 <Bike> If I write erotic monqy/shachaf fanfiction is it actually nonfiction? Is it Turing complete? Does erotic fanfiction form a monad if it has shachaf in it?
06:20:20 <monqy> all excellent questions
06:21:02 <Bike> I'm pretty sure the slash operator forms a monoid.
06:22:04 <shachaf> hi
06:22:06 <monqy> are you sure it's even associative
06:22:40 <Bike> Oh, maybe you're right...
06:22:45 <Bike> I think I can invert it too though.
06:22:55 <Bike> The identity can be Sgeo.
06:23:00 <monqy> ok
06:23:03 <Jafet> I love shachaf
06:23:42 <shachaf> don't we all
06:33:32 <zzo38> I found on Wikipedia, the roman numbers for one half is actually S.
06:33:59 <shachaf> what is the roman numbers for epsilon
06:34:29 <zzo38> (actually without the dot; because "S" is 1/2 and "S." is 7/12)
06:34:58 <zzo38> I don't know what is the roman numbers for epsilon.
06:38:32 <kmc> zzo38: is there notation for other numbers of twelfths besides six and seven?
06:38:48 <zzo38> Yes, a colon means 1/6
06:38:53 <zzo38> A dot means 1/12
06:39:08 <zzo38> Look it up in Wikipedia for information
06:40:03 <zzo38> So now I know how to write the name of the "pope" of one of the lesser-known churches I have written about in the Dungeons&Dragons game, using roman numbers.
06:40:23 <Bike> He has fractions in his name?
06:40:58 <zzo38> Yes.
06:41:04 <Bike> Meaning what?
06:41:39 <zzo38> Meaning fractions.
06:41:54 <Bike> I mean, what do they mean in the context of his name.
06:42:30 <Bike> Usually "Ted Dicksterson III" means "the Ted Dicksterson after Ted Dicksterson II", I don't get how that works with fractions.
06:43:35 <zzo38> Well, for some reason (not precisely known, but there might be theories), one of them taking that name is numbered by a half.
06:44:09 <Sgeo> Bike, you should play Frog Fractions to help you learn about fractions.
06:44:12 <Sgeo> (Sorry, I'm obsessed)
06:45:03 <zzo38> It is of the church of Gxxyuxihuvxi, but instead they will usually say "the deity whose name shall not be mentioned because is difficult to pronounce" instead of their proper name.
06:45:24 -!- augur has quit (Remote host closed the connection).
06:45:35 <Bike> How is it pronounced?
06:45:58 <zzo38> It is difficult.
06:46:45 <madbr> tell us using phonetic alphabet : http://en.wikipedia.org/wiki/International_Phonetic_Alphabet
06:47:01 <madbr> x-sampa is also acceptable if you're familiar with that
06:47:14 <zzo38> One problem is that I don't know how to pronounce, so using symbols won't help!
06:47:48 <zzo38> "Gxxyuxihuvxi" is just the written form of the name (and only when using the English alphabet); not the spoken form.
06:52:53 <Bike> Sgeo this hardly seems very fraction-related at all!
06:53:00 -!- sebbu has quit (Ping timeout: 272 seconds).
06:54:38 -!- DHeadshot has joined.
06:55:35 <Sgeo> The points are fractions, the score is displayed as fraction. Therefore, you're learning about fractions!
06:55:46 <Bike> Actually they're floats now.
06:55:52 <Bike> This is pretty advanced.
06:56:28 <shachaf> `smlist
06:56:34 <HackEgo> shachaf monqy elliott
06:56:48 <monqy> !!!!!
06:57:10 <Sgeo> Have you looked through the possible upgrades?
06:58:06 <doesthiswork> i've uninstalled lockon twice
06:59:27 <Bike> Yeah... it's gonna take forever to get that Warp Drive. Stupid economy :(
06:59:37 <zzo38> I read somewhere that the E0x command in .MOD affects the "LED filter" but OpenMPT doesn't have that command?
06:59:44 <Sgeo> (Hint: You need to get the Warp Drive)
06:59:49 <shachaf> Bike: are you playing frog fractions
07:00:19 <shachaf> Sgeo: don't give Bike hints................ just because you got hints doesn't mean you have to spread them on
07:00:32 <shachaf> which part of frog fractions are you on Bike
07:00:52 <zzo38> (I don't know if I have any music files using that command, but still some documents says it is valid commands)
07:01:07 <Bike> The part where I got bored because everything is slow on this machine, and went back to listening to Staircase Whip on infinite repeat.
07:01:45 <tswett> Obviously, "Gxxyuxihuvxi" is pronounced /gksksˈjʌksɪhʌvksi/.
07:01:54 <Bike> Thanks.
07:02:25 <zzo38> tswett: To you it is. OK
07:02:59 <zzo38> But maybe it is still difficult anyways
07:03:36 <Bike> I'd say /ksks'jʌks/ is difficult yes
07:04:05 <Sgeo> shachaf, maybe Bike needs a hint?
07:04:21 <tswett> /ksksˈjʌks/ isn't a part of that I have difficulty pronouncing.
07:05:20 <zzo38> Also the name is in English letter because is what we have; the proper letters are difficult.
07:05:51 <monqy> save frog fractions for when you have a good computer?? frog fractions deserves it
07:06:07 <Bike> Mmhm.
07:06:14 <tswett> Can it be pronounced correctly using only the human body?
07:06:19 <tswett> (And the air surrounding it?)
07:06:33 -!- sebbu has joined.
07:06:34 -!- sebbu has quit (Changing host).
07:06:34 -!- sebbu has joined.
07:06:46 <zzo38> Probably not.
07:07:19 <zzo38> It isn't meant for human to pronounce, but it is difficult for others too anyways.
07:08:16 <tswett> Reminds me of that one Fry and Laurie skit about a guy named "Nippl-e", pronounced by dropping a pen held horizontally from a height of about a foot.
07:09:31 <Deewiant> Over what kind of surface?
07:11:19 <tswett> A desk or something.
07:13:08 <Deewiant> If I drop it into water, can that be called an accent?
07:14:12 <tswett> Well, any way of pronouncing things is an accent.
07:14:46 <tswett> The only question is whether or not it would sound significantly different.
07:15:38 <tswett> (Do I pronounce "n" differently from most people? Why, yes I do. I pronounce it with my tongue, whereas other people pronounce it with *their* tongues.)
07:16:20 -!- FreeFull has quit.
07:16:28 <shachaf> I pronounce it with your tongue.
07:24:53 <Bike> At this rate my fanfiction will be outdone by the channel itself.
07:25:23 <madbr> I'd do it with a click
07:25:37 <madbr> Derek *klk!*
07:25:54 <shachaf> Bike: Aeronautic fanfiction, right?
07:26:05 <shachaf> i love airplanes
07:27:10 <Bike> Well, you'll love being fucked by one then.
07:33:37 -!- carado has joined.
07:37:58 -!- DHeadshot has quit (Ping timeout: 272 seconds).
07:38:13 -!- epicmonkey has joined.
07:41:30 -!- fftw has quit (Ping timeout: 264 seconds).
07:44:14 -!- augur has joined.
07:49:36 -!- fftw has joined.
07:57:26 -!- tromp_ has quit (Remote host closed the connection).
07:57:52 -!- tromp_ has joined.
08:07:00 -!- rodgort has quit (Ping timeout: 248 seconds).
08:08:30 -!- rodgort has joined.
08:10:34 <mroman> @ask nooodl Why didn't you put langtons ant on rosettacode?
08:10:34 <lambdabot> Consider it noted.
08:13:15 -!- madbr has quit (Quit: Radiateur).
08:30:53 -!- atehwa has joined.
08:42:39 -!- Bike has quit (Quit: slep).
08:53:03 -!- Haz has joined.
08:53:46 <Haz> lua sucks
08:53:49 <Haz> suck it, nerds
08:53:50 -!- Haz has left.
08:56:26 <monqy> ok
09:01:22 -!- doesthiswork has quit (Quit: Leaving.).
09:02:39 <shachaf> monqy: Haz sure showed you huh
09:04:18 <monqy> yeah totally
09:15:59 -!- monqy has quit (Quit: hello).
09:28:32 <Sgeo> I found Haz.
09:30:16 <Sgeo> In #vidyadev
09:30:24 <Sgeo> Courtesy of #lua
09:34:51 -!- kallisti has quit (Ping timeout: 260 seconds).
09:38:34 -!- carado has quit (Ping timeout: 246 seconds).
09:48:57 -!- carado has joined.
10:39:44 -!- sebbu has quit (Ping timeout: 272 seconds).
10:41:30 -!- zzo38 has quit (Remote host closed the connection).
10:45:13 -!- nooga has joined.
11:51:47 -!- carado_ has joined.
12:24:38 -!- Frooxius has joined.
12:24:40 -!- Frooxius has quit (Client Quit).
12:24:52 -!- Frooxius has joined.
12:26:33 -!- TeruFSX has joined.
12:31:41 -!- mroman_ has joined.
12:35:45 -!- SirCmpwn has quit (*.net *.split).
12:35:45 -!- mroman has quit (*.net *.split).
12:35:45 -!- Sanky has quit (*.net *.split).
12:36:16 -!- TeruFSX has quit (Ping timeout: 272 seconds).
12:37:07 -!- SirCmpwn has joined.
13:03:30 -!- epicmonkey has quit (Ping timeout: 276 seconds).
13:12:25 -!- carado has quit (Ping timeout: 246 seconds).
14:01:53 -!- boily has joined.
14:02:54 -!- metasepia has joined.
14:15:28 -!- Arc_Koen has joined.
14:26:42 <elliott> fizzie: http://esolangs.org/w/index.php?title=Talk:Undefined_behavior&diff=next&oldid=35561 is incorrect, no?
14:27:18 <coppro> elliott: it is
14:27:22 <coppro> a gets modified twice
14:27:32 <coppro> but the comment beforehand is also wrong
14:27:39 <coppro> it is un*specified*, not un*defined*
14:28:20 <coppro> the original example was UB
14:28:31 <elliott> right
14:28:38 <elliott> well i nominate you to fix the article
14:28:42 <elliott> if it is broken
14:29:40 <coppro> fixed
14:30:48 <elliott> thank you for your services to america
14:31:14 <elliott> coppro: shouldn't one of those comments be "unspecified" or such
14:31:21 <elliott> or do I know even less about C than I thought
14:31:25 <coppro> I'm not fixing discussion posts
14:31:43 <coppro> that's like trying to fix people who are wrong on the internet
14:31:50 <elliott> no i meant
14:31:53 <elliott> the comments in the article
14:31:57 <elliott> in the C code
14:32:00 <coppro> no
14:32:04 <coppro> it is undefined in both cases
14:32:07 <elliott> ok
14:32:44 <coppro> I believe there is actually at least one compiler where b = b++ managed to add 2
14:33:34 <elliott> mm
14:36:58 <coppro> I don't want to go to class :(
14:37:36 <coppro> actually, there are a large number of things I need to do today, and I want to do none of them
14:51:45 <boily> you have to go by small steps, piece by piece. attack the problem from the beginning.
14:51:45 <lambdabot> boily: You have 1 new message. '/msg lambdabot @messages' to read it.
14:52:19 <elliott> no you have to give up
14:52:27 <elliott> and cry and flail around wildly and then get nothing done
14:52:28 <boily> by which I mean: don't do the first task, then don't do the second after it.
14:52:34 <elliott> oh that works too
14:52:41 <elliott> an innovative alternate approach
14:52:59 <elliott> what if you have to be doing the third task while not doing the second task
14:53:41 <boily> or worse: what if you're stuck in a livelock not doing multiple tasks at the same time?
14:54:00 <elliott> we need a non-scheduler to schedule not doing things.
14:54:30 <boily> I guess I'll begin to procrastinate on that starting tomorrow.
14:55:29 <boily> @tell oerjan I fail to see how infinite recursion breaks total ordering. but then, IANAM. (I am not a mathematician)
14:55:30 <lambdabot> Consider it noted.
14:56:16 <elliott> neither is oerjan, he just plays one on IRC.
14:56:19 <elliott> plays one on Ph.D.
14:57:32 <boily> OTOH, I *should* be able to understand this. I remember having painful memories of math classes in university.
15:37:41 -!- Phantom_Hoover has joined.
15:42:11 -!- GOMADWarrior has joined.
15:52:05 -!- GOMADWarrior has quit (Ping timeout: 255 seconds).
16:02:27 <coppro> haha
16:02:33 <coppro> total ordering of what?
16:05:43 -!- GOMADWarrior has joined.
16:12:39 -!- Taneb has joined.
16:21:36 -!- Arc_Koen has quit (Quit: Arc_Koen).
16:21:47 -!- impomatic has joined.
16:34:22 -!- Sanky has joined.
16:45:10 -!- Bike has joined.
16:45:18 <Phantom_Hoover> coppro, your face
16:45:48 <coppro> Phantom_Hoover: my face is well-ordered!
16:46:00 <Phantom_Hoover> well that's just your choice
16:51:35 -!- sebbu has joined.
16:51:36 -!- sebbu has quit (Changing host).
16:51:36 -!- sebbu has joined.
16:56:16 -!- Taneb has quit (Quit: Leaving).
17:07:37 -!- sebbu has quit (Ping timeout: 246 seconds).
17:14:00 -!- sebbu has joined.
17:25:55 -!- sebbu has quit (Ping timeout: 248 seconds).
17:31:29 -!- sebbu has joined.
17:31:29 -!- sebbu has quit (Changing host).
17:31:29 -!- sebbu has joined.
17:35:53 -!- Taneb has joined.
17:37:53 -!- doesthiswork has joined.
17:40:09 -!- sebbu2 has joined.
17:40:09 -!- sebbu2 has quit (Changing host).
17:40:09 -!- sebbu2 has joined.
17:41:48 -!- sebbu has quit (Ping timeout: 245 seconds).
17:44:44 -!- augur has quit (Ping timeout: 256 seconds).
17:45:58 -!- sebbu2 has quit (Ping timeout: 245 seconds).
17:56:21 -!- sebbu has joined.
17:56:21 -!- sebbu has quit (Changing host).
17:56:21 -!- sebbu has joined.
18:00:47 -!- Taneb has quit (Ping timeout: 255 seconds).
18:20:08 -!- Taneb has joined.
18:20:36 -!- FreeFull has joined.
18:56:49 -!- Snowyowl has joined.
19:11:11 -!- Snowyowl_ has joined.
19:13:23 -!- Snowyowl has quit (Ping timeout: 245 seconds).
19:15:47 -!- NuclearMeltdown has quit (Quit: User disconnected).
19:16:30 -!- DHeadshot has joined.
19:17:33 -!- Snowyowl_ has quit (Ping timeout: 245 seconds).
19:23:54 -!- AnotherTest has joined.
19:24:06 <AnotherTest> Hello
19:24:36 <Taneb> Hey, AnotherTest
19:24:59 <doesthiswork> `welcome AnotherTest
19:25:10 <HackEgo> AnotherTest: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
19:25:11 <AnotherTest> mroman_: I continuously seem to fail installing the packages required to build the burlesque interpreter.
19:25:31 <AnotherTest> Thanks for the welcome, now I have the right to
19:25:44 <AnotherTest> 'WeLcOmE doesthiswork
19:25:56 <AnotherTest> oh right
19:26:01 <AnotherTest> `WeLcOmE doesthiswork
19:26:05 <HackEgo> DoEsThIsWoRk: WeLcOmE To tHe iNtErNaTiOnAl hUb fOr eSoTeRiC PrOgRaMmInG LaNgUaGe dEsIgN AnD DePlOyMeNt! FoR MoRe iNfOrMaTiOn, ChEcK OuT OuR WiKi: HtTp://eSoLaNgS.OrG/WiKi/mAiN_PaGe. (fOr tHe oThEr kInD Of eSoTeRiCa, TrY #eSoTeRiC On iRc.dAl.nEt.)
19:26:40 <doesthiswork> `wElCoMe AnotherTest
19:26:42 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wElCoMe: not found
19:28:38 <AnotherTest> `WELCOME doesthiswork
19:28:41 <HackEgo> DOESTHISWORK: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.)
19:28:57 <doesthiswork> i'd already seen that one
19:29:31 <AnotherTest> Hm. I'm not sure if you can do anything else
19:29:43 <doesthiswork> it's missing the one where random letters are repeated, it's the style of the times
19:30:19 -!- DHeadshot has quit (Ping timeout: 260 seconds).
19:41:12 <AnotherTest> !blsq "5+2*5" "+";;{"-";;{"*";;{"/";;{rd}m[}m[}m[}m[}m[{{{ {.*} r[ } m[{.*} r[} m[{.-} r[} m[{.+} r[
19:41:13 <blsqbot> {{{{5.0}}} {{{2.0} {5.0}}}}
19:41:18 <AnotherTest> hm
19:41:35 <AnotherTest> !blsq {{{{5.0}}} {{{2.0} {5.0}}}} {{{ {.*} r[ } m[{.*} r[} m[{.-} r[} m[{.+} r[
19:41:35 <blsqbot> 15.0
19:41:49 <AnotherTest> well that's weird, I really need a decent interpreter though
19:42:18 -!- Snowyowl has joined.
20:07:43 -!- kallisti has joined.
20:15:33 -!- monqy has joined.
20:19:19 -!- carado has joined.
20:29:39 -!- KingOfKarlsruhe has joined.
20:30:00 -!- oerjan has joined.
20:30:29 -!- ais523 has joined.
20:34:06 <oerjan> <Sgeo> Add a Return constructor. Make m >>= f pass () to f if m is anything other than Return. <-- that's basically how you make a free monad. although you need to disassemble m when it contains >>= too.
20:34:06 <lambdabot> oerjan: You have 1 new message. '/msg lambdabot @messages' to read it.
20:34:10 <oerjan> @messages
20:34:11 <lambdabot> boily said 5h 38m 42s ago: I fail to see how infinite recursion breaks total ordering. but then, IANAM. (I am not a mathematician)
20:35:30 <oerjan> @tell boily a total ordering requires always returning a comparison result (LT, EQ or GT.) you cannot do that if you infinitely recurse, can you.
20:35:30 <lambdabot> Consider it noted.
20:36:33 <FreeFull> bottom is a perfectly valid comparison result
20:36:34 -!- carado has quit (Ping timeout: 246 seconds).
20:36:44 <oerjan> FreeFull: not in a total order.
20:37:27 <boily> bottom is kinda nasty.
20:37:27 <lambdabot> boily: You have 1 new message. '/msg lambdabot @messages' to read it.
20:37:42 <oerjan> @tell boily note i don't mean that the _values_ are infinite structures, but that _comparing_ them is an non-halting operation because of infinite recursion. although if your EQ is perfect structural identity you cannot really avoid the latter with the former.
20:37:43 <lambdabot> Consider it noted.
20:37:49 <oerjan> oh there he is :P
20:38:05 <Taneb> Trivia: I never actually fixed the Bootleg Chinese Graphics Card problem
20:38:37 <kmc> is that some kind of complexity theoretic problem or philosophical thought-experiment
20:38:50 <Taneb> No
20:38:54 <oerjan> kmc: if it isn't, it needs to be
20:39:24 <FreeFull> > :t EQ
20:39:26 <lambdabot> <hint>:1:1: parse error on input `:'
20:39:27 <FreeFull> :t EQ
20:39:29 <lambdabot> Ordering
20:39:35 <oerjan> Taneb: if we can make spam messages into esolang names, then we can make the Bootleg Chinese Graphics Card problem
20:39:53 <Taneb> It sounds graph theory ish
20:39:53 <oerjan> into a theoretical thought experiment
20:39:55 <FreeFull> I like how Ordering has an Ord instance
20:40:01 <FreeFull> > EQ > LT
20:40:04 <lambdabot> True
20:40:06 <FreeFull> > EQ > GT
20:40:08 <lambdabot> False
20:40:29 <oerjan> FreeFull: istr there's some nice application of that
20:40:37 <FreeFull> oerjan: Probably sorting
20:40:53 <Taneb> It's also a monoid
20:40:58 <Taneb> > EQ `mappend` GT
20:40:59 <lambdabot> Terminated
20:41:01 <Taneb> > EQ `mappend` GT
20:41:03 <lambdabot> GT
20:41:04 <elliott> great monoid
20:41:15 <Taneb> > LT `mappend` GT
20:41:17 <lambdabot> LT
20:41:28 <oerjan> hm maybe the monoid was involved
20:41:40 <Taneb> It's not a group, though
20:41:57 <oerjan> > mconcat $ zipWith compare [0..] [0, 2..]
20:41:59 <lambdabot> LT
20:42:29 <oerjan> pretty sure that's the same as compare on lists
20:43:33 <FreeFull> > compare [0..] [0,2..]
20:43:35 <lambdabot> LT
20:44:35 <Phantom_Hoover> whoah whoah whoah, zzo apparently spent time on something awful
20:45:09 <oerjan> hm i think you can zipWith Traverse instances, although you need to choose one of the elements to give the final structure
20:45:26 <oerjan> *one of the zipped values
20:45:50 <oerjan> Phantom_Hoover: horrible, what did he do
20:46:03 <oerjan> or is that something awful the webcomic
20:46:48 <oerjan> oh it's not a webcomic
20:46:57 <Taneb> Phantom_Hoover, sounds awful
20:46:58 <oerjan> oh that's something positive
20:47:16 <Phantom_Hoover> oerjan why are you living under this rock
20:47:27 <FreeFull> > Data.Foldable.foldl (\x acc -> pure x) :: (Foldable f, Applicative f) => f a -> f a
20:47:30 <lambdabot> Couldn't match type `a' with `t0 b0 -> a'
20:47:30 <lambdabot> `a' is a rigid type variable b...
20:47:45 <FreeFull> Oh wait, need the empty
20:47:47 <oerjan> Phantom_Hoover: i've heard of both, i just somehow confused the names
20:47:49 <FreeFull> > Data.Foldable.foldl (\x acc -> pure x) :: (Foldable f, Applicative f) => f a -> f a -> f a
20:47:52 <lambdabot> Couldn't match type `a' with `f a'
20:47:52 <lambdabot> `a' is a rigid type variable bound by...
20:48:03 <FreeFull> Ooh
20:48:08 <FreeFull> That's why it didn't work
20:48:31 <oerjan> hm i think you might even be able to zip a Traversable with a Foldable.
20:48:58 <oerjan> well, Foldable has toList, so that's pretty obvious
20:50:52 <Taneb> `seen Ngevd
20:50:56 <HackEgo> 2013-02-24 20:51:27: <Ngevd> `list
20:51:05 <boily> `seen boily
20:51:05 <Taneb> `seen atriq
20:51:05 <FreeFull> Does Foldable have fromList too?
20:51:13 <HackEgo> 2013-02-28 20:51:05: <boily> `seen boily
20:51:15 <HackEgo> not lately; try `seen atriq ever
20:51:17 <Taneb> FreeFull, no
20:51:33 <FreeFull> Nope
20:51:33 <Taneb> `seen edwardk ever
20:51:47 <HackEgo> 2012-07-24 16:03:20: <edwardk> and we also don't have coexponentials
20:52:43 -!- Phantom__Hoover has joined.
20:52:54 <FreeFull> Is there any typeclass for datatypes that have empty elements?
20:53:28 <FreeFull> I guess monoid
20:53:30 <Taneb> Possibly Default
20:53:43 <oerjan> :t let zippy g ts fs = flip evalState (toList fs) . flip traverse ts $ \x -> do (y:ys) <- get; put ys; return $ g x y in zippy
20:53:45 <lambdabot> Not in scope: `toList'
20:53:45 <lambdabot> Perhaps you meant one of these:
20:53:45 <lambdabot> `Data.Foldable.toList' (imported from Data.Foldable),
20:53:49 <kmc> FreeFull: what's an "empty element"?
20:53:55 <oerjan> :t let zippy g ts fs = flip evalState (Data.Foldable.toList fs) . flip traverse ts $ \x -> do (y:ys) <- get; put ys; return $ g x y in zippy
20:53:57 <lambdabot> (Foldable t, Traversable t1) => (a1 -> a -> b) -> t1 a1 -> t a -> t1 b
20:54:40 <Taneb> `seen Phantom____Hoover
20:54:46 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
20:54:48 <HackEgo> not lately; try `seen Phantom____Hoover ever
20:54:51 <Taneb> `seen Phantom____Hoover ever
20:55:10 <FreeFull> :t Data.Foldable.foldl (\x acc -> x) mempty :: (Foldable f, Applicative f, Monoid f) => f a -> f a
20:55:12 <lambdabot> Expecting one more argument to `f'
20:55:13 <lambdabot> In an expression type signature:
20:55:13 <lambdabot> (Foldable f, Applicative f, Monoid f) => f a -> f a
20:55:23 <HackEgo> No output.
20:56:20 <FreeFull> Failure
20:56:39 <FreeFull> :t Data.Foldable.foldl (\x acc -> pure x) mempty
20:56:41 <lambdabot> Occurs check: cannot construct the infinite type: a0 = f0 a0
20:56:41 <lambdabot> In the first argument of `pure', namely `x'
20:56:41 <lambdabot> In the expression: pure x
20:56:52 <FreeFull> Ah, dammit
20:57:05 <Taneb> :t Data.Foldable.foldr mappend mempty
20:57:06 <lambdabot> (Foldable t, Monoid b) => t b -> b
20:57:07 <AnotherTest> !blsq "!eyB" <-
20:57:07 <blsqbot> "Bye!"
20:57:27 <FreeFull> :t pure . Data.Foldable.foldl mappend mempty
20:57:29 <lambdabot> (Applicative f, Foldable t, Monoid b) => t b -> f b
20:57:38 -!- AnotherTest has quit (Quit: Leaving.).
20:57:48 <oerjan> :t Data.Foldable.mconcat
20:57:50 <lambdabot> Not in scope: `Data.Foldable.mconcat'
20:57:51 <lambdabot> Perhaps you meant one of these:
20:57:51 <lambdabot> `Data.Foldable.concat' (imported from Data.Foldable),
20:57:53 <FreeFull> That's not what I wanted
20:57:55 <oerjan> :t Data.Foldable.concat
20:57:56 -!- heroux has quit (Ping timeout: 245 seconds).
20:57:57 <lambdabot> Foldable t => t [a] -> [a]
20:58:02 <oerjan> bah
20:59:54 <FreeFull> I thought "Ooh, lists are monoids" but then it turned out to be a stupid idea
21:00:02 -!- heroux has joined.
21:00:41 <oerjan> :t foldMap id
21:00:43 <lambdabot> (Foldable t, Monoid m) => t m -> m
21:00:48 <Taneb> :t fold
21:00:50 <lambdabot> (Foldable t, Monoid m) => t m -> m
21:00:57 <oerjan> OKAY
21:03:16 <Taneb> :t \f -> flip $ appEndo . foldMap (Endo . f)
21:03:17 <lambdabot> Foldable t => (a -> c -> c) -> c -> t a -> c
21:03:38 <Taneb> :t foldr
21:03:39 <lambdabot> (a -> b -> b) -> b -> [a] -> b
21:03:45 <Taneb> :t Data.Foldable.foldr
21:03:46 <lambdabot> Foldable t => (a -> b -> b) -> b -> t a -> b
21:03:53 <oerjan> OKAY
21:04:35 <oerjan> :t DF.foldr
21:04:37 <lambdabot> Couldn't find qualified module.
21:05:00 <oerjan> :t Data.Map.insert
21:05:02 <lambdabot> Ord k => k -> a -> M.Map k a -> M.Map k a
21:05:07 <oerjan> :t Map.insert
21:05:09 <lambdabot> Couldn't find qualified module.
21:05:10 <oerjan> :t M.insert
21:05:12 <lambdabot> Ord k => k -> a -> M.Map k a -> M.Map k a
21:05:42 <Taneb> :t (\f -> flip $ appEndo . foldMap (Endo . f), \f -> Data.Foldable.foldr (mappend . f) mempty)
21:05:43 <lambdabot> (Foldable t1, Foldable t, Monoid b) => ((a -> c -> c) -> c -> t a -> c, (a1 -> b) -> t1 a1 -> b)
21:05:59 <Taneb> foldr in terms of foldMap, foldMap in terms of foldr
21:06:00 <oerjan> i recall when only M worked. i suppose having the fully qualified is an improvement, although it should have both really
21:06:41 <Taneb> :t forever (return ())
21:06:43 <lambdabot> Monad m => m b
21:06:55 <oerjan> Taneb: yep, those are default methods, no?
21:07:07 <Taneb> oerjan, roughly
21:07:19 <oerjan> *method defaults
21:07:20 <Taneb> Those are the default methods as written by me who's just had a beer
21:07:20 <elliott> oerjan: erm I think Foo.Bar.baz should *always* work if you have it imported
21:08:07 <oerjan> elliott: oh even if you import it otherwise? anyway my thought is that there should be a more principled choice of abbreviations, like have the initialism always working
21:08:18 <oerjan> so DM.insert
21:08:31 <oerjan> admittedly this _can_ cause conflicts
21:08:47 <oerjan> (do Data.Monoid and Data.Map have any conflicting names?)
21:09:16 <Snowyowl> hello?
21:09:20 <Taneb> (I don't think so)
21:09:22 <Taneb> Hey, Snowyowl
21:09:23 <oerjan> Snowyowl: g'day
21:09:31 <Snowyowl> (sorry, just checking whether I'd timed out or not)
21:09:38 <Snowyowl> (it doesn't always say)
21:09:47 <Taneb> @ping
21:09:47 <lambdabot> pong
21:09:49 <Taneb> `ping
21:09:51 <HackEgo> pong
21:09:54 <Taneb> ^ping
21:10:02 <Snowyowl> I forgot about that.
21:10:07 <Taneb> fungot...
21:10:07 <fungot> Taneb: where was i truncated?
21:10:18 <oerjan> ^def ping ul (pong)S
21:10:18 <fungot> Defined.
21:10:21 <Taneb> (that's... actually appropriate)
21:10:28 <ais523> ^ping
21:10:29 <fungot> pong
21:10:33 <Taneb> !ping
21:10:37 <Taneb> ~ping
21:10:38 <metasepia> Pong!
21:10:42 <EgoBot> Pong!
21:10:52 <Taneb> metasepia is very enthusiastic
21:10:56 <ais523> elliott: in OCaml, Foo.Bar.baz works even if you don't have it imported
21:11:01 <oerjan> !help interpreters
21:11:02 <EgoBot> ​Sorry, I have no help for interpreters!
21:11:03 <ais523> the import is only neded to be able to use it unqualified
21:11:06 <Snowyowl> you're all just happy I've found a legitimate use for !ping
21:11:11 <oerjan> !help languages
21:11:12 <EgoBot> ​languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
21:11:15 <Taneb> !help userinterps
21:11:15 <EgoBot> ​userinterps: Users can add interpreters written in any of the languages in !help languages. See !help addinterp, delinterp, show | !userinterps. List interpreters added with !addinterp.
21:11:22 <Taneb> !help languages
21:11:22 <EgoBot> ​languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
21:11:32 <ais523> !userinterps
21:11:32 <EgoBot> ​Installed user interpreters: about acro aol austro bc bct bf2c bfbignum botsnack brit brooklyn bypass_ignore bytes cat chaos chiqrsx9p choo cmd cpick ctcp dc decide drawl drome dubya echo ehird elmer fudd glogbot_ignore google graph hello helloworld id inc insanetemp jethro kraut lg lperl lsh map monqy num numberwang ook pansy pi pikhq ping pirate plot postmodern postmodern_aoler prefixes python python2 redneck reverse rimshot rot13 rot47 ruby_ sadbf sanetemp sf
21:11:47 <oerjan> !addinterp ping unlambda ````.p.o.n.gi
21:11:48 <EgoBot> ​There is already an interpreter for ping!
21:11:52 <oerjan> oops
21:11:56 <Taneb> !numberwant 7
21:12:00 <ais523> !ping
21:12:00 <oerjan> !show ping
21:12:01 <EgoBot> c puts("Pong!");
21:12:04 <EgoBot> Pong!
21:12:28 <monqy> !show monqy
21:12:29 <EgoBot> haskell import Data.Char; main = interact (map toLower)
21:12:30 <Taneb> !google bastille
21:12:31 <EgoBot> http://google.com/search?q=bastille
21:12:35 -!- ais523 has quit (Quit: kernel update, restarting).
21:12:54 <Taneb> !monqy THis is pretty cool I guess
21:13:08 <EgoBot> runghcXXXX26454.hs: epollWait: invalid argument (Bad file descriptor) \ runghcXXXX26454.hs: <stdin>: hGetContents: invalid argument (Invalid argument) \ runghcXXXX26454.hs: ioManagerDie: write: Bad file descriptor
21:13:13 <monqy> v.cool
21:13:24 <Taneb> EgoBot...
21:13:25 <oerjan> Gregor: OOPS
21:14:47 <oerjan> !haskell print "Hi!"
21:14:51 <EgoBot> ​"Hi!"
21:15:05 <oerjan> !haskell main = print "Hi!"
21:15:12 <EgoBot> ​"Hi!"
21:15:15 <oerjan> wat
21:15:23 <oerjan> !monqy What is happening here
21:15:31 <EgoBot> runghcXXXX27859.hs: epollWait: invalid argument (Bad file descriptor) \ runghcXXXX27859.hs: <stdin>: hGetContents: invalid argument (Invalid argument) \ runghcXXXX27859.hs: ioManagerDie: write: Bad file descriptor
21:15:33 <Taneb> !haskell print "Hi!"; main = print "Hi!"
21:15:36 <monqy> probaly has to do with the 'input' interact wants
21:15:40 <EgoBot> ​\ /tmp/runghcXXXX27964.hs:1:1: \ Parse error: naked expression at top level
21:16:18 <monqy> ``just my guess,,
21:16:20 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `just: not found
21:16:28 <oerjan> !addinterp test haskell print "Hi!"
21:16:28 <EgoBot> ​There is already an interpreter for test!
21:16:35 <oerjan> !show test
21:16:35 <EgoBot> That is not a user interpreter!
21:16:42 <oerjan> WAT
21:16:43 <Taneb> !hide test
21:16:50 <Taneb> !test this
21:17:12 <oerjan> !help languages
21:17:13 <EgoBot> ​languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
21:17:21 <oerjan> !delinterp test
21:17:22 <EgoBot> ​test is not a user interpreter.
21:17:27 <oerjan> !addinterp test haskell print "Hi!"
21:17:28 <EgoBot> ​There is already an interpreter for test!
21:17:32 <monqy> !addinterp qqq haskell getLine >>= putStrLn
21:17:33 <EgoBot> ​Interpreter qqq installed.
21:17:38 <monqy> !qqq break please
21:17:41 <EgoBot> break please
21:17:43 <monqy> :0
21:17:46 <oerjan> oops
21:17:50 <monqy> !delinterp qqq
21:17:50 <EgoBot> ​Interpreter qqq deleted.
21:17:57 <monqy> !addinterp qqq haskell interact id
21:17:57 <EgoBot> ​Interpreter qqq installed.
21:18:03 <monqy> !qqq hello??
21:18:05 <EgoBot> hello??
21:18:09 <Taneb> HMM
21:18:09 <oerjan> fancy
21:18:10 <monqy> :-0
21:18:18 <oerjan> !show monqy
21:18:19 <EgoBot> haskell import Data.Char; main = interact (map toLower)
21:18:33 <oerjan> !monqy test
21:18:39 <EgoBot> runghcXXXX31619.hs: epollWait: invalid argument (Bad file descriptor) \ runghcXXXX31619.hs: <stdin>: hGetContents: invalid argument (Invalid argument) \ runghcXXXX31619.hs: ioManagerDie: write: Bad file descriptor
21:18:44 <oerjan> !delinterp monqy
21:18:45 <EgoBot> ​Interpreter monqy deleted.
21:18:47 <monqy> !delinterp qqq
21:18:47 <EgoBot> ​Interpreter qqq deleted.
21:18:55 <olsner> oh noes, you deleted monqy
21:18:58 <Taneb> !addinterp tanebdk haskell module Main where import Data.Char; main = interact (map toLower)
21:18:58 <EgoBot> ​Interpreter tanebdk installed.
21:19:06 <Taneb> !tanebdk Test
21:19:09 <oerjan> !addinterp monqy haskell import Data.Char; main = interact (map toLower)
21:19:09 <EgoBot> ​Interpreter monqy installed.
21:19:10 <monqy> !addinterp qqq haskell import Data.Char; main = putStrLn "hi"
21:19:11 <EgoBot> ​Interpreter qqq installed.
21:19:12 <EgoBot> runghcXXXX32222.hs: <stdin>: hGetContents: invalid argument (Invalid argument) \ runghcXXXX32222.hs: epollWait: invalid argument (Bad file descriptor) \ runghcXXXX32222.hs: ioManagerDie: write: Bad file descriptor
21:19:13 <oerjan> !monqy test
21:19:19 <monqy> !qqq test
21:19:21 <EgoBot> runghcXXXX32409.hs: epollWait: invalid argument (Bad file descriptor) \ runghcXXXX32409.hs: <stdin>: hGetContents: invalid argument (Invalid argument) \ runghcXXXX32409.hs: ioManagerDie: write: Bad file descriptor
21:19:25 <EgoBot> hi
21:19:35 <Taneb> !delinterp tanebdk
21:19:35 <EgoBot> ​Interpreter tanebdk deleted.
21:19:44 <monqy> maybe i have to add monqy and then it will work......................
21:19:57 <monqy> !delinterp qqq
21:19:57 <EgoBot> ​Interpreter qqq deleted.
21:20:05 <oerjan> hm i wonder if it has something to do with how !haskell tries both ghci and module form
21:20:11 <oerjan> maybe it breaks on the first one
21:20:25 <oerjan> !delinterp monqy
21:20:26 <EgoBot> ​Interpreter monqy deleted.
21:21:05 <oerjan> !addinterp monqy haskell import Data.Char; interact (map toLower)
21:21:06 <EgoBot> ​Interpreter monqy installed.
21:21:10 <oerjan> !monqy test
21:21:16 <EgoBot> ​\ /tmp/runghcXXXX888.hs:1:19: \ Parse error: naked expression at top level
21:21:23 <oerjan> ok not that
21:21:29 <oerjan> !delinterp monqy
21:21:30 <EgoBot> ​Interpreter monqy deleted.
21:21:34 <Taneb> Maybe it has an old GHCi
21:21:42 <oerjan> yeah
21:21:46 <monqy> !addinterp qqq haskell import Data.Char; main = interact id
21:21:46 <EgoBot> ​Interpreter qqq installed.
21:21:50 <monqy> !qqq hello??
21:21:56 <Taneb> !addinterp tanebdk haskell :m + Data.Char; interact id
21:21:56 <EgoBot> ​Interpreter tanebdk installed.
21:21:56 <EgoBot> runghcXXXX1286.hs: epollWait: invalid argument (Bad file descriptor) \ runghcXXXX1286.hs: <stdin>: hGetContents: invalid argument (Invalid argument) \ runghcXXXX1286.hs: ioManagerDie: write: Bad file descriptor
21:22:02 <Taneb> !tanebdk hello?
21:22:09 <EgoBot> syntax: :module [+/-] [*]M1 ... [*]Mn \ \ /tmp/runghcXXXX1594.hs:1:1: parse error on input `:'
21:22:15 <oerjan> heh
21:22:29 <oerjan> ; not accepted in ghci
21:22:34 -!- DHeadshot has joined.
21:22:34 <Taneb> !delinterp tanebdk
21:22:34 <EgoBot> ​Interpreter tanebdk deleted.
21:22:38 <Taneb> !addinterp tanebdk haskell :m + Data.Char\n interact id
21:22:38 <EgoBot> ​Interpreter tanebdk installed.
21:22:44 <Taneb> !tanebdk long shot
21:22:50 <monqy> !delinterp qqq
21:22:51 <EgoBot> ​Interpreter qqq deleted.
21:22:52 <EgoBot> syntax: :module [+/-] [*]M1 ... [*]Mn \ \ /tmp/runghcXXXX2496.hs:1:1: parse error on input `:'
21:23:00 <Taneb> !delinterp tanebdk
21:23:00 <EgoBot> ​Interpreter tanebdk deleted.
21:23:21 <monqy> !addinterp qqq haskell import Data.Char; main = print (toLower 'B')
21:23:22 <EgoBot> ​Interpreter qqq installed.
21:23:23 <monqy> !qqq
21:23:31 <EgoBot> ​'b'
21:23:59 <monqy> !delinterp qqq
21:23:59 <EgoBot> ​Interpreter qqq deleted.
21:24:29 <oerjan> !addinterp monqy haskell import Data.Char; main = putStr . map toLower =<< getContents
21:24:30 <EgoBot> ​Interpreter monqy installed.
21:24:34 <oerjan> !monqy test
21:24:41 <EgoBot> runghcXXXX5034.hs: epollWait: invalid argument (Bad file descriptor) \ runghcXXXX5034.hs: <stdin>: hGetContents: invalid argument (Invalid argument) \ runghcXXXX5034.hs: ioManagerDie: write: Bad file descriptor
21:24:46 <oerjan> ok that didn't work
21:24:56 <oerjan> it's getContents that breaks
21:25:08 <Bike> this is some deep stuff
21:26:03 <oerjan> presumably stdin is something weird?
21:26:24 <monqy> it worked nicely in 'ghci mode'
21:26:31 <monqy> weird???
21:26:50 <oerjan> monqy: um where?
21:27:01 -!- ais523 has joined.
21:27:12 <monqy> !addinterp qqq haskell getContents >>= putStr
21:27:13 <EgoBot> ​Interpreter qqq installed.
21:27:15 <monqy> !qqq hello
21:27:18 <EgoBot> hello
21:27:50 <oerjan> oh
21:28:38 <oerjan> !delinterp monqy
21:28:39 <EgoBot> ​That interpreter doesn't exist!
21:28:41 <oerjan> !delinterp monqy
21:28:42 <EgoBot> ​Interpreter monqy deleted.
21:30:36 <oerjan> @hoogle :: IO String
21:30:37 <lambdabot> Prelude getContents :: IO String
21:30:37 <lambdabot> System.IO getContents :: IO String
21:30:37 <lambdabot> Prelude getLine :: IO String
21:30:41 <oerjan> !addinterp monqy haskell import Data.Char; main = putStr . map toLower =<< getLine
21:30:42 <EgoBot> ​Interpreter monqy installed.
21:30:48 <oerjan> !monqy test
21:30:54 <EgoBot> runghcXXXX7396.hs: <stdin>: hGetLine: invalid argument (Invalid argument)
21:30:59 <oerjan> fff
21:31:06 <oerjan> ok it's _not_ just getContents
21:31:41 <oerjan> it may seem that !haskell with module format simply doesn't have a working stdin
21:31:46 <elliott> monqy is hard..... not like monoids!!!!!!!!
21:31:50 <oerjan> @tell Gregor it may seem that !haskell with module format simply doesn't have a working stdin
21:31:51 <lambdabot> Consider it noted.
21:31:59 <elliott> (reference for the viewers at home: monoids are well-established to be so easy)
21:32:03 <boily> `? monqu
21:32:04 <HackEgo> monqu? ¯\(°_o)/¯
21:32:06 <boily> `? monqy
21:32:07 <HackEgo> The friendship monqy is an ancient Chinese mystery; ask itidus21 for details.
21:32:18 <oerjan> !delinterp monqy
21:32:18 <EgoBot> ​That interpreter doesn't exist!
21:32:20 <oerjan> !delinterp monqy
21:32:21 <EgoBot> ​Interpreter monqy deleted.
21:32:26 <oerjan> bloody final space
21:32:42 <boily> @tell itidus21 ancient chinese mystery?
21:32:42 <lambdabot> Consider it noted.
21:32:57 <elliott> you have to use @ask not @tell
21:33:40 <oerjan> !addinterp monqy haskell http://oerjan.nvg.org/monqy
21:33:41 <Bike> whoa
21:33:43 <EgoBot> ​Interpreter monqy installed.
21:33:49 <oerjan> !monqy TEST now
21:33:55 <EgoBot> syntax: :module [+/-] [*]M1 ... [*]Mn \ \ /tmp/runghcXXXX8717.hs:1:1: parse error on input `:'
21:34:00 <oerjan> sheesh
21:34:02 <Bike> okay uh
21:34:11 <Bike> are you spending all this time making a thing that lowercases what you give it
21:34:24 <oerjan> IN HASKELL
21:34:39 <Bike> i refuse to believe this is as difficult as you're making it look
21:34:44 <monqy> it's easy actually
21:34:48 <oerjan> !delinterp monqy
21:34:49 <EgoBot> ​Interpreter monqy deleted.
21:34:49 <monqy> ive been hiding the secret this whole time
21:34:52 <oerjan> !addinterp monqy haskell http://oerjan.nvg.org/monqy
21:34:54 <EgoBot> ​Interpreter monqy installed.
21:35:00 <oerjan> !monqy NOW what
21:35:07 <EgoBot> ​\ /tmp/runghcXXXX9861.hs:1:3: parse error on input `:'
21:35:10 <oerjan> oh hm
21:35:20 <monqy> at least, i think i have the secret??????
21:35:27 <Bike> what's the secret monqy
21:35:30 <Bike> deliver us from this peril
21:35:31 <monqy> i'll never tell
21:35:39 <Bike> deliver us
21:35:46 <oerjan> !delinterp monqy
21:35:46 <EgoBot> ​Interpreter monqy deleted.
21:36:38 <oerjan> !show slashes
21:36:41 <EgoBot> perl (sending via DCC)
21:37:03 <oerjan> hm that's inconclusive
21:37:18 <oerjan> !help userinterps
21:37:19 <EgoBot> ​userinterps: Users can add interpreters written in any of the languages in !help languages. See !help addinterp, delinterp, show | !userinterps. List interpreters added with !addinterp.
21:37:25 <oerjan> !userinterps
21:37:25 <EgoBot> ​Installed user interpreters: about acro aol austro bc bct bf2c bfbignum botsnack brit brooklyn bypass_ignore bytes cat chaos chiqrsx9p choo cmd cpick ctcp dc decide drawl drome dubya echo ehird elmer fudd glogbot_ignore google graph hello helloworld id inc insanetemp jethro kraut lg lperl lsh map num numberwang ook pansy pi pikhq ping pirate plot postmodern postmodern_aoler prefixes python python2 qqq redneck reverse rimshot rot13 rot47 ruby_ sadbf sanetemp sfed
21:37:37 <oerjan> !choo hm..
21:37:38 <EgoBot> hm.. m.. .. .
21:37:42 <oerjan> !show choo
21:37:43 <EgoBot> bf >,[>,]<++++++++++++++++++++++[<]>[[.>]<[<]>[-]>]
21:37:54 <oerjan> that _definitely_ takes stdin
21:38:38 <monqy> well you can get haskell to take stdin too
21:38:42 <oerjan> Bike: it would be easy if !haskell wasn't broken.
21:38:51 <oerjan> monqy: um what do you think we were doing
21:38:57 <monqy> oerjan: the wrong thing!!
21:38:58 <oerjan> there's an actual bug in !haskell
21:39:03 <monqy> yes
21:39:06 <monqy> but there's a workaround
21:39:10 <oerjan> oh?
21:39:10 <monqy> (i think)
21:39:26 <oerjan> note that not only getContents, but even getLine broke
21:39:33 <monqy> yes
21:40:09 <monqy> yeah my workaround works
21:40:38 <oerjan> are you working around needing import Data.Char
21:40:41 <monqy> yes
21:40:56 <monqy> hint: the workaround is VERY STUPID
21:41:10 <oerjan> writing toLower yourself?
21:41:13 <monqy> no
21:41:20 <oerjan> ok that was my idea :P
21:41:44 <oerjan> oh i just checked something in winghci
21:41:46 <monqy> it has to do with a ghci peculiarity
21:41:51 <oerjan> yes i found one :P
21:41:53 <Bike> !chaos control
21:42:00 <EgoBot> ​\ /tmp/runghcXXXX16290.hs:1:26: \ Could not find module `System.Random' \ Use -v to see a list of the files searched for.
21:42:00 <Bike> no?
21:42:07 <Bike> oh good
21:42:32 <oerjan> !addinterp monqy haskell interact (map Data.Char.toLower)
21:42:33 <EgoBot> ​Interpreter monqy installed.
21:42:42 <oerjan> !monqy DID YOU MEAN THIS?
21:42:42 <monqy> yes
21:42:46 <monqy> yes
21:42:47 <EgoBot> did you mean this?
21:42:50 <Bike> wow
21:42:53 <Bike> wow.
21:42:54 <oerjan> !monqy YAY
21:42:57 <EgoBot> yay
21:43:24 <olsner> what does that have to do with monqy?
21:43:28 <monqy> no idea
21:43:30 <elliott> exactly
21:43:36 <oerjan> have you ever seen monqy use capitals
21:43:39 <monqy> yes
21:44:05 <olsner> I haven't seen monqy at all
21:45:21 -!- TeruFSX has joined.
21:46:36 <oerjan> `log ^[^:] <monqy>
21:46:43 <oerjan> oops
21:46:46 <oerjan> `log ^[^:]: <monqy>
21:47:08 <HackEgo> No output.
21:47:14 <HackEgo> No output.
21:47:20 <oerjan> `log <monqy>
21:47:26 <HackEgo> 2012-04-18.txt:01:21:39: <monqy> hi Sgeo
21:47:31 <oerjan> oh
21:47:57 <oerjan> `log ^..:..:..: <monqy>
21:48:13 <HackEgo> 2012-04-22.txt:04:56:20: <monqy> maybe just not care about plants
21:48:49 <Bike> programming is hard.
21:48:54 <oerjan> oh there's an S there
21:49:10 <elliott> monqy expresses his anti-environmentalist believfs
21:49:16 <oerjan> but it's obviously tab completed so it may not count
21:49:18 <oerjan> `log ^..:..:..: <monqy> .*(?-i[A-Z])
21:49:21 <HackEgo> grep: unrecognized character after (? or (?-
21:49:27 <oerjan> LAME
21:49:38 <Bike> or maybe.... maybe sed is the hard one...........
21:49:42 <oerjan> no idea if that should even work.
21:50:09 <oerjan> `log ^..:..:..: <monqy> .*[A-Z]
21:50:20 <HackEgo> 2012-06-08.txt:19:13:05: <monqy> hell is a stairdance party and ive been there multiple times in light
21:50:20 <Bike> `pastlog monqy
21:50:26 <oerjan> well that didn't
21:50:30 <HackEgo> 2011-09-24.txt:03:07:29: <monqy> hi
21:50:36 <oerjan> oh no
21:50:38 <Bike> Excellent.
21:50:49 <oerjan> i think monqy doesn't like us stalking him from the future
21:50:50 <monqy> is log case-insensitive? Beautiful.
21:50:55 <oerjan> monqy: yep
21:51:03 <monqy> maybe don't use it
21:51:35 <oerjan> and i have no idea if there's a way to work around it (without rewriting the script)
21:52:01 <monqy> `run cat `which log`
21:52:03 <HackEgo> ​#!/bin/sh \ cd /var/irclogs/_esoteric \ if [ "$1" ]; then \ grep -P -i -- "$1" ????-??-??.txt | shuf -n 1 \ else \ file=$(shuf -en 1 ????-??-??.txt) \ echo "$file:$(shuf -n 1 $file)" \ fi
21:52:09 <oerjan> the (?-i modifier in perlre looked promising, but obviously grep -P doesn't support it
21:52:49 <monqy> `run grep -P -- "^..:..:..: <monqy> .*[A-Z]" /var/irclogs/_esoteric/????-??-??.txt | shuf -n 1
21:52:57 <HackEgo> ​/var/irclogs/_esoteric/2011-08-01.txt:20:50:24: <monqy> Phantom_Hoover: 05:37:27: <itidus20> elliott_: i did an edit of it: http://oi51.tinypic.com/34h0z.jpg
21:52:59 <monqy> woops
21:53:13 <elliott> time for The Most Complicated Regular Expression Ever
21:53:14 <oerjan> that one doesn't count either
21:53:31 <Bike> elliott: i don't think the email regex would even fit in irc :(
21:53:33 <monqy> `run cd /var/irclogs/_esoteric; grep -P -- "^..:..:..: <monqy> .*[A-Z]" ????-??-??.txt | shuf -n 1
21:53:39 <elliott> good edit though
21:53:41 <HackEgo> 2011-08-27.txt:08:03:39: <monqy> I've had all the parser-handwriting experience I feel I need
21:53:44 <elliott> remember that edit monqy
21:53:52 <oerjan> OOH
21:54:00 <oerjan> monqy: great success
21:54:03 <elliott> um
21:54:07 <elliott> I doesn't really count does it
21:54:07 <monqy> elliott: yes it's Good
21:54:10 -!- Taneb has quit (Quit: Leaving).
21:54:20 <Bike> imo, monqy should run a command looking for A-Z that then returns itself from th elogs.
21:54:22 <monqy> well i use 'i' a lot don't i
21:54:36 <monqy> Bike: good idea
21:54:42 <monqy> `run cd /var/irclogs/_esoteric; grep -P -- "^..:..:..: <monqy> .*[A-Z]" ????-??-??.txt | shuf -n 1
21:54:52 <monqy> just give it enough tries and maybe it'll work???
21:54:55 <HackEgo> 2011-06-21.txt:06:20:12: <monqy> who would do thAT
21:55:05 <monqy> good question monqy
21:55:17 <monqy> i often wonder that myself
21:56:35 <monqy> `run cd /var/irclogs/_esoteric; grep -P -- "^..:..:..: <monqy> .*[A-Z]" ????-??-??.txt | shuf -n 1
21:56:44 <HackEgo> 2011-08-16.txt:00:22:02: <monqy> evincar: I also noticed that in your example, there's a bit of weirdness
21:56:51 <Bike> "Mail::RFC822::Address is a Perl module to validate email addresses according to the RFC 822 grammar. It provides the same functionality as RFC::RFC822::Address, but uses Perl regular expressions rather that the Parse::RecDescent parser. This means that the module is much faster to load as it does not need to compile the grammar on startup." wow i forgot that was the justification
21:57:05 <monqy> good
21:57:43 <kmc> ibtsocs
21:58:47 <elliott> that ones bad btw
21:58:51 <elliott> it only handles like 8-deep nested comments iirc
21:59:16 <Bike> oh no!!
22:00:06 <Snowyowl> oh god, parsing strict emails with a regex
22:00:46 <Snowyowl> I'm so glad that's not my problem.
22:01:15 <oerjan> > foldr id "Shocking!" . repeat $ \s -> '(':s++")"
22:01:24 <lambdabot> "((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((...
22:02:00 <boily> ~eval foldr id "Shocking!" . repeat $ \s -> '(':s++")"
22:02:00 <Bike> Snowyowl: For Speed
22:02:01 <metasepia> Error (1): Ambiguous occurrence `foldr'
22:02:01 <metasepia> It could refer to either `GHC.Base.foldr',
22:02:01 <metasepia> imported from `Data.List' at Imports.hs:16:1-16
22:02:01 <metasepia> (and originally defined in `base:GHC.Base')
22:02:01 <metasepia> or `Data.Foldable.foldr',
22:02:01 <metasepia> imported from `Data.Foldable' at Imports.hs:13:1-20
22:02:07 <oerjan> elliott: clearly it use that perl feature to do recursion, whatever that was
22:02:11 <kmc> hm another acme module idea: something which can strip an infinite number of spaces from the beginning of a string
22:02:16 <kmc> using vacuum magic of course
22:02:23 <Bike> vacuum magic?
22:02:32 <kmc> vacuum is a library for GHC heap introspection
22:02:43 <Bike> oh how "nice"
22:03:30 <oerjan> infinite space is vacuum magic, check
22:03:49 <boily> ~eval foldr id "Shocking!" . repeat $ \s -> '(':s++")"
22:03:49 <metasepia> Error (1): Ambiguous occurrence `foldr'
22:03:49 <metasepia> It could refer to either `Data.Foldable.foldr',
22:03:49 <metasepia> imported from `Data.Foldable' at Imports.hs:13:1-20
22:03:49 <metasepia> or `GHC.Base.foldr',
22:03:49 <metasepia> imported from `Data.List' at Imports.hs:16:1-16
22:03:50 <metasepia> (and originally defined in `base:GHC.Base')
22:04:02 <boily> aaaaah come on. I hid it!
22:04:23 <kmc> oerjan: haha
22:04:28 <kmc> with any luck i will collapse the false vacuum
22:04:45 <Bike> band name
22:05:10 <kmc> false vacuum collapse?
22:05:37 <Snowyowl> ais523: I ran into Formula after clicking the Random Page button. It's now driving me insane. I've almost cracked Hello, World.
22:05:45 <Bike> Collapse the False Vacuum
22:05:47 <ais523> Snowyowl: ooh
22:05:51 <ais523> in 2D?
22:05:54 <Snowyowl> yes
22:06:00 <ais523> I'm really curious as to whether that's TC or not
22:06:41 <Bike> oh that's a nasty language
22:06:44 <Snowyowl> Can't help you there. All I've figured out so far is that you can write a finite state machine in it.
22:07:03 <Snowyowl> which is enough for cat and hello, so it'll do for now
22:07:08 <olsner> "With three variables Formula can reasonably simply simulate a Minsky machine, and so is Turing complete."?
22:07:22 <Snowyowl> *any finite state machine
22:09:15 <elliott> olsner: that's presumably 3D
22:09:18 -!- boily has quit (Quit: Poulet!).
22:10:14 <ais523> yeah, it's obviously TC in 3D
22:10:19 <ais523> and obviously TI in 1D
22:10:29 -!- metasepia has quit (Remote host closed the connection).
22:10:37 <coppro> TI?
22:10:56 <olsner> texas instruments
22:11:20 <Bike> turing incomplete
22:11:36 <Bike> (woe be to the turing incomplete machine)
22:16:20 <ais523> yeah, turing incomplete
22:17:07 <Bike> maybe "subrecursive" would sound cooler
22:19:46 -!- Arc_Koen has joined.
22:27:01 <oerjan> ais523: "If the output is in the range [-½,½], " shouldn't that be (-½,½) since the end values are already taken by the first rule?
22:27:10 <ais523> oerjan: yeah
22:27:20 <ais523> I wasn't completely up on notation when I wrote that
22:27:40 -!- Nisstyre-laptop has joined.
22:28:08 <oerjan> fixed
22:28:54 <Bike> so, does this have anything to do with exponential diophantines or should i read the article again while more awake
22:29:49 <Phantom__Hoover> ooh is this one of those turing-equivalent thingies
22:30:13 <Bike> what isn't
22:30:36 <oerjan> Bike: i doubt you need anything that heavy to settle this
22:31:17 <oerjan> it's more of a question of how to move around with only two variables that can be incremented/decremented
22:31:53 <oerjan> i am assuming that the formulas are powerful enough that you can express any reasonably simple function of the variables
22:33:17 <oerjan> hm right two variables is precisely when you have the wire-crossing problem
22:33:48 <Phantom__Hoover> oerjan, do you know of any graph colouring-related turing equivalent thingies
22:34:14 <oerjan> not on the spot
22:34:43 <oerjan> but basically, if there are any NP-complete-problem related ones, you can probably translate
22:35:12 <oerjan> since 3-coloring is NP-complete
22:35:25 <oerjan> (even with planar graphs)
22:39:07 <Snowyowl> okay, bottom of the page: http://esolangs.org/wiki/User:Snowyowl/Hello,_world!_in_Formula
22:39:08 -!- monqy has quit (Quit: hello).
22:39:44 <oerjan> hm is it decidable whether an elementary function is equal to a given rational number? if so Formula should be possible to implement in principle
22:40:49 <oerjan> (it's not known whether e+pi is rational, say, but it might still be decidable whether it's equal to a particular one)
22:41:12 <Snowyowl> Dunno. With only addition, multiplication, and division, you can use fraction arithmetic.
22:41:29 <ais523> oerjan: well if it /isn't/ rational, then it's definitely decidable that for each rational, it's not equal to that rational
22:41:31 <Snowyowl> trigonometric functions muddy the waters a bit.
22:41:31 <oerjan> yes, it's the exponential stuff that complicates things :P
22:41:32 <ais523> via decimal expansion
22:41:45 <oerjan> ais523: well yeah but that doesn't help
22:42:04 <Snowyowl> yeah, it doesn't terminate if it turns out they are equal
22:42:15 <oerjan> we need to be able to confirm the n + 1/2 cases
22:42:17 <ais523> oerjan: it allows you to write an implementation that may work correctly, you just can't prove it works correctly
22:42:21 <Bike> i thought you only need arithmetic and abs to make it uncomputable
22:42:25 <oerjan> and 0
22:42:36 <Bike> to make equalling a constant uncomputable, i mean
22:43:03 <ais523> like, the question would be "with Formula's operations, is there any way to produce a rational that isn't provably rational?"
22:43:16 <oerjan> Bike: not without quantification...
22:43:40 <oerjan> Bike: with only arithmetic and abs you can only get rational numbers
22:44:25 -!- yours_truly has joined.
22:44:36 -!- nooga has quit (Ping timeout: 276 seconds).
22:44:37 <Bike> oh it's rationals, pi, log(2), a variable, arithmetic, composition, abs, and trigonometry.
22:44:40 <oerjan> ais523: hm i guess that's equivalent
22:45:09 <ais523> oerjan: if there isn't, an implementation that worked via comparing decimal expansions would work
22:45:17 <oerjan> Bike: "a variable"? what's that used for?
22:45:26 <ais523> just without a proof of that statement, we wouldn't know it worked
22:45:29 <Bike> oerjan: http://en.wikipedia.org/wiki/Richardson's_theorem
22:45:39 -!- Snowyowl has quit (Quit: Page closed).
22:45:47 <oerjan> Bike: "a variable" is the only thing that isn't included in Formula here, so...
22:45:56 <oerjan> (in spirit)
22:47:16 <elliott> hey zeilberger
22:47:19 <elliott> is citated.
22:47:22 <elliott> from that wp article. hi.
22:47:25 <elliott> citated
22:47:27 <elliott> di i just write that
22:47:30 <elliott> am i drunk irl
22:47:52 <oerjan> elliott: i dunno, have you started drinking yet?
22:47:52 <Bike> hi elliott
22:48:04 <elliott> oerjan: no but I am sure this channel will drive me to it sooner or later
22:48:35 <oerjan> elliott: we'll just get you to skip straight to heroin for convenience
22:48:38 <Bike> oh zeilberger's an ultrafinitist
22:48:42 <Bike> well now
22:49:15 <Bike> "Guess what? Programming is even more fun than proving, and, more importantly it gives as much, if not more, insight and understanding" what a nerd
22:49:22 -!- yours_truly has quit (Quit: Leaving).
22:49:35 <elliott> zeilberge is fantastic
22:49:36 <elliott> i love him
22:49:40 <ais523> Bike: proving and programming feel quite similar to me
22:49:48 <Bike> whatever could have given you that idea ais
22:49:58 <Bike> elliott: what kind of phantasm we talkin' here?
22:50:20 <elliott> help
22:50:30 <Bike> i mean does he write psychotic blog posts or something
22:50:33 <Bike> i liked A=B
22:51:01 <elliott> http://www.math.rutgers.edu/~zeilberg/OPINIONS.html
22:51:09 <Bike> good filename
22:51:11 <elliott> he is great
22:51:25 <Bike> holy hell
22:52:01 <Bike> why is he capitalizing everything
22:52:05 <elliott> i especially like http://www.math.rutgers.edu/~zeilberg/mamarim/mamarimPDF/real.pdf
22:52:12 <elliott> and i'm not being as sarcastic as i once would be saying such a thing
22:52:36 <Bike> « In particular, Turing thesis's (recently edited and republished by Andrew Appel in this attractive book (with an insightful introduction by him)), is utter nonsense, talking about "oracles", that lead to lots of beautiful, but fictional and irrelevant work by logicians and theoretical computer scientists.»
22:52:53 <Bike> Also the "halting problem" is meaningless, as stated (so it is not surprising that it is "undecidable"). The question "does the program halt" is the same as "does there exist an integer N such that the program halts in less than N steps?", and it is tacitly assumed that N can be anything, i.e. taken over the "infinite" set of positive integers.
22:53:37 <Bike> alright elliott am i going to regret reading this pdf
22:53:44 <Bike> holy shit yes i am
22:54:00 <elliott> come on
22:54:07 <elliott> ultrafinitism is cool
22:54:24 <Bike> yes but this is too close
22:54:47 <elliott> anyone who has seen http://www.scottaaronson.com/blog/?p=103 and doesn't like ultrafinitism at least a little is lame
22:55:01 <Bike> yeah ok that guy is a pretty good argument.
22:55:30 <Bike> but i mean
22:55:33 <Bike> digital messiah
22:56:00 <FreeFull> Turing was one of the most important people in the history of computer science
22:56:02 <Phantom__Hoover> <oerjan> since 3-coloring is NP-complete
22:56:03 <Phantom__Hoover> <oerjan> (even with planar graphs)
22:56:14 <Phantom__Hoover> HAHAHAHA FINALLY MY HERALDRY-BASED ESOLANG CAN BE A REALITY
22:56:39 * Phantom__Hoover realises ~10 seconds too late that NP-complete is not the same as turing-equivalent
22:56:40 <Bike> oh god we're doomed
22:56:45 <Bike> FreeFull: who are you talking to
22:56:48 <Phantom__Hoover> no, you're safe
22:56:49 <Phantom__Hoover> for now
22:56:57 <Bike> ._.
22:57:31 <kmc> elliott: yes
22:57:32 <Bike> elliott this has more italics than words i think
22:57:55 <elliott> kmc: i have no idea what you are responding to but i agree
22:58:00 <Bike> Instead the real REAL 'line' is neither real, nor a line.
22:58:01 <oerjan> Phantom__Hoover: i say you make that heraldry-based esolang anyhow
22:58:03 <kmc> http://www.scottaaronson.com/blog/?p=103
22:58:11 <kmc> what about the long line
22:58:43 <Bike> oh christ dude you could at least use delta-epsilon formulation of derivatives couldn't you
22:58:56 <elliott> does that paper use non-standard analysis
22:59:04 <elliott> because it is a basic universal fact that non-standard analysis is great
22:59:11 <Bike> Unfortunately no.
22:59:46 <Phantom__Hoover> oerjan, how can i???
22:59:53 <Phantom__Hoover> np-complete-complete?
22:59:56 <Phantom__Hoover> what is this shit?
22:59:57 <Bike> Instead he says that the h in the just-learning-derivatives formula is "the Fundamental mesh size, a Mathematical Universal constant, that unlike Planck's constant we will never know, but it is very tiny."
23:00:21 <oerjan> Phantom__Hoover: i am so sorry
23:00:24 <Bike> integration is a riemann sum
23:00:32 <Bike> elliott i'm really regretting this help
23:00:44 <Bike> REAL (i.e. discrete) analysis is conceptually simpler than traditional ‘real’ (continuous) analysis,
23:00:47 <Bike> and of course is much truer. But it is, on the whole, technically more difficult. Hence ‘Naked Brain’
23:00:50 <Bike> humans had no choice but to pursue the latter kind.
23:01:18 <Phantom__Hoover> is Bike
23:01:27 <Phantom__Hoover> is Bike laying into that ultrafinitist guy elliott loves
23:01:46 <Phantom__Hoover> Bike, omg make fun of people who don't believe in lem
23:01:56 <Bike> Phantom__Hoover: PKD is pretty funny yes
23:02:09 <elliott> pretty sure stanis£aw £em unambiguously exists
23:02:14 <elliott> i got £ because i did compose l -
23:02:17 <Bike> nah, PKD thought he was a soviet committee.
23:02:19 <elliott> i assumed it would help me it didnt
23:02:37 <Bike> "[...]I am sure that the full arsenal of continuous complex analysis can be discretized, but the details might be too complicated for humans.
23:02:45 <Bike> like, ultrafinitism is one thing, this is just embarassing
23:02:49 <elliott> oh i guess he died
23:02:59 <Bike> people do that :(
23:03:14 <Phantom__Hoover> i... i miss my compose key
23:03:23 <FreeFull> I have shift+altgr be compose
23:03:31 <Phantom__Hoover> I WANT A REAL COMPOSE KEY
23:04:15 <Bike> elliott: does this guy even know about rational geometry or is he going to keep ranting about nonsense for the whole paper
23:04:30 <elliott> you're just jealous
23:05:23 <Bike> Ugh, I actually /am/ kind of jealous, because I know this guy could Maple circles around me.
23:05:43 <Phantom__Hoover> we're onto zeilberger???
23:05:52 <Bike> yes.
23:05:56 <Bike> elliott has infected me. Again.
23:06:37 <Bike> «Andrew Wiles alleged 'proof' of FLT»
23:06:43 <Bike> *Wiles's
23:08:37 <elliott> he likes wiles btw
23:08:47 <elliott> he's a bit confusing & also the best
23:08:53 <Bike> "a bit"
23:09:32 -!- TeruFSX has quit (Ping timeout: 256 seconds).
23:09:54 <FreeFull> Phantom__Hoover: menu as compose then?
23:10:26 -!- TeruFSX has joined.
23:10:28 <Phantom__Hoover> I TRIED BUT I JUST CAN'T MAKE IT WORSE
23:10:30 <Phantom__Hoover> WORK
23:10:31 <Phantom__Hoover> I MEAN WORK
23:11:51 <Bike> This is almost as bad as reading Kahan rant about playstations...
23:12:18 <Phantom__Hoover> you guys and your pet academic crazies
23:12:59 <Phantom__Hoover> when i am old and respected and elliott is a fringe hyperfinitist nutcase i guess i can joke about him at parties
23:13:08 <Fiora> Bike: https://www.securelist.com/en/blog/208194129/ this is an interesting thig
23:13:29 <Fiora> it's a targeted backdoor pdf-exploit-based malware that uses twitter as a dead drop for communication
23:13:46 <Fiora> with google search as a backup
23:14:04 <elliott> Phantom__Hoover: excuse me i will be professor of fuck Phantom__Hoover constructive type theory is the best thing in the universe at the university of stupid professorship names
23:14:06 <Bike> what, what happened to using hashname irc channels like the good old days ;_;
23:14:07 <Fiora> *thing
23:14:10 <Fiora> so the malware never directly connects with the control server
23:14:22 <Bike> elliott: i want to found this university
23:14:32 <elliott> Bike: you can be professor of founding this university
23:14:45 <Bike> shit yes
23:14:47 <Bike> «ancient Italian comments in the shellcode copied from Dante Aligheri’s “Divine Comedy”»
23:14:48 <elliott> do you have a phd in founding universities
23:14:52 <elliott> kind of a prerequisite
23:14:58 <Phantom__Hoover> elliott, so do numbers over, say, 23 exist
23:15:07 <elliott> Phantom__Hoover: yes but only on thursdays
23:15:12 <Bike> Phantom__Hoover: http://www.scottaaronson.com/blog/?p=103 is important!!
23:15:35 <Bike> elliott: No but I have a lack of Ph.D. in not having necessary prerequisites to founding universities.
23:15:39 <elliott> ps i am actually moderately confident that the natural numbers exist
23:15:42 -!- nooga has joined.
23:15:51 <elliott> but only the kind that starts from 0
23:16:09 <Bike> Zeilberger says that 0 shouldn't be taught though.
23:16:18 <Bike> Are you disagreeing with a guy with a name as great as "Zeilberger"?
23:16:36 <elliott> kill your idols, Bike
23:17:17 <Bike> right he's a platonist too
23:17:58 <Bike> Fiora: Wow, the bait looks really good.
23:18:59 <Fiora> Yeah, the really targeted attacks like this, stuxnet, etc are interesting, just like
23:19:01 <Bike> Fiora: Also, I'm getting an https failure here :|
23:19:05 <Fiora> how well they know their targets, well-crafted bait and stuff
23:19:06 * oerjan gives up on reading the logs on accounting of starting to get a headache
23:19:12 <Fiora> :<
23:19:37 <oerjan> *-ing
23:19:48 <Bike> "These URLs provide access to the C2s, which then provide potential commands and encrypted transfers of additional backdoors onto the system via GIF files." this sounds like CSI
23:20:05 <elliott> oerjan: can you teach me something
23:20:19 <oerjan> unlikely, but what?
23:20:36 <Fiora> Bike: I know right? XD it sounds like pure technobabble except it's real
23:21:32 <Bike> well, done with pdf, that was totally nuts
23:21:52 <elliott> oerjan: anything
23:22:14 <oerjan> elliott: never move to a place where you have housemates. hth.
23:22:21 * oerjan got a new one today
23:24:11 <Phantom__Hoover> have you ever had any swedish ones
23:24:27 <oerjan> not that i recall. there was a german one this autumn.
23:24:51 * Bike goes back to a paper that uses "Human Action System" and abbreviates it as "HAS", which is totally not crazy
23:25:00 -!- augur has joined.
23:26:30 <elliott> oerjan: what was your phd about again
23:27:07 <oerjan> Cantor dynamical systems and K-theory and C*-algebras
23:27:15 <Bike> coolio
23:27:37 <oerjan> mostly the two former
23:28:35 <Bike> what's a cantor dynamical system
23:28:49 <oerjan> the K-theory got extracted from the last into the first
23:29:04 <oerjan> Bike: it's a dynamical system on a Cantor set, hth
23:29:23 <Bike> that actually does kind of h
23:29:29 <Bike> spooky
23:29:32 <oerjan> there should probably be a "minimal" before dynamical
23:29:58 <elliott> oerjan: wow, I understand four of those words, and only two of them are the same. six if you relax the definition of word.
23:30:04 <elliott> ooh, six/two/seven then
23:30:11 <Bike> oh it's complete and compact, not as weird as i thought
23:30:35 <elliott> here are the words: dynamical (ok this one might be cheating), system, and
23:30:40 <elliott> and perhaps: theory, algebras
23:30:47 <Bike> don't you know what the cantor set is?
23:31:02 <Bike> it's george "fuck you" cantor's second most famous thing
23:31:05 <oerjan> Bike: it's a compact metrizable zero-dimensional space without isolated points
23:31:16 <Bike> psh, easy then
23:31:54 <Bike> k-theory meanwhile is what, something grothendieck invented probably, must be hard
23:31:56 <oerjan> also the common way of displaying it is that "remove middle thirds of intervals from [0,1], recursively" thing.
23:31:56 <Phantom__Hoover> what is a c* algebra
23:32:32 <Bike> "A C*-algebra is a complex algebra A of continuous linear operators on a complex Hilbert space with two additional properties: A is a topologically closed set in the norm topology of operators. A is closed under the operation of taking adjoints of operators."
23:32:42 <elliott> complex is right
23:32:49 <Bike> pun!!!
23:32:52 <elliott> i know what cantor set is btw
23:33:00 <Bike> well you should have listed it then
23:33:07 <elliott> 23:27:06 <oerjan> Cantor dynamical systems and K-theory and C*-algebras
23:33:10 <oerjan> Bike: there is no hilbert space, they're just all isomorphic to one which is one a hilbert space
23:33:10 <elliott> the word set is not in this title
23:33:13 <elliott> well not a title i guess
23:33:28 <Bike> oerjan: i was quoting wikipedia, i'm nowhere near understanding what a C* algebra is.
23:33:48 -!- GOMADWarrior has quit (Ping timeout: 264 seconds).
23:33:59 <oerjan> *is on
23:34:10 <elliott> looks like oerjan gets to correct the wp article
23:34:17 <oerjan> argh!
23:34:36 * oerjan refuses
23:34:40 <Bike> if you're lucky you could get into a flamewar with Zeilberger about how illegitimate topology is!
23:35:02 <Phantom__Hoover> does zeilberger acknowledge topologies on finite sets
23:35:20 <Bike> elliott: you should have listed Cantor anyway since you know who he is, and possibly made a humorous joke based on his name.
23:35:21 <elliott> he likes finite categories i think
23:35:32 <oerjan> topologies on finite sets are just partial preorders
23:35:32 <elliott> Bike: I never Cantor algebra I didn't like
23:35:34 <elliott> er
23:35:35 <Phantom__Hoover> presumably he doesn't have any truck with proper classes
23:35:39 <elliott> Bike: I never Cantor dynamical system I didn't like
23:35:50 <Bike> "that works"
23:37:09 <oerjan> Bike: K-theory is somewhat similar to homology theory
23:37:31 <Phantom__Hoover> i remember once trying to read the wp article on homology
23:37:32 <Phantom__Hoover> it went badly
23:37:51 <Bike> i don't know what that is either oerjan, but it's okay, you don't have to try to explain.
23:38:03 * Bike getting distracted again by reading scholarpedia on minimal dynamic systems
23:38:16 -!- DHeadshot has quit (Read error: Connection reset by peer).
23:38:19 <oerjan> Bike: well homology is considerably less obscure than K-theory, is all :P
23:38:33 <Bike> granted
23:38:40 <Phantom__Hoover> homology is like homotopy because most of the letters are the same
23:38:51 -!- DHeadshot has joined.
23:39:08 <elliott> oerjan: how many years of effort will it take to understand your thesis
23:39:17 <oerjan> homology is homotopy invariant, so they're not unrelated terms
23:39:25 <oerjan> elliott: 67
23:39:36 <elliott> oerjan: does that mean you don't understand it
23:39:38 <Bike> other problems: i think of "homologous" which is a comparative anatomy thing and, hopefully, not related to this at all
23:39:47 <oerjan> elliott: i may have understood it once
23:40:53 <oerjan> Bike: hm i vaguely recall noticing both definitions when looking up "homologi" in a norwegian encyclopedia once long ago
23:41:01 <Phantom__Hoover> oerjan, are homologous structures of the same homology class thing
23:41:11 <Bike> That's not even a sentence.
23:41:16 <oerjan> Phantom__Hoover: ...maybe. i don't remember.
23:41:40 -!- Gregor has set topic: #esoteric welcomes its new prime minister, Ed "Brainfuck Derivative" Centipede | Channel is publicly logged. You can find the URL in the log..
23:41:41 <oonbotti> Nothing here
23:41:54 <Phantom__Hoover> i think probably they're homotopy-equivalent at least so...
23:42:02 <Bike> wow, that's some good message handling, oonbotti.
23:42:15 <oerjan> Bike: once, long ago, when i looked up "homologi" in a norwegian encyclopedia, it had both mathematical and anatomical definitions, afair.
23:42:27 <Bike> oerjan: I meant at phantom hoover.
23:42:36 <Bike> your sentence as adequately sentencistic.
23:42:39 <Bike> was*
23:42:52 <Bike> And still is.
23:42:54 <Phantom__Hoover> it's a perfectly cromulent sentence
23:42:59 <Phantom__Hoover> go prescriptivise in a corner somewhere
23:43:24 <Bike> :(
23:44:06 <oerjan> yay!
←2013-01 2013-02 2013-03→ ↑2013 ↑all