00:00:08 <oklopol> making all in/po/pr/fi - conversions would be 12
00:00:26 <oklopol> and that's a bit tedious when i could just wrap over prefix and have one for each
00:00:58 <oklopol> also, i'm going to generalize fixes when i have the time, and just have >>> convert <fix code>-<fix code> <expression>
00:01:46 <oklopol> plus the regex thing for specifying what's ws and what's objoken/funcoken, but i said that already
00:01:59 <oklopol> anyway, did anyone ever make a server?
00:02:34 <oklopol> pikhq: i know what you were trying to do, but just right after i'd first misunderstood and already replied :)
00:03:39 <oklopol> the inverse is pretty trivial if you don't sweat about redundant parens
00:05:18 <oklopol> how the fuck can a simple server-client code be over 10 lines long o_O
00:05:25 <oklopol> isn't python supposed to be concise...
00:07:51 <pikhq> A simple Tcl server is 7 lines. . .
00:07:58 <pikhq> http://wiki.tcl.tk/15315
00:08:08 -!- sebbu has quit ("@+").
00:08:23 <pikhq> Just a proc to accept new connects, bind the proc to a socket, and start the event loop. Easy.
00:09:09 <oklopol> and irc server code is long of course
00:09:12 <pikhq> And oklopol was talking about barebones "accepts connections and does something" servers.
00:09:31 <pikhq> Well, yeah. Just getting the IRC parser & lexer up is a nice chunk of code.
00:09:36 <oklopol> http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/200946 <<< like wtf is that
00:10:02 <pikhq> Then you've got to get various parts of the server talking to each other, keeping state of which channels a person is in. . . Bit of a pain.
00:10:20 <pikhq> Wow, that's difficult.
00:10:29 <oklopol> that's not that long if you actually read it... but it's just server/client really isn't a task at all
00:10:40 <oklopol> it should be like WAITFOR <port number>
00:11:07 <pikhq> Seems a bit excessive for to be Pythonic.
00:11:33 <pikhq> (admittedly, it's got a bit more than the Tcl example. . .)
00:11:58 <bsmntbombdood> i bet i could write an irc server in 100 lines in scchemes
00:12:06 <pikhq> Good luck with that.
00:12:16 <pikhq> I bet you'll need more for the IRC parser.
00:25:36 <oklopol> kay... 6 lines and i have a connection
00:26:51 -!- ololobot has quit (Read error: 104 (Connection reset by peer)).
00:27:25 -!- ololobot has joined.
00:36:34 <pikhq> bsmntbombdood: Dubious.
00:36:46 <pikhq> (well, unless you cheat, the Bison way. :p)
00:38:11 <pikhq> Just specify the BNF syntax, and let some tool (or function) automagically parse from that.
01:50:28 -!- importantshock has joined.
02:01:42 <bsmntbombdood> it's says it can accelerate while going straight up, but it won't let me
02:18:51 <bsmntbombdood> and the maximum speed is only mach 1.3, not mach 2
02:28:49 <oklopol> wtf... in which case would print "m ========",m leave "m " out, like refuse to print the first characters of "m ========"
02:29:20 <oklopol> i'm doing a fucking string catenation and everything gets fucked up
02:29:51 -!- RodgerTheGreat has joined.
02:30:42 <oklopol> http://www.vjn.fi/pb/p513215652.txt <<< is there really something that can fuck up?
02:30:47 <oklopol> RodgerTheGreat: good to see you
02:32:17 <oklopol> the lines that should print "m = ..." fail to print "m "
02:32:33 <oklopol> and m=m+msg appends msg to the beginning of m
02:32:43 <oklopol> unless i'm really failing here, python is
02:33:19 <pikhq> The 3rd is the official PEBBLEversery.
02:36:32 <pikhq> Kinda nice that it's a Labor day, though.
02:37:31 <RodgerTheGreat> almost as if everyone else is celebrating the anniversary with you
02:40:26 <oklopol> YAY, just learned the important lesson of never putting chr(13) in a python string...
02:47:50 <oklopol> basically, i debugged a function that catenates 2 strings and prints them for 2 ohurs
02:48:53 <oklopol> well, a bit over an hour, but anyway
02:49:34 <RodgerTheGreat> I've done things worse than that. Let me tell you a tale of a mergesort...
02:50:20 <RodgerTheGreat> my function started from a randomized array, made a copy, did shit, and then copied the sorted data back and returned the array (reasons for why become complicated.)
02:50:34 <RodgerTheGreat> anyway, I implement a mergesort... and it doesn't work
02:51:06 <RodgerTheGreat> 6 frustrating hours and at least 4 total rewrites later, I realize the problem wasn't with the SORT, I was copying back that wrong damn array!
02:54:20 <RodgerTheGreat> the lesson: when you start over on something, make sure you're starting over on all the right parts
02:54:48 <RodgerTheGreat> also, if I'd been smart enough to display more intermediate results on that one I might've figured it out faster
02:55:18 -!- Tritonio has quit (Remote closed the connection).
02:58:22 <oklopol> i had absolutely no idea where the problem could be... since i didn't know that chr(13) sometimes does carriage return and starts appending in the beginning of the string
02:58:37 <oklopol> "sometimes", because in my test runs, it doesn't do that
02:59:01 <oklopol> >>> print "oko"+chr(13)+"odo"
02:59:27 <oklopol> but then again, why would it always work the same way
03:00:57 <oklopol> also, i've been debugging for quite a while now just because i didn't bother to check what mirc SHOULD output @ connect
03:01:08 <oklopol> i just assumed it says something for every server reply
03:01:17 <oklopol> but nooooo, it just says for the first one
04:26:11 -!- poiuy_qwert has joined.
04:41:24 <oklopol> bsmntbombdood: i'm pretty sure you couldn't make an irc server that follows the spec completely in 100 lines
04:41:35 <oklopol> since there are over 100 lines of responces
04:42:21 <RodgerTheGreat> depends on the language and the definition of a "line"
04:42:35 <oklopol> my irc server works now, though you can just join and change nick :P
04:42:59 <oklopol> RodgerTheGreat: usually line is 88 chars at most iirc
04:43:48 <oklopol> RodgerTheGreat: connect to my ip and join #test :P
04:44:09 <RodgerTheGreat> in a couple 20-line coding challenges, I've seen line defined as 255 characters or less
04:44:21 <oklopol> well that would be more sensible
04:44:31 <oklopol> i just recall it was 8x...
04:44:32 <RodgerTheGreat> usually with a max of 15 keywords or something like that
04:45:02 <oklopol> you can't even /part yet :D
04:45:24 <oklopol> and i'm not sure if all clients will even work...
04:45:27 -!- rutlov has joined.
04:50:27 -!- rutlov has left (?).
05:03:24 <RodgerTheGreat> http://en.wikipedia.org/wiki/Centralia%2C_Pennsylvania <- interesting article
05:03:53 <RodgerTheGreat> "There are no current plans to extinguish the fire, which is consuming an eight-mile seam containing enough coal to fuel it for 250 years."
05:19:59 <pikhq> Everyone complains about the weather, but nobody does anything about it.
05:20:12 <pikhq> All in favor of designed a weather control device?
05:58:59 <pikhq> We need to steal _Back to the Future, Part II_'s entire tech tree.
05:59:54 <pikhq> (if nothing else, I want a flux capacitor)
06:06:15 -!- importantshock has quit (Remote closed the connection).
06:15:45 -!- jix_ has quit (Nick collision from services.).
06:16:03 -!- jix__ has joined.
06:27:43 <pikhq> Permission requested to change the topic in honor of PEBBLEversery on the 3rd. . .
07:54:23 -!- poiuy_qwert has quit.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:20:58 -!- Tritonio has joined.
09:06:34 -!- sebbu has joined.
09:31:38 -!- sebbu2 has joined.
09:37:15 -!- sebbu has quit (Connection timed out).
09:37:16 -!- sebbu2 has changed nick to sebbu.
09:56:11 -!- RedDak has joined.
10:43:34 -!- RedDak has quit (Remote closed the connection).
12:12:57 -!- ehird` has joined.
12:30:51 -!- Tritonio has quit (Read error: 104 (Connection reset by peer)).
12:48:10 -!- Tritonio has joined.
13:09:25 <ehird`> my site i made in 10 minutes is #1 on digg.
13:09:29 <ehird`> http://digg.com/playable_web_games/The_Most_Pointless_Website_Ever
13:11:20 <oklopol> are there 100 hits a second :|
13:12:10 <ehird`> login and look at the counter
13:12:16 <ehird`> (registering is just user and pass)
13:12:20 <ehird`> you can see the highscores going up
13:12:36 <ehird`> there are like 50 people logged into the digg account
13:12:42 <ehird`> i have no idea how it got to #1
13:12:47 <ehird`> but shit, im #1 on digg's front page.
13:13:04 <oklopol> how did you get ppl to know that page existed?
13:13:18 <ehird`> it started off in an irc channel
13:13:25 <ehird`> then i posted it on the forum whose irc channel it is
13:13:28 <ehird`> then someone posted it to digg
13:13:34 <ehird`> then other people on the forum digged it, then random people digged it
13:13:46 <ehird`> and got on the frontpage at the top
13:14:01 <ehird`> and i am very noble, not adding ads or anything
13:14:19 <ehird`> i want to code that shoutbox but i can't because it freezes the interface
13:14:23 <ehird`> and i doubt all of them will refresh
13:16:50 <oklopol> i refreshed and the page died :P
13:51:55 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
14:03:51 -!- RedDak has joined.
14:20:37 <oklopol> 160 or something per second
14:25:16 -!- RedDak has quit (Remote closed the connection).
14:36:16 -!- importantshock has joined.
14:40:41 -!- importantshock_ has joined.
14:40:53 -!- importantshock has quit (Nick collision from services.).
14:40:55 -!- importantshock_ has changed nick to importantshock.
15:16:45 <oklopol> pikhq: is there gonna be network support for PEBBLE using that Sgeo's thing?
15:22:50 <pikhq> oklopol: Eventually.
15:23:29 <RodgerTheGreat> pikhq: I challenge you, sir, to create both an IRC client and server in PEBBLE
15:24:37 -!- sebbu2 has joined.
15:26:05 <oklopol> perhaps at least not before that thing exists
15:33:22 -!- sebbu has quit (Read error: 110 (Connection timed out)).
15:35:29 <pikhq> RodgerTheGreat: Evil. . .
15:37:11 <RodgerTheGreat> I dunno, *doing* it in PEBBLE shouldn't be all that horrible, but debugging it will be pure hell
15:44:15 -!- sebbu has joined.
15:44:49 -!- sebbu has left (?).
15:49:02 -!- sebbu2 has quit (Connection timed out).
16:05:36 <oklopol> ehird`: the counter moves pretty fast, ay?
16:06:03 -!- ihope has joined.
16:06:05 <oklopol> you took down my favorite game :<
16:06:30 <ihope> Hey, bsmntbombdood is missing.
16:06:56 <oklopol> that was a fast set subtraction
16:36:08 <ehird`> oklopol: sorry, but i like my server
16:36:32 <ehird`> THINGS WE HAVE LEARNED TODAY:
16:36:42 <ehird`> - digg users are automated bots with no natural processing power
16:36:59 <ehird`> - /b/ users have natural processing power but only use it for emulating automated bots with no natural processing power
16:36:59 <ihope> What's "natural" processing power?
16:37:09 <ehird`> ihope: processing power in the brain, not e.g. a cpu
16:37:20 <ehird`> Monthly Transfer: 10.36 GB (4.86 transmit / 5.51 receive)
16:37:42 <ehird`> So 10gb in that short time!
16:39:25 <ehird`> I enjoyed Counter. Thank you!
16:41:26 <oklopol> god there's a lot to do in the irc server spec
16:41:56 <oklopol> that's not even the server-server spec
16:42:00 <oklopol> http://www.irchelp.org/irchelp/rfc/rfc2812.txt <<< server-client spec
16:42:16 <oklopol> even that has a LOT of shit
16:42:51 <oklopol> i think i'll gradually grow mine to be closer and closer to the spec
16:45:26 <oklopol> it actually already has almost everything you need for irc...
16:47:04 <ihope> What ever happened to RFC 1459?
16:48:09 <oklopol> people die when they get old
16:53:10 <ihope> So there are entirely new IRC specs now?
17:01:31 <ihope> Well, yes. New, but not entirely.
17:14:02 <oklopol> in python, can i delete the value the iterator poits to from the iterated thingie when doing a for loop
17:14:31 <RodgerTheGreat> well, you can't do that in most languages with iterators...
17:15:16 <oklopol> glargh, it's such a frequent thing
17:15:49 <RodgerTheGreat> wouldn't it make more sense to break, or am I misunderstanding the question?
17:16:33 <oklopol> i need to remove the current iterator value from the container
17:17:22 <ihope> Would I understand this better if I'd previously known that iterators pointed to things?
17:17:52 <oklopol> like, i have [1,2,3], i iterate it through, and if i find 2, i remove it
17:19:10 <ihope> My guess is you want either a list comprehension or the filter function.
17:19:20 <oklopol> yes, if i do that functionally
17:19:29 <RodgerTheGreat> I would just iterate through the list manually- I mean, fuck iterators, really
17:20:18 <oklopol> i don't wanna duplicate the whole container every time i do this, so i don't want filter
17:20:33 <RodgerTheGreat> 'course, I'm the nutcase that regularly implements his own stacks inside objects simply because it seems easier that way
17:20:35 <oklopol> i want to do a constant time delete.
17:20:44 <oklopol> it's not a constant time delete anyway
17:20:51 <oklopol> but whaddyagonna do, it's python
17:21:23 <ihope> So you have a variable containing [1,2,3] and you want to change it to [1,3]?
17:21:30 <ihope> Or, you know, something similar.
17:21:30 <oklopol> i guess i could make a hashing for my objects and have that
17:21:57 <oklopol> ihope: i want iterators to be removable from whatever they're iterating through
17:21:58 <RodgerTheGreat> see, my first guess would be to just remove the 2 from the *original* list, rather than trying to pull it out of the iterator
17:22:13 <RodgerTheGreat> but when you do it that way there's no advantage to using iterators in the first place
17:22:26 <oklopol> well yeah, i could just make another container and copy everything but 2 there
17:23:24 <oklopol> i don't really care what iterators should be used for, all i know is i didn't want to do that functionally, but now i have to
17:26:32 <oklopol> http://www.vjn.fi/pb/p455223544.txt
17:28:21 <oklopol> hmm... i should make that for any size lists
17:28:28 <oklopol> i mean, any number of keys
17:30:02 <oklopol> i know it does, it's just i feel it's a bit too much code for something that trivial :)
17:31:33 <oklopol> well, i'm pretty sure it works, and it worked when i tested it, i don't *know* it works for any case...
17:31:47 <oklopol> actually i've done one test case.
17:43:39 <oklopol> http://www.vjn.fi/pb/p225212312.txt
17:44:03 <oklopol> i love how python looks <3
17:44:13 <oklopol> when there's no ugly whitespace
17:46:33 <oklopol> for example that simple cartesian product... you have to hack it in with iteration and a boolean to indicate whether the thing was found
17:46:55 <oklopol> it's like 5 lines for something conceptually overtrivial
17:47:39 <oklopol> well, i guess i could just make the necessary functions myself and not expect python to have everything i need built-in
17:52:14 -!- bsmntbombdood has joined.
18:05:04 -!- sebbu2 has joined.
18:08:28 -!- sebbu2 has left (?).
18:15:27 -!- importantshock has quit (Read error: 113 (No route to host)).
18:16:24 -!- jix__ has quit (Nick collision from services.).
18:16:28 -!- jix_ has joined.
18:18:14 <ehird`> oklopol: itssss bacckkkkkk http://w.elliotthird.org/counter/
19:09:21 <ehird`> oklopol: your position in the rankings is being threatened
19:17:28 <oklopol> perhaps because i stopped playing :P
19:24:11 <ihope> ehird`: what does that do?
19:24:24 <ihope> Is there a button people can click to make the counter go higher or something?
19:26:07 <ihope> Clearly, I should make a program that sends whatever thing to the server repeatedly.
19:27:01 <ihope> Or I could just hold down "enter".
19:28:10 <ihope> I wonder how many I have...
19:31:52 <ihope> Hmm, digg/digg is winning.
19:32:00 <ihope> Maybe I shouldn't have used a password :-P
19:32:40 <ihope> So, the main function is increment_counter().
19:33:04 <ehird`> but if you do it on a personal account i will ban you
19:33:21 <ehird`> And yeah, the button is Increment counter and it sets the counter 1 higher.
19:33:28 <ehird`> The highscores are just the people who have clicked most.
19:33:41 <ihope> Do what on a personal account?
19:34:05 <ehird`> call the increment_counter repeatedly
19:34:17 <ehird`> i cant stop digg doing it because its many people
19:34:26 <ehird`> but anybody else - account deleted
19:34:38 <ihope> You can't delete the digg account? :-P
19:34:59 <ehird`> but then digg would stop coming
19:35:03 <ehird`> and many people don't cheat on the digg account
19:35:28 <ihope> Well, I guess 3133 clicks is "the number".
19:35:53 -!- jix_ has quit ("CommandQ").
19:36:21 <ehird`> get to 3133 and you will be able to see your click count :p
19:38:20 <ehird`> davman is the guy who gave me fanmail for it..
19:38:43 <oklopol> hmm... i can't load the page anymore
19:38:53 <ehird`> http://w.elliotthird.org/counter/
19:40:24 <ehird`> you're on the highscores, ihope
19:43:19 <oklopol> i used to be, then i stopped getting connexion :<
19:44:15 <ehird`> oklopol: you're at #19
19:44:18 <ehird`> just, http://w.elliotthird.org/counter/
19:44:23 <ehird`> ping elliotthird.org or something
19:50:19 <oklopol> i hold enter down all the time and he goes up faster :)
19:50:48 <oklopol> i'm on 3 networks + server my own + have torrents on + 4 bots running
19:51:04 <oklopol> that might... have something to do with it
19:51:34 -!- importantshock has joined.
19:53:00 <ehird`> hah, khauros is SO cheating
19:53:07 <ehird`> he's going up 90 per update
19:53:16 <ehird`> still, if he beats digg it'll be worth it
19:53:48 <ehird`> wow, i think he's actually gonna beat digg
19:55:02 -!- Tritonio_ has joined.
19:56:11 <ehird`> javascript:function test(){increment_counter();self.setTimeout("test()",1);}test();
19:56:23 <ehird`> it's an insta-ban-ticket unless you're about to beat digg like khauros is
19:56:26 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
19:56:37 <ihope> oklopol: at least you won't have to pass me for a while :-P
19:57:23 <ehird`> can digg stories get on the front page twice?
19:58:51 -!- jix_ has joined.
19:59:08 <oklopol> i now did the non programming version of that
19:59:15 <ihope> ehird`: are you going to wait for Khauros to pass digg and then ban? :-P
19:59:21 <oklopol> have my other keyboard on the floor with a glass on top of enter :)
19:59:45 <ehird`> ihope: nah, ill just tell him to stop after
19:59:48 <oklopol> it's preventing me to use the computer
19:59:57 <ehird`> oklopol: it is kind of cheating but its allowed
20:00:10 <ihope> Oh, good, allowed.
20:00:19 <ihope> You really should specify the rules :-P
20:02:08 <oklopol> i thought games like this are always about connection speed :)
20:02:20 <oklopol> (and the ability to write oneliners)
20:02:51 <oklopol> why does ihope own me all the time
20:03:47 <oklopol> i think it's the fact i'm using a browser
20:04:06 <oklopol> i made this program to fetch random pictures from a site people put their pics in
20:04:25 <oklopol> if you do it via browser, 3 pics / minute
20:04:34 -!- sebbu has joined.
20:04:39 <oklopol> well, sometimes a lot faster, but never anything near my program
20:04:50 -!- sebbu has left (?).
20:07:12 * ehird` disappears for a while
20:10:07 -!- importantshock has quit.
20:11:13 <ihope> Hey! Turris is moving! How unfair.
20:19:40 <ihope> Okay, enough of that for now.
20:20:21 <ihope> I was using a browser for this...
20:26:07 <oklopol> ehird`: how long's that gonna be there?
20:26:12 * pikhq wonders where Sgeo's latest PSOX spec is
20:37:56 -!- RedDak has joined.
20:40:13 <oklopol> digg is still going at a quite impressing rate
20:52:06 <ihope> Hmm, indeed, rather impressive.
20:52:29 <ihope> Now, is there a contest like that except with "click a certain button" replaced by "send a byte to the server on a certain port"?
20:53:39 <oklopol> there should be, since that's basically the same, but you don't have to cheat
20:53:53 <oklopol> though for many cheating might be the thrill
20:55:05 <RodgerTheGreat> there's a link-clicking game called "outwar" similar to that, as I recall
20:55:15 <RodgerTheGreat> the trick is that clicks have to be from different IPs
20:57:59 <ihope> oklopol: depends on what you count as cheating.
20:58:21 <ihope> Is telnet server < /dev/zero cheating?
20:58:59 <ihope> RodgerTheGreat: http://www.free-games.com.au/Detailed/205.html?
21:00:05 <ihope> Which, I suppose, is http://www.outwar.com/...
21:00:06 <oklopol> ihope: i mean ehird`'s game may be nicer as long as doing that is considered cheating
21:02:28 * ihope ponders choosing "Who is your favorite teacher?" for his security question
21:02:31 <oklopol> hhah! i'm waaaaaaaaaay before ihope now
21:02:46 <ihope> oklopol: "before"?
21:02:51 * ihope uses a bogus answer instead
21:03:25 <ihope> How many do we each have?
21:03:41 <ihope> Shall I start moving again?
21:04:05 <ihope> Um, I suggest /parting.
21:04:11 <ihope> You're sort of spamming the channel.
21:04:25 <oklopol> http://petition.co.uk (61432)
21:04:27 <oklopol> http://petition.co.uk (61432)
21:04:41 -!- oklopol has quit (Remote closed the connection).
21:04:44 -!- oklopol has joined.
21:04:58 <oklopol> i'm pretty sure i selected just myself from the list
21:05:07 <ihope> Apparently, you didn't.
21:05:12 <oklopol> also, part wouldn't work, neither would closing the window
21:06:01 <ihope> Ah, indeed, you're past me.
21:06:54 <oklopol> gonna leave that on for a few weeks
21:07:21 <ihope> I think you'll be on top by then :-P
21:07:47 <oklopol> i'm pretty sure there are bots that are left on forever there
21:08:28 <oklopol> it's a bit harder for me since i'm actually pressing enter all the time
21:08:44 <ihope> Find some coins and stack them :-)
21:08:51 <ihope> How many computers do you have?
21:09:37 <ihope> Maybe I'll send you the oldest one we have. :-P
21:09:55 <ihope> No, oldest computer.
21:10:06 <ihope> It has a CPU speed display on the front.
21:10:15 <oklopol> the rich answer was for stacking coins
21:10:39 <oklopol> and i'm getting a small handheld one
21:10:44 <ihope> You're not rich enough to have coins?
21:10:56 <oklopol> i just never throw anything out
21:11:19 <ihope> Are you in some weird country where coins are more valuable than bills rather than the other way around? :-P
21:11:34 <oklopol> no, i'm in a country where ppl tell jokes!
21:11:43 <ihope> Ah. That IS weird.
21:11:58 <ihope> We don't tell jokes here. Everybody is always completely serious.
21:12:28 <ihope> I looked up the world's funniest joke online. I doubted its veracity.
21:12:38 <ihope> Then I looked up the definition of "joke" online. Now I know.
21:13:45 <oklopol> i've never laughed at a *joke* joke
21:14:47 <ihope> http://en.wikipedia.org/wiki/World's_funniest_joke
21:15:33 <ihope> I generally don't laugh at things either.
21:16:05 <ihope> The funniest thing I remember is Student Bloopers.
21:16:56 <pikhq> Besides, the world's funniest joke is a Monty Python skit.
21:17:22 <pikhq> "Wenn ist das Nunstück git und Slotermeyer? Ja! ... Beiherhund das Oder die Flipperwaldt gersput."
21:17:50 * pikhq kills all the German speakers. >:D
21:18:13 <ihope> You killed jix_, maybe!
21:18:21 <ihope> At least he died happily, maybe.
21:18:27 -!- jix_ has left (?).
21:18:47 <pikhq> After all, he did die of laughter.
21:18:55 <ihope> And of CommandW, I guess.
21:19:02 <ihope> "Nero was a cruel tyrany who would torture his poor subjects by playing the fiddle to them."
21:19:03 -!- jix_ has joined.
21:19:59 <ihope> Stop violating continuity!
21:20:11 -!- jix_ has left (?).
21:21:09 -!- jix_ has joined.
21:21:54 <ihope> Look, if you're not going to stay dead, at least go back and time and make it so you were never killed.
21:24:47 <ihope> We might as well be random, now.
21:26:10 <ihope> "Beethoven wrote music even though he was deaf. He was so deaf he wrote loud music. He took long walks in the forest even when everyone was calling for him."
21:26:17 <oklopol> perhaps i'll stay up to whole night and do absolutely nothing
21:27:58 <ihope> "Beethoven expired in 1827 and later died for this."
21:27:58 <oklopol> >>> i okokokokokokokokokokokokokokokokoko
21:27:59 <ololobot> okokokokokokokokokokokokokokokokoko
21:28:28 <ihope> "Queen Victoria was the longest queen. She sat on a thorn for 63 years. He reclining years and finally the end of her life were exemplatory of a great personality. Her death was the final event which ended her reign."
21:28:43 <ihope> How interesting. What is this?
21:29:12 <oklopol> that is... a cat command :)
21:29:54 <ihope> Yes, that certainly...
21:30:04 <ihope> http://www.cse.unsw.edu.au/~norman/Jokes-file/StudentBloopers.htm
21:30:42 <oklopol> was the first one somehow wrong too?
21:31:15 <ihope> Well, not so much wrong as just plain silly.
21:31:28 <oklopol> well the last sentence is kinda funny
21:31:48 <ihope> "The First World War, cause by the assignation of the Arch-Duck by a surf, ushered in a new error in the anals of human history"?
21:32:30 <pikhq> "the victims of the Black Death grew boobs on their necks."
21:32:52 <pikhq> "In midevil times most of the people were alliterate." Appropriate
21:34:31 <ihope> So, um, what's it do?
21:34:48 <ololobot> These are all the cmds currently in ololobot:
21:34:48 <ololobot> bf, bs, expr, help, numbda, pl, ul, dict, feed, sch, o, x, k, i, s, factors, in-pr, in-po, in-fi
21:34:58 <ololobot> This is a simple brainfuck interpreter.
21:34:58 <ololobot> ">>> [Wnnn] code [<<< input]" to run, where [...]'s are optional.
21:34:58 <ololobot> Wnnn sets wrapping, nnn is any number that fits an irc message.
21:35:09 <pikhq> Well, *K* is /xy.x
21:35:29 <ihope> Indeed, I keep using > for some reason.
21:35:38 <oklopol> numbda is a language i made some time ago
21:36:08 <oklopol> currently it's basically just basic arithmetic+vars+function calls+lambdas,
21:36:25 <oklopol> but the interpreter isn't working yet, fully, so iu haven't finished the lang
21:36:44 <oklopol> it should be a language where lambdas are implicit
21:37:10 <oklopol> (x+3) == lambda x:x+3 if used out of x's namespace
21:37:28 <oklopol> otherwise (x+3) == ...well, x+3
21:38:23 <ihope> Hmm... I think I prefer more explicit stuff.
21:38:33 <ihope> flip (+) 3, (+3), \x -> x+3.
21:39:48 <oklopol> if a subexpression uses a variable X that is not in the current namespace, that subexpression is considered a lambda that takes one argument, and sets X to that
21:40:12 <oklopol> otherwise the subexpression is not considered a lambda, but a simple expression that is evaluated.
21:40:31 <oklopol> >>> numda k={a->{b->a}};k!6!7
21:40:36 <ihope> What's (x + 3) * 4?
21:40:38 <oklopol> >>> numbda k={a->{b->a}};k!6!7
21:40:47 <oklopol> that doesn't work, in general.
21:41:04 <ihope> (x + 3) is the subexpression here?
21:41:45 <ihope> So is the subexpression pretty much as small as it can reasonably be?
21:42:18 <oklopol> it's the shortest possible x+3, yes
21:43:03 <oklopol> it has first order lambdas, but operators are on a different level
21:43:13 <oklopol> you have to use ! to use your own lambdas/functionsa
21:43:47 <oklopol> >>> numbda k={a->{b->a}};s={a->{b->{c->(a!c)!(b!c)}}};s!k!k!4
21:44:04 <oklopol> spaces. (x + 3) * 4 -> (x+3)*4, i mean
21:44:47 <ihope> They're different, you mean?
21:44:57 <oklopol> no, the latter is just shorter
21:45:06 <oklopol> (23:40:21) (ihope) So is the subexpression pretty much as small as it can reasonably be? <<< i was sommenting to this
21:45:08 <ihope> Do spaces matter at all in this language?
21:46:29 <oklopol> because -> is the only operator with two chars, and > isn't a prefix operator
21:47:17 <ihope> >>> numbda k={a->{b ->a}};s = {a->{b- >{c->(a!c ) !(b!c)}} };s !k!k!4
21:47:24 <ihope> >>> numbda k={a->{b ->a}};s = {a->{b- >{c->(a!c ) !(b!c)}} };s !k!k!4
21:47:32 <oklopol> in that implementation, i can't guarantee a thing :)
21:48:00 <oklopol> oh, indeed, you can't separate "->", or varnames
21:48:18 <ololobot> lazy:[apply opr:-> to id:a(0) and num:3]
21:48:44 <oklopol> >>> numbda k={a->{b ->a}};s = {a->{b->{c->(a!c ) !(b!c)}} };s !k!k!44
21:49:04 <oklopol> you did exactly that, separated ->
21:49:59 <oklopol> i always parse -> in the end of a message as "i'm leaving"
21:50:51 <oklopol> my whole computer crashed from pressing enter :)
21:51:19 -!- jix_ has quit ("CommandQ").
21:51:30 <oklopol> i did the same thing on windows for just as long, though also had about 50 other programs running
21:53:29 <ihope> I think I'll implement SKI in my improved parser language.
21:53:40 <ihope> Then I'll come up with a spec for my improved parser language :-P
21:54:39 <ihope> Hmm, now I'm wanting Ubuntu back.
21:54:55 <ihope> Because Gentoo is sort of not working :-P
21:55:29 <oklopol> my experience with ubuntu has been a bit bad
21:55:35 <ihope> I could get it to work with enough Google searches and support pestering, but...
21:55:44 <oklopol> it's crashed more times over my short use than my windows machines in a year
21:55:55 <ihope> Hmm. I don't think it's ever crashed here.
21:56:44 <ihope> What other things do you use?
21:57:17 <ihope> Operating systems.
21:57:28 <ihope> (Hmm, it's hard to type and regularly press the CD eject button at the same time.)
21:57:28 <oklopol> i have windows on this machine and ubuntu on the other
21:58:16 <ihope> Well, it doesn't work while the Gentoo LiveCD is running, so I have to reboot it and then press the button before it checks for an OS on the CD.
21:58:57 <ihope> Now to try to get Ubuntu running, since its live CD is a little unreliable.
22:00:07 <ihope> Or maybe I should just RTF Gentoo M.
22:03:34 <ehird`> the only decent ubuntu
22:04:08 <ehird`> it's fast as hell, comes with lots of decent apps, highly customizable but easy to use, and has many optional visual effects
22:06:21 <ehird`> xubuntu is perfect for both kde and gnome users i find
22:06:30 <ehird`> it's simple enough for gnome users to get the hang of it, but without the annoying bugs
22:06:43 <ehird`> and it's as configurable as kde users expect
22:08:30 <oklopol> all i can think of that an os could offer is a better file/networking/process system, as far as i know, unix's is pretty much the same as windows's
22:08:54 <oklopol> and i have no idea why i always start begging for a fight by saying stuff like that
22:09:19 <ihope> Does Windows have chroot?
22:09:31 <oklopol> for a while there i thought ubuntu had recovered :)
22:09:36 <ihope> It's a teeny tiny bit essential :-P
22:09:44 <oklopol> okay, unix's access stuff is better
22:09:47 <ehird`> ihope: nope, it doesn;t
22:10:34 <ihope> Hmm... maybe it's not that essential.
22:10:42 <pikhq> oklopol: Sounds like Plan9.
22:10:46 <ihope> How easy is it to write a program that adds a user?
22:10:59 <oklopol> i don't see how you'd ever need to do that
22:11:52 <oklopol> well yeah, but adding a user is just one means of doing that
22:12:07 <ihope> How can it be done nicely under Windows?
22:12:27 <oklopol> but then again, i don't really use other ppl's code, so i just write safe code.
22:13:08 <ihope> Does that mean you wrote your own IRC client, too?
22:13:33 <ihope> Or by "code" do you mean "source code"?
22:13:39 <oklopol> that means i feel bad unless i do
22:13:43 <pikhq> oklopol: You don't like free software?!?
22:13:53 <oklopol> pikhq: i like receiving, not giving
22:14:00 <ehird`> i didn't write this? then i better rewrite a clone of it
22:14:13 <ehird`> oklopol: so basically you're a selfish person
22:14:18 <ehird`> that's not the best life skill you can have ;P
22:14:21 <ihope> What's "NIH" stand for?
22:14:26 <pikhq> Not Invented Here.
22:15:13 <oklopol> ehird`: i do like to receive, but i do not encourage anyone to share.
22:16:02 <ihope> Well, they are giving it away.
22:16:08 <oklopol> (pikhq) oklopol: You don't like free software?!? <<< what was that for an argument then?
22:16:17 <pikhq> Free as in freedom.
22:16:34 <pikhq> Not an argument, more asking "what the hell?"
22:16:42 <ehird`> i believe if you use free/open-source/whatever-fscking-term-you-like-to-debate-about software, it's good to consider releasing at least some of your software the same way
22:16:52 <ehird`> it just helps the continuum keep going
22:17:09 <oklopol> i do not understand how i can ever get money for my programs if i do open source
22:17:11 <pikhq> I've got a different belief, ehird. . .
22:17:41 <oklopol> that's my only problem with open source
22:17:42 <ihope> GPL: if you add to this program, GIMME! :-P
22:17:47 <pikhq> And, as I've argued previously, you can make money with free software.
22:17:53 <ehird`> oklopol: SOLUTION - don't try and make money off software
22:17:57 <oklopol> and the fact people start bitching about minor details they don't like about my programming style
22:18:06 <oklopol> ehird`: okay... then how do i get money?
22:18:12 <ihope> oklopol: with a job?
22:18:30 <oklopol> that's all i ever want to do, naturally
22:18:37 <ehird`> this world is not a utopia
22:18:40 <ihope> Programming jobs don't pay?
22:19:04 <oklopol> i never thought os ppl actually thought programming isn't something you can make a living off
22:19:07 <ehird`> ihope: programming is hardly the simplest industry to get into
22:19:09 <pikhq> I'll be sure to tell that to Sun, Red Hat, and Novell employees.
22:19:13 <ehird`> oklopol: no, I think that
22:19:27 <pikhq> oklopol: No, they think it doesn't matter whether or not you can; freedom is more important.
22:19:50 <oklopol> i prefer money over lazyness.
22:20:17 <ihope> I've suddenly forgotten what we're talking about.
22:20:25 <oklopol> i just said i don't like open source
22:20:25 <ehird`> oklopol: well, get a job other than programming... the probability of being able to sustain yourself fully from programming is very small
22:20:25 <ihope> Is it about how oklopol can make money?
22:20:31 <oklopol> i like saying that once in a while
22:20:45 -!- ihope has left (?).
22:21:12 <ehird`> oklopol: ooh, let's think, one of the thousands of other jobs in the world?
22:21:18 <ehird`> hardly any choice is there!
22:21:44 <ehird`> are you sheltered or just very ignorant?
22:21:50 <oklopol> i'm definately gonna do anything where i have to... do something but program
22:22:12 <pikhq> You could program and make money off of it. . .
22:22:34 <pikhq> I hear Red Hat, Novell, Sun, etc. are willing to pay for free software developers.
22:22:34 <oklopol> pikhq: ehird` said that is not possible
22:22:58 <ehird`> oklopol: i just said that it's hardly the most stable industry to get into easily
22:23:10 <pikhq> oklopol: Reality disagrees (although given the right circumstances, it could be difficult) ;)
22:23:11 <oklopol> i hope the os movement just dies, i'm a dreamer, you see.
22:23:22 <ehird`> oklopol: wow, uh, i'd like to see a future with that
22:23:30 <ehird`> oklopol: you'll be running on... how shall i put it... low tech?
22:23:34 <pikhq> And free software doesn't involve dreaming?
22:23:52 <oklopol> not really, you can't devote your life to something you don't get paid for
22:23:57 <ehird`> "OS MOVEMENT SHOULD DIE BECAUSE I WANT IT TO WHAT DO YOU MEAN TECHNOLOGY PROGRESS WOULD STOP <3" "I WILL NOT GET ANY JOB BUT PROGRAMMING"
22:24:03 <ehird`> oklopol: umm, heard of "hobbies"?
22:24:16 <pikhq> oklopol: I'll be sure to tell that to Gandhi.
22:24:44 <oklopol> pikhq: hardly a good point.
22:25:22 <ehird`> stallman is crazy-ass anyway
22:25:37 <oklopol> if there really aren't many programming jobs available when i finish university, i'll just be jobless i guess
22:25:53 <ehird`> just wither away and die or something
22:25:54 -!- RedDak has quit (Remote closed the connection).
22:25:57 <pikhq> Somewhere without programming jobs is probably 3rd-world. . .
22:26:26 <oklopol> pikhq: i'm just responding to you ppl saying there aren't many programming jobs available.
22:26:32 <pikhq> oklopol: That's ehird, not me.
22:26:47 <oklopol> pikhq: you said something vague about reality, i may have misinterpreted
22:27:42 <ehird`> well his logic is outstanding
22:28:55 <oklopol> (00:17:40) (oklopol) i never thought os ppl actually thought programming isn't something you can make a living off
22:28:58 <oklopol> (00:17:49) (ehird`) oklopol: no, I think that
22:29:05 <oklopol> i guess i failed with all the negations.
22:29:23 <oklopol> english is a bit ambiguous.
22:29:41 <oklopol> (00:19:01) (ehird`) oklopol: well, get a job other than programming... the probability of being able to sustain yourself fully from programming is very small <<< very small probability
22:30:12 <oklopol> i guess i misunderstood you
22:30:22 <oklopol> then this conversation has been most redundant :)
22:31:23 <pikhq> ehird`: Also, Stallman is no more a nutcase than you are. ;p
22:31:48 <ehird`> pikhq: no, stallman is a complete nutcase
22:32:02 <ehird`> pikhq: you can't tell? :)
22:32:21 <ehird`> it's a subjective opinion
22:32:34 <pikhq> Demonstrate some things that make him a nutcase to you.
22:34:27 <oklopol> ehird`: just out of curiosity, what would you be willing to do if you didn't get a programming job?
22:34:32 <ehird`> his nutcasery, pikhq? ;)
22:34:41 <ehird`> oklopol: any reasonable job?
22:35:05 <oklopol> but can't think of anything else reasonable
22:35:35 <ehird`> get back to me when i've regained control over my lungs
22:35:36 <pikhq> ehird`: You suck at defending yourself.
22:36:00 <oklopol> ehird`: that wasn't a joke, really, but please answer :\
22:36:32 <oklopol> okay, in theory i could be a musician, but i don't enjoy the social aspect
22:36:42 <oklopol> just being a composer doesn't make a living
22:36:56 <oklopol> really, what's a reasonable job?
22:37:10 <oklopol> i doubt yours are the same as mine
22:37:20 <oklopol> would that be like... a shop clerk?
22:37:55 <oklopol> i could also be like a mad professor
22:41:04 * ehird` is lying dead on the floor
22:43:22 <oklopol> ehird`: are you gonna answer me? :<
22:44:15 <oklopol> "just out of curiosity, what would you be willing to do if you didn't get a programming job?"
22:46:43 <ehird`> beggar wouldn't be cool
22:47:11 <oklopol> if they allow computers in prisons, that's one thing i could do, do someting criminal and program all day
22:48:59 <oklopol> one thing i've always thought about is a janitor
22:49:21 <oklopol> like, for example, at a school
22:49:28 <oklopol> (if they still have janitors)
22:49:56 <oklopol> well, anything where you can lock yourself up somewhere, really
22:50:15 <oklopol> guess i'm a bit agoraphobic or smth
22:51:41 -!- ihope has joined.
22:52:19 <oklopol> and then i asked her to pee in my mouth
22:52:53 <ihope> Did I join at exactly the wrong time?
22:53:06 <oklopol> sorry, just an old joke of mine
22:53:29 <ihope> Explains the lack of context in the logs :-P
22:54:41 <ihope> No, ehird` is median!
22:54:44 <ehird`> i prefer "and then it got all over the keyboard, and oh god it was wet and sticky"
22:54:50 <ihope> 50th percentile exactly.
22:54:51 <ehird`> for out of context quotes
22:55:19 <oklopol> well yeah, but context ones are a bit different
22:55:21 <ihope> Maybe you could quote subject lines of spam.
22:55:22 <ehird`> because you can clarify it with "i was drinking soda and it spilled"
22:56:45 <ihope> There's "My boyfriend's . . .".
22:57:20 <ihope> Which I guess is the same template as "My new guy's . . .".
22:57:50 <ihope> Not sure about "When I tried to . . ." and "I just started . . .".
22:58:23 <ihope> Wow. Even "Can you tell me . . ." is one of that template.
22:58:35 <oklopol> umm... how do you use these?
22:59:12 <ihope> They're not really that good.
22:59:22 <ihope> There's more to it than the part I quoted.
22:59:28 <ihope> Check your spam folder for the rest. :-P
23:00:20 <oklopol> i used to get some, but... then it just stopped
23:00:44 <oklopol> i actually give the address away a lot
23:00:48 -!- theoros has joined.
23:01:11 <oklopol> i don't know anything about the email, it's a webmail from our school
23:01:27 <ihope> Sounds like that'd have a spam filter.
23:02:20 <ihope> I guess these subject lines are a little gross.
23:02:42 <ihope> Sort of very dirty.
23:02:56 <oklopol> well yes, that's why i asked
23:03:19 <ihope> Want me to tell you one?
23:03:53 <ihope> Perhaps not THAT dirty.
23:03:59 <ihope> Certainly a little dirty.
23:04:46 <oklopol> well yes, but can you make that undirty in the right context?
23:04:54 <oklopol> i've heard worse on this channel
23:05:09 <oklopol> you could've said it here, i mean
23:05:15 <ihope> Yeah, I could have.
23:05:24 <oklopol> "can you make that undirty in the right context?"
23:05:28 <oklopol> i think that's... pretty clear
23:13:29 * ihope ponders SKI calculus
23:13:46 <ihope> I "should" be working on getting Gentoo going.
23:14:44 <ihope> No, I'm still pondering.
23:14:51 <ihope> Actually, it's SK calculus.
23:14:52 <oklopol> what are you pondering about it?
23:15:02 <ihope> How to implement it.
23:15:18 <ihope> I'll call it SKI calculus any way, then :-P
23:15:32 <oklopol> yeah, we all know the basics here anyway
23:15:35 <ihope> I'm implementing it in this parsing-based language.
23:15:48 <oklopol> parsing-based, wanna enlighten me?
23:15:56 <ihope> Every first-class value is a parser.
23:16:31 <oklopol> so basically a function parses it's arguments?
23:16:35 <pikhq> No, it's SK"/x.SKKx" calculus.
23:16:45 <ihope> Parsers return strings, but a string is indistinguishable from a parser immediately returning that string.
23:17:03 <ihope> What a function parses isn't one of its arguments.
23:17:19 <ihope> Rather, what a parser parses.
23:17:30 <oklopol> Let's be more formal, like ihope would say.
23:17:46 <oklopol> a parser does string->parser->string
23:18:02 <ihope> Sort of tricky to put formally, I guess. Lemme think...
23:18:23 <oklopol> it's kinda like tree rewriting, but you have to serialize between steps?
23:20:16 <oklopol> how is the overall data in a program presented?
23:20:18 <ihope> Okay, I think I've got it, greatly.
23:20:22 <oklopol> is it one string at every stage?
23:21:24 <oklopol> oaky was a language i started making for tree-rewriting exactly, before i'd actually tried programming in a tree-rewriting language
23:21:33 <oklopol> i stopped because it wasn't esoteric enough
23:22:15 <ihope> First of all, there's the regexes, which are parsers. /foo/, for example, looks at the current string. If the string begins with "foo", it removes the "foo" from the beginning and returns "foo". If the string doesn't begin with "foo", it fails.
23:23:13 <ihope> parser[string] runs parser with string as its current string, then returns whatever the parser returns, ignoring the new current string.
23:23:59 <oklopol> so /foo/["okokoko"] would fail, /foo/["fookokoko"] would return "foo"?
23:24:20 <ihope> /fo*/ matches f followed by any number of o.
23:24:32 <ihope> I'll get to failing later.
23:24:45 <oklopol> i might guess what that means, but do continue
23:24:48 <ihope> So /fo*/["fooooobar"] returns "fooooo".
23:25:03 <ihope> I guess there's no better time to explain failing than now.
23:25:26 <ihope> Next piece of syntax: parser | otherparser
23:26:14 <ihope> That runs parser on the current string. If parser returned something, it returns whatever parser returned. If parser failed, it pretends parser didn't run at all, then acts like otherparser.
23:26:48 <ihope> So (/foo/|/bar/)["fooquux"] returns "foo", while (/foo/|/bar/)["barquux"] returns "bar".
23:27:09 <oklopol> so... o="oh"; f="ohoho"; ((o|f)"x")["ohohox"] won't match?
23:27:19 <oklopol> you prolly don't get my syntax...
23:27:39 <oklopol> "oh" and "ohoho" are regexes
23:27:54 <oklopol> o=/oh/; f=/ohoho/; ((o|f)/x/)["ohohox"]
23:27:56 <ihope> You like the letter "o", don't you? :-P
23:28:21 <ihope> Assuming you mean concatenation there... hmm, lemme think about that.
23:28:32 <ihope> Yes, you're right.
23:28:36 <oklopol> that is the problem with that kind of trivial failing
23:29:07 <oklopol> but, you can just make the programmer have their own way of getting around that.
23:29:07 <ihope> (o|f) would chomp the "oh" and leave /x/ with "ohox".
23:29:17 <ihope> Next piece of syntax: parser + otherparser
23:30:01 <ehird`> who wants to take up implang again?
23:30:10 <ehird`> the first revival didn't work =p
23:30:15 <ihope> This runs parser, then otherparser, and returns the results, concatenated.
23:30:18 <ihope> ehird`: the planned language?
23:30:55 <oklopol> ihope: the problem is regexes are usually stronger than that in that they can go back in time and always choose the right path
23:31:26 <oklopol> if you fail at the end of the test, you should go back to where it last branched and retry
23:31:26 <ihope> I could add another alternation operator to fix that.
23:31:37 <oklopol> though, i think you can just have other functionality to get past that
23:32:09 <oklopol> he always shrugs, just learn to ignore it!
23:32:17 <ihope> ehird`: I was shrugging at oklopol's pointing-out of the regex problem.
23:32:35 <oklopol> anyway, please do continue if you have other stuff
23:33:30 <ihope> Next and biggest piece of syntax is stuff like this: {parserone; x <- parsertwo; parserthree}
23:33:32 <ehird`> ihope: so you haven't responded to the query about the planned languag?
23:33:38 <ihope> ehird`: no, not really.
23:33:54 <ihope> This runs parserone, then runs parsertwo, then sets x to whatever parsertwo returned, then runs parserthree.
23:34:02 <oklopol> ehird`: don't stop the lecture!
23:34:43 <oklopol> ihope: {a;b;c;...;z} is like a+b+c+d+e+...+z?
23:34:46 <ihope> x is only in scope for the rest of the block, so it's not really a variable so much as... something else, I guess.
23:35:00 <ihope> Oh, right. After it runs parserthree, it returns what parserthree returned.
23:36:01 <ihope> Well, it's part of the syntax, just like {} is.
23:36:11 <ihope> It separates the statements inside the block.
23:36:51 <ihope> A declaration takes this form: "function(parameter,otherparameter): expression."
23:37:10 <oklopol> i don't know what i failed
23:37:17 <ehird`> sooo, anyone want to take up implang?
23:37:49 <ihope> Functions take strings; if you try to pass a "non-string-like" parser into a function, you get a runtime error.
23:37:56 <oklopol> i'm gonna do some german work tonight, i think
23:38:04 <ihope> Strings can act as parsers, too: a string ignores the current string and returns itself.
23:38:43 <ihope> So function(/regex/) or function(fail) is a runtime error, since /regex/ doesn't ignore the current string and fail doesn't return anything.
23:38:56 <ihope> (Assuming fail has suddenly turned into a keyword, which it hasn't. :-P)
23:39:18 <ehird`> #thelang for planned implang mk.3
23:39:43 <ihope> Sort of interestingly, // is stringlike: it ignores the current string and returns "".
23:39:51 <ihope> So it's the same as "".
23:39:54 <ihope> And yes, I technically didn't tell you about string literals :-P
23:40:32 <oklopol> you wouldn't have told me if you had something weirder
23:40:35 <ihope> Yes, that works, because fail is what // returned here.
23:41:10 <ihope> I think there are three "strengths" of alternation operator.
23:41:31 <oklopol> {foo=/asdf/;bar=/.*/}["asdfololololo"] = "ololololo"?
23:41:50 <oklopol> {foo=/asdf/;/.*/}["asdfololololo"] = "ololololo"?
23:41:54 <ihope> The "weakest" one assumes that if the string is looked at and the parser doesn't fail immediately, it will never fail.
23:42:28 <ihope> This allows the second option to be forgotten.
23:42:59 <ihope> If part of a block fails, the entire block fails.
23:43:59 <oklopol> you haven't shown me a way to get a new string to parse
23:43:59 <ihope> The "medium" strength doesn't make the assumption that the weakest one does, but it assumes that if the first parser succeeds, it can forget about the second option then.
23:44:51 <oklopol> like, you have to have a way to pass a parser around to be able to get any looping going
23:45:48 <ihope> The "strongest" alternation doesn't make even the assumption that the medium one does: even if the first parser succeeds, any later failure will cause it to switch to the second parser.
23:48:40 <ihope> I think I like the weakest alternator best. It's easy to "work around", and is quick to remove things from memory.
23:49:10 <oklopol> but, to be able to do ski, do you have any kind of flow control?
23:49:26 <oklopol> string *result* catenation etc
23:49:54 <oklopol> otherwise your program just parses one big string character by character
23:49:59 <ihope> Results can be concatenated fine.
23:50:11 <ihope> {x <- parser; y <- parser; parser[x+y]}
23:50:46 <oklopol> that'd use what parser[x+y] returns as the last parser?
23:51:22 <oklopol> indeed, that returns a string
23:51:31 <oklopol> and a string always returns itself
23:52:06 <ihope> Parsers return strings.
23:52:38 <oklopol> it took me a second it doesn't matter if that string that's returned is used as a parsed.
23:53:29 <oklopol> can you pass parsers around?
23:53:41 <oklopol> can you do a <- ... ; {a}?
23:54:11 <oklopol> because recursion is impossible otherwise
23:54:14 <ihope> {a <- ...; {a}} works fine.
23:55:01 <ihope> http://pastebin.ca/677964
23:55:18 <ihope> A = s; B = k; C = `.
23:56:05 <oklopol> where's the actual parser?
23:57:48 <ihope> That program happens to be built from single-letter regexes only.
23:59:15 <ihope> And it works with the weakest alternator.
23:59:32 <ihope> And, assuming I didn't make any big mistakes, it's a valid SK interpreter.