00:13:02 <ihope> My password for the esolang wiki is "esoteric"? How insecure.
00:13:53 <ehird> ihope: No, it's not.
00:14:14 <ihope> You didn't try it, did you?
00:14:19 <oklopol> no one would ever expect it to be that simple!!
00:15:07 <ehird> it's an #ircnomic term
00:15:22 <ehird> i do believe you are a player
00:15:27 <ehird> oklopol: do you accept the Swhack?
00:15:59 -!- pikhq has joined.
00:16:22 <ehird> pikhq: You'd like #ircnomic. It has silly Agora-Like Uppercase Terms
00:16:30 <ehird> The new ruleset is proving to be quite a joy,
00:16:44 <oklopol> i don't know what swhacking is, but my pun works no matter what it is
00:17:28 <ehird> oklopol: You must answer yes or no - do you accept the Swhack?
00:18:00 <oklopol> you are confusing the real world with ircnomic, man :)
00:18:12 <oklopol> i refuse to do either until i know what swhackin is
00:18:24 <ehird> oklopol: that's not an option. Do you accept the Swhack or not?
00:18:48 <pikhq> There's but one problem: ATM, I don't have time for much in the way of nomics.
00:18:53 <ehird> pikhq: and ihope is an admin there, so there's even part of Agora in there
00:18:55 <pikhq> I will post-graduation, though.
00:19:00 <ehird> and it's not like ircnomic does anything
00:19:04 <ehird> it's not the most in-depth nomic
00:19:07 <lament> don't nomics kinda suck?
00:19:08 <pikhq> Which will be in a month.
00:19:11 <pikhq> lament: I love them.
00:19:26 <lament> don't they all die because the players lose interest because the game is so boring?
00:19:45 <oklopol> lament: isn't that true for everything?
00:19:54 <pikhq> lament: Agora is in its second decade of existence.
00:20:11 <lament> oklopol: no, people manage to finish other games quite often
00:20:27 <oklopol> games that can be finished are never fun
00:20:42 <lament> the finish that can be finished is not the true finish.
00:20:55 <oklopol> hmm, i guess you got me there
00:20:56 <ehird> lament: Heck, you should pop in to #ircnomic. It's not *totally* lame, I promise ;)
00:21:09 <ehird> Although some people don't like the vote-tracking bot, you probably will, because it's PYTHON OH GOD
00:21:10 <oklopol> i'm going to do some serious sleeping now
00:21:23 <ehird> (The rule list website is also written in Python, so I guess you like that too)
00:23:31 <lament> how many rules are there?
00:23:49 <ehird> lament: only like 14
00:23:56 <ehird> of agora, though, a few hundred
00:25:07 <ehird> lament: The longest-running nomic.
00:25:15 <ehird> Still going today.
00:25:24 <ehird> Not the oldest one, but the longest-running
00:25:24 <lament> i mean apart from being a nomic
00:25:34 <ehird> lament: It's just ... a very long-running, famous nomic.
00:25:47 <ihope> It's a nomic with many rules.
00:25:47 <lament> the united states is a nomic, but it's also a country
00:26:03 <ehird> ihope: "(Yep, I just said I disliked scamming in another message.)" -- you
00:26:06 <ihope> The canonical example is Canada, not the United States. :-P
00:26:06 <pikhq> Oh, right. I forgot that recent Agoran ruling.
00:26:17 <ehird> pikhq: ihope just did a great scam by defining Marvy
00:26:33 <pikhq> ehird: Unless it's in the rules, the definition does not apply.
00:26:35 <ehird> and is now messing around with things for not Dancing a Powerful Dance
00:26:38 <ihope> Nobody's paying attention to it yet. :-P
00:26:42 <ehird> pikhq: Well it's on general-business
00:26:54 <pikhq> (believe me, I've tried to scam a lack of definition for something before)
00:27:27 <ihope> The Marvies accused are a contract, myself, and an instance of a currency. I'm guessing that I'm the only one that can actually be charged with anything.
00:28:09 <lament> heh, the map of agora is interesting
00:28:13 <pikhq> ihope: Unless the rules define a Marvy, Marvies do not exist, as far as that rule is concerned.
00:28:48 <ihope> At least I have that contract that aspires to be a rule.
00:29:16 <pikhq> ihope: Stick the power-4 rule in the contract, and start an equity case. :p
00:30:43 <ehird> lament: anyway, although Agora is a nomic it's hard to define what else it is, because the gameplay that isn't meta is much less long-lived
00:31:03 <ehird> The gameplay itself rapidly changes and disappears and reappears.
00:31:11 <ehird> and there's multiple modules of gameplay at once - or none
00:31:15 <pikhq> ehird: The *mechanics* of the gameplay change rapidly.
00:31:23 <pikhq> The types are actually fairly stable.
00:31:53 <pikhq> The electoral system, courts, contests, and contracts have been in the rules since '93 or '94.
00:32:05 <pikhq> Of course, the mechanics since then have changed so incredibly much. ;)
00:33:34 <pikhq> Oh, can't forget the patent title system.
00:33:58 <pikhq> There's a few hundred, at my last count.
00:34:14 <pikhq> (which, admittedly, is a bit old.)
00:39:26 <lament> "Esperanto conferences average 2000 to 3000 participants every year whereas Ido conferences have had anywhere from 13 to 25 participants over the last decade. Each language also has a number of regional conferences during the year on a much less formal basis, and with smaller numbers."
00:39:52 <lament> if the world conference has 13 participants, then how many participants does a conference "with smaller numbers" have?
00:40:06 <lament> is it still a conference when there're two participants? :)
00:41:01 -!- olsner has joined.
00:41:36 <pikhq> Whereas Esperanto may be averaging a few hundred per smaller conference.
00:42:10 <ihope> Doesn't the Bible define a conference or something? :-P
00:42:31 * pikhq knows that the Esperantido is smaller, but damn; didn't know it was that much smaller.
00:43:15 <pikhq> ehird: That *is* the etymology of Ido.
00:43:26 <ehird> pikhq: But amusing
00:43:36 <pikhq> And there's a reason for it, to.
00:43:51 <pikhq> Ido *is* an Esperantido. The very first, in fact. ;)
00:44:43 <ehird> Esperanto is lame. I like lojban.
00:44:44 <pikhq> (Esperantido being the family of languages related to Esperanto; the term comes from Esperanto: "Esperantido".)
00:44:47 <ehird> If only because I know the very basics
00:45:09 <pikhq> I think Lojban is a very interesting linguistic experiment.
00:45:22 <pikhq> Unlikely that many will use it, but interesting, nevertheless.
00:45:25 <lament> i think lojban is far more lame than esperanto.
00:45:40 <ehird> Lojban is a lot of fun.
00:45:50 <lament> esperanto has the goal of allowing people to communicate.
00:45:54 <lament> which is a lot of fun.
00:46:09 <lament> lojban has the goal of trying to be weird.
00:46:21 <lament> which is... kinda lame in comparison :)
00:46:29 <pikhq> lament: Esperanto is meant as a practical interesting language. Lojban is meant as *just* an interesting language.
00:46:50 <pikhq> Both are admirable goals. . . Especially since Lojban does it in a way easily parsable by computers.
00:47:00 <ehird> Lojban has a defined goal
00:47:02 <pikhq> (the official Lojban grammer is published in BNF)
00:47:08 <ehird> it's published as a yacc file
00:47:10 <lament> i strongly believe lojban is pure idiocy
00:47:10 <ehird> which is more impressive
00:47:35 <pikhq> ehird: The BNF file is considered official, the YACC file is considered something useful, and *should* be equivalent to the BNF (but isn't necessarily).
00:47:46 <lament> having a computer-parsable grammar should not be a design goal for human languages, for several reasons, of which the main one is that humans aren't computers
00:47:59 <ehird> lament: It's not designed for every-day use.
00:48:04 <ehird> It's an experiment, an idea.
00:48:04 <pikhq> lament: The main suggested uses of Lojban involve artificial intelligence usage.
00:48:07 <ehird> It's interesting. It's fun to learn!
00:48:14 <ehird> What's wrong with that?
00:48:17 <lament> for an example of something else that was designed to be readable by both humans and computers, see XML.
00:48:31 <ehird> lament loses the conversation
00:48:37 <ehird> for saying the stupidest thing imaginable
00:48:39 <pikhq> For an example of XML failing at that, see SVG.
00:48:51 <ehird> pikhq: He was being sarcastic.
00:48:57 <ehird> But in a totally lame, irrelevant way
00:48:58 <pikhq> ehird: And I'm not.
00:49:03 <lament> i'm not being sarcastic, i'm saying lojban is similar to xml in a way
00:49:13 <lament> it tries to do two things, and is pretty bad at both :)
00:49:30 <lament> ehird: you don't need a whole new language to talk to computers.
00:49:41 <ehird> lament: .. you don't understand what lojban is for
00:49:54 <ehird> but I can only point you to #lojban for an explanation of why you are wrong
00:50:05 <lament> yes, that's your usual strategy for arguments :)
00:50:18 <lament> you claim something, you can't substantiate it at all, and you direct me to some IRC channel.
00:50:54 <lament> no, it's not, if you know i don't understand then i have to assume that you do understand, otherwise how could you know i don't? And if you understand, then you could tell me.
00:50:55 <pikhq> In this case, he's saying "I suck at arguing this point; these people don't."
00:50:59 <ehird> what's wrong with an irc channel if they can explain better than I can, lament?
00:51:15 <pikhq> (or, alternatively, "I have no fucking clue; these people do.")
00:51:21 <ehird> pikhq: Oh come on.
00:51:41 <pikhq> ehird: In this case, it's not you saying *that*, though.
00:54:17 <lament> ehird: my issue with this line of argument is not that they can explain better than you do. I'm sure they can.
00:54:36 <lament> my issue is that you're wrong to begin with. :)
00:55:03 <ehird> lament: you are wrong
00:55:12 <lament> i mean, this is why your way of arguing can't work
00:56:07 <lament> as far as i'm concerned, i'm right (otherwise i wouldn't be arguing)
00:56:37 -!- timotiis has quit (Read error: 110 (Connection timed out)).
00:56:39 <lament> if somebody explains to me why i'm wrong, i can accept that.
00:56:53 <ehird> lament: that somebody resides within a certain channel.
00:57:15 <lament> they're free to argue with me if they want to, but i don't think they do.
00:57:25 <lament> you're in a way pushing _your_ responsibility on them.
01:04:29 <lament> the goal of lojban is to be geeky.
01:04:36 <lament> "There are generational "classes" of Lojbanists: Old Growth, Sci-Fi (in the late 1980s, recruited through Sci-fi cons), Conlangers (in the early 1990s, recruited through constructed language afficionadodom), Geeks (always present, but somewhat more prominent in the late 1990s, recruited mostly through computer science interest), New Growth."
01:05:26 <ehird> lament: uhh, so what wikipedia thinks of lojban users means that the language itself has a certain property
01:05:36 <ehird> pikhq: deferring this to you, i have better things to do - like sleep
01:09:57 <pikhq> lament: My retort: who cares? It's an interesting linguistic experiment; leave it at that.
01:17:50 <pikhq> Obviously, I'm not a major Lojban freak. ;)
01:20:16 <pikhq> BTW: one of the most painful things ever is hearing Shatner in "Inkubo".
01:20:48 <lament> you watched that movie? In Eo?
01:21:38 <lament> is it as terrible as everybody says?
01:21:47 <pikhq> The pronunciation, yes.
01:21:51 <pikhq> (I've only seen short clips)
01:22:20 <pikhq> Shatner speaks Esperanto with a French accent, for God's sake.
01:23:12 <lament> shouldn't eo be fairly insensitive to pronunciation, being universal and all?
01:23:46 <pikhq> I speak some Esperanto, yes.
01:24:02 <pikhq> It's still possible to royally fuck up the pronunciation.
01:24:45 <lament> i'm trying to learn eo at the moment
01:26:37 * pikhq wonders how the Esperanto in "Red Dwarf" is. . .
01:27:58 <pikhq> ("Red Dwarf" is a British comedy series from the 80's, set in a bilingual space ship: eo-utf8 and en-uk-utf8)
01:29:14 <ehird> pikhq: I don't think they specified utf-8.
01:29:25 <lament> oddly, the (English) wikipedia article on Red Dwarf doesn't mention esperanto at all :)
01:29:27 <pikhq> ehird: Probably not.
01:29:35 <lament> (but the esperanto one does)
01:30:25 <pikhq> The Wikipedia page on Esperanto culture, IIRC, mentioned it.
01:30:42 <pikhq> ehird: You're right. eo-spoken and en-uk-spoken, then? :p
01:31:18 <ehird> pikhq: how about Esperanto and British English, you dork
01:31:28 <pikhq> ehird: But I'm a dork!
01:32:10 * pikhq looks at the Japanese page on it
01:33:09 <pikhq> Not seeing it there.
01:34:06 * pikhq looks at the Japanese article on Esperanto. :p
01:34:45 <lament> Esperanto kaj Brita anglo :)
01:35:53 <lament> how long did you learn eo for?
01:37:12 <pikhq> 4 years, *but* I've only really studied intensively for a few weeks. Do, mia Esperanto ne bonegas.
01:37:26 <pikhq> (and not recently, either)
01:38:19 -!- ehird has quit (Remote closed the connection).
01:40:56 <pikhq> Amusing; the Japanese Esperanto article has a section on words Esperanto borrows from Japanese.
01:41:40 <pikhq> Did not know Eo used "hasxioj" for chopsticks.
01:41:51 <pikhq> (from the Japanese, "hashi".)
01:50:29 <lament> the Chinese must be pretty upset about that one.
01:53:24 <lament> although the mandarin pronunciation is very close, so it's easier for them as well.
01:54:29 <pikhq> Odds are, the Chinese pronunciation was closer when the Japanese first used that as a loan word. ;)
01:55:20 <lament> only if japanese is more conservative
01:56:20 <pikhq> Pronunciation-wise, at least.
01:56:36 <pikhq> They've dropped a few phonemes in the past several hundred years, though.
03:42:32 -!- Corun has quit ("This computer has gone to sleep").
04:15:49 -!- evincarofautumn has joined.
04:20:38 <pikhq> Get something going about esoteric programming languages, and people atart talking more.
04:21:04 <evincarofautumn> Well, it's been a while for me, so I figured I'd get back in the swing, you know?
04:22:03 <pikhq> Not that I'm one to talk.
04:22:10 <pikhq> My last work on PEBBLE was last year.
04:22:32 <pikhq> Senior year of high school takes a lot of time, oddly. :p
04:22:48 <pikhq> Full high school + college workload: not the wisest of ideas.
04:24:17 <evincarofautumn> It's a damn shame the way school gets in the way of learning sometimes.
04:24:40 <pikhq> Just let me write my kernel in peace.
04:25:41 <evincarofautumn> Let's see... it's 2d. There's an execution pointer as a vector offset into the space. Some standard-issue commands, whatever.
04:25:58 <pikhq> So far, it's standard Funge. . .
04:26:09 <pikhq> Forkfunge? Oh god.
04:26:29 <pikhq> Like I said: forkfunge.
04:26:57 <pikhq> And the direction?
04:27:38 <evincarofautumn> The attractor can be moved when the thread reaches a certain position.
04:28:24 <evincarofautumn> And moving two attractors to the same position guarantees that the threads will crash and unify.
04:30:21 <evincarofautumn> Um. Well, we can assume one thread that starts at (0, 0), attracted to the bottom right of the program.
05:00:01 -!- dbc has joined.
05:11:31 -!- evincarofautumn has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.14/2008040413]").
07:39:01 -!- Sgeo has quit ("Ex-Chat").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:06:42 -!- Iskr has joined.
09:08:13 -!- bsmntbombdood has quit (Read error: 113 (No route to host)).
09:09:19 -!- bsmntbombdood has joined.
09:12:00 <oklopol> at least the user base of lojban is very clear on lojban being made for *actual use*, my arguments about adding modules, and having less words for boring real life objects and more for abstract concepts aren't usually taken that well.
09:12:08 <oklopol> because it's made for use by people
09:12:22 <oklopol> which i find stupid, who cares about people, i want a good language.
09:13:22 <oklopol> lojban is indeed more computer-friendly than many languages, but in my opinion it is way too set in its ways, for instance, you cannot program in it directly, during conversation
09:16:21 <oklopol> attractor based programming seems like a genuinely new idea
09:17:02 <oklopol> remind me to tell evin to fuck themselves if they return, for inventing it before me!
09:30:23 <oklopol> hmph, no i have in mind an incredibly cool language, WITH GRAPHS, but the main idea is still to attract the computational agent towards a certain spot, just to move that spot before it gets there
09:30:44 <oklopol> and that was not an original idea, so it's totally useless
09:37:03 <oklopol> lojban's main problem, imo, is the fact every construct has its own brackets for nesting
09:37:31 <oklopol> i guess it might be easier for humans, again, but it's not very pure
09:38:08 <oklopol> lalna did nesting using rising and falling tones, it was far more beautiful
09:40:24 <oklopol> lojban has a very weird *vocabulary*, nothing else is weird about it
09:41:03 <oklopol> also magenta disappointed me, most of it is quite ordinary and boring
09:41:08 <oklopol> but ais prolly doesn't logread
09:41:24 <oklopol> i'm not sure if they care or anyone else cares
09:41:48 <olsner> please, do continue ;-)
09:42:16 <oklopol> btw, that graph thing is the ultimate uncompilable language: when an agent moves towards an attractor, it always takes the shortest path within the graph :D
09:43:08 <oklopol> you can have any number of agents, and attractors, both have a "color", and agents move towards the closest attractor of same color, or towards a black one
09:43:33 <oklopol> nodes may contain operations that modify the graph
09:43:42 <oklopol> really quite a lot of things
09:44:07 <oklopol> what this means is, we essentially need to do a bredth-first search for the whole graph for each agent each cycle :)
09:44:23 <oklopol> olsner: i can't! that was it about magent
09:44:25 <olsner> so it's pathfinding, walking a vertex, then modifying the graph? how are modifications synchronized between agents?
09:44:41 <oklopol> they happen simulateneously.
09:45:10 <oklopol> show me an example of two actions within a graph that cannot, and i'll explain why you're wrong!
09:45:31 <oklopol> but yes, that's the evaluation model.
09:45:50 <oklopol> there is a lot of attractor teleportation and graph expanding ofc
09:46:19 <olsner> I believe there are useful N-to-N pathfinding algorithms out there, so you might not have to BFS the whole graph every time
09:46:22 <oklopol> i'd love something like this in graphs, it's fairly tiring using a set number of dimentions½!
09:46:40 <oklopol> indeed, and you just have to search new paths.
09:47:03 <oklopol> if something changes, just check if that has an effect on an agent
09:47:04 <olsner> yeah, graphs are the shit
09:47:28 <oklopol> ...so do you know graphica HAVE I MENTIONED GRAPHICA?
09:47:42 <olsner> no, and I believe you just mentioned it
09:48:05 <oklopol> i'm so gonna paste my n-dimensional hypercube now.
09:48:15 <oklopol> http://www.vjn.fi/oklopol/graphica.txt
09:48:58 <olsner> that looks somewhat like haskell
09:49:33 <oklopol> the graph creation model was inspired by the haskell type system
09:50:17 <oklopol> just the idea that because you can make a tree very nicely with that kinda recursive structure
09:50:27 <oklopol> it might be nice to use that as the base
09:50:41 <oklopol> we can make it an arbitrary graph by tagging nodes
09:50:45 <oklopol> and later connecting to a certain tag
09:51:46 <oklopol> i have no idea what happens in that code.
09:52:05 <oklopol> = redirects the evaluation of a node
09:52:27 <oklopol> it basically means the node is re-evaluated as whatever is the ropd
09:52:48 <oklopol> so Main = BHCube 5 means we don't make a main node, but a bhcube instead
09:53:02 <oklopol> because main is assumed to be the node created
09:53:33 <oklopol> i've prolly explained all this to you separately too :D
09:53:51 <oklopol> it's just i have a boner for graphica, because it's one of my few *awesome* ideas
10:01:10 <oklopol> i'm getting desperate, if anyone knows of a keyboard where keys aren't in fact dispersed completely randomly, meaning keys in all rows are on top of each other or that the top and the bottom row are, and the middle row is half a key off so it's a diagonal grid kinda, i'm willing to pay anything
10:01:48 <oklopol> i just can't take it, it makes no sense
10:08:35 <oklopol> i don't understand how people can use this thing
10:08:53 <oklopol> especially if you use the whole home row system
10:09:04 <oklopol> fingers need to bend in very weird positions
10:09:29 <oklopol> do even dvorak keyboards still use these key positions?
10:10:52 <oklopol> http://www.maltron.com/images/keyboards/maltron-usb-dual-l90-uk-mac-dvorak-1-large.jpg <<< there is a god!!!
11:25:37 -!- UnrelatedToQaz has joined.
11:41:30 -!- Corun has joined.
11:42:11 -!- Corun has quit (Client Quit).
11:42:22 -!- UnrelatedToQaz has quit ("ChatZilla 0.9.81 [Firefox 3.0b5/2008032620]").
12:14:29 -!- olsner has quit ("Leaving").
12:24:06 -!- timotiis has joined.
13:01:11 -!- ihope has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.14/2008040413]").
13:26:54 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
13:29:52 -!- Slereah has joined.
13:59:47 -!- ehird has joined.
14:03:46 -!- ehird has quit (Read error: 104 (Connection reset by peer)).
14:04:25 -!- ehird has joined.
14:13:25 <ehird> <oklopol>lojban is indeed more computer-friendly than many languages, but in my opinion it is way too set in its ways, for instance, you cannot program in it directly, during conversation
14:13:32 <ehird> I eagerly await the pronounciation guide for oklotalk
14:14:58 -!- Slereah_ has joined.
14:15:06 <ehird> <oklopol>but ais prolly doesn't logread09:41:08
14:15:06 <ehird> <oklopol>ehird prolly does
14:19:21 <ehird> oh, and if ais523 is logreading, it seems http://indecenturl.com/ got put up for realz
14:27:32 -!- Corun has joined.
14:30:54 -!- oklofok has joined.
14:32:23 -!- ihope has joined.
14:33:22 <ehird> oklofok: time to logread
14:33:26 <ehird> i replied to your logreads
14:38:48 -!- oklopol has quit (Success).
14:41:03 -!- Slereah has quit (Read error: 110 (Connection timed out)).
14:41:12 -!- ehird has quit ("Leaving").
14:41:27 -!- ehird has joined.
14:52:09 <ehird> Silly idea: Make your cursor transparent, put xeyes in each corner.
15:08:23 <ehird> SimonRC: Also, use twm.
15:10:24 <fizzie> "the window manager of last resort", to quote wikipedia.
15:13:19 -!- oklofok has quit (Read error: 104 (Connection reset by peer)).
15:15:08 <ehird> if we had Endeavour in here, i'd just do this:
15:15:14 <ehird> and it'd quote the opening paragraph
15:17:49 <ehird> SimonRC: it wouldn't screen-scrape either, oh no
15:17:56 <ehird> it would get the raw wikitext and render that into text
15:18:42 <ehird> SimonRC: e.g. http://en.wikipedia.org/w/index.php?title=twm&action=raw
15:18:58 <ehird> and then just change things like ''a'' to *a*
15:19:08 <ehird> since it's italics
15:20:05 <ehird> In computing, *twm* (*Tom's Window Manager* or *Tab Window Manager*) is the standard window manager for the X Window System, version X11R4 onwards. twm was created by Tom LaStrange. It is a re-parenting window manager that provides title bars, shaped windows and icon management, and is extensively configurable.
15:20:09 <ehird> If it highlighted links:
15:20:31 <ehird> In <computing>, *twm* (*Tom's Window Manager* or *Tab Window Manager*) is the standard <window manager> for the <X Window System>, version X11R4 onwards. twm was created by Tom LaStrange. It is a <re-parenting window manager> that provides title bars, shaped windows and icon management, and is extensively configurable.
15:22:06 -!- oklopol has joined.
15:39:13 <SimonRC> oklopol: you have a weird keyboard
15:43:49 -!- timotiis_ has joined.
15:55:58 -!- timotiis has quit (Read error: 110 (Connection timed out)).
16:14:54 -!- timotiis_ has changed nick to timotiis.
16:16:39 <SimonRC> as I said, a weird keyboard
16:17:19 <oklopol> but ¤ is just the generic currency symbol, it's an encoding issue
16:18:38 <ehird> name a good gc algo!
16:18:55 <ehird> wanna do a fun scheme in python again :P
16:32:29 <ehird> oklopol: link to your schm interp
16:32:31 <ehird> i wanna rip it off
16:34:51 <ehird> oklopol: if i give you one php file that'll add searching to vjn.fi/pb will you add it?
16:34:56 <ehird> then i can just find my own scm each time i want it
16:36:02 <pikhq> ehird: There aren't any. There's only crappy and more crappy.
16:49:27 <oklopol> ehird: i can do a search myself, the biggest problem is having to connect to the page to upload it
16:49:40 <ehird> oklopol: yeah, but this is one php file that does it all for you
16:49:47 <ehird> and supports everything grep does, regexps etc
16:50:32 <oklopol> well, as hard as it is to write a program to search a set of files for a regexp given a built-in support for that exact thing, i think i could manage.
16:51:27 <oklopol> also i'm not sure i want people to search it, i've uploaded a lot of private stuff,.
16:52:33 <ehird> oklopol: heck, the only person who would use it is me, to find your scheme interpreter, once in a blue moon
16:54:08 <ehird> oklopol: also, mine bolds the text that matches and stuffs :P
16:54:59 <ehird> also, i've almost finished writing it
17:00:57 <ehird> oklopol: think it's done.
17:01:03 <ehird> wanna upload it to test? :<
17:01:42 <ehird> oklopol: well, here it is http://www.vjn.fi/pb/p464335445.txt
17:01:49 <ehird> put it as vjn.fi/pb/search.php and everything SHOULD work
17:04:15 <ehird> oklopol: if it doesn't work, add more oko to it
17:04:28 <ehird> it's not ready yet
17:04:36 <ihope> Hum. What did I say my password for the wiki is?
17:04:50 <ehird> oklopol: http://www.vjn.fi/pb/p336232313.txt fixed
17:04:55 <ehird> but it doesn't work
17:05:15 <ihope> I'll try it a few more times.
17:05:34 <ihope> Hmm. Subtle typing error, I guess.
17:06:04 <ehird> ihope: Don't worry. I'll work it out for you!
17:06:25 <ihope> I already figured it out. :-P
17:06:30 <ehird> ihope: What is it?
17:06:45 <ihope> "esoteric", of course.
17:07:04 <ehird> ihope: Which wiki account is this?
17:07:18 <ehird> ihope: The password for Ihope127 is not: esoteric
17:07:22 <ehird> I just tried it. Multiple times.
17:07:31 <ihope> You might stumble upon a revelation that allows you to log in as me eventually. :-P
17:07:40 <ihope> You're right. It's not "esoteric".
17:08:07 <ehird> it's not: "esoteric" either
17:08:10 <ehird> it's not even: 'esoteric
17:08:10 <ihope> "esoteric" is just the mnemonic.
17:09:02 <ihope> |_00|<, 1'|\/| &1\/1|\|& `/0|_| |\/||_|(|-| 0|= +|-|3 1|\||=0|2|\/|4+10|\| `/0|_| |\|33|).
17:10:08 <ehird> oklopol: i dun wrote it gud
17:10:15 <ihope> Now quit trying to log in as me :-P
17:10:44 <ehird> ihope: Oh come on, I'm not THAT good at leetspeak
17:20:16 -!- oklopol has quit ("( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )").
17:28:39 -!- Corun has quit ("This computer has gone to sleep").
17:57:09 <ehird> how can i reverse the filename and regexp arguments?
17:57:15 <ehird> specifically, i want to put the regexp after --
17:57:19 <ehird> so no options are interpreted in it
17:57:58 -!- oklopol has joined.
17:59:10 <ehird> oklopol: yay you're back
17:59:15 <ehird> i actually made my pastey search work
17:59:30 <ehird> there's only one teeeeny bug i need to fix and even then it doesn't affect anything
17:59:38 <ehird> oklopol: now put it up
17:59:56 <oklopol> i'm not sure i want people to search the pastespace
18:00:11 <oklopol> perhaps i could refresh the folder
18:00:22 <ehird> refresh the folder but keep the scheme interp
18:00:30 <ehird> oklopol: gimme the paster source
18:00:32 <ehird> i'll add private pastes
18:00:37 <ehird> their url will be longer and they won't be searched
18:00:44 <ehird> should only take ~5 min
18:00:45 <oklopol> i could make a search for logged in users with admin levels and search for ya?
18:01:00 <ehird> oklopol: whole point is don't wanna botehr you :P
18:01:06 <ehird> but if you gimme the source i'll just add private pastes
18:01:16 <ehird> private pastes keep the current urls
18:01:21 <ehird> non-private pastes get different-looking urls
18:01:25 <ehird> and the search ignores private pastes
18:01:30 <ehird> oklopol: then you don't need to do anything
18:01:33 <ehird> because all current pastes get private
18:01:50 <oklopol> the pb is not entirely mine, and officially, it's not at all mine.
18:02:04 <oklopol> you can make your own pastebin and put your search in there maybe? :)
18:02:08 <ehird> oklopol: i'm sure you'll be killed for improving it without any effect
18:02:22 <ehird> since this wouldn't require any kind of moving etc etc
18:02:24 <oklopol> volimo does not like people touching his code
18:02:35 <oklopol> but yeah, i guess it wouldn't be that bad, it's just i don't want a search there.
18:02:50 <ehird> oklopol: why not, if only public-marked pastes are searched
18:04:37 <oklopol> yeah it's no prob then, but i don't have time to add the functionality
18:04:45 <oklopol> and you cannot do it, sry.
18:05:05 <oklopol> what i should be doing is to read about web programming :D
18:05:19 <ehird> oklopol: in php? you'd rather rot out your brain, i assure you
18:05:35 <ehird> web programming in php
18:05:41 <oklopol> the course includes quite a lot of languages
18:06:04 <oklopol> multiple for asp and cgi, javascript, applets, php, perl, ruby etc.
18:06:30 <ehird> oklopol: so if i make a pastebin just like the vjn.fi one but with awesome searchy and private pastes and coolness itself and ... will you use it? :P
18:06:34 <ehird> or at least put your scheme interp on it
18:07:23 <oklopol> i don't see why i should use it, i can just add the search at some point myself :|
18:07:57 <ehird> it would have syntax highlightinggg....
18:08:13 <oklopol> just call it like that, and it'll make the form to ask for the regexp, then search
18:08:26 <ehird> oklopol: ah yes but mine links to the pastes and seperates by filename and it's all fancy
18:08:34 <ehird> and it's only like 30 lines
18:09:12 <oklopol> (link_to_paste_where_regexp_was_found line_number_of_first_occurrance "\n")*
18:09:36 <ehird> mine is far more awesome
18:09:45 <ehird> and you'll only see how awesome if that's uploaded as search.php
18:09:52 <ehird> its hard to explain
18:09:55 <ehird> but the output is truly awesome.
18:10:01 <ehird> nicest search interface, evar
18:10:12 <ehird> oklopol: it even sorts it, damnit
18:10:26 <ehird> that searcher is a bit like oko
18:10:46 <oklopol> you called the primitive sort function? how the fuck did you manage to do that ;)
18:11:03 <oklopol> just tell me exactly what it output
18:11:20 <ehird> oklopol: uhh i could paste loads of html i guess
18:11:35 <ehird> but just put it up for like 3 seconds and give it a search like: '^class '
18:11:39 <ehird> and see the awesome
18:11:50 <ehird> and then like make it only available to admins
18:11:55 <ehird> (which IS like 3 lines)
18:12:52 <oklopol> i'm not going to do that especially if you won't tell me what's so awesome about it.
18:13:48 <ehird> oklopol: it sorts it right, it handles everything like you'd expect, the links are in a nice place and are nicely standing-out, the included matching lines display is great, ...
18:14:10 <oklopol> so give me the bnf representing the output, man
18:14:23 <oklopol> (link_to_paste_where_regexp_was_found line_number_of_first_occurrance "\n")* <<< can't imagine anything better than this
18:14:26 <ehird> oklopol: that would make no sense
18:14:32 <ehird> and yeah, it is better than that
18:14:34 <ehird> it lists matches great
18:14:39 <ehird> seriously, just goddamn upload it and look at it
18:14:40 <ehird> for like 3 seconds
18:14:54 <oklopol> (link_to_paste_where_regexp_was_found line_number_of_occurrance+ "\n")* ?
18:15:17 <ehird> oklopol: it's more like
18:15:31 <ehird> <b>Paste <a href="...">NUMBER</a></b>
18:15:42 <ehird> (line_number occurance "\n")+
18:15:46 <ehird> oklopol: paste number
18:15:59 <ehird> but upload it and try it out
18:16:10 <oklopol> ("Paste" link_to_paste_where_regexp_was_found (line_number_of_occurrance "\n")+ "\n")*
18:16:32 <ehird> you forgot the styling (which makes it look a lot nicer believe me - i tweaked with it a bit)
18:16:35 <ehird> and the actual occurance
18:16:47 <ehird> see this is why it's hard to explain, it's great, try it out
18:16:56 <oklopol> i don't care much for styling
18:17:13 <ehird> oklopol: it's not STYLING
18:17:18 <ehird> it makes it a lot easier to skim the results
18:17:20 <oklopol> show me an example, if you've tested it, you should have one
18:17:30 <ehird> and i tested it but it was in my cache and it's gone now
18:17:37 <ehird> and i don't have good enough test data to demonstrate it properly
18:18:03 <oklopol> i just want to see how it shows its findings.
18:18:13 <oklopol> i can't see how it can be different from what i said
18:18:17 <oklopol> but i hear it's far more awesome
18:18:24 <ehird> oklopol: if you don't get it then you'll just need to look at it
18:18:28 <ehird> because i have explained it in various ways
18:18:59 <oklopol> (<b>Paste <a href="...">NUMBER</a></b> (line_number occurance "\n")+ paste_separator)+
18:19:05 <oklopol> you explained something like this
18:19:09 <ehird> oklopol: kiiiiind of
18:19:14 <ehird> but you need to see it to 'get' it, really
18:19:15 <oklopol> this is exactly what i said
18:19:32 <oklopol> will you give me the source for upload?
18:20:02 <oklopol> i guess if you give me the source i could just look at that
18:20:06 <ehird> to make sure it's the latest version
18:20:17 <ehird> also, the source undersells it
18:20:21 <ehird> oklopol: http://www.vjn.fi/pb/p526561254.txt
18:20:38 <oklopol> so basically, i put that up in the same folder as search.php or smth, and then open it in browser?
18:20:41 <ehird> totally honest when i say it's the best search interface for anything i've used
18:20:49 <ehird> oklopol: you put that up in /pb/
18:20:55 <ehird> and then go to http://vjn.fi/pb/search.php
18:21:02 <ehird> and enter a regexp - for example, '^class '
18:21:08 <ehird> and apply pressure to the button
18:22:57 <ehird> oklopol: it must be in /pb/ though
18:23:02 <ehird> and it must be called search.php
18:23:04 <ehird> otherwise breakage
18:24:37 <oklopol> okay, so it was (link_to_paste (line_number line_content separator)+ separator)+
18:24:57 <oklopol> that was hard tell me because..? :D
18:25:11 <ehird> oklopol: wait, how did you check that -- it's not on the server
18:25:26 <ehird> oklopol: how can it work, it links to search.php directly
18:25:39 <oklopol> yes, but i illegally changed the code so it works :|
18:25:45 <oklopol> so you can't use it before i remove it!!
18:25:48 <ehird> oklopol: now will you add it :P
18:25:54 <ehird> plzzzz, it's awesoe
18:26:05 <ehird> and i'll only use it to get the scheme and other code you've linked
18:27:27 <oklopol> http://www.vjn.fi/pb/p435344445.txt <<< lolwat :D
18:28:06 <ehird> oklopol: beats me, will you put the search up now and i'll love you forever and ever :p
18:28:11 <oklopol> http://www.vjn.fi/pb/p222552612.txt <<< this has some history related notes in finnish
18:28:24 <oklopol> it is up, you just can't find it! :D
18:28:32 <ehird> oklopol: it's not called oko.php
18:29:07 <ehird> oklopol: a hint plz? :<
18:29:22 <oklopol> eh, you think the random generator in my head is that logical?
18:30:00 <oklopol> it's a random set of characters
18:30:16 <ehird> oklopol: it's not saf
18:30:26 <ehird> oh just link it :P
18:30:32 <ehird> i wanna see how it works with a real data set actually
18:30:47 <oklopol> you can't find it. and no i won't link it, really, there's private stuff in there.
18:31:12 <oklopol> most of it in finnish, but i'm a very paranoid guy. make your own pastebin : D
18:31:28 <ehird> oklopol: i can't find the code you give to me using my own pastebin :>
18:31:32 <oklopol> but really, i gotta check what the bin contains, it seems people outside vjn are using it nowadays :|
18:31:37 <ehird> also: why not just leave it there for 3 minutes, sheesh ;P
18:31:45 <ehird> i can hardly read anything private in 3 minutes
18:31:52 <ehird> also, reading private things is not what us unicorns do
18:32:12 <oklopol> and you probably would, you sneaky bastard!! :D
18:32:24 <ehird> oklopol: no i wouldn't, sheesh, you think i care about anything personal about you? :p
18:32:54 <oklopol> that has nothing to do with this, make you own pb :)
18:33:02 <ehird> oklopol: i can't find the code you link me with my own pb
18:34:13 <oklopol> btw you were right, it was different from what i said, you also printed the line
18:34:27 <ehird> oklopol: i was right then, i must be right now
18:34:27 <oklopol> but that was really a defect in my bnf, i meant to put content there
18:34:44 <ehird> i just wanna see what it looks like on a data set bigger than 3 test files..
18:34:47 <oklopol> sorry, doesn't exist anymore.
18:34:51 <oklopol> i can paste you the result.
18:34:53 <ehird> and find the scheme helpfully while i'm at it
18:35:01 <ehird> oklopol: :( alright then
18:35:06 <ehird> did you find the scheme?
18:35:41 <oklopol> http://www.vjn.fi/pb/p255331634.txt <<< this may be some version of it
18:36:10 <ehird> oklopol: yep! any others there or was that it
18:36:13 <oklopol> http://www.vjn.fi/pb/p213151116.txt <<< thi too
18:36:17 <ehird> and .. can you paste the search results then
18:36:24 -!- Corun has joined.
18:36:30 -!- Sgeo has joined.
18:36:31 <ehird> also, those two are identical
18:38:06 <ehird> oklopol: now paste the search results
18:38:09 <ehird> so i can see my coool app
18:38:44 <oklopol> http://www.vjn.fi/pb/p234546123.txt
18:38:59 <oklopol> they are exactly the same? you checked
18:40:29 <ehird> oklopol: that's not a long search
18:40:40 <ehird> my search is kinda cool right mabye you should put it up for admins only
18:40:47 <ehird> and then whenever i yell at you you can just do a quick search
18:41:38 <oklopol> peeeeeerhaps i could, perhaps i could... but actually making it admin-only requires *some* work
18:42:04 <oklopol> anyway, opening a power-point thingie now, so see you in a while ->
18:54:53 -!- Judofyr has joined.
19:02:45 <ehird> Judofyr: so you like ruby a lot - coderay sucks. what can i use?
19:02:46 <ehird> pygments is great.
19:02:55 <ehird> it actually, you know. supports languages.
19:30:54 <Judofyr> ehird: http://ultraviolet.rubyforge.org/
19:32:53 <Judofyr> but your not there right now, or?
19:47:46 <ehird> Judofyr: i'd rather something that didn't use textmate-themes
19:47:50 <ehird> the yare the thing that sucks about TM
19:48:25 <ehird> also, i'd rather it didn't use textmate syntax files
19:48:35 <ehird> right now i'm just going to shell out to pygments
19:49:31 <ehird> Judofyr: Oh, and feel free to tell the author of ultraviolet that hogging two-character command names is bad.
19:49:32 <Judofyr> do what you like; I like both TM syntax + themes :P
19:49:45 <ehird> Especially for something as unimportant as a syntax highlighter
19:49:56 <Judofyr> I don't know the author :P
19:50:00 <ehird> and that abbreviating namespaces sucks highly, and that it should be 'Ultraviolet' not 'Uv'
19:50:20 <ehird> Judofyr: Ever seen TextMate's Haskell support? Yeeeahhh.
19:50:45 <ehird> Personally I want to shell out to emacs and somehow get HTML out of that - Since the highlighters are arbitary emacs lisp code, it handles just about everything
19:50:51 <ehird> Even 2D languages and similar
19:51:04 <Judofyr> I don't use Haskell, so I don't care about that :)
19:51:24 <Judofyr> as long as it does JS, HTML, CSS and Ruby I'm fine :)
19:53:21 <ehird> Judofyr: I think I'll just make this expect a class with a .highlight(source) method and expect html back
19:54:59 <ehird> i usually favour python over ruby these days. But Rack is close enough to WSGI and far enough away from the ugly Ruby frameworks that I'm considering trying it out :-)
19:55:25 <Judofyr> are you using Rack::Request & Response too?
19:55:49 <ehird> Judofyr: Dunno. Should I?
19:55:58 <ehird> A Hash isn't very nice to play with, that's true.
19:56:11 <ehird> Judofyr: Also, if you like Rack you gotta give credit to ruby - it's almost a 100% rip-off of WSGI :)
19:57:20 <Judofyr> ehird: It's probably easier to work with Req & Res than a Hash :P And I know that Rack is based on WSGI :)
19:57:29 <ehird> Judofyr: 'based on', heh.
19:57:42 <ehird> you can port wsgi apps almost 1:1
19:57:48 <Judofyr> have you read the slides? http://chneukirchen.org/talks/euruko-2007/chneukirchen-euruko2007-introducing-rack.pdf
19:57:59 <Judofyr> it's an example of Req & Res there :)
19:58:00 <ehird> no, i don't like presentations
19:58:56 <Judofyr> then you better look at the source...
19:59:08 <ehird> Judofyr: I said rdocs
19:59:10 <ehird> http://rack.rubyforge.org/doc/
19:59:11 <Judofyr> they're poorly documented :(
19:59:45 <Judofyr> the online doc isn't updated for 0.3...
19:59:58 <ehird> I forgot how much I hate the web
20:01:27 <Judofyr> yeah, I find web-developement booring..
20:02:26 <ehird> Judofyr: but the output fun.
20:03:11 <ehird> great mail I just got from nearlyfreespeech.net: "Hello, <quote> Yes. Thanks, Jeff"
20:04:47 <ehird> Judofyr: web apps that weren't PHP or CGI
20:04:53 <ehird> i asked if they weren't supported
20:05:16 <ehird> which is understandable, although they run seperate DB instances and are often faster than a VPS or similar etc they're still a shared host
20:05:28 <ehird> the prices are niiiice though
20:05:50 <Judofyr> the best thing is to have your own server, though
20:07:53 <ehird> Judofyr: as in a literal dedi?
20:07:55 <ehird> a friend has one of them.
20:08:29 <Judofyr> great for testing out things and be able to do whatever you like
20:09:02 <ehird> Judofyr: take a look at nearlyfreespeech.net though
20:09:05 <ehird> it's not like the typical shared hosts
20:09:25 <ehird> Judofyr: it's charged based on your usage
20:09:40 <ehird> but if you get an influx of traffic it doesn't drain the bank
20:09:44 <ehird> because of how the system woorks
20:10:12 <ehird> Judofyr: it IS a shared host
20:10:17 <ehird> however, they support tons of cgi languages
20:10:23 <ehird> 12+ according to them
20:10:26 <ehird> and the versions appear to be recent
20:10:49 <ehird> http://example.nfshost.com/versions.php lists the versions for the most popular languages
20:11:53 <ehird> Data Transfers (Bandwidth): Starts at $1.00 per gigabyte and goes down.
20:11:57 <ehird> "What does "and goes down" mean? It means that we keep track of how much bandwidth you use; the more you use, the cheaper it gets:
20:13:01 <ehird> Judofyr: one of the main things they toot about it though is that they don't censor (could you guess from the name? totally suprising.)
20:13:17 <ehird> it would be nice to be able to run non-PHP&non-CGI languages though
20:13:25 <ehird> i guess they're just not popular enough to warrant them doing it yet
20:13:35 <ehird> also, loads of the long-running process solutions are quite unstable and eat memory
20:13:41 <Judofyr> well, right now I'm fine with my own server :
20:14:57 <ehird> Judofyr: i'm with slicehost right now, so it's a vps
20:15:23 <ehird> but they don't seem to be very strong proponents of the 'no censorship' maxim
20:15:34 <ehird> i mean, their TOS says non-illegal stuff, but they don't seem to make it one of their points
20:18:16 -!- calamari has joined.
20:19:16 -!- atsampson has quit ("nope, turns out I do still need a -rt kernel...").
20:21:55 <calamari> Judofyr: this? http://en.wikipedia.org/wiki/Neko_%28programming_language%29
20:22:31 -!- atsampson has joined.
20:23:23 <ehird> calamari: i think $ means 'primitive'
20:23:36 <ehird> People seem to use http://www.haxe.org/ which compiles to Neko's VM.
20:25:14 <calamari> compile to javascript.. interesting idea
20:26:40 <Judofyr> http://hackety.org/2008/04/23/yourEightSecondCallingCard.html
20:42:13 -!- Judofyr_ has joined.
20:51:08 <ehird> oklopol: i haff a cool language in the works
20:51:11 <ehird> it's kind of like oklotalk
20:55:51 <ehird> oklopol: take a look
20:55:51 <ehird> (if (== i (- (length x) 1))
20:55:52 <ehird> (++ [(at x i)] (_cdr x (+ i 1))))})
20:58:41 <ehird> oklopol: it has message sendy thingies
20:58:45 <ehird> but it supports any number of args
20:59:39 -!- Judofyr has quit (Read error: 110 (Connection timed out)).
21:03:45 <ehird> oklopol: all i have to do now is implement BORING THINGS like strings
21:03:49 <ehird> and get the actual primitives down
21:04:01 <oklopol> i have no idea what that code does
21:04:02 <ehird> also, i call names 'toms'
21:04:17 <ehird> (cdr [1,2,3]) -> [2,3]
21:04:23 <ehird> set does what you expect
21:04:27 <ehird> {(args) code} is a function
21:04:29 <oklopol> well, duh, got i have no idea how it works
21:04:44 <ehird> oklopol: which part don't you get
21:04:46 <ehird> i'll translate to python
21:05:26 <ehird> oklopol: also, (at LST INDEX)
21:06:02 <oklopol> i didn't get it's {(args) (expr) (expr)...}
21:06:16 <oklopol> mainly cuz i didn't read it through and didn't see the actual cdr
21:06:46 <ehird> oklopol: okay wait
21:07:24 <ehird> (set 'drop' {(i x) (if (== i (length x)) [] (++ [(at x i)] (drop (+ i 1) x)))})
21:07:31 <ehird> (set 'cdr' {(x) (drop 1 x)})
21:07:34 <ehird> oklopol: drop is like haskell drop
21:07:38 <ehird> drop 1 [1,2,3] => [2,3]
21:07:43 <ehird> drop 5 [1,2,3,4,5,6] => [6]
21:07:54 <ehird> 'set' is a primitive function
21:07:57 <ehird> but '==' is a message
21:07:59 <oklopol> yeah the other raeson was the bug
21:08:03 <ehird> 'length' is a message, so is '++'
21:08:12 <ehird> 'drop' is a function
21:08:15 <oklopol> couldn't deduce "at", because it made no sense
21:08:18 <ehird> 'if' is a function
21:08:28 <ehird> if in (A B C ...), A is not a function
21:08:32 <ehird> and it's a Tom instead
21:08:40 <ehird> we send A to B with C ... as the arguments
21:08:53 <ehird> so (at [1,2,3] 0) sends 'at' to [1,2,3] with arg 0
21:09:17 <oklopol> so exactly like oklotalk--?
21:09:27 <oklopol> do you generalize over n args?
21:09:45 <ehird> oklopol: yes, n args
21:09:48 <ehird> but not exactly like oklotalk--
21:09:53 <ehird> i'll show you the impl
21:09:57 -!- timotiis_ has joined.
21:10:23 <ehird> oklopol: http://www.vjn.fi/pb/p463212552.txt
21:10:27 <ehird> all that needs to be added is
21:10:29 <ehird> 1. more primitives
21:10:32 -!- timotiis has quit (Nick collision from services.).
21:10:37 -!- timotiis_ has changed nick to timotiis.
21:12:02 <ehird> oklopol: my little homage to okoness
21:12:05 <ehird> or should it be okoity
21:12:09 <oklopol> what does it mean to send "at" to an object with arg 0?
21:13:01 <ehird> oklopol: welllll, in python (at X 0)
21:13:11 <ehird> X.sent('at', [Num(0)])
21:13:19 <ehird> oklopol: this is done in Koed's eval
21:14:11 <ehird> oklopol: whut do you mean
21:14:23 <ehird> X.sent('at', [Num(0)])
21:14:23 <oklopol> if you send "at", and give 0 as param
21:14:27 <oklopol> how would you receive that?
21:14:34 <ehird> oklopol: read Koed's eval!!!!
21:14:45 <ehird> functions are specially handled
21:14:54 <oklopol> please just who me in that-language code
21:14:56 <ehird> there's no way to make a message-reciever in user code
21:15:06 <ehird> it will look something like this
21:15:09 <oklopol> so "i dunno" would've been the answer
21:15:18 <ehird> (recv {(msg args) ...})
21:15:33 <ehird> oklopol: not as a 2-tuple
21:15:37 <ehird> it has real args, remember?
21:15:51 <oklopol> if it gets zero args, how do you receive
21:16:20 <ehird> they're real arguments
21:16:24 <oklopol> okay, so special syntax for 2-tuple
21:16:28 <ehird> it's not passed as a tuple DAMNIT
21:16:39 <ehird> (lambda (a b c) ...)
21:16:43 <ehird> they're real, honset-to-god args
21:18:09 <oklopol> just to get what the gist is
21:18:24 <oklopol> i don't care how much you wanna emphasize the fact it's not a list
21:18:25 <ehird> oklopol: but it's different from ot--
21:18:29 <ehird> i hope you agree :<
21:18:35 <oklopol> to me, it's a list, but you cannot pattern match on it with a var.
21:18:58 <oklopol> so it's just a list with functionality stripped
21:19:36 <oklopol> ehird: yeah it's a bit different
21:19:47 <ehird> oklopol: nooo it's like scmtalk
21:20:42 <oklopol> function calling is pretty much always the same, you send an argument object to the function.
21:20:50 <oklopol> sometimes that argument object is fixed to be a list
21:21:09 <oklopol> and pattern matching can make a conceptual distinction between a real list, and "multiple arguments"
21:21:46 <ehird> oklopol: i wonder what would happen if you made a language that was integrated with pygame
21:21:48 -!- calamari has quit ("Leaving").
21:21:51 <ehird> and then wrote pong in it
21:21:55 <ehird> i predict asplosions
21:22:10 <oklopol> but when you said something about messages and params being separate, i thought you might have something special in mind for those, kinda like oo does with method names... but you didn't, it was a list, which is why i said "so it's a 2-tuple" or whatever i said
21:23:12 <ehird> oklopol: it is method names
21:24:06 <oklopol> yes, i know it is, you explained about the tuple thing
21:24:22 <oklopol> how does {(a b c) ...} workl
21:24:33 <oklopol> if you do a call (a b c d e f) and a can be called
21:24:45 <oklopol> what arg-tuple is a called with?
21:25:35 <ehird> oklopol: it's called with (b c d e f)
21:25:38 <ehird> and crashes and burns :D
21:25:51 <ehird> oklopol: then it depends
21:25:55 <ehird> then we do the sendy sendy dance
21:25:56 <oklopol> b is called with (a [c d e f])
21:26:01 <ehird> otherwise, we buhrn
21:26:07 <ehird> message sends are NOT CALLS
21:26:16 <ehird> they're totally seperate
21:26:31 <ehird> functions <-- things you can applyerate --> things that respond to things
21:26:56 <ehird> (recv {(msg args) ...}) <-- recv just lets you give it a function and it gives you a responder that just forwards it to that function
21:27:25 <oklopol> forwards what to that function?
21:27:36 <oklopol> whatever it's called with?
21:27:39 <ehird> oklopol: the message and the arguments
21:28:21 <oklopol> okay, so there's two kinds of things which can be sent stuff, functions, which are called, and ***'s, which are sent messages?
21:28:45 <ehird> oklopol: the ***s native tounge is python
21:28:48 <ehird> look at def sent()
21:29:03 <ehird> oklopol: actually, here's one way to put it
21:29:13 <ehird> you get a *** that responds to only one message: apply
21:29:25 <ehird> and the arguments you give with that message are passed to the code block.
21:29:32 <ehird> oklopol: and that's *actually how it's implemented*
21:29:59 <ehird> ({...} b c) -> {...}.sent('apply', [b,c])
21:30:04 -!- Judofyr_ has quit (Read error: 104 (Connection reset by peer)).
21:30:06 <ehird> (a b c) -> a.sent(b, [c])
21:30:24 -!- Judofyr has joined.
21:31:39 <oklopol> so, functions need to be called as the first param, in message passing you have to have the object that receives the message as the second param
21:32:07 <ehird> oklopol: ... but ....
21:32:24 <oklopol> the question is, what's the difference between a function and a thing that receives a message, syntactically
21:33:24 <ehird> when i say {...} i mean 'some function'
21:33:29 <ehird> when i say 'foo' i mean 'some atom'
21:33:34 <ehird> when i say '?' i mean 'something else'
21:33:39 <ehird> here's how it translates into python:
21:33:47 <ehird> ({...} b c) -> {...}.sent('apply', [b,c])
21:33:58 <ehird> (foo b c) -> b.sent('foo', [c])
21:34:05 <ehird> (foo b c d) -> b.sent('foo', [c,d])
21:34:12 <ehird> (? ...) -> ERRORERRORERROR
21:34:48 <oklopol> in this case, what might b be?
21:35:03 <oklopol> if it is sent "foo", [c,d]
21:35:11 <ehird> oklopol: b is a recevier
21:35:27 <oklopol> what's the difference between a function and a thing that receives a message?
21:35:39 <ehird> oklopol: one's a function and the other is a thing that receives a message..
21:35:50 <ehird> well, functions are receivers that only respond to 'apply'
21:35:53 <ehird> <ehird> ({...} b c) -> {...}.sent('apply', [b,c])
21:35:53 <ehird> <ehird> (foo b c) -> b.sent('foo', [c])
21:36:03 <ehird> (apply {...} b c) -> {...}.sent('apply',[b,c])
21:36:10 <ehird> which you'll notice is the same as the first rule
21:36:18 <ehird> oklopol: and look at the code for 'Func'
21:36:22 <oklopol> please just tell me what the fuck a receiver is, THE WORD ITSELF DOES NOT MEAN ANYTHING
21:36:25 <ehird> the response to 'apply' is to do a normal function call
21:36:29 <ehird> and ... read the goddamn code
21:36:39 <ehird> it's an abstract concept
21:36:42 <oklopol> no. if you can't explain this, i'm going to sleep
21:36:53 <oklopol> can you give me an example, perhaps?
21:37:49 <ehird> it's only 100 lines of trivial code
21:38:27 <oklopol> def sent(self, name, args):
21:38:27 <oklopol> return self._oppy(lambda a,b: a+b, '++', args)
21:38:34 <oklopol> and it seems b can be a list
21:39:00 <ehird> that's just in Lst
21:39:09 <ehird> that's just the code for adding two Lsts
21:39:11 <ehird> oklopol: see _oppy
21:39:13 <ehird> it's a little helper
21:39:22 <ehird> weoprkopfkopfkeorjoiwejfiojfifgjerlg
21:39:47 <oklopol> you are saying you cannot give an example what b could be
21:40:01 <oklopol> but, it seems if b is a list, it can handle the message ++
21:40:07 <ehird> how can you expect to understand it if you don't READ _OPPY
21:41:19 <oklopol> it seems ++ would append a list to a list
21:41:28 <oklopol> but i don't see what use reading _oppy was
21:41:59 <ehird> oklopol: because you were asking about ++
21:42:07 <oklopol> okay, is (++ [1 2] [3 4]) correct?
21:42:15 <ehird> oklopol: err, of course it is
21:42:17 <ehird> why wouldn't it be
21:42:31 <oklopol> so in (a b c), when a is an atom, and b is sent a message, b can be a list?
21:42:39 <ehird> oklopol: b can be ANYTHING
21:42:55 <ehird> EVERYTHING responds to .sent, but if you send something silly it goes 'i can't handle this' and throws an error
21:42:59 <oklopol> 23:36… oklopol: please just tell me what the fuck a receiver is, THE WORD ITSELF DOES NOT MEAN ANYTHING
21:43:01 <ehird> what the heck is hard to understand
21:43:11 <ehird> oklopol: ITISANABSTRACTCONCEPT
21:43:23 <oklopol> why couldn't you just say it's an object?
21:43:33 <oklopol> abstract concept with no meaning
21:43:39 <ehird> it doesn't resemble an object
21:43:44 <ehird> that can get a message
21:43:48 <oklopol> an example of it is a list
21:44:04 <ehird> oklopol: or a function
21:44:08 <oklopol> this is a bit contradictory, because you said at some point you cannot give an example of it
21:44:21 <ehird> EVERYTHING is a receiver
21:44:25 -!- Judofyr_ has joined.
21:44:32 <oklopol> 23:36… oklopol: can you give me an example, perhaps?
21:44:32 <oklopol> 23:37… ehird: oklopol: i can't.
21:44:48 <ehird> oklopol: look at Obj
21:44:50 <ehird> it has a sent method
21:44:51 <oklopol> in which case i would've assumed the answer "nothing yet"
21:44:54 <ehird> ergo everything is a receiver
21:45:08 <ehird> (+ 1 2) ends up with Num's sent being called
21:45:14 <oklopol> if you say something, i assume it overrides the code.
21:45:18 <ehird> _oppy handles a lisp-style variadic
21:45:25 <ehird> you give it a lambda of two args
21:45:28 <oklopol> it is very annoying to make me read tons of code over something trivial.
21:45:30 <ehird> and it unwraps your value
21:45:32 <ehird> and the first args value
21:45:35 <ehird> and wraps the result of that
21:45:39 <ehird> then recurses with the rest of the args on that result
21:45:45 <ehird> so (+ 1 2 3) works
21:45:49 <ehird> it ends up being (+ (+ 1 2) 3)
21:47:07 <oklopol> yes, but this is irrelevant, so, how do functions pmatch on calls, and how on messages?
21:47:23 <oklopol> [...] for calls, and (atm, [...]) for messages?
21:47:24 <ehird> oklopol: no pattern matching
21:47:33 <ehird> and..... FUNCTIONS CANNOT BE USED AS RECEIVERS
21:47:38 <ehird> {...} will accept ONE message
21:47:47 <ehird> it does what you expect. applies the function to the arguments given
21:47:57 <ehird> which when sent a message
21:48:01 <oklopol> you just said a function can be a receiver.
21:48:01 <ehird> calls the function given with (msg args)
21:48:07 <ehird> BUT ONLY WITH ONE MESSAGE
21:48:11 <ehird> oklopol: READ FUNC'S .SENT()
21:48:12 <oklopol> ehird: and..... FUNCTIONS CANNOT BE USED AS RECEIVERS
21:48:22 <ehird> READFUNC'S.SENT()READFUNC'S.SENT()READFUNC'S.SENT()READFUNC'S.SENT()
21:48:36 <ehird> def sent(self, name, args):
21:48:36 <ehird> if name == 'apply':
21:48:49 <ehird> oklopol: SO IT RESPONDS to one fixed message: APPLY, which does function application
21:48:53 <ehird> IF YOU WANT TO MAKE YOUR OWN RECEIVER
21:48:55 <ehird> there is a heper function
21:49:02 <ehird> gives you a receiver
21:49:10 <ehird> which when sent the message M with args A
21:49:13 <ehird> calls the function with (M A)
21:50:39 <oklopol> so "b can be anything but a function that has not been wrapped with recv"? would've been the answer to "oklopol: in this case, what might b be?"
21:51:02 <ehird> it can be a function
21:51:07 <ehird> but it won't receive the message or whatever
21:51:13 <ehird> it'll just error out, unless you're sending it 'apply'
21:51:20 <ehird> because the function class responds to 'apply'
21:51:22 <oklopol> so "can be anything" would've been the answer
21:51:22 <ehird> for function application
21:51:33 <ehird> and in ({...} ...) it sends apply to {...}
21:51:41 <oklopol> "is a receiver" means: "it is whatever b is in that situation"
21:51:43 <ehird> oklopol: yes, but {...} by itself is not useful if you want to make a receiver for yourself
21:53:02 <ehird> oklopol: yeah .. write a python subclass of Obj
21:53:09 <ehird> and override .sent(name, args)
21:53:16 <oklopol> anyway, all i wanted was an answer to that question, you are a bit hard to get stuff out of, sometimes
21:53:19 <ehird> (name will be a string, args a list of Obj subclasses of some kind)
21:53:46 <oklopol> and the use of this distinction is?
21:54:11 <oklopol> the fact you cannot just use a function for any message
21:54:18 <ehird> oklopol: because...that's not what a function is
21:54:32 <oklopol> right, i guess there doesn't have to be a reason
21:54:54 <oklopol> except that it wouldn't make sense, or something
21:55:06 <ehird> oklopol: a function is something that has a lexical closure and takes some arguments, runs some code, and returns something
21:55:21 <ehird> a receiver is just something that will give you something if you give it a message name and a list of objects
21:55:22 <oklopol> i'm assuming these method-call like things where you send the atom name and args separately are used for making objects?
21:55:45 <ehird> oklopol: the swapping of the first two args is just so that you can use lisp-style prefix syntax
21:55:51 <ehird> (length x) instead of (x length) etc
21:56:21 <oklopol> it is? i thought it was for message passing
21:56:31 <ehird> let's get to the bottom of this
21:56:34 <ehird> i'll explain it simply
21:56:38 <ehird> forget about functions
21:57:00 <ehird> (a b ...) means 'send the message b to a, with the arguments ....'
21:57:07 <ehird> b and a and all the args are evaluated
21:57:16 <ehird> that's not a special case
21:57:21 <oklopol> i do understand it already, it's just i don't see why you're making the distinction between calling and message passing, i'm assuming message passing is for objects, but you said it's not like that
21:57:26 <oklopol> so i'm assuming you just do it for fun?
21:57:32 <ehird> oklopol: I SAID FORGET ABOUT FUNCTIONS
21:57:40 <ehird> until you stop talking about functions i can't explain it properly
21:57:46 <ehird> now do you get the evaluation strategy so far, oklopol?
21:57:53 <ehird> you just send something a message.
21:58:07 <ehird> now, that's just things getting a name and some stuff and doing some stuff.
21:58:14 <ehird> oklopol: important - THEY DON'T HAVE LEXICAL CLOSURE
21:58:20 <ehird> because there's no concept of closure
21:58:46 <ehird> oklopol: now, say we want functions -- which are things which remember their env as a closure, have a func body which is run through, ETC
21:58:49 <oklopol> oh, so that's the difference, why didn't you say so?
21:58:50 <ehird> there's some special syntax
21:58:58 <ehird> how do we represent that as a receiver?
21:59:00 <ehird> oklopol: URHGHGHGGHHGHGHGHg
21:59:08 * ehird bangs head against wall
21:59:19 <ehird> oklopol: receivers and functions HAVE ABSOLUTELY NO RELATION WHATSOEVER
21:59:29 <oklopol> ehird: (a b ...) means 'send the message b to a, with the arguments ....' <<< i thought a is called with ('apply', [b ...])
21:59:45 <ehird> oklopol: FORGETABOUTGODDAMNFUNCTIONSJESUSCHRIST
21:59:49 <ehird> FORGETABOUTFUNCTIONSFORGETABOUTFUNCTIONSFORGETABOUTFUNCTIONSFORGETABOUTFUNCTIONSFORGETABOUTFUNCTIONSFORGETABOUTFUNCTIONSFORGETABOUTFUNCTIONSFORGETABOUTFUNCTIONSFORGETABOUTFUNCTIONSFORGETABOUTFUNCTIONS
22:00:34 <ehird> forget everything i've said about the application
22:00:52 <ehird> 'x = evaluate a; y = evaluate b; evaluate all of ...'
22:01:00 <ehird> 'send y to x with the arguments ...'
22:01:04 -!- Judofyr has quit (Read error: 110 (Connection timed out)).
22:01:12 <ehird> oklopol: the ONLY propery about x is that it'll happily take a message name and some arguments
22:01:14 <ehird> and give you a value
22:01:28 <ehird> there's nothing relating to function bodies, scoping... ANYTHING specified in it
22:01:40 <ehird> now, let's say that we want functions in this language
22:01:46 <ehird> how will we represent that as a receiver?
22:01:51 <ehird> we could respond to a message like 'apply'
22:01:56 <ehird> and give the function the arguments we get
22:02:08 <ehird> So, now let's say we want to make our own special receivers
22:02:17 <ehird> Hey, we can just pass the message name and arguments to a function!
22:02:25 <ehird> So we need a function that takes a function and gives us a receiver
22:02:30 <ehird> (recv {(message args) ...})
22:02:34 <ehird> oklopol: ok. got it now?
22:03:51 <oklopol> ehird: (a b ...) means 'send the message b to a, with the arguments .... <<< i don't see this in code
22:04:05 <ehird> oklopol: elif func.tag() == 'tom':
22:04:06 <ehird> return args[0].sent(func.val, args[1:])
22:04:08 <ehird> then you can't read.
22:04:12 <ehird> (func is a bad name)
22:04:16 <ehird> (func is just the first argument, evaluated)
22:04:33 <oklopol> doesn't that send the message a to b?
22:04:35 -!- Judofyr has joined.
22:04:57 <ehird> oklopol: func is the first argument
22:05:02 <ehird> func = a, evaluated
22:05:06 <ehird> args = [b,c] evaluated
22:05:23 <oklopol> so a is sent to b, with arg c?
22:05:53 <ehird> (a b c d) would be with args [c,d]
22:06:13 <oklopol> ehird: (a b ...) means 'send the message b to a, with the arguments .... <<< so you mixed a and b?
22:06:44 <oklopol> okay, well, you didn't provide me any new information, but you did confuse me a bit.
22:07:03 <ehird> now do you see that this lang != ot--
22:07:44 <oklopol> what i was originally trying to ask
22:08:55 <oklopol> it was "why do you separate between a receiver and a function, why not just have a function?"
22:09:05 <oklopol> both take a list of args, and return a result
22:09:22 <oklopol> but, scoping makes a difference
22:09:34 <ehird> oklopol: looks like you didn't read what i said!
22:09:37 <oklopol> i did get it, it's just i didn't see what the use was.
22:09:39 <ehird> scoping isn't ASKJDHJKASDHKLSJDH relevant
22:09:41 <ehird> asdjoiasdjoidfujoidsfgjsiofgjsofgijsodig
22:09:46 <ehird> SCOPING IS JUST NOT ANYTING IN IT
22:09:57 <ehird> this is such a bunch of crap, i've explained it so many god damn times
22:10:01 <ehird> and you haven't listened once
22:10:08 <oklopol> i have understood it all along
22:10:21 <ehird> <oklopol> it was "why do you separate between a receiver and a function, why not just have a function?"
22:10:21 <ehird> <oklopol> both take a list of args, and return a result
22:10:21 <ehird> <oklopol> but, scoping makes a difference
22:11:46 <ihope> It sounds like you've been misunderstanding each other for over an hour.
22:11:54 <ehird> ihope: tell me about it
22:13:42 <ihope> What are you talking about, anyway?
22:17:03 <oklopol> i'm pretty sure the fact a function only takes "apply" as the first arg separates whatever conceptual functions you have into two groups, ones that are called (func arg ...) and (atom receiver arg ...), i just don't see what the reason is.
22:17:38 <oklopol> receiver can also be called as (receiver arg ...), in which case it is told with the "apply" atom that it is used as a function
22:17:56 <oklopol> but, you haven't said why, that's all i've been asking
22:19:01 <oklopol> anyway, i'm off to sleep, i'll read the spec if you finish this, so i can explain to you why you did all this.
22:21:17 -!- Judofyr_ has quit (Read error: 110 (Connection timed out)).
22:22:25 -!- Iskr has quit ("Leaving").
22:24:39 <oklopol> meh as if i could sleep after being told i still don't get it
22:25:41 <oklopol> i guess i have to read the code
22:27:51 -!- Judofyr_ has joined.
22:29:51 <oklopol> perhaps you think i didn't understand that a function is a special case of a receiver, because i asked why you had both? i was just wondering why not have a function be a normal receiver.
22:33:39 <oklopol> in case the second sentence showed i didn't get it, why exactly? "both take a list of args, and return a result" isn't this entirely true? first takes the list [atom args], second takes just args, if the atom is "apply", otherwise fails
22:33:45 <oklopol> but they are both conceptually functions.
22:33:49 <oklopol> they take stuff, and return stuff
22:35:22 <oklopol> "scoping makes a difference" <<< this was the only thing resembling an explanation, i first assumed it might be you wanted receivers to be more like objects, and conceptually differentiate between them and functions... but apparently that was completely wrong too
22:35:53 <oklopol> 23:55… oklopol: i'm assuming these method-call like things where you send the atom name and args separately are used for making objects?
22:35:59 <oklopol> actually, you didn't say no
22:38:03 <oklopol> dunno, hopefully you return soon, and are willing to explain this to me all night long
22:39:40 <ihope> Yeah, looks like a function is a type of receiver, and functions and receivers are effectively the same thing.
22:40:10 <oklopol> but apparently, saying so shows one has no idea how all this works.
22:40:46 <ihope> If you can transform a function that does a certain thing when called with certain arguments into a receiver that does the same thing when sent the same arguments, and vice versa, and it doesn't look all cluttered, functions and receivers are the same thing.
22:41:16 <ihope> If there is a difference, it will be difficult to express one or the other, and ehird will be able to give you an example of it.
22:41:41 <ihope> I said that he was able, not that he should.
22:41:41 -!- oerjan has joined.
22:42:05 <oklopol> well, took me ten minutes to get the fact a list can be a receiver out of him.
22:42:23 <oklopol> this might be a bit harder
22:43:21 <ihope> Do you really want to know, if you have to do that to find out?
22:43:34 <oklopol> i cannot sleep if i don't know.
22:44:05 <oklopol> i have my reasons for not being all that good at leaving irc.
22:44:07 <ihope> He said to read the code, yes? Where is the code?
22:44:14 <oklopol> http://www.vjn.fi/pb/p463212552.txt
22:44:33 -!- Judofyr has quit (Read error: 110 (Connection timed out)).
22:48:38 <ihope> There's a thing called an Obj, and it has a val that's set when created, and I assume that __repr__ and __str__ are just for display and all, and its tag is 'obj', and it can't be eval'd, and I'll get to _oppy later, and if you try to send it a message, you get an "unhandled message" error.
22:50:37 <ihope> When you _oppy an object, its value and the first argument are "added", then self.__class__(the "sum") is sent the message with the rest of the arguments.
22:51:35 <oklopol> the class the object is instance of
22:52:28 <ihope> ehird: what does op() do?
22:52:29 <oklopol> basically, that call to it is changing the primitive object back into an object of ehird's creation
22:52:37 <ehird> receiver can also be called as (receiver arg ...), in which case it is told with the "apply" atom that it is used as a function
22:52:42 <ehird> that only applies if it is actually a real function
22:53:36 <oklopol> you have a clear distinction between receiver and function, yet both these are conceptually functions, and yet you don't have two kinds of conceptual functions?
22:53:37 <ihope> Oh, it's an argument.
22:54:13 <ehird> oklopol: they're nt both conceptually functions
22:54:22 <ehird> ihope: oppy is quite complex
22:54:25 <ehird> if you are a number 1
22:54:27 <ehird> and you're told to '+'
22:54:31 <oklopol> ihope: oppy does exactly what you said
22:54:34 <ehird> the underlying function
22:54:45 <ehird> the x and y are wrapped in the .vals
22:54:54 <ehird> so _oppy does the unwrapping/rewrapping required
22:54:59 <ihope> Must you split your sentences over so many lines?
22:55:00 <ehird> so that you can do variadicness
22:55:06 <ehird> ihope: stream of conciousness. :)
22:55:17 <ehird> my sentences are lazily loaded
22:55:21 <ehird> i write the first part, and then the rest
22:55:25 <ihope> Maybe I should find a way to get my client to concatenate them.
22:55:31 <oklopol> ehird: how is a receiver not conceptually a function?
22:55:39 <ehird> oklopol: it's just ... not :<
22:55:46 <oklopol> you said it takes a message, and an arg, and returns something
22:55:55 <ehird> they're just not the asme thing
22:56:19 <oklopol> if you leave it at that, i'll assume you have no idea yourself, and go to sleep
22:56:28 <ehird> i've tried to explain
22:56:31 <ehird> apparently my methods of explanation suck
22:56:42 <ehird> ihope: anyway oppy is just an internal helper
22:56:44 <ehird> ergo the unerscore
22:56:58 <ihope> So you _oppy stuff with an operation, and when you _oppy a vanilla Obj, the operation is performed on the Obj and the first argument, and then... yeah.
22:57:10 <oklopol> ehird: it is fairly easy to tell me why it's not a function, just tell me what separates it from a function
22:57:11 <ehird> ihope: on the obj's VALUE
22:57:15 <ehird> and the first arguments value
22:57:25 <ehird> it unwraps the values, passes it to the operation, wraps it again
22:57:34 <ehird> and then that wrapped thing is told to do the same thing with the rest of the args
22:57:35 <oklopol> if the only difference is name, then you don't know what "conceptual" means
22:57:42 <ehird> oklopol: it's hard to explain!
22:58:30 <oklopol> ihope: how did you not get that, you explained it earlier in your own words?
22:58:33 <ehird> 1 is told to + with [2,3]
22:58:38 <ehird> so we unwrap the python int inside the 1 object
22:58:43 <ehird> and pass it to the python-int-adder
22:58:44 <ihope> oklopol: I didn't know what op was, I suppose.
22:58:48 <ehird> then wrap it into a number object again
22:58:55 <ehird> so we tell 3 to + with [3]
22:59:01 <ehird> and it does the same thing, but then we run out of args
22:59:34 <oklopol> well, you did say it's used to make a sum, perhaps you didn't know the sum was made with folding the lambda
22:59:46 <ehird> oklopol: it's kinda folding yeah
22:59:55 <ehird> but it's used for variadic division too
23:00:01 <ehird> and variadic list concatenation
23:00:16 <oklopol> ...so not folding, or not sum?
23:00:55 <ihope> If you send + with no arguments to a number, you get the number; if you send - with no arguments to a number, you get its opposite. If you send an arithmetic operation with arguments to a number, you get fancy folding.
23:01:12 <ihope> Left-associative folding, I assume.
23:01:21 <ehird> ihope: it's just so (+ 1 2 3) works
23:01:24 <ehird> you could make it do
23:01:29 <ehird> Num(self.val + args[0].val)
23:01:34 <ehird> but that wouldn't be as nice
23:01:59 <oklopol> ehird: how is a receiver conceptually not a function??
23:02:01 <ihope> And now you have Toms, which are cute, I guess.
23:02:13 <ehird> ihope: Toms are atoms
23:03:30 <ihope> And that link, http://www.vjn.fi/pb/p463212552.txt, is all there is to it?
23:04:02 <ehird> ihope: It needs primitives, more messages, and a parser!
23:04:05 <ehird> That's all there is to it.
23:04:30 <ihope> And Toms are applicable.
23:04:57 -!- Judofyr has joined.
23:05:03 <ihope> Hmm, are Koeds the result of parsing stuff like (+ 1 2 3)?
23:05:18 <ihope> Does sound like "code".
23:06:33 <ehird> ihope: Toms are only applicable because they're what we send off to receivers
23:06:41 <ehird> Koed is "code", yeah.
23:06:46 <ehird> Just like skoep is the skope
23:06:53 <ihope> And if you send apply to a Func, something I didn't feel like reading happens. I presume the Func is applied.
23:08:28 <ihope> And Prim is some wacky little thing.
23:08:48 <ehird> ihope: Prim is for primitive functions.
23:08:59 <ehird> Builtins, if you will.
23:09:08 <oklopol> ehird: how is a receiver conceptually not a function??
23:09:17 <ehird> oklopol: how is a receiver conceptually not a function??
23:09:37 <ihope> So yeah, everything's a receiver, and receivers are an odd way of making (+ 1 2 3)... do what it does.
23:10:09 <ihope> I don't see why you send 1 the message + with the arguments 2 and 3 rather than calling + with the arguments 1, 2 and 3, but I guess skoep has something to do with it.
23:10:17 -!- Judofyr__ has joined.
23:10:21 <ehird> ihope: Because ... that would just be functions.
23:10:23 <ihope> So all three of us are right. Happy ending!
23:10:47 <oklopol> ihope: that's the distinction between functions and receivers that no one understands.
23:11:28 <oklopol> i'm not gonna sleep tonight, am i?
23:11:43 <ihope> You can convert a receiver into a function easily enough. I think the set of receivers, though, is finite and unchanging and all.
23:12:22 <oklopol> that would not make them not conceptually functions, though
23:12:32 <ihope> Receivers are conceptually functions.
23:12:42 <oklopol> ehird has clearly stated they aren't.
23:12:42 <ihope> From my reading of it, yes.
23:12:54 <oklopol> should i assume he's *wrong*, and go to sleep?
23:13:01 <ihope> Well, when you see (+ 1 2 3) and are told that it adds 1, 2 and 3, do you think of 1 as being the function here?
23:13:17 <ihope> It's the receiver, because ehird wanted it to be implemented that way for some reason.
23:13:30 <oklopol> well i know that, the idea is from oklotalk
23:13:55 <oklopol> but, conceptually, a function takes something, and returns something, ehird says receivers aren't conceptually functions, yet do exactly this
23:14:15 <ihope> I think how in (+ 1 2 3), 1 doesn't seem like a function is the limit to how receivers aren't conceptually functions.
23:14:46 <ihope> If that 1 isn't "conceptually" a function, receivers aren't "conceptually" functions. If that 1 is "conceptually" a function, receivers are "conceptually" functions.
23:16:43 <oklopol> so basically, receivers and functions are separate in that receivers are *objects*, they take a method name, the atom, and dispatch primarily on that
23:17:23 <oklopol> all i've been asking is "why the distinction?"
23:17:36 <oklopol> "no specific reason" is fine
23:17:43 <oklopol> but "you just don't get it, idiot" is not.
23:17:46 <ihope> Well, there is kind of a reason.
23:18:03 <ehird> it's just like how oko can't be explained
23:18:06 <ihope> 1, treated as a receiver, is what it is. 1, treated as a function, is junk.
23:18:07 <ehird> apparently when you explain it
23:18:09 <ehird> nobody understands :)
23:18:37 <ihope> A function, when treated as a receiver, needs "apply" to do anything meaningful. A function, when treated as a function, is just that.
23:19:07 <ihope> "Hi! Do you want me to be a number or a function today?"
23:19:38 <ihope> The message you're sending: "Be a function. Take these arguments."
23:19:39 <oklopol> so basically, receivers are objects, that's what objects are, functions that are used as data, and who are always called with an atom as the "message"
23:19:43 <ehird> A function is just a receiver
23:19:51 <ehird> with some sugar for sending a certain message - apply
23:19:52 <ihope> oklopol: sounds about right.
23:20:10 <oklopol> in my opinion too, but ehird hasn't said that, so i'm assuming it's wrong
23:20:22 <ihope> oklopol: well, I agree with you.
23:20:42 <ihope> It sounds like ehird is trying to convince you that his way of looking at it is the correct one.
23:20:45 <oklopol> and even if they were, if the object 1 has an input->output interface with no side-effects, it is a function, conceptually.
23:21:50 <ehird> Conceptual example: a number should be a receiver, but the identity function a..well,function
23:21:56 -!- Judofyr_ has quit (Success).
23:22:24 <ihope> So a receiver that returns its message is impossible?
23:22:38 <ihope> Or just discouraged?
23:23:06 <ihope> If it's impossible, I assume that's because messages aren't objects.
23:23:14 <oklopol> ehird: distinction between data and functions, no problem, except 1 still has a function interface, right?
23:23:28 <ehird> <ihope> So a receiver that returns its message is impossible?
23:23:37 <ehird> but .... nonsensical
23:23:47 <ehird> 1 is only a receiver
23:24:51 <oklopol> people should, by convention, use receivers for data and functions for functions, but they are jsut two types of functions called differently?
23:26:31 <ehird> nooooot really ... i mean everything is a func [see LC]
23:26:50 <oklopol> everything is not a function. you've said receivers aren't functions
23:27:00 <ehird> oklopol: everything in the world is a function
23:27:02 -!- Judofyr has quit (Read error: 110 (Connection timed out)).
23:27:03 <ehird> the lambda calculus proved this
23:27:19 <ehird> there is nothing in any TC language you cannot express as a function.
23:27:38 <oklopol> ...so everything in the world is a function?
23:27:48 <oklopol> so, everything in the world is an iota combinator?
23:28:32 <oklopol> a function is a set of pairs (a, b), where no two pairs exist with the same a
23:28:44 <oklopol> and you use it by giving it an a and getting a b out
23:28:49 <ehird> oklopol: btw - how do you have a zeroadic message?
23:28:53 <ehird> a can only be a function
23:28:57 <ehird> because there's nothing to send a to
23:29:22 <oklopol> then it's a function with just the one pair (() result)
23:29:44 <ehird> oklopol: but it can't be a messagesend to a receiver
23:29:56 <ehird> so recv sends != funcalls
23:30:23 <oklopol> (IO a, IO b) pairs if you have side-effects, no prob for functions
23:30:29 <oklopol> IO being the state of the world
23:30:55 <oklopol> just different definitino of function
23:31:09 <oklopol> with that IO thing, same definition, ofc
23:31:40 <oklopol> ehird: that is a syntactic thing
23:31:46 <oklopol> (a) can mean "send nothing to a"
23:31:58 <ehird> nope, message comes first oklopol
23:32:15 <ehird> and 'nothing' cant be sent
23:32:24 <oklopol> well, they already had syntactic differences
23:32:29 <oklopol> how the fuck does this change anything?
23:33:19 <ihope> oklopol: I advise you to stop listening to ehird.
23:33:35 <oklopol> ihope: that might be good for my mental health
23:34:12 <oklopol> unfortunately my mental health is already in bad enough shape for me to be quite unable to do that.
23:34:32 <oklopol> negate that once, in an appropriate way.
23:34:56 <oklopol> perhaps it's time to do a sleep
23:34:56 <ihope> oklopol: what would happen if you just went to bed?
23:35:29 <oklopol> well, right now, i prolly would fall asleep.
23:35:41 <oklopol> i'm starting to feel i *did* get it all along
23:35:43 <ihope> Sleep, then; you're tired. :-)
23:35:48 <ihope> I think you're right.
23:36:19 <oklopol> well, i don't really have a choice then!
23:36:26 <ihope> So if you don't get to bed, fancy serotonin things will yell at you.
23:46:20 <oklopol> no way i'm gonna fall asleep :P i really should see a shrink or something, perhaps time to continue my reading
23:47:54 -!- evincarofautumn has joined.
23:48:24 <oklopol> evincarofautumn: i hate you! (but don't worry, it's not real hate)
23:48:34 <oklopol> recall that attractor idea
23:49:30 <ehird> evincarofautumn: Wow -- you split sentences up MORE THAN ME!
23:49:31 <oklopol> well, my idea was about graphs... but the concept of a moving attractor was gotten from you :D
23:49:58 <oklopol> well not moving, perhaps more like jumping
23:50:34 <ehird> evincarofautumn: I quite like the Queen's English, thanks.
23:50:57 <oklopol> i've made a few esoteric natural language stubs
23:52:09 <evincarofautumn> I was working on an ideographic system for English recently.
23:54:08 <oklopol> how did you do that attractor thing btw, what path is used to get to the attractor?
23:54:10 <evincarofautumn> each character represents an idea, carrying with it one or more pronunciations.
23:54:30 <evincarofautumn> oklopol--Oh, it just increments the x and y each execution frame.
23:55:09 <oklopol> okay, so first diagonally, then horizontall-/vertically
23:56:14 <oklopol> i found all possible movement in n dimensions a bit clumsy, except for real numbers, for which it's just too hard, so i went for graphs
23:56:49 <oklopol> there's a set number of dimensinos
23:57:10 <oklopol> and, each point is identified by a vector giving coordinates
23:57:29 -!- Judofyr has joined.
23:58:11 <evincarofautumn> Yep. When a turtle walks over a command character, it executes it.
23:58:24 <oklopol> let's say the turtle is at (0, 0)
23:58:31 <oklopol> and the attractor is at (5, 10)
23:59:19 <oklopol> move first through n in [1..5]: (n, n)
23:59:48 <oklopol> n in [6...10]: (5, n) in my earlier notation