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: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: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:26 <Lymee> > text $ reverse "ih, tognuf"
00:16:29 <monqy> 15:12:23 < fizzie> ^ignore ^(EgoBot|HackEgo|toBogE|Sparkbot|optbot|lambdabot)!
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:43:00 <oerjan> agda: the driving force of morse's law
00:44:27 <CakeProphet> literally I'm waiting like 30 seconds for programs to start.
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: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!
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:40:39 <EgoBot> There is already an interpreter for sh!
01:41:53 <oerjan> \o/ \o_ _o_ _o/ \m/ \m/ \o_ _o_ _o/ \o/
01:41:54 <myndzi> /| /`\ /< /< | |\ |\ /`\ |\
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:47:17 <CakeProphet> also why were his feet different when you did \m/ \m/ that time
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: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:37 <CakeProphet> \o/ \o_ _o_ _o/ \m/ \m/ \m/ \m/ \m/ \m/ \o_ _o_ _o/ \o/
01:50:38 <myndzi> /`\ |\ |\ >\ /'\ |\ /`\ /|
02:00:30 -!- GreaseMonkey has joined.
02:02:16 <Gregor> elliott: omg I'm actually working on Fythe ... AND Plof!
02:23:27 <Lymee> \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/
02:23:59 <oerjan> a little too wide i suspect
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:45 <lambdabot> lexical error in string/character literal at chara...
02:40:59 <lambdabot> "\\o\\ /o/ \\o\\ /o/ \\o\\ /o/ \\o\\ /o/ \\o\\ /o/ \\o\\ /o/ \\o\\ /o/ \\o\...
02:41:13 <oerjan> > text $ cycle "\\o\\ /o/ "
02:41:40 <oerjan> > var $ cycle "\\o\\ /o/ "
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:44 <oerjan> ^ul ( )S( \o)(\ /o)(/)******::::::S
02:45:55 <oerjan> ^ul ( )S( \o)(\ /o)(/)********::::::S
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: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:46 <CakeProphet> oerjan: I mean how it decides which stick figure to use
02:55:03 <oerjan> well yeah that's obviously randomized
02:56:25 <CakeProphet> IT COULD BE SOMETHING FANCY YOU NEVER KNOW
02:57:03 <oerjan> also, slightly buggy...
02:57:20 -!- MDude has changed nick to MSleep.
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: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: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: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: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:41 <monqy> first class citizens?
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: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:52 <monqy> CakeProphet: so how do you deal with side effects and friends
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:32 <CakeProphet> everything is pretty consistent and easily expected.
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:50 <monqy> what's "left to right"
03:25:01 <monqy> there are lots of things you can do that go left to right
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: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: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: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:35:01 <CakeProphet> I guess I'll want to do continuations if/when I get around to user-defined functions.
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
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:46:57 -!- augur has quit (Remote host closed the connection).
04:51:19 -!- lambdabot has joined.
05:00:40 -!- Gregor has quit (Excess Flood).
05:00:51 -!- Gregor has joined.
05:04:02 <CakeProphet> I am trying to search all of Wikipedia's text for the word was
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 <zid> maybe I don't know much xpath
05:05:42 <zid> can't you just grab all innerHTML and strstr it for was? :)
05:06:07 <monqy> why do you even need was
05:06:24 <zid> strstr is a C function
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:43 <zid> <b>hello</b> b.innerHTML = "hello";
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: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 <monqy> try a better implementation and compare results?
05:11:56 -!- oerjan has joined.
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: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:17:07 <Patashu> I'm just testing things out
05:17:15 <Patashu> since I don't know much about xpath
05:17:56 <CakeProphet> I can just do *[text()] to grab all text nodes, join them together, and search.
05:20:31 <Patashu> path="/bookstore/book[contains(title, 'E')]/title";
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:25:12 <Patashu> Maybe I don't understand what a text node is
05:26:00 <CakeProphet> <a href="http://www.google.com/">WOW GOOGLE</a>
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:20 <Patashu> if you do contains(node, string) then it grabs node's text() to do the test
05:30:02 <Patashu> *[contains(., 'was')]/text() might work?
05:30:07 <Patashu> if I understand xpath right
05:37:04 <CakeProphet> *[contains(., 'asdasgagasf') or contains(. , 'was')]
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:56 <monqy> ca is totally for california
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: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: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:38 <tiffany> I want my <pre width="80"> back
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:50:31 <Patashu> wacky waving inflatable wacros
05:52:39 <CakeProphet> though it does give the program an amusing name. :P
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:41:24 <CakeProphet> also this is a laptop so my external is not always going to be present.
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: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:20:14 <tiffany> You could throw a generic backup-first-arg script into /usr/local/bin and then run it from cron
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: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: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:32:04 <tiffany> They decided to block us-dcma violating sites on all of the googles
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: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:31 <monqy> most of what characters
07:36:54 <monqy> perhaps it's variable-width?
07:37:00 <monqy> that could make it look broken
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:39:34 <monqy> my uses for ´: :´( and ``this´´ looks better than :'( and ``this'' respectively
07:40:36 -!- aloril has joined.
07:41:01 <CakeProphet> yeah because ``this´´ is so much better than "this"
07:42:00 -!- nguyenchinh07 has joined.
07:42:47 -!- nguyenchinh07 has left ("Leaving.").
07:50:58 -!- augur has quit (Remote host closed the connection).
07:56:23 -!- aloril has quit (Ping timeout: 245 seconds).
08:01:35 <shachaf> Well, that looks like fun.
08:08:28 -!- aloril has joined.
08:25:46 -!- nooga has joined.
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: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:53 <CakeProphet> monqy: I have a meter on my top panel that shows percentage of disk usage.
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:34 <zzo38> Have you done any display hacks?
09:10:00 <zzo38> Yes, including you.
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: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: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: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: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: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: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: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: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: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: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: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:54 <zid> it lets you end ?> in the middle of constructs and all sorts
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: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: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:03 <ais523> rather than backslash-newline
11:34:13 -!- oklopol has quit (Ping timeout: 268 seconds).
11:34:33 <zid> ais523: isn't that techincally a gnu extension?
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:09 <zid> you can in gnu
11:35:10 <ais523> unless it's a preprocessor substitution of a string
11:35:29 <ais523> #define SURROUND_BY_BLAH(meow) "blah" meow "blah"
11:35:37 <ais523> but only if you give it a string constant as argument
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: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: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: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:09 <CakeProphet> olsner: I have this amazing mechanism in my brain that allows me to think of statements as statements AND lines.
11:40:09 <CakeProphet> but feel free to demand other normative assertions from me.
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: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: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: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: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: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:21 <Taneb> Which may or may not create additional pens
15:01:28 <zid> so, shaders?
15:01:54 <tiffany> I tried rendering a 16gb mandelbrot render with 1000 iterations once
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: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:46 <Taneb> Finite-length tape boolfuck
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: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: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: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:11:48 <Taneb> I'm creating a three-cell IO-less brainfuck to BCKW+SKI combinatory logic
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:15:32 <tiffany> that language is awesome to program in :p
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: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: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: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: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:35 <ais523> elliott: I didn't know that
16:42:40 <ais523> where did the meme come from?
16:42:53 <ais523> hmm, that comment of mine sounds so Vorpal that I should have changed the : to a ,
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: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: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:55 <ais523> is the meme actually older than Haskell? that would be hilarious
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:45 <Vorpal> ais523: Bad luck for you, I'm using a different client atm
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: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: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: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: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:53:59 <elliott> 21:00:32: <Sgeo> http://pchat-irc.com/blog/ wow
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: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: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: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 <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: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:38 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ff7: not found
17:26:59 <fungot> Selected style: ff7 (Full script of the game Final Fantasy VII)
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: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 <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: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:43 <fungot> itidus20: your real self. will you and aerith are my only real job is watching over shinra's documents...
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: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: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: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: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:43:04 <tiffany> I have 25gb of ~/Downloads and 25gb of ~/Videos :P
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: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: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:07 <derdon> KingOfKarlsruhe: didn't you'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: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: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> 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: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: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:32 <Phantom_Hoover> Even better: you could do it in assembly and you'd be a Real Programmer.
17:56:40 <elliott> Phantom_Hoover: Well, better than C++.
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: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: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:48 <itidus20> Phantom_Hoover: www = sorry to trouble you
18:03:04 <elliott> I, too, have heard of xkcd
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: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:50 <tiffany> gregor: md5 hash of every character in the url concatinated together for the unique identifier
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: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:13 <Gregor> Of course I'd guess the two powers of two around the correct one :P
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:51 <elliott> I like how http://www.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com/ lists four disadvantages first
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: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:46 <tiffany> I just crashed my entire domain with that subdomain
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:48 <cheater> you turned off the internet!
18:18:15 <Vorpal> tiffany: you don't run your own dns server?
18:18:30 <Vorpal> <elliott> As we all know, domains are computers. <-- obviously not. Cars can crash too. Thus it must be one.
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:51 <elliott> Lov,e,,,,,,,,,,,,,,,,,,
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:21:05 <elliott> ???????????????????????????????/////////
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:31:18 -!- TanabIsNotHere has changed nick to Taneb.
18:33:03 <Taneb> I've been thinking...
18:33:14 <Phantom_Hoover> nys, we are a channel for the discussion of transmissible spongiform encephalopathies.
18:33:22 <elliott> Phantom_Hoover: he's been here before
18:35:07 <nys> I've been here from around four years ago
18:35:28 <nys> since around 2006, and even before
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:42 * nys waves back...sinisterly
18:38:33 <Taneb> nys, why you wave left-handedly
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:41 <elliott> i approve of this reign of terror
18:41:54 <nys> :< what is BSE??
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:10 <elliott> ^bf ++++[>++++++++++++++++<-]>++++++++.[-]<++++++[>++++++++++++++++<-]>+++++.[-]
18:46:12 <nys> it outputs exactly two characters
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:44 <EgoBot> I'm sorry, but Brazil isn't a vegetable!
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: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: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: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: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:43 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
19:01:27 <nys> does either implement any kind of input?
19:03:27 <elliott> Funge-98 has that and a whole extension mechanism
19:03:29 <fungot> elliott: it would bring us an easier life.
19:06:56 <nys> ^bf ++++++[>+++++++++<-]>.[-]<++++++++++[>++++++++++<-]>+.+++++++..+++.[-]<+++[>+++++++++++<-]>.
19:07:43 <nys> ^bf ++++++++[>+++++++++<-]>.[-]<++++++++++[>++++++++++<-]>+.+++++++..+++.[-]<+++[>+++++++++++<-]>.
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: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: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: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: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:22:34 -!- TanebIceCream has changed nick to Taneb.
19:22:56 <nys> which does !brainfuck need to terminate with, CR or 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: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: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: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: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:47 <nys> !brainfuck +++++++++[>++++++++++<-]>.++++.++++.[-]<++++[>++++++++<-]>.+++++++++++........+++++++++++++++[>++++++>++++>+++>+++<<<<-]>+.>++.>--...>--.<..>..<...>..<<.>.<..--....>++.<<++.>++.>+.>.+++.<<.>---..>.<------------ ---------------------.[-]++++++++++.
19:54:09 <Taneb> ^bf +++++++++[>++++++++++<-]>.++++.++++.[-]<++++[>++++++++<-]>.+++++++++++........+++++++++++++++[>++++++>++++>+++>+++<<<<-]>+.>++.>--...>--.<..>..<...>..<<.>.<..--....>++.<<++.>++.>+.>.+++.<<.>---..>.<------------ ---------------------.[-]++++++++++.
19:54:13 -!- TeruFSX2 has joined.
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?
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: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: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: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: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: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: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:34 <Gregor> Taneb: Learn the JOY THAT IS FYTHE!
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:56 <Gregor> elliott: The stdlib is mostly implemented in 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: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: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: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
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: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: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: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: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: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: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: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: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: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:27 <Gregor> Making => not an operator again :P
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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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:23 <elliott> Gregor: Let's encase blocks with `...@
21:38:39 <Gregor> elliott helped me transform Plof from a symbolmess to a mostly-symbolless nonmess.
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: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: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: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:47:04 <elliott> Then you can do things like
21:47:17 <elliott> [foo(a), foo(b), foo(c), foo(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: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: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: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: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: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:40 <Gregor> But more importantly ... why?
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:46 <Gregor> elliott: Considering that the current situation of "lol what's a module system" is pretty much the worst.
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: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: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:19 <Patashu> I think I need to see some statistics on this distribution
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: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:53:09 <Gregor> Google is 98% correlated with ... kratom ... ???
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: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: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: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:11:00 <zzo38> Patashu: Yes. Only at the beginning of an evolution chain though.
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:11 <elliott> it compresses over the transfer.
23:27:23 <elliott> you want to use -z, it helps immensely
23:27:38 <elliott> (if you're doing it over a network)
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:36:11 <elliott> ls -lh /etc/cron.daily/backup_files.sh
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:41 <elliott> I'm telling you to run the df command.
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:14 <elliott> Especially since a hard link won't even achieve that
23:41:21 <elliott> CakeProphet: man link, man ln
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: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: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:58 * CakeProphet is clearly on his way to being a pro sysadmin
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: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:36 <elliott> and it's five minutes here
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: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: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:16 <elliott> CakeProphet: Gimme a minute
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: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:49 <elliott> Patashu: if I ever say something stupid, it's a quote
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:48 <CakeProphet> Patashu: that won't be an in-place operation though. Which is probably what you meant.
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