00:00:40 <SimonRC> well, the situation that it was an analogy for was almost that scary
00:01:40 <lament> ...to fly to brazil, i mean
00:02:35 * oerjan recalls such a situation in the webcomic A Miracle of Science
00:02:42 <oerjan> except it was Mars, not Brazil
00:02:59 <ehird> oerjan: googling tells me that that is the source of the quote
00:03:35 -!- pikhq has joined.
00:05:16 * Sgeo forces pikhq and oerjan into #ircnomic
00:05:59 <ehird> well, oerjan DID participate in a nomic, iirc
00:06:01 <ehird> so maybe he will come
00:06:29 <oerjan> except once again, i am preparing to go to bed
00:31:18 -!- timotiis has quit (Read error: 110 (Connection timed out)).
00:42:40 -!- oerjan has quit ("Good night").
00:58:07 -!- ec has left (?).
01:08:49 -!- sebbu2 has quit ("@+").
01:26:51 -!- Corun has quit ("This computer has gone to sleep").
01:36:22 -!- immibis_ has joined.
01:36:40 <immibis_> [12:32] *** immybo has been kicked from the channel by immybo (Cause you suck).
01:44:50 <oklopol> bsmntbombdood: i'm assuming you had a reason to ask :D
01:45:28 <oklopol> so i hear that nopol owns ass
01:47:14 <oklopol> my newest language, characterized by having Too Many Characters in the charset
01:48:23 <oklopol> ehird keeps crying about the dotties :|
01:51:05 -!- nopolie has joined.
01:51:24 <oklopol> ^run <: <<<> <<> <>>> <<> <>>>
01:51:42 <oklopol> ^run <: <<> <<> <>>> <<> <>>>
01:51:53 <oklopol> ^run <: <<::> <<::> <::>>> <<> <>>>
01:52:03 <oklopol> ^run <: <. <::> <<::> <::>>> <<> <>>>
02:08:29 -!- Sgeo_ has joined.
02:22:17 -!- Sgeo has quit (Connection timed out).
03:19:58 -!- Sgeo_ has changed nick to Sgeo.
03:52:55 <ehird> RodgerTheGreat: Lies
03:53:27 <ehird> RodgerTheGreat: He originally had it just <> and space
03:53:42 <ehird> < ><><>< <><<><>> <>>
03:54:49 <ehird> RodgerTheGreat: It has lists of negative depth.
03:54:57 <ehird> ((a b) (c d)) = 2 depth
03:55:07 <ehird> (((a b) (c d)) ((e f) (g h))) = 3 depth
03:55:12 <ehird> it has -1 depth, -2 depth ..
03:55:22 <ehird> RodgerTheGreat: turned inside out basically.
03:55:29 <ehird> RodgerTheGreat: and the language is based on tree rewriting of those lists
03:55:49 <ehird> RodgerTheGreat: even the syntax is ambigous
03:55:52 <ehird> >...< is a negative list
03:55:54 <ehird> <...> a positive one
03:56:01 <ehird> it uses whitespace to determine which it is
03:56:29 <ehird> RodgerTheGreat: I know, I love 'em
03:56:57 <ehird> and I am talking to you, RodgerTheGreat, at 3:57 AM.
03:57:03 <ehird> I may or may not be tired.
03:57:11 <RodgerTheGreat> well, you can't help but admire the creativity if nothing else
03:57:43 <ehird> what, of being up a- Oh.
04:03:42 -!- Slereah_ has joined.
04:04:02 <Slereah_> Can you add curry to the recipie for functional programming?
04:04:39 <ehird> Slereah_: #ircnomic
04:20:25 -!- pikhq has quit (Read error: 110 (Connection timed out)).
04:24:11 <GregorR> Nobody's invited me to #ircnomic D-8
04:25:58 <Slereah_> It's a secret conspiracy against you.
04:27:05 <ehird> GregorR: #ircnomic!
04:33:53 <Slereah_> Is the term bounded storage machine widespread?
04:34:14 <Slereah_> Google has like 32 results, and the first result is the esowiki
04:34:43 <Slereah_> And a lot of the results are from the esolang communauty.
04:35:38 <Slereah_> The only other sauce seems to be "Constant-Round Oblivious Transfer in the Bounded Storage Model"
04:36:37 <ehird> Slereah_: i've heard it
04:55:01 <Sgeo> GregorR, please do join #ircnomic
04:55:42 <Sgeo> Currently, a proposal that could kill the ruleset is passing.
04:59:16 <ehird> GregorR: Yes, please do
05:23:15 -!- immibis_ has quit (Read error: 104 (Connection reset by peer)).
05:43:28 -!- Sgeo has quit ("Ex-Chat").
06:13:35 -!- cherez has quit (Remote closed the connection).
06:13:58 -!- cherez has joined.
06:23:58 <ehird> so -- cool domain names
06:39:58 -!- olsner has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:37 -!- Iskr has joined.
08:23:25 -!- ehird_ has joined.
08:39:36 -!- ehird has quit (Read error: 110 (Connection timed out)).
08:49:53 -!- GreaseMonkey has joined.
09:09:35 -!- immibis has joined.
09:10:07 -!- immibis has set topic: http://tunes.org/~nef/logs/esoteric/ | Made of fluffy bell rings and envelope tings, whatever they are..
09:23:37 -!- ehird_ has set topic: http://tunes.org/~nef/logs/esoteric/ | Made of fluffy bell rings and envelope tings, whatever they are. also green flowers.
09:34:14 -!- immibis has set topic: htpt://tunes.org/~nef/logs/esoteric/ | Made of fluffy oil rigs and envelope tings, whatever they are. Also green flowers. http://kevan.org/rubicon/.
09:35:59 -!- immibis has set topic: http://tunes.org/~nef/logs/esoteric/ | Made of fluffy oil rigs and envelope tings, whatever they are. Also green flowers. http://kevan.org/rubicon/ | We are getting paid $0.00 to advertise Rubicon in our topic. Yay, free money!.
09:48:22 -!- oklopol has quit (Read error: 110 (Connection timed out)).
09:49:15 -!- nopolie has quit (Read error: 110 (Connection timed out)).
10:12:06 -!- immibis has quit ("Leaving.").
10:17:57 -!- ehird_ has set topic: http://tunes.org/~nef/logs/esoteric/ | some irish people have been noted here, please report them if you find any.
10:22:17 -!- oklopol has joined.
10:28:52 <ehird_> all words involving oklopol in any way must be prefixed oko- or oklo-
10:32:02 -!- sebbu has joined.
10:35:44 -!- Corun has joined.
10:36:53 <ehird_> oklopol: slept, i have not
10:37:30 <fizzie> ITYM "olkoslept" HTH HAND.
10:40:50 -!- GreaseMonkey has quit ("Unisex.").
10:54:50 -!- oklopol has quit (Read error: 110 (Connection timed out)).
12:25:03 -!- oklopol has joined.
12:39:01 <oklopol> {x:_;y:_;?x<?y&x>y=>(x,y)=(y,x)} <<< sorting a list in Ef, should run in O(n^2 lg n) average time despite of being quite clearly declarative
12:39:30 <oklopol> in Ef (Ef is for Fixed point) function calls are executed infinite times
12:39:42 -!- sebbu2 has joined.
12:40:11 <oklopol> so sort={x:_;y:_;?x<?y&x>y=>(x,y)=(y,x)};sort [4 3 5 2 6] will actually do fixed_point(sort,[4 3 5 2 6])
12:40:40 <oklopol> this is quite fun as we can calculate stuff like pi exactly, well, superficially
12:41:01 <oklopol> floating point numbers just have an epsilon
12:41:14 <oklopol> more interesting than nopol?
12:41:27 -!- Corun has quit ("This computer has gone to sleep").
12:41:31 <oklopol> i hope so, i haven't heard about a fixed-point language
12:41:58 <oklopol> atm, it seems to me like it's a whole new paradigm
12:42:05 <oklopol> probably a sucky one, but different.
12:42:57 <oklopol> basically, functions just try to find something they can fix in their arguments, and automatically recurse
12:43:12 <oklopol> explicit recursion is possible, in case the declarative way is too slow
12:44:24 <oklopol> i have no proof it's n^2 lg n, perhaps it's more like n^3
12:45:38 <oklopol> it's O(n^2), because insertion sort arises from the definition.
12:48:14 -!- sebbu has quit (No route to host).
12:48:15 -!- sebbu2 has changed nick to sebbu.
12:49:11 <oklopol> lemme explain that sort, in case it's not all that intuitive
12:49:34 <oklopol> x:_; y:_; <<< set x alopol ("( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )")
14:54:02 -!- ehird_ has quit (Remote closed the connection).
15:18:58 -!- oklopol has joined.
15:19:50 -!- Slereah has joined.
15:34:29 -!- ehird has joined.
15:41:58 -!- ehird has set topic: http://tunes.org/~nef/logs/esoteric/ | some irish people have been noted here, please report them if you find any.
15:44:38 -!- oklopol has quit ("( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )").
15:58:46 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)).
16:30:42 -!- oklopol has joined.
16:34:55 -!- timotiis has joined.
16:38:51 -!- RodgerTheGreat has joined.
16:57:39 -!- oklopol has quit (No route to host).
17:38:07 -!- oklopol has joined.
17:48:17 <Slereah> I'm trying to come up with something so completely useless that one might wonder if I didn't completely lost my mind.
17:48:34 <Slereah> A brainfuck interpreter in recursive functions.
17:58:23 -!- oklopol has quit (Read error: 113 (No route to host)).
18:06:56 <Slereah> I'm not even exactly sure how to execute each instruction for an arbitrary number of them
18:10:04 -!- lament has quit ("Ducks!").
18:11:14 -!- testyfoo has joined.
18:11:22 -!- lament has joined.
18:11:30 -!- testyfoo has quit (Remote closed the connection).
18:11:41 -!- testyfoo has joined.
18:12:25 <lament> how come as soon as i saw testyfoo i knew it was ehird?
18:12:43 <ehird> lament: I'm the only one who spams #esoteric with tests, apart from immibis
18:15:30 -!- testyfoo has quit (Remote closed the connection).
18:23:20 -!- oklopol has joined.
18:25:09 -!- oklofok has joined.
18:47:14 -!- oklofok has quit (No route to host).
18:47:33 -!- oklopol has quit (Read error: 113 (No route to host)).
18:53:47 -!- oklopol has joined.
19:16:54 -!- timotiis_ has joined.
19:28:17 -!- timotiis has quit (Read error: 113 (No route to host)).
19:37:18 -!- timotiis_ has changed nick to timotiis.
20:06:26 -!- Iskr has quit ("Leaving").
20:10:53 <ehird> oklopol: you know how you always wished pygame just let you pushed pixels
20:24:48 <ehird> oklopol: you said that pygame would be far awesome if it was just put(x,y,col)
20:25:31 <ehird> i just made TINYGAME
20:25:35 <ehird> which wraps around pygame
20:25:37 <ehird> and is basically that
20:26:38 <ehird> oklopol: http://rafb.net/p/FQCAY754.html here it is
20:26:59 <ehird> the example game is where you control a 10px square with the arrow keys, and it slides around the window.
20:35:25 <ehird> oklopol: the example is really addictive isn't uit
20:39:04 <ehird> oklopol: you didn't try it
20:40:02 <oklopol> i did not find a challenge, so i didn't find it addictive
20:40:50 <ehird> oklopol: it is a challenge: can you actually write anything with that
20:40:53 <ehird> because it's quite slow
20:41:02 <ehird> i'm sure you can squeeze something out of it ;)
20:47:21 <oklopol> well, i've written stuff using slower drawing speeds...
20:47:54 <ehird> oklopol: actually, pong would be really easy with that thing
20:48:01 <oklopol> also i made the game where you eat apples with a snake
20:48:05 <ehird> you should try it, i can guarantee you it's 59x nicer than pygame ;)
20:48:10 <ehird> oh, snake would be easy too
20:48:56 <oklopol> i can scribble pong for ya
20:59:50 <oklopol> interesting choise of names for height and width
20:59:57 <ehird> oklopol: are they reversed
21:00:15 <ehird> oklopol: okay, one sec
21:01:14 -!- Sgeo[College] has joined.
21:01:56 <ehird> oklopol: http://rafb.net/p/RGME0U77.html
21:02:08 <ehird> oklopol: so, when you want a colour
21:02:25 <ehird> game[x,y] will get the value dunno if that's useful
21:02:33 <ehird> game.redraw(), makes it redraw (duh)
21:02:40 <ehird> on_tick is called each step of the game loop
21:02:52 <ehird> on_event whenever something happened, keypress or whatever. just passed as a pygame event. trivial.
21:02:57 <ehird> on_start is executed just before the game loop starts.
21:03:13 <ehird> oklopol: so you just subclass Game and override on_{tick,event,start} as you fish using the functions it gives
21:03:24 <ehird> and then do the Game(...) stuff and .run() it
21:10:14 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client").
21:11:23 <ehird> oklopol: how's the pong looking
21:11:29 <ehird> does my lib suck. if so how :p
21:12:04 <oklopol> there's a lot to type, nothing intresting yet.
21:13:12 <ehird> oklopol: is there a lot to type for my widdle framework?
21:13:19 <ehird> i tried to make 0 typing needed
21:13:23 <ehird> what is taking a long time to type? :(
21:18:11 -!- Sgeo[College] has joined.
21:19:16 <oklopol> i'm harrassed on almost every channel, so took a while
21:19:30 <oklopol> anyway, it's a very stupid and trivial pong
21:19:38 <ehird> oklopol: but it's PONG with MY LIBRARY
21:20:08 <oklopol> http://www.vjn.fi/pb/p546351241.txt <<< the parts i could reuse i stole from yours
21:20:33 <oklopol> essentially just wrote it on top of yours as dirty as possible
21:20:35 <ehird> oklopol: its still called Test
21:20:45 <oklopol> the comment is the same :P
21:20:56 <ehird> oklopol: the class is called Test
21:21:03 <ehird> oklopol: was my farmework cool
21:21:10 <ehird> or does it have CRAPNESS in it
21:21:24 <oklopol> that's all a game programming framework needs to offer.
21:21:33 <ehird> oklopol: but you said there was a lot of typing
21:22:15 <ehird> oklopol: you're setting float pixels
21:22:38 <oklopol> when doing 2d, you need to use vectors, usually, perhaps let game be indexed with them
21:22:52 <ehird> oklopol: and you have height/width mixed up
21:23:01 <ehird> and also you print '-1' for ages on the console on a lose
21:23:39 <ehird> oklopol: but the game rocks
21:23:43 <ehird> just need to put the fps up
21:23:47 <oklopol> fastest way to show who won
21:23:54 <oklopol> actually could just have crashed.
21:24:05 <ehird> (maxfps kw option, in case you're lazy)
21:24:09 <ehird> you could just make it move more pixels though
21:24:30 <ehird> oklopol: well, if you make the ball go a bit faster
21:24:33 <ehird> then i'll add networking
21:26:55 <ehird> oklopol: pygame is so bloated for providing more than what i do isn't it ;)
21:27:25 <ehird> though it is admittedly *marginally* faster...
21:27:27 <oklopol> they're gonna be awesome, maybe.
21:28:26 <oklopol> python's built-in lists should be poppable from both ends
21:28:31 <oklopol> are they? iirc they aren't
21:29:12 <ehird> python has a deque for that
21:29:18 <ehird> x=lst[0];del lst[0]
21:31:06 <ehird> but... use a deque
21:31:24 <ehird> oklopol: from collections import deque
21:31:36 <ehird> you have .append,.appendleft,.clear,.extend,.extendleft,.pop,.popleft...
21:31:39 <ehird> http://docs.python.org/lib/deque-objects.html
21:39:20 <ehird> oklopol: python does have libraries you know, you might want to look at them sometime ;0
21:39:54 <oklopol> can i use it another two years every day first, and then check?
21:40:17 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client").
21:42:52 <ehird> oklopol: hehe, ok :P
21:42:59 <ehird> oklopol: how's pongv2 coming?
21:43:21 <oklopol> hard to debug when you can't see the errors
21:43:31 <ehird> oklopol: can't see the errors?
21:43:48 <oklopol> whhhell, to see errors i need to run from idle
21:43:56 <oklopol> which crashes the whole comp when using pygame
21:44:05 <oklopol> or, i need to catch the exception
21:44:15 <oklopol> but that sounds like cheating
21:45:05 <ehird> <oklopol> whhhell, to see errors i need to run from idle
21:45:13 <ehird> just run it from windows cli
21:45:34 <ehird> oklopol: and it'll work
21:45:40 <oklopol> and when it errors, it closes
21:46:01 <ehird> and THEN 'python filename'
21:46:04 <ehird> the window will stay.
21:46:13 <oklopol> it's not that i don't know this
21:46:14 <ehird> just keep a cli open in the right dir
21:46:37 <ehird> oklopol: if you're lazy then seeing the errors would speed up your coding
21:47:08 <oklopol> true... but true laziness means being too lazy to think what's most work.
21:47:35 <ehird> oklopol: thats why i just did the thiinking for you
21:47:42 <oklopol> "python" is not recognized...
21:47:47 <oklopol> :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
21:48:15 <oklopol> hmmhmm... where's path in vista..
21:48:34 <ehird> oklopol: you can do it from cli
21:48:40 <ehird> set PATH=blahblah:%PATH%
21:48:49 <ehird> doesnt persist, but.
21:48:55 <ehird> just type out the full path
21:49:01 <ehird> and use up-arrow to get the cmd frmo the history
21:49:04 <ehird> when you want to run it again
21:50:29 <oklopol> i put it there permanently now
21:53:30 <Slereah> "Incidentally, even the solutions of the differential equations for a three-body gravitational system are non-computable."
21:53:34 -!- timotiis has quit (Read error: 104 (Connection reset by peer)).
21:53:46 <Slereah> It makes me doubt the accuracy of the Gravity article D:
21:55:25 <Slereah> It has no good solution, but there's converging series for the three body problem
21:56:26 <oklopol> perhaps i should link the game
21:56:36 <oklopol> i'll make the ball inc its speed, and then link
22:02:05 <oklopol> it's a bit buggy, but what the heck
22:09:15 <oklopol> http://www.vjn.fi/pb/p425253333.txt <<< width/height still wrong
22:10:04 <ehird> oklopol: just flip width/height
22:10:11 <oklopol> made a trivial change just before pasting, and managed to make an error :D
22:10:20 <ehird> and ill check it in a sec
22:10:26 <ehird> not right now, but just in a min
22:10:59 <oklopol> http://www.vjn.fi/pb/p132165433.txt
22:11:03 <ehird> oklopol: if someone told me i could write a pong game with as good as ball as that in that amount of code i'd have called them a liar
22:11:40 <lament> well, of coures! it's python!
22:11:42 <ehird> lament: that fully implements pong
22:11:45 <oklopol> i didn't especially aim for shortness
22:11:48 <ehird> lament: using MY LIBRARY
22:12:15 <oklopol> could do a lot shorter, i'm not sure what i aimed for, perhaps just wanted not to have to think at all
22:12:20 <oklopol> anyway, check out the spins :P
22:12:40 <oklopol> i always kill myself with them :<
22:12:48 <oklopol> you can pass the ball to yourself :P
22:13:19 <ehird> oklopol: i will in ~60sec
22:14:26 <ehird> oklopol: i want to bloat tinygame up a bit though
22:14:32 <ehird> so that you can do a bit more than just pixels
22:14:34 <ehird> for only one reason--
22:14:46 <ehird> i can't do the awesome things i want to do with it right now
22:14:51 <ehird> because it won't go fast enough ;)
22:14:52 <oklopol> lol @ the spins, i just ended up passing the ball to myself 5 times, just to end up dying :D
22:15:42 <ehird> oklopol: it will still be VERY VERY TINY though
22:16:21 -!- timotiis has joined.
22:16:23 <oklopol> LOL this game is AWESOME xD
22:16:34 <oklopol> make something for networking, i wanna own you at this :D
22:17:09 <ehird> oklopol: will do once i test it
22:17:15 <ehird> i will do it the AWESOME route
22:17:20 <ehird> distributed python
22:17:26 <ehird> oklopol: you just give it an object
22:17:37 <ehird> dpy.expose(foo, port=453453)
22:17:39 <ehird> and then in another app
22:17:53 <ehird> foo = dpy.fetch(host='foobar', port=453453)
22:18:33 <ehird> oklopol: ruby has basically that called DRb (distributed ruby)
22:20:39 <ehird> oklopol: anyway, brb in a sec
22:20:57 <ehird> oklopol: oh and i won't handle latency or anything. that's not hardcore enough
22:24:28 <oklopol> http://www.vjn.fi/pb/p444246132.txt <<< officialest version
22:24:36 <oklopol> and last for tonight prolly
22:24:58 <oklopol> ehird: did you read about Ef?
22:24:59 <ehird> oklopol: ok, gimme 60 secs or so
22:25:28 <oklopol> did you get both the examples?
22:25:38 <oklopol> i've just made a slow sort, and pi.
22:25:42 <oklopol> sort = {x:_;y:_;?x<?y&x>y=>(x,y)=(y,x)};
22:25:43 <oklopol> pical = (.acc, denom, sign):{(acc + sign/denom) (denom + 2) (-sign)};
22:26:08 <oklopol> the pi there is fairly clear, i think, although there actually shouldn't be commas in the argument list
22:29:05 -!- oerjan has joined.
22:31:40 <oklopol> god this game is addictive
22:32:03 <oklopol> i've been playing for like half an hour
22:34:11 <ehird> vcvxnmmnvbcvbnnbvcnvbnm,.n,mbnmnm,.mn,m..../,.,m././,.mn,mn,.m,nbvcvvbnbvncbnmnasdfgghfdgsddghfhdfsdfghj.kjkklk;;klk;l;rewetuyreyuyiuqewertoiuiu31`1`314356867890[]-090-0-987yuyttqwerttyurtuiupo79op[
22:34:14 <ehird> ]0i;irhgfagdhgjkujllkuyjhdfnm,nvc
22:34:38 <ehird> oklopol: gonna look now
22:35:37 <ehird> oklopol: fix the hight/weight
22:35:40 <ehird> just flip the names
22:35:52 <oklopol> i have to flip them in *two files*
22:36:13 <ehird> i already showed you the updated game one
22:36:53 <oklopol> i did a manual swap already
22:36:56 <ehird> oklopol: yours doesn't report the winner any more.
22:36:57 <oklopol> all you did was change the names?
22:37:08 <ehird> i guess its obvious though
22:37:11 <oklopol> i figured you will know which side the ball was one
22:37:20 <ehird> oklopol: how does i accellerate ball
22:37:47 <oklopol> it takes a bit of the speed the... puck has
22:38:07 <oklopol> spin works as it does for something like a ping pong ball
22:38:47 <ehird> i warn you, oklopol, dpy may be the most awesome thing ever
22:39:41 <ehird> oklopol: also, it will be a huge security risk
22:39:43 <oklopol> nothing can beat the awesomeness of the suicide spins
22:41:24 <ehird> 7079 is an awesome port, oklopol
22:43:32 <oklopol> asdadsadsasdasdadsadasd the spins are too hard for me
22:45:25 <ehird> oklopol: khdsfkjhsdflkhsdfkjsdhfjksdfj dpy is hard
22:45:30 * ehird tries to find another way to do it
22:45:52 <ehird> oklopol: http://rpyc.wikispaces.com/ hmm
22:46:42 <oklopol> http://www.vjn.fi/pb/p365653263.txt <<< minimal change in Ball
22:48:27 <oklopol> this game must bethe most authentic ping pong game ever made
22:48:53 <ehird> its 2d but the ball acts 3d
22:49:04 <oklopol> when you get a good ball going, it's awesome
22:49:30 <ehird> oklopol: wow. i just bashed it, and it curved round right into my goal
22:49:51 <oklopol> it's because the spin lasts quite long
22:50:04 <oklopol> perhaps i should make it a bit shorter
22:52:06 <oklopol> the ball got stuck in the middle :)
22:52:56 <ehird> oklopol: what port# for okopong
22:54:06 <ehird> oklopol: so, what exactly will a client need to access on the other end...
22:54:13 <ehird> Ball or just the player object
22:54:29 <ehird> i guess lup/rup or whatever
22:54:41 <oklopol> depends... i've always felt the os should do networking for me :)
22:55:11 <oklopol> i think it might need some modification to be networkable
22:55:33 -!- GreaseMonkey has joined.
22:55:41 <ehird> oklopol: one server, one client. yeah
22:55:46 <oklopol> server needs to know what client has pressed
22:55:55 <oklopol> and client needs to know where all objects are
22:58:01 <ehird> wanna help me code this
22:59:18 <oklopol> http://www.vjn.fi/pb/p124112365.txt <<< last update fucked everything up, you are all prolly playing this like crazy, so here's the fixed version
22:59:42 <oklopol> ...would be to make a new language
22:59:57 <oklopol> WITH TUPLESPACES SHARED OVER NETWORKS AND AAAAAAHH
23:01:30 <ehird> oklopol: euuuuuurgh
23:01:33 <ehird> i was just coding the network
23:01:40 <ehird> tell me which parts you changed
23:02:14 <oklopol> self.d=(self.d[0]*1.01,self.d[1])
23:02:14 <oklopol> self.d=(self.d[0],self.d[1]*0.95)
23:02:14 <ehird> http://www.vjn.fi/pb/p365653263.txt
23:02:21 <ehird> http://www.vjn.fi/pb/p365653263.txt -> that
23:02:47 <oklopol> self.d=(self.d[0],self.d[1]*0.95) <<< this line
23:02:57 <oklopol> self.d=(self.d[0]*0.99,self.d[1])
23:03:41 <oklopol> how did you choose to do it?
23:03:56 <oklopol> the simple way would be just to make client send keystrokes
23:04:05 <oklopol> although that is less stable ofc
23:04:24 <ehird> oklopol: i am just syncing every single property
23:04:27 <ehird> probably won;'t work
23:04:30 <ehird> btu yeah i might just do that
23:04:58 <oklopol> well keystrokes might work because they're fast to send.
23:05:10 <ehird> TypeError: cannot marshal <class '__main__.Pong'> objects
23:05:16 <ehird> because of the pygame objects
23:05:24 <ehird> oklopol: gonna restart and just make it send keystrokes
23:05:28 <ehird> oklopol: but how will the client display
23:05:28 <oklopol> you can just marshal balls and players
23:05:51 <oklopol> both display the same, it's just client just sets all positions when asked by the server
23:05:59 <oklopol> and just skips all moving and such
23:06:22 <ehird> to allow the host to call stuff on clients
23:06:27 <ehird> Pong stuff must be marshallable
23:06:31 <ehird> i'll just invent my own protocol
23:06:40 <oklopol> you need to call stuff on clientS?
23:07:20 <oklopol> client sends keystrokes to server, server sends 3-tuples with positions to client
23:07:29 <oklopol> you need to marshal these.
23:08:06 <ehird> oklopol: the server can't 'send' anythign to the client
23:08:08 <ehird> the client is a client.
23:08:46 <oklopol> well, i was meaning more server/client, conceptually
23:08:51 <oklopol> not in any physical aspect
23:09:11 <oklopol> i would send stuff both ways, like i describeds
23:09:19 <ehird> oklopol: btw, if the server sends off rdn/ldn etc
23:09:23 <ehird> then you have lag after pressing a key
23:09:26 <ehird> because you dont immediately see it
23:09:59 -!- Corun has joined.
23:10:09 <oklopol> yeah if there's lag, then the puck will just move onwards like a ghost
23:10:36 <ehird> oklopol: just stay put
23:10:40 <ehird> oklopol: i hope your net conn. is good
23:10:46 <ehird> we'll take turns hosting
23:10:52 <ehird> let's decide one thing
23:10:58 <ehird> or other way around
23:11:15 <oklopol> a bit if we're actually playing
23:11:23 <oklopol> wanna make it restart when someone dies?
23:11:32 <ehird> oklopol: i mean, really the server has to send off the X and Y of the pucks. Instead of just which way they're moving.
23:11:40 <ehird> Otherwise everything will be out of sync.
23:11:56 <oklopol> client doesn't know what's moving
23:12:17 <oklopol> or it can know where the ball is moving, just to make sure it looks smoothy
23:12:34 <ehird> oklopol: your model doesn't save the co-ordinates though
23:13:06 <ehird> oklopol: the server only has to send the DIRECTIONS of left
23:13:12 <ehird> it doesn't need to send rup/rdn
23:13:18 <ehird> the *client* must send rup/rdn
23:13:28 <ehird> and dutifully accept every data the server gives it
23:13:30 <ehird> oklopol: am i rite
23:14:03 <oklopol> client sends keystrokes to server, server sends 3-tuples with positions to client <<< this was my idea
23:14:03 <ehird> oklopol: i can do this with help :D
23:14:27 <oklopol> dunno if that's good, but seems you're doing something like that
23:14:32 <oklopol> so, if you are, that's that
23:15:31 <oklopol> i kinda suck at understanding what people say :)
23:16:34 <oklopol> wow, like 20 hits before i lost
23:17:28 <ehird> oklopol: make pucks accellerate
23:17:42 <ehird> if i hold down the up key when at the bottom, i should speed up while getting to the top
23:18:01 <ehird> will make your acelleration stuff much nicer
23:18:10 <oklopol> i left that out intentionally, they speed up a bit if the ball moves fast... but i guess that might be nice
23:18:14 <oklopol> let's do networking first tho.
23:19:32 <oklopol> do you like the playground size? i kinda enjoy the tininess
23:19:54 <ehird> oklopol: OKAY so networking protocol
23:20:17 -!- Corun has quit ("This computer has gone to sleep").
23:20:23 <ehird> the client connects to the server
23:20:36 <ehird> they exchange 'pickle packets'
23:20:39 <ehird> oklopol: which is my word!
23:20:55 <ehird> and you can depickle those bytes.
23:21:07 <oklopol> that's the cutest word i've ever heard.
23:21:08 <ehird> so, when a client sends a message, it's
23:21:24 <ehird> when a server sends it
23:21:30 <ehird> (plrs,ball,lup,ldn)
23:21:41 <ehird> oklopol: hmm. isn't rup/rdn duplicate couldn't you just have 'r'?
23:22:01 <ehird> oklopol: do you want to do it like that or..
23:22:08 <oklopol> yeah i could just have it -1...1
23:22:20 <ehird> oklopol: good idea or not
23:22:33 <ehird> oklopol: lets just get it working though
23:22:48 <oklopol> i can quickly change that later, or you can
23:22:53 <oklopol> it's like 30 seconds of work
23:24:35 <oklopol> after Ef, my next language will have implicit storing of the past, meaning you don't have to store something like "where the puck was 10 moves ago" in a list, you can just use the old value, and it will be seen @ compilation, and automatically stored
23:24:51 -!- Corun has joined.
23:24:54 <oklopol> (lps stores last positions, in case you haven't read the code)
23:26:06 <oklopol> i often end up not adding a feature if i have to add code somewhere other than where i'm currently adding stuff
23:26:43 <oklopol> also, i think stuff should be described where it's used, doing something like keeping old positions in a list does not make sense at the point when you're storing them
23:26:43 <ehird> ok, maybe got the protocol down oklopol
23:26:46 <oklopol> just when you start using them
23:26:50 <ehird> now i just have to ... code it
23:27:04 <oklopol> well, sounds simple enough
23:28:15 <ehird> oklopol: port no again?
23:28:45 <ehird> oh heh, oklopol :)
23:33:16 <ehird> i almost got it working
23:33:29 <oklopol> well, i guess i can play for a while
23:33:43 <ehird> oklopol: ehh not long
23:33:43 <oklopol> would you say less than half an hour
23:34:34 <ehird> instead of keypresses, I can just make the client send (rup,rdn) can't I?
23:34:40 <ehird> since they are the only things affected by the keys
23:35:54 <ehird> oklopol: how often should the server send stuff?
23:36:10 <oklopol> every tick perhaps, it shouldn't be a problem
23:36:33 <oklopol> every n ticks is just as easy to do and allows for every tick.
23:37:33 <oklopol> those sentences may have been bit contradictory
23:38:05 <ehird> socket.error: (111, 'Connection refused')
23:38:47 <oklopol> i don't know much about sockets in practise
23:38:56 <oklopol> i'm not even sure i've ever made a game with networking
23:39:23 <oklopol> i've made hashmap chat and irc stuff though :D
23:40:40 <oklopol> the idea was to make a shared hashmap, but my implementation was too slow to allow for pong.
23:41:17 <ehird> and it SHOULD be ok
23:41:52 <oklopol> you still have 20 long minutes
23:44:36 <ehird> oklopol: you know how to get all router ports forwarded and stuff right
23:45:14 <oklopol> i don't know anything, ever.
23:45:46 <oklopol> also the router isn't here
23:45:46 <ehird> AttributeError: '_socketobject' object has no attribute 'flush'
23:46:10 <ehird> oklopol: hmm well it connects
23:46:12 <ehird> can't tell if it makes any sense
23:47:03 <ehird> oklopol: trying to, but its hard to switch between windows
23:47:41 <oklopol> you can always slow it down
23:48:11 <ehird> oklopol: i have total bugzzz
23:48:45 <oklopol> if you paste the code, i can prolly take a look
23:48:59 <ehird> oklopol: http://rafb.net/p/jePCoF48.html
23:49:05 <ehird> 'python netpong.py' => server
23:49:08 <ehird> it gives you a hostname
23:49:14 <ehird> 'python netpong.py thathostname' => clien
23:49:17 <ehird> the syncing is just all weird
23:49:21 <ehird> i don't get what is happening
23:52:57 <oklopol> where does all reading happen?
23:53:57 <oklopol> also it seems to me like both act as both server and client
23:54:16 <ehird> oklopol: yes it does
23:54:25 <ehird> the client has to tell the server its direction
23:54:32 <ehird> the server has to tell the client... well, everything
23:54:38 <ehird> oklopol: and .. ctrlf to find the reading
23:57:01 <oklopol> ima_server_send is executed no matter whose on_tick is ruunning
23:57:57 <ehird> oklopol: okay as in i will fix
23:58:36 <oklopol> i need to go now, sorry :|
23:58:56 <oklopol> i'm actually lying, i can sleep quite long
23:59:04 <oklopol> but, i also *wanna* sleep quite long
23:59:25 <oklopol> yarr i'll PWN your ass tomorrow.