←2011-09-03 2011-09-04 2011-09-05→ ↑2011 ↑all
00:00:04 * CakeProphet starts a trend of IRC begging.
00:03:36 * Phantom_Hoover → sleep
00:03:47 -!- Phantom_Hoover has quit (Quit: Leaving).
00:05:07 <Sgeo> CakeProphet, there's a bitcoin faucet thing
00:05:31 <Sgeo> Which is closed for maintainance, but whatever
00:13:56 -!- TeruFSX2 has joined.
00:15:29 <Lymee> CakeProphet, fungot talk about CakeProphet
00:15:29 <fungot> Lymee: thank you avril!
00:15:34 <olsner> why doesn't fungot react to lambdabot talking to it?
00:15:34 <fungot> olsner: i just had to change. it's no longer keep up; it's so sad. just a fly by wire" does not mean radio or remote control what is it
00:15:38 <Lymee> s/CakeProphet,//
00:15:51 <Lymee> > text "fungot, hi"
00:15:51 <fungot> Lymee: hm i might think about it. the same name? oo this was a big rubber dick. break it off
00:15:51 <lambdabot> fungot, hi
00:16:00 <Lymee> `echo fungot, hi
00:16:01 <fungot> Lymee: that was epic! even search it on that one..i can't get over it no one dyed. the fly-by-wire throttles did not see that coming
00:16:05 <HackEgo> fungot, hi
00:16:10 <Lymee> Ignore methinks.
00:16:26 <Lymee> > text $ reverse "ih, tognuf"
00:16:27 <lambdabot> fungot ,hi
00:16:29 <monqy> 15:12:23 < fizzie> ^ignore ^(EgoBot|HackEgo|toBogE|Sparkbot|optbot|lambdabot)!
00:20:28 <oerjan> what's the ! for
00:20:40 <oerjan> oh right
00:24:55 <zzo38> ^ign
00:25:11 -!- zzo38 has left.
00:27:44 <kmc> fungot, tanks *or* helicopters?
00:27:45 <fungot> kmc: oznaczono jako spam dont read this! and yes people from the graphics mean my computer cant support it now they get arranged so that airbus is a big fan of avril....but this song
00:28:14 -!- mauke has left.
00:40:10 <CakeProphet> Wow I never thought I'd ever have to worry about 4 GBs of memory being too little.
00:40:28 <CakeProphet> but apparently chrome is really bad at freeing up memory.
00:41:22 <copumpkin> you're lucky you don't use agda
00:43:00 <oerjan> agda: the driving force of morse's law
00:43:22 <oerjan> what did i just spell
00:43:24 <CakeProphet> why is everything taking forever help
00:43:27 <oerjan> *moore's
00:43:49 <CakeProphet> oh bad network signal
00:44:27 <CakeProphet> literally I'm waiting like 30 seconds for programs to start.
00:44:33 <CakeProphet> low ram, low cpu usage
00:44:58 <CakeProphet> I am listening to music. Maybe that's it? lol
00:48:58 -!- zzo38 has joined.
00:52:31 -!- augur has quit (Remote host closed the connection).
00:57:29 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)(~:S~(~!^)~a*^:^):^
00:57:29 <fungot> 0 ...bad insn!
00:59:18 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)((:(, )*S!^)~a*^:^):^
00:59:18 <fungot> 0, :(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))), ...bad insn!
00:59:26 <oerjan> O_o
01:00:10 <CakeProphet> new opeth album = leaked.
01:00:13 <CakeProphet> this is very exciting.
01:00:26 <CakeProphet> you know, for people who like progressive death metal.
01:01:39 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)(((, )*S^~)~a*^:^):^
01:01:39 <fungot> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 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 ...too much output!
01:22:09 <CakeProphet> egads!
01:24:15 <oerjan> CakeProphet: hm?
01:25:57 <CakeProphet> sdage
01:26:10 <CakeProphet> o|-|o
01:26:48 <oerjan> \m/ \m/
01:26:55 <oerjan> wat
01:26:59 <oerjan> \m/ \m/
01:26:59 <myndzi> `\o/´
01:27:00 <myndzi> |
01:27:00 <myndzi> /´\
01:27:00 <myndzi> (_| |_)
01:36:14 <zzo38> ! ! ! ! ! ???
01:40:17 <CakeProphet> /o/
01:40:18 <myndzi> ¦
01:40:18 <myndzi> ´¸¨
01:40:28 <CakeProphet> |o|
01:40:29 <myndzi> |
01:40:29 <myndzi> /<
01:40:33 <CakeProphet> \o\
01:40:33 <myndzi> |
01:40:34 <myndzi> /|
01:40:39 <oerjan> !addinterp sh cat
01:40:39 <EgoBot> ​There is already an interpreter for sh!
01:40:43 <oerjan> bah
01:40:45 <CakeProphet> \o/
01:40:45 <myndzi> |
01:40:45 <myndzi> |\
01:41:53 <oerjan> \o/ \o_ _o_ _o/ \m/ \m/ \o_ _o_ _o/ \o/
01:41:53 <myndzi> | | | | `\o/´ | | | |
01:41:54 <myndzi> /| /`\ /< /< | |\ |\ /`\ |\
01:41:54 <myndzi> (_|¯'\
01:41:54 <myndzi> |_)
01:42:08 <CakeProphet> ha
01:44:17 <CakeProphet> I haven't really thought about it much before, but it's interesting how every bot in this channel is examining every bit of input at least to some extent.
01:44:29 <CakeProphet> of everything I say.
01:44:36 <oerjan> ooh
01:44:54 <CakeProphet> I mean, it's not really anything amazing.
01:45:03 <CakeProphet> BUT IT'S LIKE I CONTROL THE CODE!!!
01:45:17 <CakeProphet> \m
01:45:20 <CakeProphet> muhahahahaha
01:45:59 <CakeProphet> o_
01:46:07 <CakeProphet> and now I torture them.
01:47:17 <CakeProphet> also why were his feet different when you did \m/ \m/ that time
01:47:18 <myndzi> `\o/´
01:47:18 <myndzi> |
01:47:18 <myndzi> /`\
01:47:18 <myndzi> (_| |_)
01:48:45 <CakeProphet> \o/ \o_ _o_ _o/ \m/ \m/ \m/ \m/ \o_ _o_ _o/ \o/
01:48:45 <myndzi> | | | | `\o/´ `\o/´ | | | |
01:48:45 <myndzi> /| /´\ /< /'\ | | /| /`\ >\ /`\
01:48:45 <myndzi> /'¯|_) /´\
01:48:45 <myndzi> (_| (_| |_)
01:49:58 <CakeProphet> \o/ \o_ _o_ _o/ \m/ \m/ \m/ \m/ \m/ \m/ \o_ _o_ _o/ \o/
01:49:59 <myndzi> | | ¦ | `\o/´ `\o/´ `\o/´ | | | |
01:49:59 <myndzi> >\ |\ ´¸¨ /| | | | /< >\ |\ >\
01:50:00 <myndzi> (_|¯`¯|_) /'\ (_|¯´\
01:50:00 <myndzi> (_| |_) |_)
01:50:02 <CakeProphet> ....NOOOO
01:50:37 <CakeProphet> \o/ \o_ _o_ _o/ \m/ \m/ \m/ \m/ \m/ \m/ \o_ _o_ _o/ \o/
01:50:38 <myndzi> | | | | | | | |
01:50:38 <myndzi> /`\ |\ |\ >\ /'\ |\ /`\ /|
01:50:41 <CakeProphet> oh
01:50:48 <CakeProphet> a shame
01:51:38 <CakeProphet> I wonder how it decides.
02:00:30 -!- GreaseMonkey has joined.
02:02:16 <Gregor> elliott: omg I'm actually working on Fythe ... AND Plof!
02:22:58 <Lymee> \o\ /o/
02:23:03 <Lymee> \o\ /o/
02:23:04 <myndzi> ¦ |
02:23:04 <myndzi> ´¸¨ |\
02:23:27 <Lymee> \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/
02:23:35 <Lymee> :(
02:23:59 <oerjan> a little too wide i suspect
02:33:56 <Patashu> man, that is awesome
02:37:50 <CakeProphet> what the hell my file system became read-only for some reason.
02:40:08 <oerjan> CakeProphet: YOU DO NOT HAVE CLEARANCE TO READ THESE FILES, CITIZEN
02:40:44 <oerjan> > cycle "\o\ /o/ "
02:40:44 <myndzi> ¦ |
02:40:45 <myndzi> ´¸¨ |\
02:40:45 <lambdabot> <no location info>:
02:40:45 <lambdabot> lexical error in string/character literal at chara...
02:40:50 <oerjan> urk
02:40:58 <oerjan> > cycle "\\o\\ /o/ "
02:40:59 <myndzi> | |
02:40:59 <myndzi> /`\ /<
02:40:59 <lambdabot> "\\o\\ /o/ \\o\\ /o/ \\o\\ /o/ \\o\\ /o/ \\o\\ /o/ \\o\\ /o/ \\o\\ /o/ \\o\...
02:41:07 <oerjan> O_o
02:41:13 <oerjan> > text $ cycle "\\o\\ /o/ "
02:41:13 <myndzi> | |
02:41:14 <myndzi> /< >\
02:41:28 <lambdabot> thread killed
02:41:32 <oerjan> dammit
02:41:40 <oerjan> > var $ cycle "\\o\\ /o/ "
02:41:40 <myndzi> | |
02:41:41 <myndzi> /| /<
02:42:10 <oerjan> > "hm"
02:42:19 <oerjan> ic
02:43:23 <Sgeo> :t text
02:43:31 <oerjan> ^ul (\o)(\ /o)(/)**(~:S~:^):^
02:43:31 <fungot> \o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o\ /o/\o ...too much output!
02:43:48 <oerjan> Sgeo: it seems to have died
02:45:08 <oerjan> ^ul ( )S( \o)(\ /o)(/)**:*:*:*S
02:45:08 <fungot> \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/
02:45:40 <oerjan> ^ul ( )S( \o)(\ /o)(/)******::::::*S
02:45:40 <fungot> ...out of stack!
02:45:44 <oerjan> ^ul ( )S( \o)(\ /o)(/)******::::::S
02:45:44 <fungot> ...out of stack!
02:45:50 <oerjan> urk
02:45:55 <oerjan> ^ul ( )S( \o)(\ /o)(/)********::::::S
02:45:56 <fungot> ...out of stack!
02:45:58 -!- lambdabot has quit (Ping timeout: 245 seconds).
02:46:14 <oerjan> ^ul ( )S( \o)(\ /o)(/)**::::::******S
02:46:14 <fungot> \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/
02:46:14 <myndzi> | | | | | | | | | | | | | |
02:46:15 <myndzi> /< >\ /< >\ |\ >\ /'\ |\ |\ /`\ /< >\ /| /<
02:46:24 -!- CakeProphet has quit (Quit: Lost terminal).
02:46:59 <oerjan> ^def celebrate ul ( )S( \o)(\ /o)(/)**::::::******S
02:46:59 <fungot> Defined.
02:47:03 <oerjan> ^celebrate
02:47:03 <fungot> \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/
02:47:04 <myndzi> | | | | | | | | | | | | | |
02:47:04 <myndzi> >\ >\ /< /'\ |\ |\ /< /< /`\ /`\ /| /| /< |\
02:53:14 -!- CakeProphet has joined.
02:53:32 -!- CakeProphet has quit (Client Quit).
02:53:56 -!- CakeProphet has joined.
02:54:03 -!- CakeProphet has quit (Changing host).
02:54:03 -!- CakeProphet has joined.
02:54:30 <oerjan> <CakeProphet> I wonder how it decides. <-- the \m/ \m/ one needs extra space around it, i believe
02:54:30 <myndzi> `\o/´
02:54:31 <myndzi> |
02:54:31 <myndzi> /`\
02:54:31 <myndzi> (_| |_)
02:54:46 <CakeProphet> oerjan: I mean how it decides which stick figure to use
02:54:47 <CakeProphet> it changes.
02:55:03 <oerjan> well yeah that's obviously randomized
02:56:21 <CakeProphet> oerjan: obviously
02:56:25 <CakeProphet> IT COULD BE SOMETHING FANCY YOU NEVER KNOW
02:56:41 <CakeProphet> \m/ \m/
02:56:41 <myndzi> `\o/´
02:56:42 <myndzi> |
02:56:42 <myndzi> /´¯|_)
02:56:42 <myndzi> (_|
02:56:43 <CakeProphet> \m/ \m/
02:56:53 <CakeProphet> ...oh, spam proof I see.
02:57:03 <oerjan> also, slightly buggy...
02:57:14 <CakeProphet> buggy? never.
02:57:16 <CakeProphet> no such thing as bugs.
02:57:20 -!- MDude has changed nick to MSleep.
02:57:42 <CakeProphet> so yeah my parser is awesome.
02:57:47 <oerjan> ah yes i recall it from before, with just one space before the first \ or something like that
02:57:56 <CakeProphet> it ignores all whitespace, has no semicolons, and can still disambiguate lines of code.
02:59:13 <zzo38> CakeProphet: What is it parsing? Some programming language can still do that, some others do not do it.
03:01:31 <Sgeo> All TC programming languages, barring bizzarities, should be able to parse
03:01:33 <Sgeo> Stuff
03:02:07 <CakeProphet> nothing too fancy. commands of the form c(a,b,c...), binary operators, unary !, string literals, integer literals, and variables,
03:02:36 <CakeProphet> control flow is just performed by commands because they only evaluate arguments as needed.
03:03:45 <zzo38> Although, I wrote Constantinople parser, it can also tell the separation of the commands even if you put all words next to each other with no spaces and no line breaks, at least I expect it to do so. Although it is much simpler parsing than things you describe.
03:04:35 <CakeProphet> I haven't really fed it a case I expect to fail, but all of the correct cases separate commands regardless of where whitespace is placed.
03:05:16 <oerjan> well if every command has to end with ) that shouldn't be so hard...
03:05:57 <CakeProphet> yeah basicall every expression ends with or has leaves that terminate. well, I guess all parsers have that. What property allows you to disambiguate lines?
03:06:24 <CakeProphet> I'll try some tricky cases and see if it still parses. I could be wrong.
03:07:08 <oerjan> if A and AB both are legal commands then B cannot start a command, would seem a reasonable restriction.
03:07:43 <CakeProphet> yeah 2 == 2 2 == 2 parses as two lines
03:08:07 <CakeProphet> the grammar can't have postfix operators or it would become ambiguous.
03:08:11 <monqy> what is unary ! or is that a trade secret
03:08:12 <oerjan> oh. but that doesn't ignore whitespace if 22 is a legal number...
03:08:20 <CakeProphet> monqy: guess
03:08:34 <oerjan> or, at least if 222 is
03:08:43 <monqy> CakeProphet: I have no idea
03:08:51 <oerjan> 2==222==2 could parse two ways
03:08:58 <CakeProphet> yeah 2 == 22 == 2 would parse as one line currently
03:09:15 <CakeProphet> whitespace is significant to delineate integers and names
03:09:27 <CakeProphet> monqy: have you programmed in anything that was derived from C?
03:09:27 <oerjan> ok not as weird then
03:10:04 -!- augur has joined.
03:10:21 <CakeProphet> oerjan: ah the unary operator might prove ambiguous
03:10:23 <monqy> CakeProphet: ! doesn't form "command"s in c; it forms expressions???
03:10:25 <oerjan> unary !, to mark an expression as _particularly_ important, clearly
03:11:06 <CakeProphet> monqy: commands are expressions. I just say commands because there's a finite number of them and currently cannot be defined.
03:11:14 <CakeProphet> also operators are expressions, clearly.
03:11:41 <monqy> first class citizens?
03:11:52 <CakeProphet> no.
03:12:00 <CakeProphet> I am not writing Haskell.
03:12:41 <CakeProphet> unary ! does not seem to create any ambiguity.
03:12:43 <monqy> then what do you mean by operators are expressions? application of operators to the correct number of operands is an expression?
03:12:46 <monqy> or something like that?
03:12:55 <CakeProphet> monqy: yes.
03:13:17 <CakeProphet> I speak kind of loosely.
03:13:45 <monqy> perl dork
03:14:49 <CakeProphet> though they could be sort of first-class citizens due to the lazy evaluation.
03:15:00 <CakeProphet> I could easily write a map command... if I had a list data type.
03:15:49 <CakeProphet> essentially the built-in commands are like macros in that they choose how and when to evaluate their operands.
03:16:20 <CakeProphet> more like Perl operators (map,grep,split,etc) than lisp macros I guess.
03:16:46 <zzo38> Yes, numbers like that can cause problem of parsing with ignoring spaces.
03:19:18 <CakeProphet> yes integer and name literals can't contain spaces, this is pretty standard I think "whitespace insignificant" languages.
03:19:33 <CakeProphet> s/I think/$& in/
03:19:52 <monqy> CakeProphet: so how do you deal with side effects and friends
03:20:38 <CakeProphet> by performing side effects.
03:20:42 <CakeProphet> I am not writing Haskell.
03:20:53 <oerjan> *gasp*
03:21:32 <monqy> CakeProphet: but when? don't you have unpredictable evaluation order and all
03:21:48 <CakeProphet> not really unpredictable just specific to each command.
03:21:53 <CakeProphet> most commands evaluate all of their arguments.
03:22:04 <monqy> CakeProphet: and what about using the commands that aren't supposed to be used as expressions as expressions
03:22:09 <monqy> CakeProphet: what happens then
03:22:49 <CakeProphet> everything returns something it's just not always useful.
03:23:19 <monqy> do any of them do weird things that would mess things up
03:23:23 <CakeProphet> no.
03:23:32 <CakeProphet> everything is pretty consistent and easily expected.
03:23:37 <CakeProphet> it's a very simple language.
03:23:52 <oerjan> it sounds just like call-by-name
03:24:09 <monqy> oerjan: evaluation order depends on the function, I hear
03:24:17 <oerjan> yes, which is call-by-name.
03:24:25 <CakeProphet> typical case is left-to-right
03:24:50 <monqy> what's "left to right"
03:24:59 <CakeProphet> .......
03:25:01 <CakeProphet> seriously?
03:25:01 <monqy> there are lots of things you can do that go left to right
03:25:12 <CakeProphet> you have a function f(a,b,c)
03:25:23 <CakeProphet> left-to-right means that before f is evaluated a is evaluated, followed by b, followed by c
03:25:29 <CakeProphet> and then the result of f(a,b,c) is returned
03:26:11 <monqy> do you know what I meant by evaluation order
03:26:18 <CakeProphet> yes.
03:26:29 <monqy> what did I mean by evaluation order
03:27:09 <CakeProphet> uh, the order in which expressions are evaluated?
03:28:05 <monqy> (i meant that thing which I guess is actually more commonly called evaluation strategy)
03:28:12 <CakeProphet> currently there is only one scope, so basically dynamic and lexical scoping are equivalent.
03:28:57 <CakeProphet> the evaluation strategy is based on the function, but usually is call-by-value but can be call-by-name
03:29:02 <CakeProphet> for example with variable assignment
03:29:55 <CakeProphet> so yeah, call by name
03:30:09 <CakeProphet> sort of.
03:30:30 <CakeProphet> I get the expression text, and then I choose when to evaluate them. So it's really call by value
03:30:42 <CakeProphet> there is no textual substition going on because all of the commands are written in the implementation language.
03:30:45 <CakeProphet> currently.
03:31:15 <CakeProphet> call by need.
03:31:18 <CakeProphet> is the term.
03:32:05 <zzo38> Maybe one way to make restrictive classes in Haskell could be if you added a universal class that all types belong to, and then be able to generalize existing class with a command such as: class RestrictMonad (UniversalClass :: [*]) <- Monad;
03:32:27 <CakeProphet> that sounds so awesome.
03:32:33 <CakeProphet> >_>
03:32:40 <CakeProphet> it'll be like python were I have to write
03:32:45 <CakeProphet> class MyClass(object):
03:32:47 <CakeProphet> except wordier.
03:32:50 <CakeProphet> *where
03:35:01 <CakeProphet> I guess I'll want to do continuations if/when I get around to user-defined functions.
03:35:06 <CakeProphet> and lexical scoping.
03:42:36 <CakeProphet> but user-defined commands would not be call-by-need
03:45:37 <zid> all my functions are call-by-nerd
03:49:54 <monqy> ok
04:30:51 <Patashu> call-by-middle-name
04:30:55 <Patashu> that's when you know you're serious
04:35:16 -!- Nisstyre has joined.
04:36:04 -!- tiffany has joined.
04:36:15 <tiffany> :o
04:36:46 <CakeProphet> hey.
04:36:57 <tiffany> Hai
04:37:57 <CakeProphet> Looks like you're new here, perhaps
04:38:21 <tiffany> Mhm~
04:46:57 -!- augur has quit (Remote host closed the connection).
04:47:11 <monqy> hi
04:48:17 <oklopol> hi bye
04:48:20 <monqy> bye
04:51:19 -!- lambdabot has joined.
04:53:36 <CakeProphet> why is xpath so difficult to get right
04:57:19 <zid> it is?
05:00:40 -!- Gregor has quit (Excess Flood).
05:00:51 -!- Gregor has joined.
05:03:50 <CakeProphet> yes...
05:04:02 <CakeProphet> I am trying to search all of Wikipedia's text for the word was
05:04:04 <CakeProphet> but apparently
05:04:21 <CakeProphet> *[text()[contains(., "was")]] is not how you do that
05:05:08 <zid> that doesn't look like xpath to me
05:05:14 <CakeProphet> ???
05:05:14 <zid> maybe I don't know much xpath
05:05:21 <CakeProphet> it is definitely xpath
05:05:34 <Patashu> wikipedia uses xpath?
05:05:39 <CakeProphet> ....no
05:05:42 <zid> can't you just grab all innerHTML and strstr it for was? :)
05:06:02 <CakeProphet> I'd rather not resort to javascript.
05:06:07 <monqy> why do you even need was
05:06:14 <CakeProphet> it's a test case.
05:06:24 <zid> strstr is a C function
05:06:41 <CakeProphet> oh, well, hmmm...
05:06:56 <CakeProphet> no I'm searching specifically for text
05:07:04 <CakeProphet> not any arbitrary was anywhere in the html
05:07:21 <zid> innerHTML is plaintext if you do it recursively ;)
05:07:36 <CakeProphet> wat
05:07:43 <zid> <b>hello</b> b.innerHTML = "hello";
05:07:59 <monqy> whats b
05:08:03 <CakeProphet> bold
05:08:06 <monqy> no I mean
05:08:08 <monqy> the other b
05:08:10 <CakeProphet> that is really terrible when I could just use xpath to do that.
05:08:32 <zid> you can use XPath to do the 'give me an array of all bits of text' though
05:09:37 -!- oerjan has quit (Quit: Lost terminal).
05:09:56 <CakeProphet> oh, yes I can.
05:10:05 <CakeProphet> but really wht is contains not working...
05:10:32 <CakeProphet> maybe this isn't a full implementation of xpath or something
05:11:07 <monqy> maybe you messed it up
05:11:19 <CakeProphet> nope.
05:11:19 <monqy> try a better implementation and compare results?
05:11:56 -!- oerjan has joined.
05:12:29 <CakeProphet> nope doesn't work in this one either\
05:12:56 <monqy> maybe you messed it up
05:13:05 <Patashu> http://www.w3schools.com/xpath/xpath_examples.asp
05:13:09 <Patashu> I'm trying to use this to test
05:13:15 <Patashu> But I can't find any examples of a string based test
05:13:23 <Patashu> Only array selection and numeric conditionals
05:13:34 <CakeProphet> http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm
05:13:49 <CakeProphet> I think something is just broken because according to the semantics it should work.
05:13:52 <zid> man, ais shoved my bot down the hill to the bottom
05:14:49 <Patashu> are you sure it's contains and not fn:contains or something?
05:14:49 <CakeProphet> oh wait maybe the arguments need to be flipped
05:15:21 <CakeProphet> no it's just straight up contains
05:15:28 <CakeProphet> fn:contains is... XML right?
05:15:30 <CakeProphet> this is not xml.
05:16:26 <CakeProphet> http://www.w3.org/TR/xpath/#section-String-Functions
05:16:40 <Patashu> ah, you don't need the fn: apparently
05:16:48 <Patashu> this works ok: /bookstore/book[not(price>35)]/price
05:16:58 <CakeProphet> .......cool? :P
05:17:07 <Patashu> I'm just testing things out
05:17:15 <Patashu> since I don't know much about xpath
05:17:41 <CakeProphet> in any case
05:17:56 <CakeProphet> I can just do *[text()] to grab all text nodes, join them together, and search.
05:18:09 <CakeProphet> outside xpath
05:20:31 <Patashu> path="/bookstore/book[contains(title, 'E')]/title";
05:20:33 <Patashu> Everyday Italian
05:20:59 <CakeProphet> try it with text() though
05:22:15 <Patashu> hmmm
05:23:08 <Patashu> do you know of a test bed with raw text nodes in the xml?
05:23:13 <Patashu> both x3c's and whitebeam's don't seem to
05:23:16 <CakeProphet> yes I linked one.
05:25:12 <Patashu> Maybe I don't understand what a text node is
05:25:14 <Patashu> I'm going to read
05:26:00 <CakeProphet> <a href="http://www.google.com/">WOW GOOGLE</a>
05:26:29 <CakeProphet> WOW GOOGLE is the text node
05:27:55 <Patashu> Oh, okay
05:28:21 <Patashu> /bookstore/book[contains(title, 'E')]/title/text() and then document.write(nodes[i].nodeValue); seems to work fine
05:28:38 <CakeProphet> right that is basically what I am going to do.
05:28:48 <CakeProphet> but I don't understand why contains doesn't work with text()
05:28:56 <Patashu> I don't think that's how you're meant to use it
05:29:00 <Patashu> because it's grabbing text() anyway
05:29:03 <Patashu> you're probably being redundant
05:29:06 <CakeProphet> wat
05:29:20 <Patashu> if you do contains(node, string) then it grabs node's text() to do the test
05:29:21 <Patashu> is what I mean
05:29:56 <CakeProphet> oh hey it does
05:30:02 <Patashu> *[contains(., 'was')]/text() might work?
05:30:07 <Patashu> if I understand xpath right
05:30:16 <CakeProphet> yes that's what I want
05:30:21 <Patashu> awesome :D
05:30:41 <CakeProphet> minus the /text()
05:30:45 <CakeProphet> I don't actually need the text
05:31:17 <CakeProphet> TKS LA
05:31:37 <Patashu> http://www.tks.la/
05:31:50 <CakeProphet> ....
05:33:49 <monqy> tks la
05:35:29 <CakeProphet> interesting, that is a funny site.
05:35:50 <Patashu> turnkey inside
05:37:04 <CakeProphet> *[contains(., 'asdasgagasf') or contains(. , 'was')]
05:37:05 <CakeProphet> weeeeee
05:37:27 <CakeProphet> I actually like xpath. Mainly because it allows me to avoid javascript for these kinds of things.
05:38:19 <oerjan> wtf .la is used for los angeles
05:38:43 <CakeProphet> US = first-class citizen of the internet
05:38:47 <CakeProphet> back off.
05:38:56 <monqy> ca is totally for california
05:38:58 <monqy> canadians go home
05:39:09 <oerjan> CakeProphet: it theoretically belongs to laos
05:39:28 <CakeProphet> .ca.us I believe would actually be california
05:39:35 <CakeProphet> but that's okay because .com BELONGS TO AMERICA
05:39:49 <CakeProphet> yeaaaaaah
05:40:23 * tiffany has a .info
05:40:31 <monqy> (thumbs up)
05:40:34 <tiffany> Because $3/year
05:40:44 * CakeProphet needs a website at some point
05:40:49 <CakeProphet> when I actually have things to put on it
05:41:11 <tiffany> I have nothing to put on mime so i host things
05:41:36 <CakeProphet> it's important for freelancers because it gives you a professional image. well, if you have a professional looking website.
05:42:11 <tiffany> I made my site specifically to look 90s-ish
05:42:25 <CakeProphet> did you include obnoxious music that you can't turn off?
05:42:41 <tiffany> I thought that was 2003 myspace
05:42:51 <CakeProphet> no that was going on for a long time.
05:43:08 <monqy> <marquee><blink><b><i><u><s>
05:43:15 <tiffany> Well... before people cared about divs and css and stuff
05:43:15 <Patashu> <pre>
05:43:38 <tiffany> I want my <pre width="80"> back
05:47:17 <CakeProphet> !wacro
05:47:20 <EgoBot> PBEFTPMH
05:47:25 <CakeProphet> monqy: nope
05:47:28 <CakeProphet> !wacro 3 5
05:47:29 <EgoBot> LCAM
05:47:31 <CakeProphet> !wacro 3 5
05:47:32 <EgoBot> MFMNV
05:47:44 <monqy> CakeProphet: pbeftpmh, my reaction to seeing PBEFTPMH
05:47:47 <CakeProphet> bleh. I really need to get some free time to rewrite this.
05:47:47 <oerjan> wacky wacky wacros
05:50:31 <Patashu> wacky waving inflatable wacros
05:52:31 <CakeProphet> the w is for weighted... by the way
05:52:39 <CakeProphet> though it does give the program an amusing name. :P
05:53:01 <oerjan> IF YOU SAY SO
05:53:26 <CakeProphet> !show wacro
05:53:26 <EgoBot> perl (sending via DCC)
06:01:17 <CakeProphet> I wish what I were coding right now were in Perl...
06:12:22 -!- GreaseMonkey has quit (Quit: The Other Game).
06:36:55 <CakeProphet> hey so what's the best way to maintain a backup on an external?
06:37:48 <CakeProphet> it would be some good sysadmin practice to figure out how to automate that stuff. Not to mention safe.
06:39:19 <zid> rsync on a cron with en email if it fails? :)
06:39:51 <CakeProphet> ...time to consult man
06:41:16 <CakeProphet> why would I want the email?
06:41:24 <CakeProphet> also this is a laptop so my external is not always going to be present.
06:45:40 <CakeProphet> rsync is a neat little program.
06:47:11 <CakeProphet> is there any way you could get it to run immediately when the external is mounted?
06:47:55 <monqy> educated guess: yes
06:48:44 <monqy> or at least something like that
06:49:28 <CakeProphet> I guess I'll have to look around on the internet.
07:00:03 -!- Sgeo_ has joined.
07:02:43 -!- augur has joined.
07:03:27 -!- Sgeo has quit (Read error: Connection reset by peer).
07:03:28 -!- yorick has quit (Remote host closed the connection).
07:03:37 -!- yorick has joined.
07:10:20 <CakeProphet> okay so the file that I pass to crontab is a crontab table right?
07:15:38 <tiffany> I once used cron to make daily minecraft backups
07:15:55 <tiffany> That is the only thing i ever used it for
07:15:56 <CakeProphet> oh look I can just put my script in /etc/cron.daily
07:16:14 <CakeProphet> actually I could do hourly since I don't know when exactly I'll have my external connected.
07:17:04 <CakeProphet> what? no cron.minutely? :P
07:17:40 <tiffany> cron.attosecondly
07:17:42 <CakeProphet> um, okay so who is the user for a cron script?
07:18:00 <CakeProphet> I was thinking if I use $HOME I could just generically write a backup script instead of explicitly using my home directory
07:19:58 <CakeProphet> eh, whatever.
07:20:14 <tiffany> You could throw a generic backup-first-arg script into /usr/local/bin and then run it from cron
07:20:21 <tiffany> With proper argument
07:21:45 <CakeProphet> eh I can rewrite it if I ever need to.
07:22:40 -!- oerjan has quit (Quit: Good night).
07:25:06 <CakeProphet> I wonder if it would be feasible to backup all of /
07:25:24 <CakeProphet> ...excluding the backup drive itself.
07:25:33 -!- aloril has quit (Read error: Operation timed out).
07:26:53 <tiffany> My os is 8gb and i have lots of stuff installed
07:27:03 <tiffany> My entire vps is 2.5
07:28:16 <CakeProphet> help rotating logs in bash help
07:28:33 <monqy> no
07:28:36 * CakeProphet is leveling his sysadmin skill.
07:28:58 <CakeProphet> logrotate. found it
07:29:04 * CakeProphet used this thing called google.
07:29:18 <monqy> wow
07:29:47 * tiffany uses this thing called duckduckgo because google censors results
07:31:10 <CakeProphet> http://www.google.com/#sclient=psy&hl=en&source=hp&q=furry+strapon+girls
07:31:17 <CakeProphet> I'm not sure what you mean by censor
07:31:25 <CakeProphet> (props to Gregor)
07:32:04 <tiffany> They decided to block us-dcma violating sites on all of the googles
07:32:31 <CakeProphet> ew
07:32:35 <CakeProphet> but I like piracy.
07:32:39 <tiffany> Plus google sorts results based on demographics instead of having a disambiguation
07:34:10 <CakeProphet> hits for "furry strapon girls" on duckduckgo: 4
07:34:21 <tiffany> :I
07:34:39 * Lymee hugs tiffany ^^
07:34:49 * tiffany hugs lymee ^_^
07:34:54 <Lymee> Hi.
07:35:03 <tiffany> Hai~
07:35:15 <CakeProphet> \m/ \m/
07:35:16 <myndzi> `\o/´
07:35:16 <myndzi> |
07:35:16 <myndzi> /'\
07:35:16 <myndzi> (_| |_)
07:35:43 <tiffany> This client uses a font without most of those characfers
07:36:01 <tiffany> Cannot change because android irc clients
07:36:16 <tiffany> :d
07:36:31 <monqy> most of what characters
07:36:54 <monqy> perhaps it's variable-width?
07:36:58 <tiffany> myndzis 4 lines of text
07:37:00 <monqy> that could make it look broken
07:37:08 <tiffany> Theyre blocks
07:37:14 <monqy> oh I guess a few of them are a bit weird
07:37:19 <monqy> I didn't notice them before
07:38:12 <monqy> I'd save ´ for later use if it wasn't dumb and too much trouble
07:38:45 <CakeProphet> weeee backup
07:39:34 <monqy> my uses for ´: :´( and ``this´´ looks better than :'( and ``this'' respectively
07:40:27 <CakeProphet> it took a while to parse that sentence..
07:40:36 -!- aloril has joined.
07:40:41 <tiffany> Mm
07:41:01 <CakeProphet> yeah because ``this´´ is so much better than "this"
07:41:37 <monqy> always
07:42:00 -!- nguyenchinh07 has joined.
07:42:47 -!- nguyenchinh07 has left ("Leaving.").
07:43:44 <monqy> good bye
07:50:58 -!- augur has quit (Remote host closed the connection).
07:56:23 -!- aloril has quit (Ping timeout: 245 seconds).
08:01:19 <shachaf> Hmm. \m/ \m/
08:01:20 <myndzi> `\o/´
08:01:20 <myndzi> |
08:01:20 <myndzi> (_|¯'¯|_)
08:01:35 <shachaf> Well, that looks like fun.
08:08:28 -!- aloril has joined.
08:25:46 -!- nooga has joined.
08:32:58 <CakeProphet> wow I just realized
08:33:08 <CakeProphet> I have transitioned to using sh a lot for everything in the past year or so.
08:42:04 <zzo38> I have a program that claims to be a PlayStation emulator for GameBoy, although it just starts loading for a few seconds and then displays an unknown opcode error.
08:43:36 <shachaf> CakeProphet: That happened to me too.
08:43:42 <shachaf> I used to use programs like ls, but nowadays I just echo *.
08:43:51 <shachaf> Eventually I'll need nothing but a shell.
08:44:16 <CakeProphet> why would you echo *? takes longer to type and isn't as well formatted.
08:44:27 <shachaf> Well, I just don't like spawning processes.
08:44:38 <CakeProphet> weirdo
08:44:52 <zzo38> Then use a shell with ls build in
08:45:19 * shachaf was not being completely serious.
08:46:34 <CakeProphet> wow rsync transfers at a fairly slow rate.
08:46:43 <CakeProphet> I assume this is to prevent system slowdown.
08:47:29 <monqy> what sort of hard drive is this hard drive
08:47:49 <CakeProphet> I'm backing up my laptop hard drive to my external. I don't know any of the specs.
08:48:02 <CakeProphet> but I am using my disk usage monitor to judge these things. which is a percentage.
08:48:06 <monqy> if it's solid-state, being slow is to be expected
08:48:24 <CakeProphet> 04:48 < CakeProphet> but I am using my disk usage monitor to judge these things. which is a percentage.
08:48:37 <monqy> what is that
08:48:47 <monqy> oh
08:48:49 <monqy> i see
08:48:53 <CakeProphet> monqy: I have a meter on my top panel that shows percentage of disk usage.
08:48:56 <CakeProphet> as a little graph.
08:49:15 <CakeProphet> it is quite nice I recommend one.
08:49:31 <monqy> peculiar
08:49:45 <CakeProphet> there's a graph for CPU usage, memory, network, and disk.
08:50:52 <CakeProphet> so rsync has a pretty steady read speed of about 30% but then there sudden 70% usage spikes when writing.
08:51:01 <CakeProphet> I have no idea how this percent is calculated.
09:02:29 <zzo38> I have an implementation of a very old display hack. The current state is a 36-bit word. It involves a simple calculation but you get many different patterns depending on the initial state.
09:05:54 <zzo38> Have you ever done any display hacks?
09:06:58 -!- ais523 has joined.
09:08:41 -!- Taneb has joined.
09:09:00 <Taneb> Hello!
09:09:34 <zzo38> Have you done any display hacks?
09:09:53 <Taneb> Me?
09:10:00 <zzo38> Yes, including you.
09:10:55 <Taneb> No, never
09:13:24 <zzo38> I wrote a Huffman making program in Haskell. It is written in a different way than it would be written in other programming language, but it works. Tell me if you have suggestion things I could add.
09:14:52 <zzo38> To me it seems many functions with similar name and similar purpose are in Data.List, Data.Map, Data.Set, etc, they should be made a class.
09:15:37 <monqy> some of them already are
09:15:59 <monqy> foldable, traversable
09:17:03 <zzo38> But some of them are not. Possibly due to some limitations in the class system of Haskell.
09:18:55 <monqy> which would be due to these limitations
09:19:06 <monqy> (and which limitations)
09:19:20 <zzo38> I have read that you can specify constraints on type parameters but they don't work. If they did work, you might be able to use it for this purpose.
09:19:47 <monqy> hm?
09:19:56 <zzo38> monqy: Same kind of limitation preventing you from making the Set monad because not all types are possible.
09:20:01 -!- ais523 has quit (Remote host closed the connection).
09:21:18 -!- ais523 has joined.
09:21:31 <zzo38> Although even if you fixed that, Set itself should be instance of Ord so that the "join" operation works.
09:22:03 <zzo38> And it does not seem entirely clear how to do that.
09:22:40 <zzo38> If you made a SlowSet that is unordered and only requires instance of Eq, then it can be done more easily and works even for unorderable elements, but is slow.
09:22:41 <Taneb> ...What's a Huffman?
09:23:15 <zzo38> Taneb: Huffman coding. Look up "Huffman coding" in Wikipedia, it explain in there.
09:23:26 <Taneb> Okay
09:23:52 <monqy> zzo38: on sets being instances of ord, there's already Ord a => Ord (Set a)
09:24:39 <zzo38> monqy: OK, then that works. However the class system still needs to be fixed to allow it to work.
09:25:03 <Taneb> Interesting...
09:28:37 <zzo38> It is simple: return = singleton; fail = const empty; fmap = map; join = fold union empty;
09:29:30 <zzo38> (Of course "fail" is just a convenience and you do not need it to make a monad; but it is sometimes useful.)
09:29:51 <monqy> fail shouldn't be in Monad; it should be somewhere else
09:30:15 <monqy> I usually want mzero over fail anyway
09:30:34 <Sgeo_> monqy, are there monads for which fail is nonsensical?
09:30:34 <monqy> or mempty. or empty
09:31:05 <Sgeo_> And what would you do in that case?
09:31:08 <Sgeo_> fail = undefined
09:31:08 <Sgeo_> ?
09:31:16 <zzo38> But the default definition of fail is an error anyways, so you do not need to define it.
09:31:21 <zzo38> That is: fail = error
09:31:25 <monqy> fail isn't in the mathematical definition of a monad, for starters :)
09:31:53 <Sgeo_> zzo38, O
09:33:13 <zzo38> Yes, it is true; you do not need fail to make a monad. It is there for use with do-notation, I think. And in a few cases it becomes useful.
09:34:04 <monqy> whenever it's useful for me it tends just to be const mzero
09:35:01 <zzo38> But join should really be part of the Monad class, and it should have default superclass instances too, and the capability to define the members of the superclass in that instance declaration. So that whichever way you choose to define the monad, it will define it in the other way too.
09:35:47 <zzo38> Some monads make more sense to define in terms of return/bind and some make more sense to define in terms of unit/join/fmap instead.
09:37:07 <zzo38> monqy: Yes; probably in Set, mzero would be empty, anyways, I guess. Is it?
09:37:22 <monqy> yes
09:37:30 <zzo38> OK
09:37:44 <monqy> while you're tidying up, please merge MonadPlus and Alternative into Monoid
09:39:14 <monqy> another thing that would be sort of nice: breaking typeclasses up into smaller bits
09:39:43 <monqy> so unit (pure from Appliactive, return from Monad, a bunch of other things everywhere) would get its own typeclass, for example
09:39:47 <CakeProphet> (MonadBind m, MonadReturn m) => ...
09:40:00 <monqy> what
09:40:17 <CakeProphet> nevermind. :P
09:45:15 -!- monqy has quit (Quit: hello).
09:49:44 -!- ralc has quit (Read error: Operation timed out).
09:55:52 <Taneb> I love being asexual and messing with surveys
09:56:50 <ais523> Taneb: do you mean "non-gender-specific" or "no sexual orientation"?
09:57:08 <Taneb> The latter
09:57:39 <Taneb> The former, to my understanding, is bisexual
09:59:07 <zzo38> I don't think it makes much sense to *define* the list monad in terms of (>>=) although it is still a useful operation on the list monad.
09:59:43 <ais523> Taneb: oh, by the former I meant "not having a gender"
09:59:52 <ais523> as in, people you can't use a gendered pronoun on sensibly
10:00:11 <Taneb> I'm definitely male
10:00:14 <ais523> I also wasn't sure if you were being honest; messing with surveys is often done via lying
10:00:33 <Taneb> No, I just say "other"
10:00:46 <Taneb> Nobody expects an other to that question
10:01:16 <zzo38> In fact, when I wrote Huffman encoder, it flips the tree when encoding (the tree at first is used only for decoding), I can use the >>= on list monad to make a short encoding function implementation: encode :: Ord t => Tree t -> [t] -> [Bool]; encode x = (>>= flip (findWithDefault []) (flipTree x));
10:01:59 <Taneb> Of course, I have no idea how to tell my parents I don't read porn
10:02:00 <zzo38> Taneb: Which surveys are they?
10:02:25 <Taneb> Ones made by the British Youth Council
10:03:01 <Taneb> I tried to tell my parents I don't read (or watch) porn, and they just thought I was denying the truth
10:03:47 <Taneb> BYe
10:03:49 <zid> porn is readable!?
10:03:50 -!- Taneb has quit (Quit: Page closed).
10:04:13 <ais523> zid: before video porn was invented, people used to read novels and magazines about it instead
10:04:38 <zid> sounds strange
10:04:42 <zid> when was this, 1400?
10:05:03 <zzo38> I suppose in case of genetics it is not always XX or XY, although these two are the most common
10:05:06 <ais523> haha, not quite that long ago
10:05:09 <ais523> but still quite a while ago
10:05:22 <zid> well in the 1800s they had naughty pictures
10:05:39 <ais523> even before video streaming over the Internet became common, I imagine they used VHS videos or whatever
10:05:42 <ais523> and before that they had flick-books
10:06:01 <zid> you're forgetting about rotoscopes
10:06:08 <zid> there are coin operated ones at the pier
10:06:29 <ais523> I was including rotoscopes in that
10:06:43 -!- ralc has joined.
10:06:53 <zid> if you say so :P
10:07:33 <ais523> just forgot what they were called
10:08:23 <zzo38> I don't know, whether my definition of the "encode" function in that program is sensible to you or if you think it is wrong or worse.
10:09:15 <zid> does it codify? :)
10:09:33 <zzo38> ?
10:09:49 <zid> does the encode button, perform a codifying operation
10:09:59 <zzo38> It does work, if that is what you ask.
10:10:46 <zzo38> There is no encode button; it is just a function in a Haskell program that requires a Huffman tree and list to encode as input, and make output encoded in Huffman codes.
10:11:04 <zid> sounds good to me
10:11:16 <zzo38> Did you read the program?
10:11:25 -!- Phantom_Hoover has joined.
10:11:35 <zid> of course not
10:12:00 <zzo38> What I mean is, if it seems a sensible way to program it.
10:16:20 -!- FireFly has joined.
10:28:42 -!- zzo38 has quit (Remote host closed the connection).
10:34:04 <ais523> hey, git experts here, what's the command to see old versions of a particular file (including one that's no longer in the repo because it was deleted)?
10:36:46 -!- azaq23 has joined.
10:38:06 <zid> checkout
10:41:43 <olsner> ais523: start doing git log with a path to see the commits it had
10:42:06 <olsner> then you can show the particular versions of the file with git show revision:path
10:42:09 <ais523> I found an option in gitk to do that, which is the wimp's way out when you don't know what a command is
10:42:19 <ais523> thanks for the advice on how to do it properly, though
10:42:20 <zid> or you can just check it out
10:42:30 <Patashu> Is PHP whitespace insensitive? e.g. can I break a statement up into multiple lines like in C?
10:42:45 <zid> yea
10:42:54 <zid> it lets you end ?> in the middle of constructs and all sorts
10:43:41 <Patashu> ok
10:46:48 <CakeProphet> Patashu: even most whitespace sensitive languages let you break up statements across lines.
10:48:04 <zid> except Whitespace ;)
10:48:50 -!- cchackermirc has joined.
11:05:24 -!- sllide has joined.
11:19:25 -!- TeruFSX2 has quit (Ping timeout: 268 seconds).
11:24:20 <ais523> zid: ?> ... <? is basically PHP's print statement
11:24:46 <ais523> CakeProphet: they typically have some sort of marker that that's what you're doing, though
11:24:49 <ais523> like _ in Visual Basic
11:30:05 <CakeProphet> yes, \ in Python, but Python also can do it automatically on an unbalanced (
11:30:25 <CakeProphet> which is the most common case.
11:30:55 <ais523> C isn't typically whitespace-sensitive, but nonetheless lets you continue lines with \
11:31:16 <CakeProphet> really any sensible whitespace terminating language should do the implicit line continue on unbalanced parenthesis
11:32:00 <zid> this is why ; is used in a lot of places
11:32:04 <zid> so that you can do linebreaks in things
11:32:18 <zid> the only place it matters in C is for the pre-processor and strings afaik?
11:32:20 <CakeProphet> yes I understand the idea.
11:32:58 <CakeProphet> I remember having trouble with the semicolon, since my first language was Python. But since it's become like breathing.
11:33:35 <ais523> zid: you can use backslash-newline to line-break inside keywords in C
11:33:42 <ais523> nobody seems to think this is a good idea
11:33:46 <zid> yes, I said mattered, not impossible :)
11:33:58 <ais523> strings, you can break using " whitespace "
11:34:00 <CakeProphet> w\
11:34:01 <CakeProphet> h\
11:34:03 <CakeProphet> i\
11:34:03 <ais523> rather than backslash-newline
11:34:05 <CakeProphet> l\
11:34:06 <CakeProphet> e\
11:34:13 -!- oklopol has quit (Ping timeout: 268 seconds).
11:34:14 <CakeProphet> vertical program.
11:34:17 <ais523> e.g. "Hello, "
11:34:20 <ais523> "world!\n"
11:34:33 <zid> ais523: isn't that techincally a gnu extension?
11:34:36 <ais523> no, it isn't
11:34:38 <ais523> it's C89
11:34:41 <zid> orly
11:34:50 <zid> I swear you couldn't do "blah" meow "blah" in straight C
11:35:02 <ais523> you can't put a meow in between
11:35:06 <zid> ah, okay
11:35:07 <CakeProphet> I don't believe--- yes
11:35:09 <zid> you can in gnu
11:35:10 <ais523> unless it's a preprocessor substitution of a string
11:35:10 <CakeProphet> what ais523 said
11:35:29 <ais523> #define SURROUND_BY_BLAH(meow) "blah" meow "blah"
11:35:31 <ais523> is legal
11:35:37 <ais523> but only if you give it a string constant as argument
11:35:45 <CakeProphet> every day I'm surrounded by blah.
11:36:00 <ais523> (or something else that happens to form a legal line of C, as the preprocessor doesn't check for well-formedness)
11:36:39 <CakeProphet> s/form a legal line/form legal lines/
11:37:02 <ais523> CakeProphet: whitespace is replaced by single spaces before #define substitution, IIRC
11:37:06 <ais523> so it's going to form just the one line
11:37:17 <CakeProphet> right I meant logical line as in statement
11:37:19 <CakeProphet> I guess.
11:37:23 <CakeProphet> I think of these as lines.
11:37:30 <zid> there's unit tests for that for various compilers, whether they replace with a space or not
11:37:38 <zid> A lot fail O_o
11:37:42 <ais523> hmm, what happens if you stringise an arg containing a literal newline?
11:37:43 <ais523> as in
11:37:48 <olsner> CakeProphet: you should think of statements as statements :)
11:37:56 <ais523> #define SURROUND_BY_BLAH_STRINGISING(meow) "blah" #meow "blah"
11:38:04 <ais523> SURROUND_BY_BLAH_STRINGISING(hello
11:38:06 <ais523> world)
11:38:09 <CakeProphet> olsner: I have this amazing mechanism in my brain that allows me to think of statements as statements AND lines.
11:38:15 <CakeProphet> isn't that cool?
11:38:56 <CakeProphet> see
11:39:14 <CakeProphet> logical line vs. physical line
11:40:09 <CakeProphet> but feel free to demand other normative assertions from me.
11:40:12 <CakeProphet> I am going to sleep.
11:52:11 <fizzie> ais523: 6.10.3.2p2: "Each occurrence of white space between the [# operator's] argument's perprocessing tokens becomes a single space character in the character string literal [that is generated as the result]."
11:52:29 <ais523> fizzie: good to know
11:52:39 <fizzie> s/per/pre/
11:52:40 <ais523> and well done for actually looking it up
11:54:09 <fizzie> I had to, since I was quite uncertain; because newlines are retained in the "convert to preprocessing tokens" translation stage (unlike comments, which get replaced by one space; and sequences of non-newline whitespace, which may implementation-definedly get replaced by a single space too), so it could've included them in the stringized result too.
12:00:17 -!- Taneb has joined.
12:00:42 <Taneb> Hello
12:01:14 <Taneb> I just saw an advert saying "Let AOL speed up your computer!"
12:05:44 -!- ais523 has quit (Remote host closed the connection).
12:13:00 -!- sllide has quit (Read error: Connection reset by peer).
12:28:52 -!- MSleep has changed nick to MDude.
12:32:48 <Taneb> Caught up on all the comics I read
12:32:59 <Taneb> As far as I am aware
12:33:09 <Taneb> This computer won't let me log in to google reader
12:42:08 -!- variable has quit (Remote host closed the connection).
12:42:42 -!- variable has joined.
13:20:54 <nooga> harm
13:56:39 -!- Phantom_Hoover has quit (Remote host closed the connection).
13:58:05 -!- Phantom_Hoover has joined.
14:18:44 -!- ais523 has joined.
14:23:17 -!- TeruFSX2 has joined.
14:24:27 -!- azaq23 has quit (Quit: Leaving.).
14:44:33 -!- Taneb has quit (Read error: Connection reset by peer).
14:45:05 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:54:34 -!- Taneb has joined.
14:57:31 <Taneb> An esoteric programming language where the output is an image...
14:57:55 <tiffany> fun :o
14:58:04 <Taneb> Possibly data is stored in the output image
14:58:24 <Taneb> So, essentially, you can watch the program working
14:59:39 <zid> Taneb: My computer already works like that
14:59:47 <Taneb> :P
14:59:49 <zid> the input is a 400GB 1Bbp BMP
14:59:54 <zid> the output is 4GB of the same
15:01:00 <Taneb> The program works by creating pens
15:01:10 <Taneb> That have their own little program
15:01:13 <tiffany> .-.
15:01:21 <Taneb> Which may or may not create additional pens
15:01:28 <zid> so, shaders?
15:01:48 <Taneb> Possibly
15:01:54 <tiffany> I tried rendering a 16gb mandelbrot render with 1000 iterations once
15:02:01 <tiffany> it was written in lua
15:02:19 <tiffany> I gave up after 3 days (got halfway) when I realised that if I did it in C++ it'd be done in like 3 hours
15:02:23 <tiffany> :I
15:04:11 <Taneb> Each pen has three colours and an alpha value, a location, a down-ness boolean, and its script
15:09:13 <Taneb> Remove the down-ness boolean
15:09:27 <Taneb> And the three colours and the alpha value
15:09:42 <Taneb> They are a command and some operands to it, respectively
15:12:14 <Taneb> Who's nothing like Piet Mondrian but still a painter?
15:22:19 <Taneb> Okay, naming this program Van Doesburg
15:22:28 <Taneb> It is designed to complement Piet
15:28:47 -!- azaq23 has joined.
15:38:15 <Taneb> I think I'm going into too much detail
15:38:35 <Taneb> "The pen name must begin with lower case letter in the English variant of the Latin alphabet, without diacritics."
15:49:32 -!- KingOfKarlsruhe has joined.
15:49:50 <Taneb> Oerjan showed that three-cell brainfuck is Turing-complete, right?
15:50:23 <tiffany> what... isn't.. turing complete?
15:50:30 <Taneb> HQ9+
15:50:36 <Taneb> Befunge-93
15:50:46 <Taneb> Finite-length tape boolfuck
15:50:48 <Taneb> deadfish
15:51:19 <Taneb> BIT
15:51:37 <Phantom_Hoover> tiffany, everything.
15:51:42 <Phantom_Hoover> Except kittens.
15:52:14 <Taneb> <Phantom_Hoover> Except kittens. <-- And things that can be demonstrated equivalent to a Turing machine
15:52:29 <Taneb> *Universal Turing machine
15:52:49 <tiffany> http://www.physibots.info trolling aol users since this morning
15:53:54 -!- sebbu has quit (Ping timeout: 245 seconds).
15:58:51 -!- GuestIceKovu has quit (Ping timeout: 240 seconds).
15:58:56 -!- derdon has joined.
15:59:33 -!- GuestIceKovu has joined.
16:01:56 <kmc> System F
16:02:02 <derdon> is David Morgan-Mar occasionally in this channel?
16:02:11 <Taneb> Never, as far as I am aware
16:02:16 <derdon> if yes, which nick does he use?
16:02:27 <derdon> I see, that's unfortunate
16:02:37 <Taneb> If he did, it would either be dmm or dmmaus
16:02:46 <Taneb> He's on #darths time to time
16:03:01 <derdon> sounds Star Wars related
16:03:14 <Taneb> Sort of
16:03:30 <tiffany> my email records are going to be screwed up for 720 hours
16:03:36 <Taneb> It's related to a comic written by David Morgan-Mar among others about Star Wars
16:03:40 <Taneb> 30 days?
16:03:46 <tiffany> because when I set up google apps it said to use a ttl that long and I was like okay.jpg
16:05:27 <ais523> oh, I thought you said 720 /days/
16:05:39 <ais523> I think it's usual to reduce the ttl one ttl's-period before you think you'll change it
16:07:30 -!- oklopol has joined.
16:09:07 <tiffany> I made a silly page
16:09:11 <tiffany> http://www.physibots.info
16:11:48 <Taneb> I'm creating a three-cell IO-less brainfuck to BCKW+SKI combinatory logic
16:12:10 <Phantom_Hoover> tiffany, you are bad and should feel bad.
16:12:25 <tiffany> :c
16:12:37 <Phantom_Hoover> C++? s/bad/horrible/
16:12:48 <Phantom_Hoover> LYMIA
16:12:55 * tiffany snuggles lymee <3
16:13:11 <Phantom_Hoover> Lymee, WHY HAVE YOU DONE THIS
16:13:25 <tiffany> what did lymee do?
16:13:27 <tiffany> :c
16:13:50 <tiffany> and what's wrong with C++ aside from being extremely difficult to program in?
16:14:04 <Taneb> Combined with Oerjan's work, IT WILL BE USEFUL TO CREATE A FRACTRAN TO MIBBLII TRANSLATOR!
16:14:15 <Taneb> What I'm doing, that is, not C++
16:14:27 <Taneb> That isn't useful for /anything/ :P
16:14:35 <Phantom_Hoover> elliott might disagree with you there.
16:15:05 <tiffany> neat~
16:15:32 <tiffany> that language is awesome to program in :p
16:15:43 <Taneb> MIBBLII?
16:15:46 <Taneb> Thanks
16:15:49 <tiffany> ?
16:16:07 <Phantom_Hoover> tiffany, elliott just mucked around with the template system a while ago because it's insane.
16:16:28 <Taneb> So far, the blank tape is C(CI(KI))(C(CI(CI))(KI))
16:16:33 <tiffany> .-.
16:16:37 <Taneb> That may be able to be optomised
16:17:20 <tiffany> http://server.physibots.info/public/mandelbrot
16:17:28 <tiffany> it's a program that I sort of wrote in neat that uses sdl
16:17:34 <tiffany> if I got the url right
16:18:51 <Phantom_Hoover> Taneb, a tape made of combinators?
16:18:53 <Taneb> brb
16:19:53 -!- sebbu has joined.
16:19:53 -!- sebbu has quit (Changing host).
16:19:54 -!- sebbu has joined.
16:20:27 -!- cheater has joined.
16:25:58 -!- ais523_ has joined.
16:26:49 -!- ais523 has quit (Disconnected by services).
16:26:50 -!- ais523_ has changed nick to ais523.
16:28:15 <Taneb> Phantom_Hoover: Yup
16:28:33 <Taneb> It's a church list of 0,(0,0)
16:29:22 <ais523> Taneb: what are the arguments to get head and tail from the list? church 0 / church 1?
16:29:25 <ais523> i/k?
16:29:36 <Taneb> K,KI
16:29:43 <ais523> ah, the third option
16:29:45 <ais523> I was just about to ask that one
16:29:50 <ais523> but wasn't sure what application syntax to use
16:30:14 <Taneb> Incidentally, WB works for two
16:30:37 <ais523> K/KI always seemed a little lazy to me (in the not doing much work sense); it makes it easy to write if statements, but annoying to write things that return booleans
16:31:10 <Taneb> It works.
16:40:37 -!- elliott has joined.
16:42:15 <elliott> 19:20:42: <oerjan> Vorpal: hint, you can frequently detect memes by typing the phrase into google and looking at the suggestions coming up. at least that's what i did for that thing in the topic.
16:42:26 <elliott> it is the 90s and there is time for... is a hash-esoteric meme
16:42:28 <elliott> dunno about the rest
16:42:35 <ais523> elliott: I didn't know that
16:42:40 <ais523> where did the meme come from?
16:42:45 <elliott> Gregor i think
16:42:50 <elliott> it's a /topic-meme
16:42:53 <ais523> hmm, that comment of mine sounds so Vorpal that I should have changed the : to a ,
16:43:41 <elliott> only the first line
16:43:57 <elliott> 19:32:43: <zid> nethack would be a good AI thesis
16:43:57 <elliott> 19:32:58: <Taneb> I am extuingished¬
16:43:57 <elliott> 19:34:06: <fizzie> I vaguely recall that a NetHack bot was one on the "suggestions for a project topic" list of the Prolog course.
16:43:57 <elliott> 19:34:12: <fizzie> I'm not sure if anyone ever did it.
16:43:57 <elliott> 19:34:34: <zid> problem is nethack is quite inaccessable for a bot
16:44:01 <ais523> both lines, to me
16:44:05 <elliott> hey ais523 :P
16:44:15 <ais523> elliott: note that zid followed me here from #nethack
16:44:24 <ais523> and most of them are quite aware of the existence of both TAEB and saiph
16:44:42 <elliott> hmmmmm
16:44:43 <ais523> fizzie: I'd /love/ to see someone write something even capable of understanding the gamestate in Prolog
16:44:50 <elliott> we have too many spies lately
16:45:04 <ais523> it might be a decent language to write the AI itself in, but it would be incredibly bad for the framework
16:45:32 <ais523> I'd say it took about a year of work to get TAEB capable of communicating to NetHack to the extent it currently does, and it /still/ has a completely broken API for item pickup
16:45:34 <elliott> 20:01:55: <zid> haskell needs a bit more work to be a good esoland, it's almost there
16:45:34 <elliott> this was an old meme five years before you invoked it the _first_ time in this log :P
16:45:53 <Vorpal> ais523: hm?
16:45:55 <ais523> is the meme actually older than Haskell? that would be hilarious
16:45:59 * ais523 facepalms
16:46:07 <elliott> beautifu
16:46:08 <elliott> l
16:46:22 <elliott> ais523: I doubt the meme predates 1990
16:46:25 <Gregor> elliott: IT IS THE NINETIES
16:46:28 <Gregor> elliott: AND THERE IS TIME
16:46:29 <Gregor> elliott: FOR KLAX
16:46:45 <elliott> oh, there we go then
16:46:45 <Vorpal> ais523: Bad luck for you, I'm using a different client atm
16:46:48 <Vorpal> so : not ,
16:47:02 <elliott> a badly-behaved one at that
16:47:24 <ais523> Vorpal: do you have more than two lines of scrollback now?
16:47:54 <Vorpal> ais523: yes, but not much, I'm on a phone. So fairly limited.
16:48:14 <Vorpal> bbl
16:48:24 <elliott> Vorpal has more scrollback on a phone than his usual computational device (an internet-connected Speak and Spell)
16:48:42 <elliott> he uses it for HPC, presumably
16:49:02 <ais523> I've known people with a legitimate reason for not reading scrollback (blind people, for whom navigating it is awkward)
16:49:08 <ais523> but I don't think Vorpal is one of those
16:49:25 <ais523> elliott: maybe the computing is /so/ high-performance there's no spare cycles for remembering scrollback?
16:49:31 <elliott> ais523: heh
16:49:37 <elliott> I meant the phone
16:49:44 <elliott> ais523: hmm, I would expect a list-based interface for scrollback if I was blind
16:49:53 <elliott> i.e. pgup/pgdown to go up and down it
16:50:02 <elliott> or do you have to mess with scrollbars I wonder?
16:50:28 <ais523> elliott: it's more that you can't do anything else while reading scrollback
16:50:34 <ais523> in particular, see other comments people are making
16:50:37 <elliott> heh
16:50:47 <elliott> 20:43:03: <oerjan> i will file it together with "never damn ais523"
16:50:51 <elliott> 20:43:03: <oerjan> file it together with "never damn ais523"
16:50:51 <ais523> the problem with sound compared with vision is that it can only really do about one thing that requires complex information to be sent at once
16:50:54 <elliott> 20:43:03: <oerjan> with "never damn ais523"
16:50:57 <elliott> 20:43:03: <oerjan> "never damn ais523"
16:50:59 <elliott> 20:43:03: <oerjan> "never damn ais523
16:51:01 <elliott> 20:43:03: <oerjan> never damn ais523
16:51:03 <elliott> 20:43:03: <oerjan> damn ais523
16:51:07 <ais523> elliott: I see what you're doing
16:51:09 <elliott> looks like someone has to apologise :|
16:51:09 <ais523> it doesn't count
16:51:19 <elliott> ais523: hmm, does it count as me saying it?
16:51:20 <ais523> bear in mind that my complaint is based on the meaning of the words
16:51:23 <elliott> or do the quotemarks prevent that
16:51:24 <ais523> they mean something else when quoted
16:51:35 <ais523> and it's quoted in both cases, just diferent ways
16:51:40 <elliott> I mean the <> quotes
16:51:57 <ais523> yes, that's quotes
16:53:59 <elliott> 21:00:32: <Sgeo> http://pchat-irc.com/blog/ wow
16:53:59 <elliott> Woooow.
16:56:44 <ais523> elliott: is it wowish enough that I should read it too?
16:57:06 <ais523> and is it ridiculously good/bad/surprising?
16:57:22 <elliott> Yes.
16:57:27 <elliott> It is the most wow thing.
16:57:37 <ais523> elliott: it made me literally laugh out loud
16:58:06 <elliott> I think I'm more wowing at Sgeo_'s comment than the website itself
16:58:09 <ais523> should I subscribe to the RSS feed?
16:58:15 <ais523> the website itself is pretty wowish
16:58:16 <cheater> looks like a lot of fun
16:58:20 <elliott> ais523: Undoubtedly
16:58:30 * elliott wonders if everyone else isseeing something different to him.
16:58:57 <ais523> unfortunately, the link to the admin page requires a login
16:59:08 <ais523> pretty audacious to place that in the post of a page that isn't a blog comment
16:59:29 <elliott> It's linked on the sidebar too
16:59:34 <elliott> That's just the literal default WordPress setup
16:59:35 <ais523> (well, given how often wordpress has security holes, it probably /doesn't/ actually require a login, but that's the most obvious method)
16:59:47 <elliott> I'm still not sure why Sgeo wowed at it
17:00:10 <ais523> elliott: more that someone would be hosting a literal default WordPress setup for reasons other than showing off what it looked like
17:00:11 <Sgeo_> Just at how randomly contentless it was
17:00:15 <ais523> or for a few minutes while setting up WordPress
17:00:33 <ais523> is that the default theme too? I don't know what WordPress default themes are like
17:02:08 <elliott> I believe so
17:02:17 <elliott> they changed it from Kubrick, which you've almost certainly seen everywhere, ages ago
17:02:43 <elliott> (http://theme.files.wordpress.com/2005/10/kubrick-screenshot.png?w=595&h=383)
17:02:46 -!- ralc has quit (Read error: Connection reset by peer).
17:04:22 <ais523> it's quite pretty, but then I'd expect a default theme of a popular blog engine to either a) look really good, or b) look incredibly bland so people are motivated to change it
17:05:03 -!- TeruFSX2 has quit (Ping timeout: 260 seconds).
17:06:02 <elliott> I want to know where they got the photograph from; there has to be something like stock image websites, but for "pretty but meaningless images to use as defaults in themes"
17:10:55 <ais523> I think stock image websites probably do that too
17:11:25 <ais523> I know someone who used Webshots, which is full of pretty meaningless images to use as desktop backgrounds or screensavers
17:11:37 <ais523> and theme images are much the same things, but with different dimensions
17:12:25 <elliott> I don't understand people who seek out desktop backgrounds
17:13:17 <elliott> 22:17:42: <fungot> CakeProphet: i suppose it's event driven by using callbacks when certain tokens are found.
17:13:17 <fungot> elliott: super bowl? every one of them ay ( y) this song slow and rock together nice words awesome beat 3 videos you will finish the game could be a damn prep.
17:13:24 <elliott> I thought this was someone describing fungot for a second
17:13:24 <fungot> elliott: ppl should vote clinton because obama is biracial every1 knows that dood, look at him he has been on something lately.
17:14:51 <elliott> `addquote <fungot> elliott: ppl should vote clinton because obama is biracial every1 knows that dood, look at him he has been on something lately.
17:14:51 <fungot> elliott: diving mission in mw2. infinity ward can manage to outdo the first commercial plane to have passion for singing like this
17:14:56 <HackEgo> 638) <fungot> elliott: ppl should vote clinton because obama is biracial every1 knows that dood, look at him he has been on something lately.
17:14:59 <elliott> ^style
17:14:59 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube*
17:15:11 -!- olsner has quit (Ping timeout: 252 seconds).
17:20:21 <elliott> 23:01:42: <Phantom_Hoover> quintopia, although at least both times have been you being stupid and Hughes telling you.
17:20:32 <elliott> Phantom_Hoover: It wasn't quintopia being stupid this time, was it?
17:20:55 <Sgeo_> Sam Hughes?
17:20:56 <Phantom_Hoover> elliott, well no, but he was missing the joke.
17:21:07 <elliott> Sgeo_: no
17:21:19 <elliott> Sgeo_: Gabriel Hughes, famous harpsichord musician.
17:21:24 <elliott> He's bros with Phantom_Hoover and quintopia.
17:24:20 <elliott> CakeProphet: Lymee: Please don't tell me this log is going to end with you two repeatedly pinging fungot.
17:24:20 <fungot> elliott: i mean maybe she lost herself but maybe she wasnt a happyhappyjoyjoy game. i'll be looking forward to it.
17:25:11 <elliott> 00:05:07: <Sgeo> CakeProphet, there's a bitcoin faucet thing
17:25:11 <elliott> 00:05:31: <Sgeo> Which is closed for maintainance, but whatever
17:25:11 <elliott> Finally CakeProphet can get something like a penny for FREE.
17:25:14 <elliott> It's probably less nowadays.
17:25:43 <itidus20> i would like to hear the ff7 voice of the bot
17:25:50 <elliott> itidus20: so set it to that
17:26:27 <itidus20> this is an awkward situation
17:26:37 <itidus20> `ff7
17:26:38 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ff7: not found
17:26:50 <itidus20> ^ff7
17:26:58 <Sgeo_> ^style ff7
17:26:59 <fungot> Selected style: ff7 (Full script of the game Final Fantasy VII)
17:27:06 <elliott> ^help
17:27:06 <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:27:17 <itidus20> ok thanks :P
17:27:21 <Sgeo_> yw
17:27:27 <itidus20> fungot lay it on me
17:27:28 <fungot> itidus20: sorry i just happen to him.... i'm not just the fish, but the darkness of the lifestream... you really gonna leave! really!?
17:27:40 <Sgeo_> I should have done what elliott did, but I didn't know there wa a help
17:27:53 <itidus20> fungot more!
17:27:53 <fungot> itidus20: hah, hah hah hah! listen to me, i won't be able to fly in the village! you gotta be prepared, and push o button to slow down.
17:27:56 <Sgeo_> ^show style
17:28:10 <Sgeo_> ^show ^style
17:28:22 <elliott> 02:02:16: <Gregor> elliott: omg I'm actually working on Fythe ... AND Plof!
17:28:22 <elliott> Gregor: Have you finished off bignums for me?
17:28:34 <elliott> :p
17:28:43 <itidus20> fungot
17:28:43 <fungot> itidus20: your real self. will you and aerith are my only real job is watching over shinra's documents...
17:29:19 <itidus20> ok i've had my fun
17:29:53 <elliott> fungot responds to /msg although it still won't reply beyond four consecutive
17:30:50 <Gregor> elliott: Depends on your definition of "finished off"
17:31:06 <elliott> 03:01:31: <Sgeo> All TC programming languages, barring bizzarities, should be able to parse
17:31:06 <elliott> 03:01:33: <Sgeo> Stuff
17:31:06 <elliott> deep words
17:31:44 <elliott> Gregor: Do all operations (apart from "pointer-ish" things) handle bignums and overflow properly, including tricky bitwise cases which properly promote when the result if infinitely 0-extended to the left would differ from the word-size result?
17:33:18 <Sgeo_> Does that definition leave room for addition, for example, to have nonsenical result?
17:33:37 <oklopol> Gregor: do you ever wear two hats?
17:33:50 <Gregor> elliott: Depends on which you consider "pointer-ish" :P
17:34:00 <Gregor> If you consider all the bitwise and shifty cases pointer-ish, then DONE.
17:34:09 <elliott> I don't
17:34:21 <elliott> Oh, I forgot to add having separate divmod and quotrem too, I was planning to do that
17:34:44 <oklopol> your head would be so warm
17:35:13 -!- Taneb has changed nick to TanabIsNotHere.
17:35:24 <Gregor> oklopol: .........
17:36:01 <oklopol> did i just blow your mind
17:36:17 <Phantom_Hoover> oklopol, it would be too heavy.
17:36:17 -!- Sgeo_ has changed nick to SgeoISNOWHERE.
17:37:08 <itidus20> indirect addressing is a facile and inebrious kind of instruction which should be whomped away by languages
17:38:09 -!- olsner has joined.
17:39:15 <itidus20> in a pickle i can reach into my unconcious for an expanded english vocabulary
17:39:52 <elliott> `addquote <itidus20> indirect addressing is a facile and inebrious kind of instruction which should be whomped away by languages
17:39:54 <HackEgo> 639) <itidus20> indirect addressing is a facile and inebrious kind of instruction which should be whomped away by languages
17:40:56 <elliott> 07:26:53: <tiffany> My os is 8gb and i have lots of stuff installed
17:40:56 <elliott> 07:27:03: <tiffany> My entire vps is 2.5
17:40:57 <elliott> my toothrbush is 9
17:41:06 <tiffany> .-.
17:41:11 <Phantom_Hoover> My toothbrush is 1000000000000000
17:41:24 <tiffany> my home directory is 50gb ;_;
17:41:27 <cheater> my toothbrush is 0 because it's a hardware solution using vlsi
17:42:23 <Phantom_Hoover> My home directory is all the gbs
17:42:40 <Phantom_Hoover> 13 of which are taken up by Red Dwarf.
17:42:58 <itidus20> cool
17:43:04 <tiffany> I have 25gb of ~/Downloads and 25gb of ~/Videos :P
17:43:56 <Phantom_Hoover> but
17:43:59 <Phantom_Hoover> how much of it
17:44:03 <Phantom_Hoover> is red dwarf
17:44:17 <tiffany> red dwarf?
17:44:22 <elliott> 09:13:24: <zzo38> I wrote a Huffman making program in Haskell. It is written in a different way than it would be written in other programming language, but it works. Tell me if you have suggestion things I could add.
17:44:22 <elliott> 09:14:52: <zzo38> To me it seems many functions with similar name and similar purpose are in Data.List, Data.Map, Data.Set, etc, they should be made a class.
17:44:22 <elliott> 09:15:37: <monqy> some of them already are
17:44:22 <elliott> 09:15:59: <monqy> foldable, traversable
17:44:24 <elliott> 09:17:03: <zzo38> But some of them are not. Possibly due to some limitations in the class system of Haskell.
17:44:30 <elliott> mostly because nobody can agree on how collections classes should be structured
17:44:33 <Phantom_Hoover> tiffany, get out
17:44:35 <Phantom_Hoover> Now.
17:44:36 <itidus20> lol
17:45:08 <tiffany> .-.
17:45:17 <elliott> what is .-. even meant to look like
17:45:28 <itidus20> elliott: it's 2 eyes and a mouth
17:46:19 <elliott> mouths aren't higher than eyes
17:46:37 <tiffany> upside down face?
17:46:43 <Phantom_Hoover> elliott, tiffany is actually an alien, thus explaining why she hasn't heard of Red Dwarf.
17:46:53 <derdon> KingOfKarlsruhe: hello :)
17:46:57 <Phantom_Hoover> The mouth in her forehead is an extreme version of forehead ridges.
17:46:57 <tiffany> I kind of use it as a headtilt
17:47:03 <tiffany> .-.
17:47:07 <derdon> KingOfKarlsruhe: didn't you're into esoteric languages
17:47:26 <Phantom_Hoover> Didn't we all're into esoteric languages?
17:47:35 <itidus20> heres a random red dwarf scene: http://www.youtube.com/watch?v=RXKlC8ph7mM
17:47:36 <elliott> We'll all're esoteric into languages.
17:52:13 <elliott> 11:33:35: <ais523> zid: you can use backslash-newline to line-break inside keywords in C
17:52:18 <elliott> ais523: this will revolutionise my coding style
17:52:51 <ais523> oh dear
17:53:36 <cheater> haha
17:53:39 <olsner> ooh, a new use for the alternative keywords for operators: opportunities for line-breaking
17:53:49 <cheater> you can use nonprintable characters in php identifiers
17:53:55 -!- elliott has quit (Remote host closed the connection).
17:54:02 <olsner> can you linebreak inside operators too?
17:54:18 <itidus20> is this the backslash \
17:54:22 -!- elliott has joined.
17:54:30 <Deewiant> You can linebreak in everything except multibyte characters and trigraphs
17:54:35 <olsner> itidus20: reverse solidus
17:54:57 <elliott> 15:01:54: <tiffany> I tried rendering a 16gb mandelbrot render with 1000 iterations once
17:54:57 <elliott> 15:02:01: <tiffany> it was written in lua
17:54:58 <elliott> 15:02:19: <tiffany> I gave up after 3 days (got halfway) when I realised that if I did it in C++ it'd be done in like 3 hours
17:54:58 <elliott> 15:02:23: <tiffany> :I
17:54:58 <elliott> even better: you could do it in C, and then you wouldn't have to deal with C++
17:55:25 <elliott> 15:50:23: <tiffany> what... isn't.. turing complete?
17:55:26 <elliott> many things
17:55:33 <olsner> even better: you could not do it at all and then you wouldn't have to deal with anything
17:55:39 <tiffany> it was 65536x65536 and it kept segfaulting until I realised I was allocating 16gb of ram when I had 1
17:55:46 <tiffany> so I rendered it using 512x512 tiles
17:55:47 <tiffany> :p
17:56:17 <Phantom_Hoover> <elliott> even better: you could do it in C, and then you wouldn't have to deal with C++
17:56:25 <elliott> 16:09:07: <tiffany> I made a silly page
17:56:25 <elliott> 16:09:11: <tiffany> http://www.physibots.info
17:56:26 <elliott> what is the point of this
17:56:32 <Phantom_Hoover> Even better: you could do it in assembly and you'd be a Real Programmer.
17:56:38 <Phantom_Hoover> Or as close as you can get these days.
17:56:40 <elliott> Phantom_Hoover: Well, better than C++.
17:56:42 <tiffany> I don't know assembly ;-;
17:57:00 <elliott> 16:13:50: <tiffany> and what's wrong with C++ aside from being extremely difficult to program in?
17:57:00 <elliott> There are more things wrong with C++ than there are things that are not Turing complete.
17:57:11 <tiffany> also elliott that page was made because of people impulsively typing "http://www." before every address
17:57:31 <elliott> It's horrific that they leave out the additional www..
17:58:04 <tiffany> I use subdomains to organise services (mediawiki, phpbb, etc), not for organising protocols
17:58:10 <tiffany> also subdomains for servers
17:58:11 <itidus20> elliott: that which can be explained is of little value
17:58:19 <elliott> tiffany: Please, educate yourself: http://www.www.extra-www.org/
17:58:23 <tiffany> :I
17:58:28 <tiffany> http://no-www.org
17:58:33 <elliott> no-www is obsolete. http://www.www.extra-www.org/
17:59:04 <Phantom_Hoover> tiffany, www is the only acronym that takes three times longer to say than the full phrase; it is therefore the best.
17:59:36 <cheater> The following error was encountered while trying to retrieve the URL: http://www.www.extra-www.org/
17:59:36 <cheater> Unable to determine IP address from host name "www.www.extra-www.org"
17:59:55 <tiffany> I hate when I sit there for a minute while a school librarian decides to read out "h t t p colon slash slash w w w dot..."
18:00:10 <tiffany> the only way it could be worse is if they said backslash
18:00:28 <elliott> tiffany: Ugh. I always painstakingly correct them by informing them they forgot the extra "www.".
18:00:45 <elliott> They have no appreciation for the protocols they rely on every day; they just parrot things out as quickly as they can.
18:00:47 <elliott> It's disgusting.
18:00:58 <itidus20> tiffany: you just got me thinking, they need to apply cockney slang to urls
18:01:15 <tiffany> I'm tempted to make a 65536 character long subdomain now
18:01:36 <Phantom_Hoover> itidus20, hmm, what rhymes with 'web'?
18:01:39 <SgeoISNOWHERE> Make it be a URL shortener
18:01:43 <tiffany> XD
18:01:47 <Phantom_Hoover> Meb? Kreb?
18:01:48 <itidus20> Phantom_Hoover: www = sorry to trouble you
18:01:50 <Phantom_Hoover> Aha!
18:01:58 <itidus20> :P
18:02:00 <itidus20> i dunno
18:02:04 <itidus20> im not british anyway
18:02:13 <Phantom_Hoover> itidus20, no, world wide web = cycle.
18:02:19 <itidus20> you could shorten it to sorry
18:02:47 <tiffany> http://xkcd.com/181/
18:02:53 <tiffany> world wide blag
18:03:04 <elliott> I, too, have heard of xkcd
18:03:08 * tiffany <3 xkcd
18:03:17 <elliott> Ah. Your first error.
18:03:29 <olsner> in swedish, www is pronounced "ve ve ve", which means woe woe woe
18:03:56 <tiffany> in weaboo, www means lolol
18:03:59 <tiffany> :p
18:04:05 <Phantom_Hoover> elliott, hey, you like xkcd pre-~400.
18:04:17 <Gregor> the-longest-domain-name-ever-to-be-used-for-a-so-called-url-shortener-in-spite-of-the-fact-that-nearly-all-urls-will-be-lengthened-just-by-the-inclusion-of-this-domain-name.com/submitted-urls/urls-by-random-unique-identifier/yr97fq0yf4n089qfny04y0w4fh089yh089w5th90w8y3fw03h9840404w90w40398tw498t0440wt9
18:04:26 <elliott> Phantom_Hoover: Well OK except for any comic that anyone's referenced more than like three times.
18:04:47 <elliott> Gregor: I'd use it
18:04:50 <tiffany> gregor: md5 hash of every character in the url concatinated together for the unique identifier
18:04:57 <Gregor> tiffany: X-D
18:04:59 <cheater> Gregor, that is NICE.
18:05:01 <elliott> md5 :modern:
18:05:07 <Gregor> SHA-256
18:05:08 <tiffany> fine, md3
18:05:17 <Gregor> SHA-....4096?
18:05:27 <Phantom_Hoover> SHA-\aleph_0
18:05:37 <elliott> Gregor: There are a finite number of specified SHA algorithms :P
18:05:47 <elliott> I think Skein generalises to any bitwidth.
18:05:50 <tiffany> SHA-graham's_number
18:05:58 <Gregor> elliott: Yeah, but I don't recall where it ends. Was it 256? 1024?
18:05:59 <elliott> RadioGátun is really nice because it goes up to like two thousand bits and you can just take a prefix.
18:06:03 <elliott> Gregor: Five twelve.
18:06:06 <Phantom_Hoover> tiffany, waaaay ahead of you.
18:06:10 <elliott> Oh, it's RadioGatún.
18:06:13 <Gregor> Of course I'd guess the two powers of two around the correct one :P
18:06:21 <elliott> Oh hey
18:06:23 <elliott> http://en.wikipedia.org/wiki/Keccak
18:06:30 <elliott> Successor to RadioGatún is an SHA-three finalist
18:07:42 <tiffany> I'm seriously adding this subdomain: the-longest-domain-name-ever-to-be-used-for-a-so-called-url-shortener-in-spite-of-the-fact-that-nearly-all-urls-will-be-lengthened-just-by-the-inclusion-of-this-domain-name.physibots.info
18:07:44 <SgeoISNOWHERE> http://www.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com/
18:08:10 <SgeoISNOWHERE> Oh, that's just email addresses
18:08:27 <SgeoISNOWHERE> http://hugeurl.geeks.org/
18:08:49 <tiffany> oh my it worked
18:08:51 <elliott> I like how http://www.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com/ lists four disadvantages first
18:09:08 <Phantom_Hoover> elliott, no those are advantages
18:09:22 <tiffany> crap
18:09:26 <tiffany> I think it got truncated
18:09:40 <tiffany> apparently not
18:09:41 <tiffany> .-.
18:10:45 <Gregor> I think the URL lengthener should just have a lookup table for every character in the original URL, where the value in the generated URL is a brief description of the etymology and history of that letter/symbol.
18:11:08 <tiffany> XD
18:11:09 <elliott> Gregor: Remember to encode the resultin unary
18:11:33 <elliott> Then interpret that unary as a base-9999999999999999999 integer, convert it to English words, and fuck it this is stupid.
18:12:34 <tiffany> eeeeek
18:12:46 <tiffany> I just crashed my entire domain with that subdomain
18:12:52 <elliott> "crashed"
18:12:54 <elliott> As we all know, domains are computers.
18:13:16 <olsner> or an in-order traversal of the tree of wiki pages rooted at the wikipedia page for that character
18:13:33 <tiffany> elliott, domain lookup is failing through opendns
18:13:37 <tiffany> it returns a server error
18:13:48 <cheater> you turned off the internet!
18:13:48 <elliott> lol, opendns
18:14:35 <tiffany> this is bad
18:14:38 <tiffany> all the subdomains broke
18:14:40 <tiffany> .-.
18:14:53 <cheater> lol
18:17:52 <tiffany> okay
18:17:53 <tiffany> it fixed
18:18:15 <Vorpal> tiffany: you don't run your own dns server?
18:18:21 <tiffany> no
18:18:30 <Vorpal> <elliott> As we all know, domains are computers. <-- obviously not. Cars can crash too. Thus it must be one.
18:18:35 <Vorpal> (or a computer, true)
18:18:51 <elliott> carputer
18:19:01 <Vorpal> elliott: are you sure those can crash?
18:19:11 <elliott> only one way to find out ..,,,,,,,,,,,
18:19:29 <Vorpal> elliott: by applying explosives right? I'll call Mythbusters.
18:19:47 <elliott> no
18:19:49 <elliott> by applying
18:19:51 <elliott> Lov,e,,,,,,,,,,,,,,,,,,
18:19:52 <elliott> q[pwre't;ghf,
18:19:53 <elliott> kliu[]fyt'dsae
18:19:56 <Vorpal> I see.
18:20:18 <elliott> p[l;a'sd'fgln;kt\
18:20:42 <elliott> lspdc;sx
18:20:47 <elliott> ////////////
18:20:53 <elliott> ````````````````
18:20:53 <Vorpal> elliott: really? I thought he went to Oxford, not Cambridge?
18:20:55 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ```````````````: not found
18:20:59 <elliott> Vorpal: a-0sifkdoxcvklmb
18:21:02 <elliott> sld;fgk;hfj, ;erw't
18:21:04 <Vorpal> elliott: oh okay.
18:21:05 <elliott> ???????????????????????????????/////////
18:21:11 <tiffany> .-.
18:21:16 <elliott> sads;vc
18:21:20 <Vorpal> bbiab
18:21:24 <elliott> bbibabiabaib
18:23:45 <olsner> fungot: make some sense
18:23:46 <fungot> olsner: welcome to cosmo canyon. are you?
18:28:59 -!- nys has joined.
18:30:02 <Phantom_Hoover> Welcome, comrade nys!
18:30:24 <nys> Hello!
18:31:18 -!- TanabIsNotHere has changed nick to Taneb.
18:31:30 <Taneb> Hello
18:33:03 <Taneb> I've been thinking...
18:33:05 <Taneb> Panic
18:33:14 <Phantom_Hoover> nys, we are a channel for the discussion of transmissible spongiform encephalopathies.
18:33:17 <elliott> Taneb: ok im panicing
18:33:22 <elliott> Phantom_Hoover: he's been here before
18:33:25 <elliott> but good description
18:34:03 <Phantom_Hoover> elliott, ;_;
18:35:07 <nys> I've been here from around four years ago
18:35:16 <elliott> oh, really?
18:35:28 <nys> since around 2006, and even before
18:35:34 <elliott> what nick?
18:35:42 <nys> Twistle on the wiki
18:35:45 <Taneb> I've been here since July, possibly June
18:35:49 <nys> dunno what I went by on IRC
18:37:08 * tiffany waves at nys
18:37:42 * nys waves back...sinisterly
18:38:15 <elliott> sinysterly
18:38:15 <Phantom_Hoover> nys, I admire your dedication to BSE.
18:38:23 <nys> BSE?
18:38:33 <Taneb> nys, why you wave left-handedly
18:38:59 <elliott> Taneb: stern glance
18:39:21 <nys> refresh me on what BSE is
18:39:34 <Taneb> Stop looking at my rear end, elliott
18:40:20 <elliott> we need someone to have the flyswatter when oerjan doesnt
18:40:24 <elliott> or the swatting will never get done :|
18:40:44 <Taneb> I'll remind oerjan when he comes back
18:41:09 * Phantom_Hoover swatpans Taneb --==\#/
18:41:23 * Phantom_Hoover swatpans tiffany for good measure --==\#/
18:41:35 <tiffany> wha?
18:41:41 <elliott> i approve of this reign of terror
18:41:54 <nys> :< what is BSE??
18:41:56 <elliott> rerror
18:42:00 <elliott> but yeah what is bse
18:42:03 <elliott> bsebsebsbessbe
18:42:04 * Phantom_Hoover swatpans elliott for toadying --==\#/
18:42:09 <Phantom_Hoover> nys, elliott, ...
18:42:13 <Phantom_Hoover> Mad cow disease?
18:42:20 <elliott> HOW OBVIOUS
18:45:08 <nys> ++++[>++++++++++++++++<-]>++++++++.[-]<++++++[>++++++++++++++++<-]>+++++.[-]
18:45:23 <nys> is this the way you usually communicate in here?
18:45:43 <Taneb> !brainfuck ++++[>++++++++++++++++<-]>++++++++.[-]<++++++[>++++++++++++++++<-]>+++++.[-]
18:45:58 <elliott> that thing outputs two characters at most
18:46:08 <elliott> ^ul ++++[>++++++++++++++++<-]>++++++++.[-]<++++++[>++++++++++++++++<-]>+++++.[-]
18:46:08 <fungot> ...bad insn!
18:46:10 <elliott> ^bf ++++[>++++++++++++++++<-]>++++++++.[-]<++++++[>++++++++++++++++<-]>+++++.[-]
18:46:10 <fungot> He
18:46:12 <nys> it outputs exactly two characters
18:46:14 <elliott> nys: he
18:46:15 <Phantom_Hoover> !userinterps
18:46:15 <EgoBot> ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish valspeak wacro warez wc yodawg
18:46:15 <nys> He
18:46:42 <Taneb> !numberwang He
18:46:44 <EgoBot> I'm sorry, but Brazil isn't a vegetable!
18:47:00 <elliott> i'm sorry too EgoBot :(
18:47:06 <nys> !numberwang shinty six
18:47:06 <EgoBot> I'm sorry, but Brazil isn't a vegetable!
18:47:30 <nys> but shinty six is a real number
18:47:39 <ais523> wait, is that !numberwang's reply to everything?
18:47:49 <Taneb> !numberwang 12
18:47:49 <EgoBot> That's numberwang!
18:48:09 <Taneb> Nope
18:48:37 <Taneb> Also, I've defined > in my combinator brainfuck
18:48:42 <Taneb> S(BC(B(CI)(B(CIK)(CI(KI)))))(S(B(BC(CI))(CI(KI)))(CIK))
18:48:49 <tiffany> o.o
18:49:09 <nys> it's always nice to do some good brainfucking
18:49:15 <Taneb> Due to silly things, I don't need to define <
18:49:25 <olsner> Taneb: oh, writing a BF -> combinator compiler?
18:49:26 <Taneb> Namely, I'm only working with three cells
18:49:29 <Taneb> Yep
18:50:02 <Taneb> Designed for output from oerjan's Iterated Collatz Function -> brainfuck compiler
18:50:58 <Taneb> In which, every > can be replaced with <<
18:51:13 <Taneb> And every < with >>
18:51:23 <Taneb> Making only one of them necessary
18:52:19 <elliott> he managed to do it for three cells? awesome
18:52:31 <Taneb> It's been on the bf page for a while
18:52:59 <elliott> I thought that was four but I don't remember
18:53:34 <Taneb> Interestingly, the C combinator is Church Not
18:53:58 <Taneb> K is Church True, I is Church one
18:54:33 <nys> does the ^bf interpreter in this here bot's tape extend in both directions from the initial spot?
18:54:59 <Taneb> I would check, but ice cream
18:55:07 -!- Taneb has changed nick to TanebIceCream.
18:55:13 <nys> :<
18:57:44 <elliott> nys: no, only rightwards as is standard
18:57:54 <elliott> nys: it may even be a limited tape actually..
18:57:58 <elliott> it's written in befunge after all
18:58:12 <elliott> !brainfuck is more complete but you'll need to terminate output with a newline or it won't say anything
18:58:18 <nys> :o the bot is written in befunge?
18:58:38 <elliott> yeah
18:58:42 <elliott> ^source
18:58:43 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
18:58:47 <elliott> befunge-98, though
18:59:04 <nys> hum.
19:01:27 <nys> does either implement any kind of input?
19:03:19 <elliott> Both do
19:03:19 <elliott> &Input integer
19:03:19 <elliott> ~Input character
19:03:27 <elliott> Funge-98 has that and a whole extension mechanism
19:03:29 <elliott> fungot uses socket ones
19:03:29 <fungot> elliott: it would bring us an easier life.
19:06:56 <nys> ^bf ++++++[>+++++++++<-]>.[-]<++++++++++[>++++++++++<-]>+.+++++++..+++.[-]<+++[>+++++++++++<-]>.
19:06:56 <fungot> 6ello!
19:07:02 <nys> darnit!
19:07:43 <nys> ^bf ++++++++[>+++++++++<-]>.[-]<++++++++++[>++++++++++<-]>+.+++++++..+++.[-]<+++[>+++++++++++<-]>.
19:07:43 <fungot> Hello!
19:07:47 <nys> there.
19:08:03 <elliott> !bf_txtgen hi
19:08:07 <EgoBot> ​41 ++++++++[>+++++++++++++>+>><<<<-]>.+.>++. [155]
19:08:45 <nys> does that produce the shortest possible?
19:10:56 -!- Vorpal has quit (*.net *.split).
19:11:52 <Deewiant> !bf_txtgen hi
19:11:54 <EgoBot> ​41 ++++++++[>+++++++++++++>+>><<<<-]>.+.>++. [44]
19:12:31 <elliott> nys: that's quite impossible
19:12:39 <elliott> it might be the shortest for hi but I doubt it
19:13:06 <Lymee> !viewinterp bf_txtgen
19:13:32 <Lymee> !bf_testgen Hello, world!
19:13:40 <elliott> Lymee: it's a built-in ancient java thing
19:13:46 <Lymee> Ah.
19:13:54 <fizzie> It's certainly not the optimal for hi; c.f. ">><<".
19:14:08 <fizzie> (It uses a fixed number of 4 tape cells in the first loop.)
19:14:13 <Lymee> !bf_txtgen Hello, world!
19:14:15 <EgoBot> ​127 +++++++++++[>+++++++>+++++++++>++++>+<<<<-]>-----.>++.+++++++..+++.>.------------.<++++++++.--------.+++.------.--------.>+.>-. [839]
19:14:16 <fizzie> (Well, the first and only loop.)
19:14:38 <Lymee> ^bf +++++++++++[>+++++++>+++++++++>++++>+<<<<-]>-----.>++.+++++++..+++.>.------------.<++++++++.--------.+++.------.--------.>+.>-.
19:14:38 <fungot> Hello, world!.
19:14:50 <fizzie> The "." is the newline.
19:15:14 <fizzie> So the "hi" is also actually "hi\n".
19:15:26 <fizzie> Three .s and all that.
19:16:39 <fizzie> Also yes, a fixed-width tape, I think.
19:17:12 <fizzie> A small one, at that; 1000 cells of numbers in the [0, 255] range.
19:17:44 <elliott> Real numbers?
19:17:59 <fizzie> Well, integers *are* real...
19:18:08 <fizzie> You might even call them the realest numbers of all.
19:18:16 <fizzie> In the "keeping it real" sense.
19:19:45 <Lymee> ^[>>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> +.]
19:19:49 <Lymee> ^bf [>>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> +.]
19:20:16 -!- Vorpal has joined.
19:20:24 <fizzie> "aaa**" cells of nonnegative integers less than "88+:*", to be more thematically appropriate.
19:20:25 <Lymee> ^bf [>>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ .]
19:20:27 -!- Vorpal has quit (Max SendQ exceeded).
19:21:14 -!- Vorpal has joined.
19:21:53 <fizzie> ^bf +[>>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ .]
19:21:53 <fungot> @@@@@@@@@A
19:21:58 <fizzie> (How sensibbel.)
19:22:34 -!- TanebIceCream has changed nick to Taneb.
19:22:56 <nys> which does !brainfuck need to terminate with, CR or LF?
19:24:04 <elliott> LF.
19:24:10 <elliott> No current OS uses CR to terminate lines to my knowledge.
19:24:53 <fizzie> I think I've seen a couple of CR-terminated lines in some files on that OS X iBook.
19:25:27 <elliott> fizzie: Probably Classic remnants.
19:25:50 <fizzie> Probably. It does have that funky Classic-in-a-box thing-thing.
19:31:58 -!- derdon has quit (Remote host closed the connection).
19:33:21 <Taneb> + is defined
19:33:22 <Taneb> S(BC(B(CI)(B(SB)(CIK))))(CI(KI))
19:33:42 <Taneb> - will likely be substantially longer
19:34:44 <cheater> /topic “Haskell is compiled from .hs-files which means HOMO SEXUAL” ~ Oscar Wilde on Haskell
19:35:10 <elliott> no
19:35:18 <Taneb> But then again, Oscar Wilde would say that, wouldn't he?
19:35:39 <Taneb> ...So would Uncyclopedia
19:36:37 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 6.0.1/20110830092941]).
19:46:27 <cheater> yes Taneb, he very much would.
19:49:22 <nys> !bf_textgen hi
19:49:32 <nys> !bf_txtgen hi
19:49:36 <EgoBot> ​41 ++++++++[>+++++++++++++>+>><<<<-]>.+.>++. [145]
19:50:06 <quintopia> wow
19:50:15 <nys> !bf_txtgen [>+++++++++++++>+>><<<<-]>.+.>++.
19:50:17 <EgoBot> ​154 +++++++++++++++[>++++++>++++>+++>+++<<<<-]>+.>++.>--...>--.<..>..<...>..<<.>.<..--....>++.<<++.>++.>+.>.+++.<<.>---..>.<---------------------------------. [807]
19:50:35 <quintopia> thats the most obvious bad txtgen output i've seen in a while
19:51:13 <Taneb> Well, - will have to wait
19:51:14 <quintopia> at the very least there should be a postprocessor that repeatedly removes >< and <> and +- and -+
19:52:14 <nys> !brainfuck ++++++++[>+++++++++++++>+>><<<<-]>.+.>++.
19:52:31 <fizzie> It will never create +- or -+ or <>; only ><.
19:52:51 <Taneb> ^bf ++++++++[>+++++++++++++>+>><<<<-]>.+.>++.
19:52:51 <fungot> hi.
19:52:57 <quintopia> fizzie: how do you know?
19:53:26 <fizzie> quintopia: Well, I'm... reasonably certain. It has a rather limited form that all the programs it generates will take.
19:53:40 <quintopia> enlighten me?
19:53:47 <nys> !brainfuck +++++++++[>++++++++++<-]>.++++.++++.[-]<++++[>++++++++<-]>.+++++++++++........+++++++++++++++[>++++++>++++>+++>+++<<<<-]>+.>++.>--...>--.<..>..<...>..<<.>.<..--....>++.<<++.>++.>+.>.+++.<<.>---..>.<------------ ---------------------.[-]++++++++++.
19:54:09 <Taneb> ^bf +++++++++[>++++++++++<-]>.++++.++++.[-]<++++[>++++++++<-]>.+++++++++++........+++++++++++++++[>++++++>++++>+++>+++<<<<-]>+.>++.>--...>--.<..>..<...>..<<.>.<..--....>++.<<++.>++.>+.>.+++.<<.>---..>.<------------ ---------------------.[-]++++++++++.
19:54:09 <fungot> Z^b ++++++++]ꬬ_꯬ꬬ.
19:54:13 -!- TeruFSX2 has joined.
19:54:23 <nys> whoa
19:55:12 <fizzie> quintopia: Well, it's always (with the current settings) +{n}[>+{i1}>+{i2}>+{i3}>+{i4}<<<<] and then a sequence of "move to spot, optionally a series of +'s or -'s (but not both), and a .".
19:56:04 <fizzie> Uh, and the one - in the loop, of course.
19:59:24 <quintopia> aha. a reasonable format, although it will result in needlessly long programs in some cases (like when four different memory cells are not needed). also, why does it print a . when a . was not input? is it trying to print the newline character?
19:59:32 <elliott> yes
19:59:35 <elliott> and succeeding
19:59:36 <Taneb> brb
20:00:35 <quintopia> lame
20:01:34 <quintopia> someone make a flag for bf_txtgen that includes the newline so it can leave it out by default >.>
20:03:53 <fizzie> The underlying Java proggie can take the number of cells as a command line argument.
20:04:47 <quintopia> but the ego command cant?
20:06:54 <Taneb> I'm tired of combinatory brainfuck
20:07:08 <Taneb> I'm going to work some more on Van Doesburg
20:10:08 <fizzie> I don't think the bot-command can.
20:10:15 <fizzie> !bf_txtgen -t 2 hi
20:10:17 <EgoBot> ​83 +++++++++[>+++++>++++>+++++++++++++>+<<<<-]>.>>-.<----.<+++++.>.>------------.+.>+. [222]
20:10:26 <fizzie> Yes, that doesn't look so good.
20:13:26 -!- pumpkin has joined.
20:15:13 -!- copumpkin has quit (Ping timeout: 260 seconds).
20:41:17 -!- quintopia has quit (Quit: Lost terminal).
20:41:25 -!- quintopia has joined.
20:41:26 -!- quintopia has quit (Changing host).
20:41:26 -!- quintopia has joined.
20:43:46 <CakeProphet> :o
20:44:02 -!- zzo38 has joined.
20:45:36 <Taneb> I was dissapointed with Inception
20:45:41 <Taneb> It was too easy to understand
20:45:58 <Taneb> Maybe if I hadn't read house of leaves first...
20:46:57 <Gregor> elliott: I might agree with your complaints about my file naming for the Plof language definitions, if only to avoid having a file named plof/plof.plof ...
20:47:26 <Taneb> I think someone has the email dot@dotat.at
20:48:14 <elliott> Gregor: X-D
20:48:22 <elliott> Gregor: Plof's implementation should toooootally be a single file.
20:48:31 <elliott> Gregor: P.S. are you incorporating all my objectively correct improvements
20:48:54 <Gregor> Many if not most of your improvements had been adopted into Plof 3 ...
20:49:45 <zzo38> I generally prefer to separate the various parts of a program into chapters instead of into separate files, although in some cases it is useful to separate the files such as having one file for the back-end and one file for the front-end, so that you can combine different back-ends with different front-ends.
20:52:00 -!- monqy has joined.
20:52:02 <Gregor> elliott: The "logic" that ended up with that name was this: The file that defined the base grammar of PUL (then the Plof User Language) was called pul_g.plof. Plof is now only the user language, as PSL and the PRP are replaced by Fythe, so the name "PUL" is no longer meaningful. That changed it to plof_g.plof, but the long-since-silly reasons I had for separating the grammar from the definitions don't make /any/ sense when there's also a transformation/macro la
20:52:03 <Gregor> yer, so I dropped the _g and combined it with pul.plof. Leaving ... plof.plof.
20:52:43 <elliott> Gregor: plof/initial-syntax.fythe
20:52:47 <elliott> Or plof/bootstrap.fythe
20:52:49 <elliott> Or SOMETHING :P
20:52:55 <Gregor> I was thinkin' base.fythe
20:52:56 -!- augur has joined.
20:53:29 <elliott> So how about them improvements eh eh eh
20:53:43 <Gregor> The problem beyond that file is that while the base is obviously in Fythe, it's not clear at which point it's officially "written in Plof"
20:53:50 <Gregor> So when to change from .fythe to .plof.
20:54:06 <Gregor> That's why I was just going to drag .plof all the way back, since it's not like .fythe is particularly meaningful anyway.
20:54:10 <zzo38> Maybe there is no such point?
20:54:50 <elliott> Gregor: Go to .plof whenever your whole file isn't a fythe {} block :P
20:54:55 <Gregor> zzo38: Exactly >_>
20:55:05 <Gregor> elliott: OK, base.plof it is.
20:55:13 <elliott> Gregor: What's outside of a fythe {} block in base.plof
20:55:20 <Gregor> The grammar and transforms.
20:55:22 <Taneb> Plof looks interesting, I would like to learn i
20:55:23 <Taneb> t
20:55:34 <Gregor> Taneb: Learn the JOY THAT IS FYTHE!
20:55:43 <Gregor> Or, y'know, not :P
20:55:46 <elliott> Gregor: OK, anything that isn't in a "compilershit {}" block
20:56:12 <Gregor> elliott: I /believe/ (but haven't gotten far enough to confirm) that that would leave only base.fythe and objects.fythe.
20:56:45 <elliott> Gregor: Plof four has no stdlib?
20:56:46 <elliott> Awesome.
20:56:56 <Gregor> elliott: The stdlib is mostly implemented in Plof.
20:57:02 <elliott> Yes, so those are .plof
20:57:19 <Gregor> By "leave only" I meant "leave the only ones named .fythe as"
20:57:26 <elliott> Well, what's wrong with tthat then
20:57:31 <Gregor> Nothing :P
20:57:33 <elliott> They're bootstrapping Fythe into a language
20:57:41 <elliott> Gregor: I suspect base.fythe will grow enough that you'll want to split it up
20:58:00 <Gregor> elliott: For the time being I'm modeling it directly on Plof 3.
20:58:15 <Gregor> $ wc -l pul_g.plof pul.plof
20:58:15 <Gregor> 608 pul_g.plof
20:58:15 <Gregor> 512 pul.plof
20:58:15 <Gregor> 1120 total
20:58:21 <Gregor> And Fythe, unlike PSL, isn't shit.
20:58:25 <Gregor> So it'll be like 1/10th the size :P
20:58:27 <elliott> WITH ALL MY AWESOME IMPROVEMENTS OBVIOUSLY (<---- literally best language designer)
20:58:40 <Gregor> You already killed all my semicolons :P
20:58:41 <elliott> Gregor: Was PSL even designed :P
20:58:46 <monqy> litteraly
20:59:10 <elliott> And I was referring to the totally awesome change to call-by-name so that conditionals look normal and the PURE GENIUS of using infix => for function construction to make that work with {} too
20:59:11 <elliott> UTTER
20:59:11 <elliott> GENIUS
21:00:51 <Gregor> Call-by-name works great for if and while, but gets kinda grotty for ... y'know, all other functions.
21:01:15 <ais523> Gregor: you can make it into call-by-value for individual arguments, though
21:01:18 <elliott> Gregor: That's why the normal function syntax, i.e. =>, makes it call-by-value :P
21:01:33 <elliott> Maybe with some prefix for an argument name to say "don't evaluate", or just defining if and while in an ugly manner, 's all good
21:01:41 <elliott> And it avoids hideous () for blocks :P
21:01:42 <ais523> most call-by-name functions have sugar for "call-by-valuise this variable"
21:01:55 <ais523> which in practice is just a case of assigning it to a temporary variable
21:01:59 <elliott> I'm not suggesting you make the "user" language call-by-name in practice which is insane :P
21:02:04 <Gregor> Sure sure.
21:02:04 <elliott> s/which is/, that's/
21:02:28 <Gregor> Incidentally, none of that fixes the ()-for-block thing, that's just an issue of syntax :P
21:02:44 <elliott> Well, it fixes it ELEGANTLY
21:02:47 <ais523> elliott: is it wrong that I normally write C (or previously C++ before I understood what it was) in a single file?
21:02:50 <elliott> By making () <=> {}
21:03:03 <elliott> ais523: Files are a broken abstraction mechanism, so not really
21:03:07 <ais523> I once split a C++ file into four separate files arbitrarily (chronologically?) because it was getting large, but I forget why
21:03:16 <Gregor> elliott: But making () equivalent to {} fixes it regardless of call by name.
21:03:34 <elliott> Gregor: Yes, but then it's unclear how to define functions without just making up a new kind of awful bracket...
21:03:39 <ais523> elliott: well, at least in C++, putting things in as many separate files as possible is arguably best so that you can get dependencies right, if dependencies are shallow
21:03:49 <ais523> or all in one file to save effort for the compiler if dependencies are very intertwined
21:03:52 <zzo38> Then why do you need both () and {} if it is equivalent? Just have one kind. Later the other one can be reserved for future usage
21:03:53 <monqy> making () and {} the same sounds bad...
21:03:57 <elliott> Gregor: My point was, my call-by-name genius makes it possible to fix the ugliness of () for blocks WITHOUT doing something else equally ugly :P
21:04:09 <elliott> zzo38: Because
21:04:10 <elliott> if (condition) (
21:04:11 <elliott> ...
21:04:13 <elliott> )
21:04:14 <elliott> looks disgusting
21:04:17 <elliott> And
21:04:18 <elliott> if {condition} {
21:04:20 <elliott> ...
21:04:20 <elliott> }
21:04:23 <elliott> looks like Tcl :P
21:04:29 <Gregor> elliott: Wait ... now I'm confused, how does your solution not require a different syntax for functions?
21:04:41 <ais523> elliott: heh, in ICA I made {} the same as () together with an implicit claim that what it delimited was a command
21:04:42 <zzo38> Maybe you can have both call-by-name and call-by-value; maybe you can make it so that {} call-by-name and () call-by-value?
21:04:43 <monqy> if (condition) (...) looks fine to me
21:04:46 <ais523> as opposed to, say, a function or expression
21:04:51 <elliott> monqy: As someone who's read Plof code, it really isn't
21:04:57 <ais523> so () and {} aren't quite equivalent
21:05:03 <elliott> Gregor: Please tell me you have logs of #plof (I think it was before glogbot), so I can just help you find the days where I convinced you it was the best soltuion :P
21:05:03 <ais523> but they're close
21:05:17 <zzo38> elliott: I don't think so; unless you try to make it same as other programming language such as C or whatever ,that doesn't count
21:05:17 <ais523> {x} is (x):com
21:05:20 <Gregor> elliott: I'm not unconvinced, I'm confused.
21:05:34 <elliott> Gregor: Yeah, but I'm rapidly on the path to explaining everything again :P
21:05:36 <ais523> elliott: aha, that's it! the type is called "com" not "cmd"
21:05:42 <elliott> Oh, hmm, maybe it's in this log
21:05:43 <elliott> ais523: Ah
21:05:49 <ais523> now I can finally answer a question you asked me a while back, possibly several days ago!
21:05:55 <ais523> pity that I've forgotten what the question was ;(
21:05:57 <ais523> * :(
21:06:05 <elliott> Gregor: Anyway, you just make lambda syntax an ordinary operator.
21:06:10 <elliott> Gregor: (x,y,z) => {x+y+z}
21:06:17 <elliott> (Maybe with a "return" in there w/e)
21:06:19 <Gregor> elliott: Right, so it changes function syntax :P
21:06:22 <zzo38> I don't think if (condition) ( ... ) or if {condition} { ... } looks bad; it just looks not C.
21:06:27 <elliott> Gregor: Not reaaaaally
21:06:36 <elliott> Gregor: It's not syntax in the hard sense, it's just an operator :P
21:06:51 <elliott> That can be defined in the user language (well, apart from the actual function definition wrapper)
21:06:55 <Gregor> elliott: It's a confusing operator since there are no tuples and functions are curried :P
21:07:06 <elliott> Gregor: Uhh, we also resolved this...
21:07:15 * Gregor does a little jig
21:07:24 <monqy> forgetfulnes jig
21:07:30 <elliott> Gregor: But here's an obvious solution that might have been the resolve we worked out MONTHS AGO:
21:07:53 <elliott> Gregor: If =>'s left parameter is an "," operator, then it just becomes x=>{y=>z} where x is the LHS, y is the RHS and z is =>'s RHS
21:08:03 <elliott> Otherwise it's a one-argument lambda in the obvious sense.
21:08:08 <elliott> That was easy :P
21:08:27 <Gregor> Making => not an operator again :P
21:08:31 <elliott> Gregor: ...no?
21:08:36 <elliott> Gregor: It's a call-by-name operator.
21:08:41 <elliott> It can inspect the ASTs it gets.
21:08:55 <elliott> I mean, "for" has to do that (to split its argument into three statements), too
21:09:00 <elliott> (Well, if you want C-style for)
21:09:05 <Gregor> A call-by-name /operator/ ... yup, I guess that's exactly what it is X-D
21:09:31 <Gregor> 'for' isn't an operator, it's a statement.
21:09:39 <elliott> No, it's a function.
21:09:56 <Gregor> I thought you were referring to "C-style for" --- oh, misunderstood, cancel that.
21:09:58 <elliott> An operator is just a function called infix :P
21:10:11 <elliott> Gregor: Well, you can do "for () () () {...}" but I meant if you wanted "for (a;b;c) {...}"
21:10:17 <Taneb> What about postfix?
21:10:21 <elliott> I was just saying that you need call-by-name-with-AST-inspection not just opaque-call-by-name
21:10:28 <Gregor> In essence, these are syntactic macros. GOOD THING I'VE GOT A LANGUAGE FOR THAT!
21:10:52 <elliott> Except they're first-class citizens.
21:11:04 <elliott> Gregor: How have you managed to become stubbornly unconvinced just by FORGETTING the like two days in which you agreed it was the obvious best solution...
21:11:07 <zzo38> Is [] used for anything?
21:11:29 <Gregor> elliott: I'm stubbornly unconvinced?
21:11:33 <Gregor> zzo38: Objects, arrays.
21:11:41 <zzo38> OK
21:11:52 <elliott> Gregor: Well, "<Gregor> In essence, these are syntactic macros. GOOD THING I'VE GOT A LANGUAGE FOR THAT!" seemed like you didn't see how it was better to me
21:12:53 <elliott> Unfortunately it looks like it predates glogbot.
21:14:36 <Gregor> I have the Plof logs.
21:14:44 <elliott> I don't know what date it was :P
21:15:13 <Gregor> Before I go a'laundry'ing, an itemized list:
21:15:21 <monqy> did you say any any special words
21:16:11 <Gregor> Things I am convinced of: Call-by-name functions which just so happen to have call-by-value as the simpler and more common syntax, change to how functions are defined so that () and {} can be equivalent.
21:17:27 <Gregor> Things I don't like as it stands right now: Behavior of , operator is contingent on surrounding operators, and in fact it is rendered not an operator in some of those circumstances.
21:17:35 <Gregor> Things I hate: YOUUUUUUUUUUUUU
21:17:40 * Gregor -> laundry
21:18:08 <elliott> Gregor: That's silly... the "," operator has no inherent meaning, it's entirely dependent on context, like everything in Plof.
21:18:24 <elliott> In essence, the LHS of => is just a DSL.
21:18:27 <ais523> elliott: like "+" in Prolog?
21:18:37 <elliott> It's an argument list.
21:19:04 -!- kwertii has joined.
21:19:06 <elliott> Just like you could say (I'm not saying this is good syntax for it) in an argument list, "lazy x" makes x not be evaluated in the function body.
21:19:18 <elliott> Rather than an application of the function lazy to x.
21:19:33 <monqy> plof sounds a lot like a language i wanted to make when i was a baby. it has the syntax defined in itself, the context sensitivity, and even the () and {} being the same
21:21:26 <elliott> Do you know anything about Plof :P
21:21:30 <monqy> no
21:21:47 <monqy> i also don't know anything about the language i wanted to make when i was a baby
21:22:23 <zzo38> I do not think it make sense () and {} being the same, if they are in fact the same, that is.
21:22:30 <elliott> you've said
21:22:32 <elliott> several times
21:23:01 <monqy> I think it makes sense but it's inelegant and I dislike it :'(
21:23:09 <zzo38> If you have both () and {} the same, then make the variant where {} is instead used for chunk transclusion as in WEB and CWEB
21:24:21 <zzo38> That is, @ space and @* begins a block comment, @: ends a block comment, @{ ends a block comment if it is one but also begins a chunk definition, and { in a code is chunk transclusion. Other codes with @ (including @@) are ignored the second character so that you can use them for other things
21:24:25 <Taneb> Hmm...
21:24:42 <Taneb> A lazy interpreter rigged up to a code generator
21:25:05 <Gregor> elliott: Right, all I'm saying is that if =>'s LHS is a DSL, then => isn't exactly an operator. Which is fine :P
21:25:23 <elliott> Gregor: Well, OK, it's not an operator in the sense of that's how the user thinks about it.
21:25:28 <elliott> But it's an operator as far as Plof is concerned.
21:25:32 <Gregor> Well of course.
21:25:38 <Taneb> I believe, if lazy interpreter means what I'm trying to mean, and it is done properly, that that may approuch Turing super-completeness
21:25:59 <Gregor> Taneb: ... lol
21:26:07 <Taneb> No it wouldn't.
21:26:23 <Taneb> Never mind
21:26:28 <elliott> Gregor: I think the other main improvement I suggested was just adding quasiquotation so that writing compilation rules (and also extending the grammar by expansion in terms of equivalent, simpler syntax) wasn't terrible, but I think you already added that?
21:26:52 <elliott> Erm
21:26:53 <elliott> As in
21:26:56 <elliott> you said plof three already had it
21:27:21 <Taneb> I believe gravity is Turing Super-complete
21:27:28 <elliott> http://esolangs.org/wiki/Gravity
21:27:34 <Gregor> elliott: Yeah, it does, but it ought to be better in 4.
21:27:37 <elliott> s/Turing Super-complete/super-Turing complete/ :P
21:27:45 <elliott> Gregor: Good, because quasiquotation is the best :P
21:27:54 <elliott> Quasiquotation + pattern matching = EVERYTHING IS BEAUTIFUL
21:28:28 <Taneb> Until someone figures out the n-body problem in the infinite case
21:28:54 <Taneb> Which is unlikely
21:29:08 <Taneb> And almost certainly impossible
21:31:10 <zzo38> Which symbol does Plof use for block comments, if it has block comments at all?
21:31:21 <Taneb> That depends...
21:31:50 <Gregor> zzo38: /* ... */, ala C.
21:32:49 <elliott> Gregor: Also, object fields should totally be immutable by default :P
21:32:56 * elliott carefully ensures Gregor disregards anything he ever says in future.
21:33:01 <zzo38> OK
21:33:03 <Gregor> elliott: Yeah, that one ain't happnin' :P
21:33:15 <zzo38> And does it use // for line comments?
21:33:16 <elliott> Gregor: Psssssht, why not :P
21:33:21 <Gregor> zzo38: Yup
21:34:08 <Gregor> elliott: The notion of immutability in a language where including a script can change the entire syntax and semantics of your language is somewhat ... pointless :P
21:34:48 <elliott> Gregor: At the base level, sure, but I'm assuming at least SOME thought is given to the usability of the "default" language :P
21:35:19 <Gregor> Nope. You have to extend the language to do computation.
21:35:29 <elliott> My experience is that most variables are used immutably, apart from the case of "x = some transform on x", which is reassigning a name, not mutating an object.
21:35:41 <elliott> (Unless x is a field, but local variables are unlike fields in many ways)
21:36:35 <zzo38> Which symbols are currently used in Plof and which ones have the same purpose as in C?
21:37:08 <Gregor> Basic math, parenthesization ... ; has the same purpose but is optional ...
21:37:32 <Gregor> Aaaaaaaaaaand ... that's just about it :P
21:38:06 <zzo38> Are any of these symbols used? ` @ # \
21:38:18 <Gregor> All free.
21:38:23 <elliott> Gregor: Let's encase blocks with `...@
21:38:26 <elliott> So. Elegant.
21:38:36 <ais523> elliott: # ... |
21:38:39 <Gregor> elliott helped me transform Plof from a symbolmess to a mostly-symbolless nonmess.
21:38:44 <ais523> </underlambda>
21:38:48 <elliott> Gregor: You should probably make # a one-line comment too, to get yourself unix shebang lines
21:39:14 <Gregor> elliott: I actually have shebang as an explicit case, so even when you have no language at all you can use shebang.
21:39:27 <elliott> Gregor: Groooooooooos :P
21:39:32 <elliott> s
21:39:47 <elliott> Gregor: But yeah okay :P
21:39:48 <zzo38> No. What I was suggestion is that if the extension is .plofw intsead of .plof then it redefines {} to mean chunk transclusion and @ space and @* to introduce block comments, while @: ends a block comment and @{ ends a block comment while defining a chunk name.
21:39:50 <elliott> I like #-comments though.
21:39:57 <elliott> Gregor: I'm thinkin' we should listen to zzo38's ideas.
21:39:57 <Gregor> elliott: Well, the base parser doesn't define a top-level language, but I wanted fythecore (which adds pretty-much-vital but non-language-specific stuff to the base parser) to start with #!/usr/bin/env fythe :P
21:40:06 <elliott> Chunk transclusion would be great.
21:40:15 <zzo38> But I suggest @ to use for the purpose I described.
21:41:12 <zzo38> And perhaps, in case you like to use {} instead of (), these features rae enabled only if the extension is .plofw which also makes the start of the file a comment (enabling shebang lines as well as a "limbo" area like WEB and CWEB does).
21:41:36 -!- ive has joined.
21:41:43 <Gregor> elliott: Also, fytheplof starts with #!/usr/bin/env fythecore
21:41:50 <Gregor> elliott: So running plof runs env twice :P
21:41:58 <elliott> What the hell is fytheplof
21:42:28 <Gregor> elliott: The implementation of Plof in Fythe, which is also ln -s'd to plof even though Plof makes no sense at all if not implemented in Fythe.
21:42:49 <elliott> Gregor: I'd call Fythe part of the Plof language, dude :P
21:42:55 -!- Patashu has joined.
21:43:04 <Gregor> Yeah, I'm well aware of the fact that that particular filename is nonsense.
21:43:50 <elliott> Gregor: Also, when was Plof a symbolmess?
21:43:53 <Gregor> As was plof/plof.plof, so I guess that whole project is plagued with filenames almost as bad as nomath.js :P
21:43:58 <elliott> I don't remember it having all that many symbols.
21:44:06 <elliott> (BTW: [[]] is still the grossest thing ever)
21:44:18 <elliott> Gregor: Heeeyyy I just realised you can use [] for lists now...
21:44:19 <Gregor> elliott: Well, it was never /that/ bad, but it's so much nicer now that it seemed bad :P
21:44:43 <elliott> Gregor: "A:B" is used for inheritance, right?
21:44:47 <Gregor> elliott: Not quite, that creates an ambiguity with array-vs-index in function calls.
21:45:05 <elliott> Gregor: Er, I was talking about [] being objects
21:45:07 <elliott> ARe they not objects any more?
21:45:15 <Gregor> They are, but that's not ambiguous exactly because of A:B
21:45:20 <Gregor> [] bare is never an object.
21:45:39 <elliott> I was thinking you could just use {} for objects because it's always on the RHS of :
21:45:53 <elliott> Then [] is freed up for a purpose that doesn't involve ] lookin' all ugly at column 0 :P
21:46:14 <Gregor> Oh. Yeah, that's certainly true. But it doesn't free up bare [], because the problem with bare [] isn't objects anyway, it's function calls.
21:46:27 <elliott> Gregor: re: ambiguity... I'd just say that "foo[0]" is an index but "foo [0]" passes [0] because that's what I'd expect.
21:46:34 <elliott> Maybe this is unreasonable?
21:46:35 <Gregor> Bleh
21:46:42 <Gregor> I mean, it's technically doable, but ... bleh.
21:46:48 <elliott> Gregor: You could overload calling a list, so that foo(0) is indexing.
21:46:57 <Gregor> Hmmmmmmmmmmmmmmmm
21:47:01 <Gregor> That could work.
21:47:04 <elliott> Then you can do things like
21:47:10 <elliott> [a,b,c,d].map foo
21:47:11 <elliott> -->
21:47:17 <elliott> [foo(a), foo(b), foo(c), foo(d)]
21:47:19 <elliott> where foo is a list
21:47:23 <elliott> IT'S SLICING :'D
21:47:34 <elliott> That's actually kind of great, if you make map an operator :P
21:47:51 <elliott> [a..d]/foo <-- LITERALLY THE MOST BEAUTIFUL SLICING SYNTAX
21:48:25 <elliott> Gregor: Sometimes I can't tell whether I've had a brilliant idea or a terrible one.
21:48:25 <Gregor> I agree with all of these syntax changes except for that last one (which I don't disagree with, I just hmmmmmm with)
21:49:29 <elliott> Gregor: It has the aesthetic niceness that a function and a table are really quite alike, I think MATLAB uses f(x) to index both
21:49:49 <elliott> And being able to use a list as its indexing could be quite nice in a higher-order situation, but yeah, hmm
21:50:39 <elliott> Gregor: I'm kinda reminded of the Haskell memoised fibonacci, where you do "fib = (fibs !!) where fibs = 0 : 1 : zipWith (+) fibs (tail fibs)"... you could just say "fib = 0 : 1 : zipWith (+) fib (tail fib)"...
21:51:11 <elliott> I'm having very "hmm" thoughts about this too :P
21:52:07 <monqy> my language from when i was a baby was like that too
21:52:12 <monqy> that is a thing i remember
21:52:31 <Gregor> elliott: No, I like having lists also be functions mapping indexes to values.
21:52:48 <elliott> Then what's the hmming about
21:52:57 <Gregor> elliott: [a..d]/foo :P
21:53:12 <elliott> Gregor: Oh, well I think / is a terrible map operator :P
21:53:45 <elliott> Gregor: And if it's being used for slicing, the function should really come first, too.
21:54:15 <Gregor> Anyway, I have to think if there are any major implementation qualms with having lists also be functions.
21:54:18 <elliott> Gregor: Oh wait, you can actually get slicing as foo(a..d) trivially... because it's the obvious definition of indexing a list by a list.
21:54:55 <elliott> Gregor: Well, I'm not saying lists should literally be functions, I'm just saying that you should overload application syntax... which is usually a sign of awfulness (see C++), but if you want to subclass (yeah yeah "extend" w/e) functions you have to do that too.
21:55:01 <elliott> I guess that's literally the same thing in a way.
21:55:38 <Gregor> I'm not at all ashamed to have List be a subtype of Function >: )
21:55:59 <elliott> Gregor: Composing lists YESSSS
21:56:12 <elliott> Gregor: You do want that subtyping though, so that everything that wants a function is OK with having a list
21:56:21 <Gregor> Yes, of course.
21:56:27 <elliott> BTW is inheritance still copy-and-delegate or is it the rightful delegate now
21:56:51 <Gregor> It was lazy-copy-and-delegate :P
21:57:07 <Gregor> And right now it's in the air.
21:57:19 <elliott> Gregor: That still means you can't mess with T and have S get the changes too... not that I approve with messing with T, on moral grounds, but it feels weird.
21:57:35 <elliott> Actually fields should be immutable by default just so that you can't monkeypatch. :|
21:58:58 -!- Zuu has quit (Read error: Connection reset by peer).
21:59:15 <Gregor> The only fundamental issue with "rightful" delegation is that it's slow without inline caching, and implementing inline caching in this environment may actually be one of the circles of Hell.
21:59:18 -!- augur has quit (Remote host closed the connection).
22:00:17 <elliott> Gregor: The idst/cola/pepsi/whatever paper implemented inline caching for their ridiculously-dynamic system >:)
22:00:30 <elliott> It might even be helpful :P
22:02:10 <zzo38> Perhaps in .plofw mode, /* should just parse as the two tokens / and * instead of block comment; /* only introduces a block comment in .plof and .fythe mode instead.
22:02:22 <elliott> Gregor: So you're implementing .plofw mode, right?
22:02:45 <zzo38> And chunk names should contain balanced {}
22:02:47 <Taneb> Oh, goodnight
22:02:55 <elliott> Taneb: hi
22:02:59 -!- Zuu has joined.
22:03:04 <zzo38> As far as I know, what I described is sufficient; tell me if it is wrong.
22:03:11 -!- Taneb has quit (Read error: Connection reset by peer).
22:04:39 -!- ais523 has quit (Remote host closed the connection).
22:09:25 <zzo38> If you implemented .plofw mode, I might wrote Plof-to-TeX program, possibly itself in Plof as well. Although, the same file format would work even if you later wrote other programs to take .plofw (or even some can take .plof file) to make printout in other format, such as LaTeX, HTML, or whatever other format you want.
22:12:03 <elliott> Gregor: Definitely not using Plof if you don't do all this
22:16:40 <zzo38> I will enter my suggestions of .plofw mode more accurately (it is still few; I am purposefully omitting many details so you can do what is best for you): If extension is .plofw then the beginning of the file is a block comment that can contain @ commands (which are usually ignored). @ commands are @ followed by another character (possibly another @); unrecognized @ commands are ignored.
22:16:44 <Gregor> elliott: Considering that you're quite likely not to use Plof /anyway/, my answer is *eh* :P
22:17:08 <zzo38> In .plofw mode, /* no longer begins a block comment, but is the two tokens / * (ignore this line if you want to).
22:17:18 -!- azaq23 has quit (Read error: Operation timed out).
22:17:20 <zzo38> The command @ space or @* begins a block comment.
22:17:25 <elliott> Gregor: Hey, I started writing that bot in earnest before I realised that Plof three was unusably broken and terrible.
22:17:40 <Gregor> zzo38: Everything you've said is implementable (although it'd be a pain since Plof's syntax is defined by essentially a BNF, so I'd need conditional productions), but accomplishes, to my knowledge, nothing that I value.
22:17:49 <zzo38> The command @: ends a block comment if you are in one, and enters unnamed chunk mode.
22:18:07 <zzo38> The command @{...} ends a block comment if you are in one, and enters named chunk mode. The ... is the chunk name.
22:18:27 <zzo38> {...} in a code in .plofw mode includes all code in the contents of all defined chunks with that name in order.
22:18:39 <zzo38> Chunk names can contain nested {}
22:18:45 <Gregor> elliott: YOU STILL HAVE NO 1-8
22:18:47 <zzo38> And that is everything.
22:19:25 <elliott> Gregor: Yup
22:19:34 * Phantom_Hoover → sleep
22:19:35 -!- Phantom_Hoover has quit (Quit: Leaving).
22:19:37 <zzo38> If the extension is *not* .plofw, then {} is the same as () like you already described before.
22:19:53 -!- nooga has quit (Ping timeout: 252 seconds).
22:20:04 * Gregor modifies Plof's syntax to /only/ use the characters [12345678!@#$%^&*]
22:20:32 <elliott> Gregor: Good
22:20:41 -!- FireFly has quit (Quit: FireFly).
22:20:44 <zzo38> Gregor: It is a pain because of BNF? Can you show me the BNF?
22:21:09 <Gregor> zzo38: Having conditional productions is a pain.
22:21:37 <zzo38> Everything I said should only be used if extension is .plofw and not used if extension is .plof or .fythe
22:21:49 <Gregor> Yes, hence conditional.
22:22:11 <zzo38> You could make the BNF separate from the rest of the parser so that you have two BNFs
22:22:23 <elliott> Gregor: Can't you just do if (...) { grammar { ... } }
22:22:37 <Gregor> elliott: Yes, then I have two grammars :P
22:22:51 <elliott> Gregor: s/grammar/whatever you do to extend the syntax jeez/
22:22:59 <Gregor> No, it's grammar {}
22:23:18 <Gregor> elliott: But if you only did a single if, then ALL files would have that syntax. To support both, you need to have two grammars.
22:23:34 <elliott> Right
22:23:40 <Gregor> But more importantly ... why?
22:23:41 <Gregor> :P
22:23:49 <elliott> Because plofw mode is the shit
22:24:46 <zzo38> Perhaps make the "grammar" command take a string argument that causes it to work only for the specified file extensions (allowing wildcards and | if you want to specify more than one)
22:24:59 <elliott> Gregor: How receptive are you to suggestions for a module system? :P
22:25:01 <zzo38> And "*" is the default.
22:25:32 <Gregor> elliott: Quite.
22:25:46 <Gregor> elliott: Considering that the current situation of "lol what's a module system" is pretty much the worst.
22:25:50 <elliott> Gregor: Yessssssss
22:25:59 <elliott> Gregor: (I am SO OPINIONATED about module systems :P)
22:26:03 <elliott> Well, not that opinionated.
22:26:18 <elliott> I hate 99 percent of existing module systems, but mostly because they don't even try :P
22:38:24 <Gregor> According to Google Correlate, JavaScript is 99% correlated with AIX.
22:39:08 <Gregor> OCaml, on the other hand, is 82% correlated with printf.
22:39:26 <elliott> Definitely.
22:39:30 <Gregor> And only 81% correlated with "gaussian"
22:40:02 <Gregor> BrainFuck contains a naughty word, and is as such not correlated with anything at all.
22:40:11 <Patashu> Oh n o
22:40:19 <Patashu> We are protect children
22:41:46 <Gregor> Programming is 99% correlated with postscript, but only 98% correlated with classical MIDI.
22:43:13 <Gregor> Patashu: Children are 90% correlated with hazards.
22:43:40 <Patashu> Children are 99% correlated with think
22:43:49 <Gregor> But only 88% correlated with "frequency wavelength"
22:44:05 <Patashu> LOL
22:44:13 <Patashu> Why is it as high as 88%?
22:44:18 <Gregor> Don't look at me :P
22:44:19 <Patashu> I think I need to see some statistics on this distribution
22:44:22 <Patashu> median, mean etc
22:44:23 <elliott> How correlated are wizards with graphs
22:44:29 <Patashu> what's the average of all correlations
22:44:35 <Gregor> "Think", of course, is 87% correlated with green poop.
22:46:52 <monqy> is anything not correlated
22:50:53 <Gregor> Wikipedia is 97% correlated with "walk through hell"
22:51:30 <Gregor> Facebook is 99% correlated with "video tube" X-D
22:51:34 <Gregor> *video tubes
22:51:45 <Gregor> Also 99% correlated with "text from computer"
22:52:19 <Gregor> It's also 99% correlated with both "porhub" and "orn hub", but not "pornhub" somehow X-P
22:52:59 <elliott> a hub for my orns
22:53:09 <Gregor> Google is 98% correlated with ... kratom ... ???
22:53:26 <elliott> Naturally
22:53:30 -!- pumpkin has changed nick to copumpkin.
22:53:50 <elliott> Gregor: What we're learning here is that anything less than 99.9 percent correlation is nothing :P
22:53:58 <Gregor> Yup :P
22:54:01 <Gregor> Pumpkin is 97% correlated with "what is a pumpkin"
22:54:29 <Gregor> Actually the things that are seasonal tend to have semi-logical results in this.
22:54:59 <Gregor> e.g. snow -> plow, santa -> carols, christmas, etc
22:56:05 <zzo38> Rui sometimes plays the rule that no cards can be taken from trash.
22:56:16 <zzo38> Other times the rule is that all retreat costs are increased by one.
22:56:46 <zzo38> Or that resistance only subtract one instead of three.
22:57:19 <elliott> whos rui
22:57:23 <Patashu> zzo38: Is there a competitive pokemon card battling scene?
22:57:47 -!- nys has quit (Quit: quit).
22:58:41 <zzo38> Patashu: I don't know; I was playing Pokemon Card GB2. The AI is not very good. But I like the rule that decks are constructed mostly at random. Since this might cause you to have unusable evolution cards, I also make a rule allowing you to use some evolution cards that cannot be used normally.
22:59:16 <Patashu> I played the -shit- out of pokemon tcg for the game boy
22:59:27 <Patashu> I came up with decks countering different gyms and so on
22:59:56 <zzo38> Patashu: I decided to use one deck for everything instead.
23:00:43 <zzo38> The rule is: Any card that says it evolves from can be played normally, but you can also play any evolution card that is of both the correct stage and the same energy type of the card it is evolving from, as long as all cards in the stack have an actual evolution of the stage you are playing.
23:01:48 <zzo38> Patashu: I would prefer random deck mode but Pokemon Card for GameBoy does not have such a mode. Also, I was playing Pokemon Card GB2. In that game I instead used a deck per gym since different gyms have different requirements.
23:02:20 <zzo38> However at the end I played against the GR computer and Dr.Ooyama's computer, I made up a different deck using for all of that.
23:07:21 <zzo38> The deck is: 4#92L17+2L17,L26+2L38 3#96L12+2L36 124L23 150L30 21L13 35L15+D33 108L26 249L55 ENERGYREMOVAL ENERGYRETRIEVAL ENERGYSEARCH 2POTION GAMBLER ITEMFINDER CHALLENGE GUSTOFWIND FULLHEAL SWITCH 2POKEMONTRADER BILL MASTERBALL { dc rc } 22{ @ }
23:08:07 <zzo38> What is your opinion of this deck?
23:08:50 <zzo38> Note: { dc } = DOUBLE COLORLESS ENERGY { rc } = RECYCLE ENERGY { @ } = PSYCHIC ENERGY
23:09:03 <Patashu> It's been too long since I played the game so I don't have an opinion
23:09:25 <zzo38> Do you understand my notation? I use it to make short Pokemon card deck notation.
23:09:58 <Patashu> yes
23:10:12 <Patashu> well, almost
23:10:31 <zzo38> Any part you do not understand? Notify me if that is the case, please.
23:10:37 <Patashu> The # is a token separator? To split quantity from which pokemon it is
23:10:53 <Patashu> Or hmm
23:11:00 <zzo38> Patashu: Yes. Only at the beginning of an evolution chain though.
23:11:06 <Patashu> Oh!
23:11:08 <Patashu> I get it now
23:11:55 <zzo38> (Pokemon numbers are omitted for Stage 1 and Stage 2 cards, since they are implied)
23:12:05 <CakeProphet> double colorless green ideas sleep double curiously
23:13:34 <zzo38> I use a punctuation mark symbol for each basic energy, and a two lowercase letter code for each special energy.
23:14:15 <zzo38> Do you like to use this notation for your own decks?
23:15:13 <zzo38> Note it is a bit insufficient in some cases, but it is sufficient for all cards in Pokemon Card GB2 (however, Pokemon numbers must be specified for EEVEE evolution cards), and it can be extended to work in other cases too.
23:16:01 <zzo38> I lied about punctuation mark for each basic energy; fire is actually { M } and water is { 6 } in my notation.
23:17:24 <zzo38> { rb } = RAINBOW ENERGY { po } = POTION ENERGY { fh } = FULL HEAL ENERGY
23:19:42 <zzo38> If the Stage 1 card is skipped, you can put ++ and the notation still works if you omit the corresponding Basic Pokemon card for some reason.
23:22:59 <zzo38> Do you think RECYCLE ENERGY is a very useful card? I think so.
23:24:19 <zzo38> What should I call it if I make up the new kind of Haskell preprocessor program?
23:26:07 <CakeProphet> so I'm not entirely sure how rsync -z compresses shit
23:26:15 <CakeProphet> because the output directories do not appear to be compressed in any way.
23:26:28 <CakeProphet> maybe it's compress for transfer over ssh?
23:27:09 <CakeProphet> oh, yes it is.
23:27:11 <CakeProphet> lame.
23:27:11 <elliott> it compresses over the transfer.
23:27:13 <elliott> it's not just ssh.
23:27:16 <elliott> rsync:// protocol too.
23:27:23 <elliott> you want to use -z, it helps immensely
23:27:37 <CakeProphet> I'm transferring locally though.
23:27:38 <elliott> (if you're doing it over a network)
23:27:41 <elliott> k then
23:27:53 <CakeProphet> so it's a waste of time or it ignores the option I hope, yes?
23:28:48 <elliott> no point to use -z for local transfer.
23:29:28 <zzo38> I realized by idea about Huffman Sokoban is similar to the fax encoding.
23:32:17 <CakeProphet> sudo link scripts/backup_files.sh /etc/cron.daily/backup_files.sh
23:32:17 <CakeProphet> link: cannot create link `/etc/cron.daily/backup_files.sh' to `scripts/backup_files.sh': Invalid cross-device link
23:32:20 <CakeProphet> wat
23:32:24 <CakeProphet> is /etc another device? :P
23:36:11 <elliott> ls -lh /etc/cron.daily/backup_files.sh
23:36:12 <elliott> df
23:36:37 -!- cchackermirc has quit (Read error: Connection reset by peer).
23:36:55 <CakeProphet> -rwxr-xr-x 1 root root 360 2011-09-04 19:33 /etc/cron.daily/backup_files.sh
23:37:02 <CakeProphet> NICE TRY ELLIOTT BY DF ISN'T IN BIN
23:37:30 <elliott> What?
23:37:37 <CakeProphet> lol nothing
23:37:41 <elliott> I'm telling you to run the df command.
23:37:49 <CakeProphet> NEVERMIND
23:38:01 * CakeProphet is so good at jokes it's ridiculous.
23:38:31 <CakeProphet> ah well /home is encryptfs
23:38:35 <CakeProphet> so that might be why.
23:40:17 <elliott> Tada.
23:40:25 <elliott> CakeProphet: Why do you want a hardlink anyway
23:40:40 <CakeProphet> so I don't have to copy it over everytime I change the original.
23:40:55 <CakeProphet> which has been more often than I thought it would be.
23:40:57 <elliott> CakeProphet: Do you really not know what soft links are
23:41:13 <CakeProphet> oh, I thought link did soft links. :P
23:41:14 <elliott> Especially since a hard link won't even achieve that
23:41:21 <elliott> CakeProphet: man link, man ln
23:42:34 <CakeProphet> I see.
23:42:56 <CakeProphet> elliott: but no, I have not been using linux out of the womb
23:43:01 <CakeProphet> so there are many things that are new to me.
23:43:20 <tiffany> I've been using linux for a few years now
23:43:22 <elliott> symlinks are like day two material?
23:43:31 <tiffany> ... :s
23:43:36 <tiffany> I didn't learn about symlinks for a long time
23:43:37 <CakeProphet> I knew what they are but not how to set them up with sh since I stuck to UI for a while.
23:43:58 <elliott> Wow, Nautilus really does let you make symlinks.
23:44:05 <CakeProphet> of course it does.
23:44:27 <elliott> I would expect GNOME to have its own stupid file aliasing mechanism
23:44:28 <tiffany> I, for the longest time, confused the arguments in ln -s
23:44:48 <tiffany> ... nautilus's .desktop file generator was broken last I used it
23:45:43 <CakeProphet> weeeeeeee symbolic links.
23:45:58 * CakeProphet is clearly on his way to being a pro sysadmin
23:45:58 <monqy> wee
23:46:11 <elliott> Symbolic links are kind of terrible
23:46:27 <CakeProphet> they are a tool for great laziness I am happy face.
23:46:38 <monqy> ok
23:46:39 <Patashu> http://tasvideos.org/forum/viewtopic.php?t=11736&highlight=&sid=9517477d993e2ad65a6eb9ee18d6f5b4 Stop stop! Stop stop stop!
23:47:01 <elliott> CakeProphet: Bind mounts have much nicer semantics.
23:47:07 <elliott> Patashu: what
23:47:17 <CakeProphet> I have no idea what that is.
23:47:18 <Patashu> Watch it
23:47:20 <Patashu> It's only one minute
23:47:33 <elliott> in a minute
23:47:36 <elliott> and it's five minutes here
23:47:39 <elliott> six, really
23:48:13 <Patashu> the remaining 5 minutes is credits
23:48:20 <Patashu> because TAS encodes have to include the credits if there are any
23:48:22 <CakeProphet> elliott is lives in a field of anti-time-dilation.
23:48:24 <Patashu> (though sometimes they don't)
23:48:45 <elliott> CakeProphet: http://plan9.bell-labs.com/magic/man2html/2/bind... Linux has bind mounts nowdays but they're too limited
23:48:53 <elliott> Oh, wait
23:48:54 <elliott> CakeProphet: http://plan9.bell-labs.com/magic/man2html/1/bind
23:49:00 <elliott> That's a more reasonable introduction
23:49:18 <CakeProphet> elliott: so symlinks are bad because programs occasionally have problems with them, right
23:49:22 <CakeProphet> or is there something else?
23:49:37 <elliott> CakeProphet: Something else; basically ".." doesn't mean what you think it does in the presence of symlinks
23:49:41 <elliott> Lemme get you the thing on it
23:49:52 <elliott> (The short paper the plan 9 folks wrote about it)
23:50:11 <CakeProphet> whaaaa
23:50:16 <elliott> CakeProphet: Gimme a minute
23:50:30 <CakeProphet> THERE ARE ONLY SO MANY MINUTES ELLIOTT
23:50:33 <CakeProphet> you cannot have them all.
23:51:18 <elliott> CakeProphet: http://doc.cat-v.org/plan_9/4th_edition/papers/lexnames
23:52:07 <elliott> (Found http://harmful.cat-v.org/software/symlinks when trying to find it amidst the ball of mostly-yawn-inducing gunk that is cat-v; it's rather less descriptive but describes the essential problem concisely)
23:53:21 -!- MDude has quit (Ping timeout: 240 seconds).
23:54:20 <CakeProphet> ah I see.
23:57:02 <CakeProphet> but symlink files don't have that particular problem.
23:57:18 <elliott> Personally fuck foreach loops and vars.
23:57:19 <elliott> I despise both of them, boxing nightmares and they make code unreadable (well vars do).
23:57:19 <elliott> I don't see the benifit of using foreachs they are harder to read, harder to debug, cannot remove elements of a collection within them when iterating that collection.
23:57:36 <CakeProphet> ...wat
23:57:42 <Patashu> is that you or a quote
23:57:49 <elliott> Patashu: if I ever say something stupid, it's a quote
23:57:53 <Patashu> o
23:57:53 <elliott> especially if i type three lines in one second
23:58:06 <Patashu> but seriously what's a good idiom for removing elements of a collection you're iterating over
23:58:17 <CakeProphet> filter
23:58:21 <Patashu> oh
23:58:30 <elliott> Patashu: don't do it
23:58:39 <Patashu> elliot: why not :'(
23:58:48 <CakeProphet> Patashu: that won't be an in-place operation though. Which is probably what you meant.
23:58:50 <elliott> but yeah, filter
23:58:56 <elliott> it can be in-place
23:59:02 <elliott> "RemoveIf" or whatever stupid name you want
23:59:48 <CakeProphet> yeah foreach is definitely harder to debug than a C for
23:59:54 <CakeProphet> so many places you can fuck it up
←2011-09-03 2011-09-04 2011-09-05→ ↑2011 ↑all