00:00:02  * ircretaryquit (Remote host closed the connection)
00:00:11  * ircretaryjoined
00:01:19  * ins0mniajoined
00:04:08  * calvinfojoined
00:08:24  * calvinfoquit (Ping timeout: 245 seconds)
00:09:59  * mikolalysenkoquit (Ping timeout: 260 seconds)
00:17:53  * thealphanerdjoined
00:34:34  * ceejbotquit
00:37:28  * calvinfojoined
00:44:43  * mikolalysenkojoined
00:55:20  <rowbit>Hourly usage stats: [developer: 0, free: 12]
01:02:45  <mikolalysenko>dominictarr: have you written anything on crdt?
01:06:25  <prettyrobots>Domenic_: http://stackoverflow.com/questions/21084314/using-node-js-restify-and-restify-oauth2
01:06:29  <prettyrobots>Domenic_: FYI.
01:08:39  * calvinfoquit (Quit: Leaving.)
01:10:01  * funkytekjoined
01:11:48  * calvinfojoined
01:35:50  * marcello3dchanged nick to marcello3d_zzZ
01:35:53  * marcello3d_zzZchanged nick to marcello3d
01:39:10  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
01:41:53  <dominictarr>mikolalysenko, like a blog post?
01:42:04  <dominictarr>I've done a few talks about it
01:43:16  <dominictarr>this one: http://www.youtube.com/watch?v=giS-aIq0Kaw
01:43:35  <dominictarr>and this one: http://www.youtube.com/watch?v=svkdmP9UcLo
01:45:33  <mikolalysenko>yeah, blog post would be good
01:45:49  <mikolalysenko>I am putting together a little thing on networked multiplayer video games
01:47:49  * rsolequit (Ping timeout: 248 seconds)
01:48:06  * marcello3dchanged nick to marcello3d_zzZ
01:48:09  * marcello3d_zzZchanged nick to marcello3d
01:49:37  <dominictarr>I have this: http://dominictarr.com/post/25083602144/distributed-programming-is-easy
01:49:46  <dominictarr>but it's not about crdt's specifically
01:54:11  * yorickquit (Read error: Connection reset by peer)
01:54:33  <mikolalysenko>dominictarr: yeah, saw that. I think I will reference it
01:55:20  <rowbit>Hourly usage stats: [developer: 0, free: 15]
01:55:25  <mikolalysenko>also, regarding realtime distributed communciation what in your opinion works today?
01:55:45  * h0kequit (Read error: Operation timed out)
02:00:45  <dominictarr>mikolalysenko, well it greatly depends on what you are trying to achieve I think for games you use UDP generally
02:01:07  <dominictarr>and also for games you normally want to know the latest position of something
02:01:22  <dominictarr>quite a different requirement to an app.
02:01:26  <mikolalysenko>that's true though not sure udp makes a huge difference
02:01:38  <mikolalysenko>and also not sure how different it really is
02:01:51  <mikolalysenko>main issue in games is latency, apps tend to focus on optimizing bandwidth
02:02:16  <dominictarr>in a game, lossy is okay
02:02:30  <mikolalysenko>sometimes yes, sometimes no
02:02:32  <dominictarr>instead of resending the old position, send the new position
02:02:54  <dominictarr>yeah - it depends on the game
02:03:00  <mikolalysenko>well, unless you are trying to prevent stuff like cheating, or maybe if something important happened at the old position
02:03:20  <mikolalysenko>there are many ways to do it I think
02:03:26  <dominictarr>yes also, say you don't want to keep sending the position of something that is not moving
02:03:27  <pfraze>mikolalysenko: in my experience, anything that needs to sync state rapidly uses UDP
02:03:39  <mikolalysenko>udp is nice because it has lower latency
02:03:51  <dominictarr>so say you can just send lossy updates, but you need consistency if it's stopped
02:03:58  <mikolalysenko>but it just shaves a constant from the times, does not change scalability
02:04:19  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.72.32(free10)
02:05:14  <pfraze>isnt the head-of-line overhead potentially cumulative?
02:06:00  <pfraze>guaranteeing order increases buffer use
02:07:11  * marcello3dchanged nick to marcello3d_zzZ
02:07:58  <mikolalysenko>I think there is a bound on the amount of latency as a function of packet loss
02:08:03  <mikolalysenko>at least in expectation
02:08:15  <mikolalysenko>so you end up running maybe c times slower, for some constant c
02:08:25  <pfraze>that's probably right
02:08:32  <mikolalysenko>but practically it doesn't change the situation much
02:08:49  <mikolalysenko>you could have a fast user on tcp or a slower user on udp
02:09:05  <mikolalysenko>but you still need to think about how to make the best use of the latency you have
02:11:39  <mikolalysenko>tldr; tcp/udp has real performance implications but does not change scaling
02:11:56  <mikolalysenko>so yeah, in practice if you have udp and you don't mind suffering a bit more you use it
02:12:01  <dominictarr>no
02:12:32  <dominictarr>what sort of scale are you wanting to achieve?
02:13:04  <mikolalysenko>synchronize state of all players as quickly as possible
02:13:17  <dominictarr>how many players on a given map?
02:13:22  * hoobdeeblaquit
02:13:23  <mikolalysenko>n
02:14:34  <dominictarr>I don't think that is the right way to think about this
02:15:05  <mikolalysenko>why not?
02:15:54  <dominictarr>well, it might be scaling well, but not playable
02:16:14  * kanzure_changed nick to kanzure
02:16:21  <dominictarr>it needs to scale on the clients... you can only fit that much players into one screen etc
02:16:33  <mikolalysenko>these are aspects I plan to write about
02:16:43  <mikolalysenko>but generally you want to handle as many players as you can at once
02:16:52  <dominictarr>you need to look for ways to partition the game world
02:16:58  <mikolalysenko>yeah, I agree
02:17:08  <mikolalysenko>but partitioning it too much is bad
02:17:20  <mikolalysenko>since it means you get smaller interactions (ie no big parties)
02:17:26  <dominictarr>well, the question is how much data does 1 player produce
02:17:35  <mikolalysenko>b bits/second
02:18:30  * marcello3d_zzZchanged nick to marcello3d
02:18:31  <dominictarr>it's easier to think about if you make it concrete
02:18:43  <mikolalysenko>well, not for me
02:19:00  <dominictarr>and also, there are some aspects that are low scale
02:19:37  <dominictarr>like, say, you keep a table of the players in memory
02:19:59  <dominictarr>that will be fine if there is tens of thousands of players
02:20:10  <dominictarr>but might start to cause problems at millions
02:20:42  <dominictarr>but you can totally cut that corner if it's not gonna be a bottleneck in practice
02:21:38  <dominictarr>I mean, if you are gonna say n players produce b bits/second then all you can do it send it all
02:21:46  <dominictarr>as fast as you can
02:22:07  <mikolalysenko>well, even then there are a few options regarding how you replicate the state
02:22:20  <mikolalysenko>you can do active replication and have every player send an input to every other player
02:22:30  <dominictarr>p2p?
02:22:35  <mikolalysenko>or you can do it passively and have some server or cluster distribute updates to other players
02:22:54  <mikolalysenko>doesn't have to be p2p, but in active replication peer-to-peer toplogy is most efficient
02:22:57  <mikolalysenko>wrt to latency anyway
02:23:09  <mikolalysenko>you can reduce number of connections with a different topology though, but latency gets bigger
02:23:35  <mikolalysenko>but active replication is problematic in games for a lot of reasons
02:23:37  <dominictarr>right - you just have to partition players that are less likely to affect each other
02:23:51  <mikolalysenko>well, that is part of it
02:24:03  <mikolalysenko>though sometimes you can't always partition them
02:24:16  <mikolalysenko>and how they get partitioned is a little ad-hoc (or at least I know of no generic solution)
02:24:29  <dominictarr>another factor that is common, I think, is that if the effect is deterministic you don't need to send it.
02:24:42  <mikolalysenko>yes and no
02:24:51  <mikolalysenko>depends what you mean by deterministic
02:24:51  <dominictarr>for example - in a massively multiplayer asteriods you'd only need to send collisions
02:25:12  <mikolalysenko>unless you are using floats for coordinates
02:25:31  <mikolalysenko>then you get desynchronization due to subtle differences in rounding and platform optimizations usually
02:25:47  <dominictarr>oh, really?
02:25:50  <mikolalysenko>yes
02:26:18  <mikolalysenko>especially in an environment like js, where browser vms can implement things in subtly different ways
02:26:38  <mikolalysenko>the correct behavior for an ieee float is to do all intermediate calculations at highest possible precision
02:26:48  <mikolalysenko>which means on intel for some ops you get 96 bits internally
02:26:54  <mikolalysenko>while on an arm you only get 64 maybe
02:26:55  * calvinfoquit (Quit: Leaving.)
02:27:33  <mikolalysenko>anyway, active replication works in theory but it is very difficult to get right in practice
02:27:49  <mikolalysenko>but some games still do use it (and face really awful desync bugs when it breaks)
02:28:13  <mikolalysenko>I think you could try to correct that stuff using consensus algos like paxos/raft/whatever but that is just getting crazy
02:30:04  <dominictarr>something would be deterministic if it's not moving
02:30:12  <mikolalysenko>probably
02:30:31  <mikolalysenko>it is a reasonable thing to only replicate state changes, not the whole state
02:30:42  <mikolalysenko>like partitioning it can reduce bandwidth
02:30:51  <mikolalysenko>though I don't really know how to quantify it
02:31:36  <dominictarr>it depends on the game rules - I think you need to base any reasoning on different types of game worlds, like FPS vs RTS etc
02:32:32  <mikolalysenko>ok, consider an idealized model of a game
02:33:07  <mikolalysenko>players are points and move at uniform velocity based on inputs, and communicate by shooting bullets that also move at constant speed
02:33:10  <mikolalysenko>(ie asteroids)
02:34:03  <mikolalysenko>though actually there is a lower bound for the amount of information necessary to replicate the state which is to send O(n * b) bits/second
02:34:22  <mikolalysenko>unless you have some kind of partitioning
02:35:25  <mikolalysenko>which I think is also realized by just encoding only the state changes
02:36:52  * joaoafrmartinsquit (Quit: Leaving)
02:37:49  <mikolalysenko>anyway, I got 3 different ways to improve bandwidth: 1. using compression on packets. 2. only sending state changes. 3. limiting the state replicated to each player
02:37:59  <mikolalysenko>(this is all in a passively replicated system)
02:38:20  <mikolalysenko>and for optimizing latency, I know only 2 different ideas: 1. client side prediction/correction. 2. time warping
02:38:47  <mikolalysenko>but there may be something that I have not thought of
02:39:16  <mikolalysenko>there is also active replication, but it doesn't really work so well in practice for the aforementioned reasons
02:40:45  * calvinfojoined
02:43:08  * marcello3dchanged nick to marcello3d_zzZ
02:55:20  <rowbit>Hourly usage stats: [developer: 0, free: 10]
03:15:04  <prettyrobots>Domenic_: Did you implement refresh tokens?
03:15:18  <Domenic_>prettyrobots: nope
03:15:28  <prettyrobots>Domenic_: Would it be hard?
03:15:40  <prettyrobots>Domenic_: Or pointless?
03:15:57  <Domenic_>probably not that hard, but probably pointless added complexity for your client
03:17:20  <prettyrobots>Domenic_: Aren't there benefits to minimizing the number of times the passwords go over the wire?
03:17:51  <Domenic_>prettyrobots: i guess. but is sending the old token that much better?
03:18:31  <prettyrobots>Domenic_: I mean, kind of, according to the rational behind tokens.
03:18:53  <Domenic_>yeah, probably
03:20:09  <prettyrobots>Domenic_: Well it's working, OAuth2 using your library, so Woot!
03:20:53  * thealphanerdquit (Quit: thealphanerd)
03:21:59  <Domenic_>:D!!
03:31:57  * contrahaxjoined
03:33:19  * marcello3d_zzZchanged nick to marcello3d
03:33:41  <jjjohnny>dominictarr: mikolalysenko hey
03:34:05  <jjjohnny>i happen to be writing a game based on Game of Life with my roommate
03:34:11  <jjjohnny>while i teach him node/js
03:34:25  <jjjohnny>we're about to the part where we want to add multiplayer
03:34:38  <jjjohnny>and so have a big game graph
03:34:45  <jjjohnny>etc
03:36:01  <jjjohnny>the stuff yr talk about
03:36:59  <jjjohnny>its all on the client side right now
03:37:01  <dominictarr>jjjohnny, that is a good example of something that is complete deteministic, except for user inputs
03:37:31  <jjjohnny>yes, do I qualify?
03:38:59  <jjjohnny>deterministicism is a good chassi for non deterministic stuff like guessing what the actual result would be from a starting point w/o going through the determining calcs
03:39:19  <jjjohnny>that is all I know about that
03:39:42  <jjjohnny>but the game, its a perfect test bed for p2p action
03:41:19  <jjjohnny>non-deterministic need its own name
03:41:50  <jjjohnny>THERES DETERMINISTIC AND THEN THERES SUPER-FRAGILISTIC
03:41:50  <LOUDBOT>HAHAHA THE GOAT PIC WAS FROM BEST WEEK EVER
03:43:11  * marcello3dchanged nick to marcello3d_zzZ
03:43:12  <jjjohnny>anyway if you wants to take on the replication part of the game, I got hands full of USER INTERFACE
03:43:52  * thealphanerdjoined
03:44:22  <jjjohnny>or give me deathless advise to hold on to
03:45:24  <dominictarr>jjjohnny, the opposite of deterministic is "freewill"
03:45:53  <mikolalysenko>so if you don't care about lag, here is a simple replication algorithm:
03:46:02  <mikolalysenko>1. have players send all inputs to the server.
03:46:13  <mikolalysenko>2. server collects inputs from players, computes next state
03:46:22  <mikolalysenko>3. player sends complete copy of state to all players, loop.
03:46:31  <mikolalysenko>it is not very efficient though
03:47:01  <mikolalysenko>alternative algorithm is broadcast player inputs to all players
03:47:37  <mikolalysenko>this uses less bandwidth but is sensitive to small differences in the clients and servers implementation
03:48:01  <mikolalysenko>there are other variations in between. like only sending changes in state instead of inputs
03:48:02  <jjjohnny>mikolalysenko: i think it is wise to design in terms of p2p
03:48:19  <mikolalysenko>maybe
03:48:40  <mikolalysenko>one strategy that seems to work best is to replace the server itself with a p2p network
03:48:51  <mikolalysenko>but that becomes very complicated
03:49:10  <jjjohnny>which would require all nodes to know (or agree?) when its ok to compute
03:49:48  <mikolalysenko>it is more involved than that, nodes also need to distribute state and connections
03:49:53  <jjjohnny>dominictarr: free will is super-fragilistic, in theory and in practice
03:50:21  <mikolalysenko>err step 3 on that list should be server sending state to all players
03:50:55  <jjjohnny>mikolalysenko: state is basically conways game of life, so its pretty easy to step thru
03:51:22  <jjjohnny>one only needs new additions to the board, as cast there the player
03:51:43  <mikolalysenko>yeah, so you can use the fully synchronous algorithm
03:51:51  <mikolalysenko>basically only tick the game when the server tells you to tick it
03:52:02  <mikolalysenko>and server also batches up inputs from all players
03:53:21  <jjjohnny>mikolalysenko: no server
03:53:28  <jjjohnny>i can't afford one
03:53:44  <jjjohnny>i can only afford to serve static files
03:53:51  <jjjohnny>this has to go p2p
03:53:58  <mikolalysenko>well, you can do the same thing
03:54:16  <mikolalysenko>both players send a message to each other each tick with their inputs
03:54:24  <mikolalysenko>they apply it to the game and step forward
03:54:29  <jjjohnny>"
03:54:39  <jjjohnny>"both"
03:54:52  <mikolalysenko>basically the loop for each client looks like:
03:54:55  <jjjohnny>i can't afford to only have two people place this
03:55:02  <mikolalysenko>1. send inputs to remote player
03:55:08  <mikolalysenko>2. wait for input from remote player
03:55:11  <jjjohnny>i need hundreds of elite developers to become enthralled
03:55:12  <mikolalysenko>3. apply inputs and loop
03:55:20  <rowbit>Hourly usage stats: [developer: 0, free: 16]
03:55:26  <jjjohnny>play
03:55:40  <mikolalysenko>that algorithm is n^2 though, and realistically if they are all editing the same game you can't do any better
03:56:01  <mikolalysenko>but you could have hundreds of people playing p2p in small rooms
03:56:27  <jjjohnny>mikolalysenko: reducing networking would be a good goal i htink
03:56:37  <jjjohnny>like, one player has updates from 10 players
03:57:03  <jjjohnny>and so can send multiple updates to another player
03:57:40  <jjjohnny>computation is easy, apply hanges to state and run rules on it. its the networking that that can be optimized
03:58:51  <jjjohnny>which might require testing players latencies and bandwidths to one another
03:59:23  <mikolalysenko>maybe
03:59:47  <mikolalysenko>I don't know how to solve that problem
04:00:04  <mikolalysenko>but I do know how to solve the problem with a handful of players networked p2p via say webrtc
04:00:17  <mikolalysenko>and I also know how to handle networking with a server via websockets
04:00:44  <mikolalysenko>beyond that, no clue how to get scalability to thousands of concurrent users with realtime updates
04:01:27  <jjjohnny>mikolalysenko: https://github.com/js-platform/node-webrtc
04:01:54  <jjjohnny>with that, they can each have a node server
04:02:23  <jjjohnny>and everything else
04:02:35  <jjjohnny>so they can network to each other, and localhost the game screen
04:04:05  <mikolalysenko>so you want to make some kind of massive distributed network?
04:04:47  <jjjohnny>ys
04:04:48  <pfraze>mikolalysenko: https://grimwire.com/local/
04:05:39  <jjjohnny>mikolalysenko: ideally, there would only be one game live. Two energy types. PLayer joins one side or the other, in a massive attempt to destabilize the universe
04:06:01  <jjjohnny>its like game of life with two teams (+/-)
04:06:08  <mikolalysenko>hmm... I don't really know how to do that :(
04:06:29  <mikolalysenko>it may be possible though, I just don't think I can help
04:06:47  <pfraze>both sides can tell what the other would mispredict, right?
04:06:54  <mikolalysenko>the hard part is getting the game to scale horizontally
04:07:03  <pfraze>everything is deterministic except user input
04:07:20  <jjjohnny>dominictarr: enter the non-determine stick pan
04:07:38  <pfraze>if so, you could send diffs that correct the other side
04:07:39  <jjjohnny>the only way to scale it is to use some non-D
04:07:50  <pfraze>you want more than 2 players?
04:07:54  <jjjohnny>pfraze: corrections, yes
04:08:15  <jjjohnny>yes
04:08:29  <pfraze>you can do time warping like eve online
04:08:42  <pfraze>but probably not dynamically
04:08:53  <jjjohnny>some kind of wave
04:09:03  <pfraze>gossip protocol
04:09:06  <jjjohnny>waves and feedback
04:09:35  <pfraze>hmm
04:09:59  <pfraze>would you need a fixed topology of players?
04:10:00  <jjjohnny>if every player only computes their area, plus a portion of area that is not in a player-screen jurisdiction
04:10:22  <jjjohnny>other players dont need that info
04:11:09  <pfraze>I'm wondering if you can reason according to number of hops, where you try to keep the latency of each hop underneath the tick time for state
04:11:14  <jjjohnny>pfraze: the world would expand when new players are added, if needed
04:11:42  <pfraze>the idea of "waves" makes me think that
04:12:18  <jjjohnny>pfraze: i reckon there are some interesting waves one can find in transfer rates and game flow states
04:12:31  <pfraze>jjjohnny: good point - pipelining
04:14:03  * contrahaxquit (Ping timeout: 260 seconds)
04:14:14  <pfraze>jjjohnny: this may be off the wall, but I wonder if algorithms from processor stages could apply
04:15:03  <jjjohnny>mikolalysenko: there i probably some geometry involved in parceling area of the board to compute
04:15:12  <jjjohnny>along with who else needs that info shares
04:15:30  <jjjohnny>pfraze: what are those?
04:16:16  <jjjohnny>so, if each player only needs they own screen state checked, with updates from obvious nearby players or trajectories
04:16:17  <pfraze>jjjohnny: it reminds me of branch prediction a bit
04:16:53  <jjjohnny>the full gamae state can be on its own cycle, with correction routines
04:17:01  <jjjohnny>pfraze: what are those??
04:17:29  <pfraze>jjjohnny: a wave would be a state that's propogating across nodes. CPUs break into stages which behave the same way
04:18:05  <pfraze>jjjohnny: at times, they make predictions about the future execution path (eg that a jump isnt coming) and prepare for an operation
04:19:19  <pfraze>jjjohnny: so I'm thinking about predictive pipelines, and what they use to make predictions, and whether the same information might apply to network node prediction across hops
04:20:36  <jjjohnny>pfraze: ah yes. i had a similar idea, but I only thought to use bitrates :^P
04:20:55  <jjjohnny>waves in bitrates
04:21:53  <jjjohnny>neat idea, tho what about noise from other processes?
04:23:12  * wolfeidauquit
04:23:34  <pfraze>jjjohnny: it's just a half-thought; I'd have to look into it more
04:23:48  <pfraze>jjjohnny: I remember reading some good papers from mmo makers
04:24:03  <pfraze>I bet blizzard has published something on gamasutra
04:24:27  <pfraze>might find some good ideas there
04:25:55  <pfraze>at least, I remember gamasutra hosting good articles. Gotten a bit ugly :\
04:31:49  <rowbit>substack, pkrumins: These encoders are STILL down: 50.56.27.70(dev-ie6-1)
04:34:11  * marcello3d_zzZchanged nick to marcello3d
04:44:57  <jjjohnny>FREE WILL IS A MAZE AND FREE WILLY IS A MOUSE AND THE WALLS ARE A PATTERN THAT HAS BEEN DETERMINED
04:44:58  <LOUDBOT>I'M GONNA ROLL AGAINST DEXTERITY TO DETERMINE IF I'M TOO DRUNK TO GET MY DICK IN THE RIGHT HOLE
04:44:58  * phatedquit (Remote host closed the connection)
04:45:57  <jjjohnny>NEXT TIME ROLL ON CHARM
04:45:57  <LOUDBOT>OH SHIT IT"S THE VOYNICH MANUSCRIPT
04:46:25  * pfrazequit (Ping timeout: 260 seconds)
04:46:43  <jjjohnny>I QUICKLY OPENED IT AND READ THE FOLLOWING
04:46:43  <LOUDBOT>"THE BODY OF JONATHAND<SPACE><SPACE>IS FOUND"
04:49:19  <jjjohnny>THE NEXT TAG READ "<STRONG>TO BE OF ECSQUISITE PROPORTION AND FINENESS</STRONG>"
04:49:20  <LOUDBOT>GIVE ME YOUR TIRED, YOUR POOR, YOUR ALCOHOLIC MASSES
04:51:37  * funkytekjoined
04:52:53  <jjjohnny>WHICH IS INDEED A THING JOHNNY WOULD SAY
04:52:53  <LOUDBOT>FOUR SPACES BAD TABS GOOD
04:53:45  <jjjohnny>AESTHETICS IS A BATHROOM DECORATOR'S SCIENCE
04:53:45  <LOUDBOT>OFT AT THE HIVES OF HIS TAME BEES, THEY WOULD THEIR SUGARY THIRST APPEASE!
04:55:20  <rowbit>Hourly usage stats: [developer: 0, free: 15]
04:56:33  * calvinfoquit (Quit: Leaving.)
04:57:16  <jjjohnny>AND THEN THE BEES LISTENED TO WU-TANG
04:57:16  <LOUDBOT>SO IF WE'RE TALKING ABOUT PENIS SIZE THEN LET ME SHOW YOU MINE! 8==D
04:58:09  <jjjohnny>ROBOTIC ATTEMPTS AT SEXUALITY RESULT IN A LONG FACE
04:58:09  <LOUDBOT>I WOULD BUY ONE I GUESS
04:59:06  <jjjohnny>THERE YOU HAVE THE CONSUMERS WORD, CHEO, THY WILL BE BOUGHT
04:59:06  <LOUDBOT>THERE ARE FEW THINGS IN THIS LIFE THAT CAN NOT BE IMPROVED BY ORAL SEX
05:01:11  <jjjohnny>TO PLEASE THE MOUTH, THAT IS, AMUSE BOUCHE. WHENCE TO GIVE IS TO RECIEVE.
05:01:12  <LOUDBOT>YEA AND I STARTED BEATING HER BECAUSE SOMEONE HAS TO BEAT THE DUMB OUT. SHE'S OBVIOUSLY BEEN HANGING OUT WITH YOU TOO LONG.
05:02:40  <jjjohnny>LOUDBOT BEEN HANGING AT TECH CONFERENCES WHAT AINT RECOGNIZE THE GOOD CODE
05:02:41  <LOUDBOT>IT'S ONLY PORTABLE IF YOU'RE MISCONFIGURED
05:06:20  <jjjohnny>CAN WE TALK ABOUT MONEY INSTEAD OF THAT?
05:06:20  <LOUDBOT>YES IT DOES DAMNIT!
05:08:29  <jjjohnny>YES AND WE SHALL HARNESS THAT DAMNABLE QUALITY AND USE IT AGAINST THE HOARDERS
05:08:30  <LOUDBOT>THAT SHOULD BE THE SENTENCE STRUCTURE FOR TWITTER
05:11:15  * h0kejoined
05:16:35  <jjjohnny>THEY SHALL EACH BE STRUCT SURELY BUT EACH ITS OWN WAY ACCORDINGLY
05:16:36  <LOUDBOT>HEY GUYS I CHANGED THE INTERFACE NO DEPRECATION PERIOD YOU HAVE TO REWRITE AND THE OLD VERSION HAS MAJOR SECURITY HOLES LOL SUCKERS
05:17:42  * dominictarrquit (Ping timeout: 265 seconds)
05:26:41  * contrahaxjoined
05:42:59  * i_m_cajoined
05:46:48  * mikolalysenkoquit (Ping timeout: 252 seconds)
05:53:43  * mikolalysenkojoined
05:55:20  <rowbit>Hourly usage stats: [developer: 0, free: 18]
05:56:08  * phatedjoined
05:59:15  * insertcoffeejoined
06:00:51  * phatedquit (Ping timeout: 250 seconds)
06:04:07  * insertcoffeequit (Read error: Connection reset by peer)
06:09:40  * ednapiranhaquit (Quit: Leaving...)
06:13:03  * insertcoffeejoined
06:14:49  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
06:16:19  * maksimlinquit (Quit: ChatZilla 0.9.90.1 [Firefox 26.0/20131206152142])
06:25:01  * contrahaxquit (Ping timeout: 272 seconds)
06:26:38  * contrahaxjoined
06:35:47  * i_m_caquit (Ping timeout: 272 seconds)
06:49:20  * fotoveritequit (Quit: fotoverite)
06:55:20  <rowbit>Hourly usage stats: [developer: 0, free: 23]
06:57:28  * marcello3dchanged nick to marcello3d_zzZ
06:57:36  * marcello3d_zzZchanged nick to marcello3d
07:02:44  * wolfeidaujoined
07:07:04  * marcello3dchanged nick to marcello3d_zzZ
07:08:01  * collypopsquit
07:14:10  * calvinfojoined
07:15:11  * funkytekjoined
07:31:23  <mikolalysenko>I wrote a thing: http://0fps.wordpress.com/2014/02/10/replication-in-networked-games-overview-part-1/
07:43:11  * h0kequit (Read error: Operation timed out)
07:43:56  * contrahaxquit (Ping timeout: 245 seconds)
07:54:37  * calvinfoquit (Quit: Leaving.)
07:55:20  <rowbit>Hourly usage stats: [developer: 2, free: 19]
07:56:35  * marcello3d_zzZchanged nick to marcello3d
07:59:04  * Maciek416quit (Remote host closed the connection)
08:04:19  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.72.32(free10)
08:06:26  * marcello3dchanged nick to marcello3d_zzZ
08:15:20  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
08:22:06  * creationixquit (Ping timeout: 253 seconds)
08:23:22  * perlbotquit (Quit: ZNC - http://znc.sourceforge.net)
08:23:52  * perlbotjoined
08:23:53  * creationixjoined
08:27:42  * hemanth_joined
08:41:06  * hemanth_quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
08:43:07  * jcrugzzquit (Ping timeout: 265 seconds)
08:49:14  * insertcoffeequit (Ping timeout: 245 seconds)
08:55:20  <rowbit>Hourly usage stats: [developer: 11, free: 21]
08:56:32  <greweb>mikolalysenko: very cool :) thanks
08:56:59  * peutetrejoined
08:57:24  * marcello3d_zzZchanged nick to marcello3d
08:59:21  * mikolalysenkoquit (Ping timeout: 252 seconds)
09:03:32  * rsolejoined
09:06:58  * joatesjoined
09:07:07  * marcello3dchanged nick to marcello3d_zzZ
09:09:46  * nfroidurequit (Quit: Ex-Chat)
09:10:29  * peutetrequit (Ping timeout: 248 seconds)
09:11:03  * jcrugzzjoined
09:11:16  * peutetrejoined
09:12:39  * nfroidurejoined
09:14:20  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/11.0
09:15:49  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/11.0
09:17:33  * jcrugzzquit (Ping timeout: 260 seconds)
09:23:59  * eugenewarejoined
09:24:53  * hemanthquit (Ping timeout: 248 seconds)
09:25:47  * hemanthjoined
09:43:01  * joatesquit (Quit: Leaving)
09:55:20  <rowbit>Hourly usage stats: [developer: 6, free: 46]
09:55:21  * mikolalysenkojoined
09:58:08  * marcello3d_zzZchanged nick to marcello3d
10:00:27  * mikolalysenkoquit (Ping timeout: 265 seconds)
10:02:07  * hemanth_joined
10:07:52  * marcello3dchanged nick to marcello3d_zzZ
10:17:20  * thealphanerdquit (Quit: thealphanerd)
10:18:22  * thealphanerdjoined
10:19:04  * thealphanerdquit (Client Quit)
10:21:18  * cianomaidinjoined
10:31:08  * ferossquit (Quit: feross)
10:31:50  <rowbit>substack, pkrumins: These encoders are STILL down: 50.56.27.70(dev-ie6-1)
10:39:12  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
10:47:31  * cianomaidinquit (Quit: cianomaidin)
10:48:24  <greweb>Hi guys, I'm having trouble installing npmd on MacOS 10.9.1 with node v0.11.11 https://gist.github.com/gre/d26669013ac8b2c605d9
10:50:46  <greweb>works for v0.10.25 mmh, I shouldn't use that future 0.11.11
10:55:20  <rowbit>Hourly usage stats: [developer: 6, free: 28]
10:55:28  * mikolalysenkojoined
10:58:51  * marcello3d_zzZchanged nick to marcello3d
11:00:52  * mikolalysenkoquit (Ping timeout: 265 seconds)
11:08:32  * marcello3dchanged nick to marcello3d_zzZ
11:11:57  * cianomaidinjoined
11:13:02  * mikolalysenkojoined
11:15:54  <guybrush>greweb: in ##leveldb in the topic they say to not upgrade to node0.11.11 -- see https://github.com/joyent/node/pull/6992
11:16:12  <greweb>oh, ok :) cool that's file then, thanks
11:17:59  * mikolalysenkoquit (Ping timeout: 245 seconds)
11:28:24  * dominictarrjoined
11:34:39  * dominictarrquit (Ping timeout: 245 seconds)
11:55:21  <rowbit>Hourly usage stats: [developer: 2, free: 38]
11:58:44  * yorickjoined
11:59:49  * marcello3d_zzZchanged nick to marcello3d
12:00:07  * simcop2387quit (Quit: ZNC - http://znc.sourceforge.net)
12:00:07  * perlbotquit (Quit: ZNC - http://znc.sourceforge.net)
12:02:44  * creationixquit (Ping timeout: 246 seconds)
12:02:55  * simcop2387joined
12:06:25  * simcop2387quit (Client Quit)
12:10:23  * perlbotjoined
12:10:23  * simcop2387joined
12:10:26  * creationixjoined
12:11:10  * marcello3dchanged nick to marcello3d_zzZ
12:13:45  * mikolalysenkojoined
12:19:04  * mikolalysenkoquit (Ping timeout: 252 seconds)
12:40:33  * hemanth_quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
12:47:48  * djcoinjoined
12:55:21  <rowbit>Hourly usage stats: [developer: 1, free: 40]
13:02:10  * marcello3d_zzZchanged nick to marcello3d
13:11:55  * marcello3dchanged nick to marcello3d_zzZ
13:14:35  * mikolalysenkojoined
13:19:44  * mikolalysenkoquit (Ping timeout: 246 seconds)
13:49:50  <rowbit>substack, pkrumins: Encoders down: 50.57.72.69 (free7)
13:55:20  <rowbit>Hourly usage stats: [developer: 11, free: 41]
14:02:50  * marcello3d_zzZchanged nick to marcello3d
14:04:20  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.72.32(free10)
14:12:45  * marcello3dchanged nick to marcello3d_zzZ
14:14:05  * guybrushquit (Excess Flood)
14:14:28  * guybrushjoined
14:16:11  * mikolalysenkojoined
14:20:16  * mikolalysenkoquit (Ping timeout: 246 seconds)
14:24:03  * kevino80joined
14:55:20  <rowbit>Hourly usage stats: [developer: 0, free: 32]
15:00:27  * pfrazejoined
15:00:28  * fotoveritejoined
15:03:35  * marcello3d_zzZchanged nick to marcello3d
15:13:17  * marcello3dchanged nick to marcello3d_zzZ
15:19:35  * eugenewarequit (Remote host closed the connection)
15:23:36  * AvianFluquit (Remote host closed the connection)
15:24:27  * AvianFlujoined
15:28:12  * jcrugzzjoined
15:28:48  * AvianFluquit (Ping timeout: 256 seconds)
15:30:24  * rsole1joined
15:30:50  * rsolequit (Read error: Connection reset by peer)
15:32:51  * AvianPhonejoined
15:45:29  * contrahaxjoined
15:46:58  * AvianPhonequit (Ping timeout: 265 seconds)
15:48:43  * AvianPhonejoined
15:48:51  * rsole1quit (Read error: Connection reset by peer)
15:48:54  * rsolejoined
15:49:44  * Maciek416joined
15:53:15  * AvianPhonequit (Ping timeout: 265 seconds)
15:55:21  <rowbit>Hourly usage stats: [developer: 6, free: 34]
15:58:08  * defunctzombie_zzchanged nick to defunctzombie
15:59:33  * rsolequit (Ping timeout: 248 seconds)
16:00:46  * defunctzombiechanged nick to defunctzombie_zz
16:01:57  * isaacsquit (Quit: leaving)
16:02:18  * isaacsjoined
16:03:42  * isaacspart
16:04:20  * marcello3d_zzZchanged nick to marcello3d
16:05:03  * AvianPhonejoined
16:05:59  * rsolejoined
16:08:04  * hemanthquit (Quit: This computer has gone to sleep)
16:09:04  * mikolalysenkojoined
16:14:10  * marcello3dchanged nick to marcello3d_zzZ
16:15:16  * AvianFlujoined
16:18:20  <rowbit>substack, pkrumins: At least 10 people waiting in the queue for free servers! (Waiting: 10)
16:18:31  * AvianPhonequit (Quit: Bye)
16:23:15  * defunctzombie_zzchanged nick to defunctzombie
16:31:50  <rowbit>substack, pkrumins: These encoders are STILL down: 50.56.27.70(dev-ie6-1)
16:36:50  * contrahaxquit (Quit: Sleeping)
16:36:56  * ednapiranhajoined
16:38:32  * jcrugzzquit (Ping timeout: 246 seconds)
16:48:50  * marcello3d_zzZchanged nick to marcello3d
16:52:28  * ins0mniaquit (Read error: Connection reset by peer)
16:53:23  * h0kejoined
16:55:20  <rowbit>Hourly usage stats: [developer: 3, free: 53]
16:56:10  * ins0mniajoined
16:56:36  * fallsemojoined
16:58:24  * marcello3dchanged nick to marcello3d_zzZ
16:59:46  * calvinfojoined
17:00:42  * defunctzombiechanged nick to defunctzombie_zz
17:01:25  * ins0mniaquit (Ping timeout: 248 seconds)
17:05:10  * ins0mniajoined
17:23:30  <pfraze>project release today - https://guipedia.com/hello-world
17:24:47  <pfraze>messing with web workers to host user code
17:32:59  * shamajoined
17:36:53  * defunctzombie_zzchanged nick to defunctzombie
17:41:02  * fentquit (Ping timeout: 264 seconds)
17:41:06  * groundwaterquit (Ping timeout: 265 seconds)
17:43:20  * groundwaterjoined
17:43:23  * daleharveyquit (Ping timeout: 252 seconds)
17:45:18  * fentjoined
17:45:43  * daleharvey_joined
17:45:44  * isaacs_mobilejoined
17:54:03  * jcrugzzjoined
17:55:20  <rowbit>Hourly usage stats: [developer: 2, free: 48]
17:56:32  * isaacs_mobilequit (Remote host closed the connection)
17:58:57  * isaacs_mobilejoined
18:05:58  * cianomaidinquit (Read error: Connection reset by peer)
18:06:11  * isaacs_mobilequit (Ping timeout: 265 seconds)
18:06:22  * cianomaidinjoined
18:12:20  * marcello3d_zzZchanged nick to marcello3d
18:13:18  * cianomaidinquit (Read error: Connection reset by peer)
18:43:29  * jcrugzzquit (Ping timeout: 272 seconds)
18:44:16  * phatedjoined
18:47:09  * ralphtheninjajoined
18:50:53  * ralphtheninjapart
18:55:20  <rowbit>Hourly usage stats: [developer: 3, free: 44]
18:55:32  * wolfeidauquit (Remote host closed the connection)
18:55:43  * wolfeidaujoined
18:55:45  * wolfeidauquit (Remote host closed the connection)
19:00:45  * kenperkins_quit (Remote host closed the connection)
19:01:33  * kenperkinsjoined
19:09:05  * defunctzombiechanged nick to defunctzombie_zz
19:18:04  * ceejbotjoined
19:21:51  <rowbit>substack, pkrumins: Encoders down: 50.56.27.70 (dev-ie6-1)
19:23:03  * dguttmanjoined
19:30:33  * phatedquit (Remote host closed the connection)
19:36:58  * eugenewarejoined
19:37:06  * eugenewarequit (Read error: Connection reset by peer)
19:37:36  * eugenewarejoined
19:39:45  * peutetrequit (Quit: peutetre)
19:41:44  * eugenewarequit (Remote host closed the connection)
19:41:51  * eugenewarejoined
19:42:01  * eugenewarequit (Read error: Connection reset by peer)
19:42:30  * eugenewarejoined
19:47:17  * eugenewarequit (Ping timeout: 248 seconds)
19:49:26  * phatedjoined
19:51:14  * indexzerojoined
19:54:30  * kenperkins_joined
19:55:21  <rowbit>Hourly usage stats: [developer: 1, free: 53]
19:56:31  * h0kequit (Read error: Operation timed out)
19:56:40  * phatedquit (Remote host closed the connection)
19:57:49  * kenperkinsquit (Ping timeout: 260 seconds)
20:00:52  * ferossjoined
20:01:52  * jaz303_quit (*.net *.split)
20:01:52  * sindresorhusquit (*.net *.split)
20:01:52  * McJesusquit (*.net *.split)
20:01:52  * tanepiperquit (*.net *.split)
20:01:52  * niftylettuce_quit (*.net *.split)
20:01:52  * Domenic_quit (*.net *.split)
20:01:53  * parshapquit (*.net *.split)
20:01:53  * gozalaquit (*.net *.split)
20:01:53  * supershabamquit (*.net *.split)
20:01:53  * andreypoppquit (*.net *.split)
20:01:53  * tobiequit (*.net *.split)
20:01:53  * addisonjquit (*.net *.split)
20:01:54  * grewebquit (*.net *.split)
20:02:13  * tanepiperjoined
20:02:29  * tobiejoined
20:02:33  * McJesusjoined
20:02:54  * grewebjoined
20:03:13  * supershabamjoined
20:03:49  <ins0mnia>grr HTML5 FileWriter is lame troll.. anyone happens to know if it's possible to stream to the disk at all?
20:04:03  * jaz303joined
20:04:17  * Domenic_joined
20:04:24  * parshapjoined
20:04:33  * andreypoppjoined
20:04:39  * addisonjjoined
20:05:11  * machtyquit (Ping timeout: 245 seconds)
20:05:22  * gozala_joined
20:05:38  * ELLIOTTCABLEquit (Ping timeout: 264 seconds)
20:07:04  * sindresorhusjoined
20:07:26  * simcop2387quit (Excess Flood)
20:08:24  * simcop2387joined
20:10:20  * machtyjoined
20:12:28  * ELLIOTTCABLEjoined
20:13:41  * peutetrejoined
20:14:31  * niftylettuce_joined
20:15:17  * jxsonjoined
20:15:52  * fuzjoined
20:18:35  * funkytekjoined
20:19:32  * eugenewarejoined
20:19:34  * phatedjoined
20:33:49  * eugenewarequit (Ping timeout: 245 seconds)
20:37:17  * eugenewarejoined
20:38:22  <ogd>ins0mnia: for streaming from disk: https://github.com/maxogden/filereader-stream
20:38:28  <ogd>ins0mnia: havent tried streaming to disk
20:38:36  <ogd>ins0mnia: but maybe the hack in that module is applicable
20:38:56  * ceejbotquit (Remote host closed the connection)
20:41:04  <ins0mnia>ogd: thank you, but I'm looking to achieve the opposite, I'm reading a remote file and looking for a way to pipe the stream to the disk..
20:41:49  * eugenewarequit (Ping timeout: 250 seconds)
20:41:51  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/11.0
20:49:51  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/11.0
20:53:51  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/11.0
20:55:21  <rowbit>Hourly usage stats: [developer: 100, free: 25]
20:55:51  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/11.0
20:57:04  * phatedquit (Read error: Connection reset by peer)
20:57:28  * phatedjoined
20:59:16  * jxsonquit (Remote host closed the connection)
21:02:25  * jxsonjoined
21:04:48  * djcoinquit (Quit: WeeChat 0.4.2)
21:05:21  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/11.0
21:09:22  * calvinfoquit (Quit: Leaving.)
21:11:47  * ceejbotjoined
21:11:47  <mikolalysenko>this talk is pretty great: https://www.youtube.com/watch?v=_rAdJkAbGls
21:11:51  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/11.0
21:12:47  <pfraze>mikolalysenko: did you make your post about networking?
21:13:31  * calvinfojoined
21:13:47  * rsolequit (Quit: rsole)
21:13:57  * rsolejoined
21:14:21  * ceejbotquit (Read error: Connection reset by peer)
21:14:57  * ceejbotjoined
21:17:21  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/11.0
21:18:19  * defunctzombie_zzchanged nick to defunctzombie
21:20:11  <pkrumins>looks like someone wants to use ie 11
21:20:21  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/11.0
21:20:25  * ceejbotquit (Ping timeout: 240 seconds)
21:24:18  * maksimlinjoined
21:24:49  * ceejbotjoined
21:25:39  <mikolalysenko>pfraze: yeah, but it is bombing bad right now on reddit
21:25:47  <mikolalysenko>http://www.reddit.com/r/gamedev/comments/1xj3ff/replication_in_network_games_part_1/
21:26:34  * dominictarrjoined
21:27:12  <pfraze>mikolalysenko: I feel that
21:27:17  <mikolalysenko>here is a direct link btw http://0fps.wordpress.com/2014/02/10/replication-in-networked-games-overview-part-1/
21:27:29  <pfraze>I'll read it over lunch
21:27:44  <mikolalysenko>thanks, let me know what you think of it
21:28:07  <pfraze>will do
21:28:14  <mikolalysenko>I still haven't gotten to the real meat of the issue yet though, hopefully will cover some of that in part 2
21:29:43  <pfraze>cool
21:31:29  <mikolalysenko>the real trick is defining a good model of consistency for games