[00:02:05] loufoque has quit: Remote host closed the connection
[00:02:30] SgtFlame|Work has quit: Quit: going home bbl
[00:19:01] DawnLurker has quit: Ping timeout: 258 seconds
[00:32:06] DawnLurker has joined #peragro
[00:36:09] <azaghal> Night ;)
[02:34:20] amogorkon has quit: Ping timeout: 265 seconds
[03:11:47] Vornne has quit: Ping timeout: 245 seconds
[03:13:37] Vornne has joined #peragro
[03:13:37] ChanServ sets mode: +o Vornne
[03:18:58] arpu has joined #peragro
[03:21:02] Vornne has quit: Ping timeout: 246 seconds
[03:23:03] Vornne has joined #peragro
[03:23:03] ChanServ sets mode: +o Vornne
[03:38:15] needle has quit: Read error: Connection reset by peer
[03:42:08] needle has joined #peragro
[03:46:54] Vornne has quit: Ping timeout: 246 seconds
[03:47:44] Vornne has joined #peragro
[03:47:44] ChanServ sets mode: +o Vornne
[04:19:46] Vornne has quit: Ping timeout: 258 seconds
[04:20:34] Vornne has joined #peragro
[04:20:34] ChanServ sets mode: +o Vornne
[04:35:52] Easton has joined #peragro
[04:53:17] Deepa has quit: Read error: Connection reset by peer
[04:53:43] Deepa has joined #peragro
[05:09:59] Vornne has quit: Ping timeout: 264 seconds
[05:11:41] Vornne has joined #peragro
[05:11:41] ChanServ sets mode: +o Vornne
[05:30:08] Vornne has quit: Ping timeout: 240 seconds
[05:32:17] Vornne has joined #peragro
[05:32:17] ChanServ sets mode: +o Vornne
[05:43:30] Vornne has quit: Ping timeout: 252 seconds
[05:44:57] arerhihi has joined #peragro
[05:44:58] Arerano_Areramau has quit: Read error: Connection reset by peer
[05:50:04] Vornne has joined #peragro
[05:50:04] ChanServ sets mode: +o Vornne
[06:09:50] <sueastside> ARRRRRGGGG PAIN
[07:27:24] Vornne has quit: Ping timeout: 264 seconds
[07:28:54] Vornne has joined #peragro
[07:28:56] Vornne has quit: Changing host
[07:28:57] Vornne has joined #peragro
[07:28:57] ChanServ sets mode: +o Vornne
[07:34:49] TheAncientGoat has joined #peragro
[07:41:41] Vornne has quit: Ping timeout: 276 seconds
[07:42:24] Vornne has joined #peragro
[07:42:25] ChanServ sets mode: +o Vornne
[07:43:47] ryan__ has joined #peragro
[07:45:11] TheAncientGoat has quit: Ping timeout: 276 seconds
[07:48:11] ryan__ has quit: Client Quit
[07:48:32] TheAncientGoat has joined #peragro
[07:56:34] Vornne has quit: Ping timeout: 268 seconds
[07:57:55] Vornne has joined #peragro
[07:57:55] ChanServ sets mode: +o Vornne
[08:10:44] SgtFlame|Zen has quit: Ping timeout: 265 seconds
[08:23:31] SgtFlame|Zen has joined #peragro
[08:34:19] Vornne has quit: Ping timeout: 258 seconds
[08:35:45] Vornne has joined #peragro
[08:35:45] ChanServ sets mode: +o Vornne
[08:42:13] Vornne has quit: Ping timeout: 245 seconds
[08:43:05] Vornne has joined #peragro
[08:43:05] ChanServ sets mode: +o Vornne
[08:54:10] PK_ has joined #peragro
[08:54:10] ChanServ sets mode: +o PK_
[09:02:43] <sueastside> morning PK_
[09:02:59] <PK_> morning sueastside
[09:07:18] TheAncientGoat has quit: Remote host closed the connection
[09:31:26] Vornne has quit: Ping timeout: 258 seconds
[09:33:07] Vornne has joined #peragro
[09:33:08] ChanServ sets mode: +o Vornne
[09:33:16] TheAncientGoat has joined #peragro
[09:34:10] TheAncientGoat has quit: Read error: Connection reset by peer
[09:35:59] TheAncientGoat has joined #peragro
[09:37:18] brankom has joined #peragro
[09:42:31] <brankom> sueastside: I've had a major breakthrough in the bus this morning!
[09:43:51] Vornne has quit: Ping timeout: 264 seconds
[09:45:36] Vornne has joined #peragro
[09:45:36] ChanServ sets mode: +o Vornne
[10:02:24] Vornne has quit: Ping timeout: 260 seconds
[10:03:40] <sueastside> brankom: i hope you're ok then
[10:04:11] Vornne has joined #peragro
[10:04:11] ChanServ sets mode: +o Vornne
[10:25:15] <brankom> sueastside: Heheh
[10:25:17] <brankom> sueastside: Still here?
[10:27:04] <brankom> sueastside: I think I have a kind of new type of architecture for the network :)\
[10:33:22] <sueastside> brankom: sorta around, in class...
[10:33:33] <brankom> sueastside: Anyway, hear this
[10:33:37] <sueastside> ok
[10:33:51] <brankom> _Every_ source of new messages is a connection :)
[10:33:56] <brankom> Even entity manager or what-not.
[10:34:12] <brankom> So the dispatcher uses a unified interface for all of those for sending messages.
[10:34:14] <brankom> And...
[10:34:31] <brankom> When it receives a message, it can run it through an ACL-like handler for each message type.
[10:34:58] <brankom> This handler in turn returns a list of pair values <ConnectionSPtr, MessageSPtr>
[10:35:14] <brankom> Since the ACL might want to modify data that get distributed down the line.
[10:35:28] <brankom> I.e.
[10:35:41] <brankom> A proprety update message could update 30-40 properties at the same time.
[10:35:52] <brankom> But not all updates get sent to everyone.
[10:36:19] <brankom> So the ACL splits it up smartly, making minimum number of Message instances, and returns that list.
[10:36:43] <brankom> And since it uses MessageSPtr, it saves some memory that would be used for copying.
[10:37:01] <brankom> The only question, though, is if it will make a big performance hit or not.
[10:37:17] <brankom> But I kept banging my head on how to implement ACL as well, and this looks like a good solution.
[10:37:29] <brankom> sueastside, Vornne: What do you think?
[10:37:46] <brankom> Oh, the ACL gets the message _and_ source of message, of course.
[10:38:04] <brankom> You could use even fifo file for Connection, or a socket.
[10:46:54] <sueastside> brankom: the recieving part seems odd to me, its missing validation, use case: invisible entity (visible to its party members) sends a position update, could you explain how such a message would be routed through your system?
[10:47:13] Vornne has quit: Ping timeout: 245 seconds
[10:49:06] Vornne has joined #peragro
[10:49:07] ChanServ sets mode: +o Vornne
[10:49:10] <brankom> sueastside: The dispatcher is listening for new messages from connection.
[10:49:24] <brankom> Connection emits the signal (ConnectionSPtr, Message)
[10:49:43] <brankom> Dispatcher checks the type of message, and runs it through appropriate ACL
[10:49:53] <brankom> ACL performs any kind of verification for that type of message.
[10:50:10] <brankom> It also decouples the message into several different messages as required.
[10:50:19] <brankom> It returns the above pairs to dispatcher.
[10:50:37] <brankom> Dispatcher sends the messages to all appropriate connections.
[10:51:02] <brankom> I.e. you'd implement an ACL for that checking and verification.
[10:51:10] <sueastside> brankom: where does the position validation fit in?
[10:51:12] <brankom> Now how it would be implemented for various types is free.
[10:51:17] <brankom> Position validation?
[10:51:23] <brankom> Entity manager does that.
[10:51:31] <brankom> I.e. it's part of game mechanics (component part)
[10:52:07] <sueastside> brankom: yes, but where in that list of steps?
[10:54:18] <brankom> Ok, here it is.
[10:54:36] <brankom> Entity Manager inherits the Connection and implements a SendMessage method.
[10:54:57] <brankom> So, basically, it receives a property update, and passes it to Entity/Component.
[10:55:17] <brankom> Component triggers a validation script or something, and checks. If result is invalid, it throws it away, for example.
[10:55:28] <brankom> I.e. it sits in part that Vornne implements.
[10:55:32] <brankom> I just do message passing :)
[10:58:16] <sueastside> brankom: hmm so there is even access control per manager?
[10:58:53] Deepa has quit: Ping timeout: 248 seconds
[10:59:27] <brankom> Not really.
[10:59:47] <brankom> The ACL will be used just for limiting which data gets transmitted where.
[11:02:22] wans has joined #peragro
[11:05:08] Easton has quit: Ping timeout: 276 seconds
[11:05:09] <sueastside> brankom: so it would be client -> pos -> server -> dispatcher -> manager (validation) -> validated pos message -> dispatcher -> ACL -> allowed clients ?
[11:05:35] <brankom> Hm...
[11:05:35] <brankom> No
[11:06:10] <brankom> Ok, here goes...
[11:08:30] <brankom> User -> CComponent -> CEntityManager -> CDispatcher -> CACL -> CDispatcher -> CConnections -> SConnection -> SDispatcher -> SACL -> SEntityManager and/or Other Connections
[11:08:58] <brankom> Now, keep in mind SEntityManager knows where the request came from, so it can pass the message _only_ to SEntityManager first for whatever purposes.
[11:18:39] <sueastside> brankom: why the CACL?
[11:18:46] <brankom> Client ACL
[11:18:48] <brankom> Server ACL
[11:18:56] Vornne has quit: Ping timeout: 260 seconds
[11:18:59] <sueastside> no no why, not what :)
[11:19:07] <brankom> To make the network stack generic.
[11:19:21] <brankom> And for possible future uses (for example, p2p or something)
[11:19:33] <sueastside> ok
[11:19:44] <brankom> The overhead for client would be minimal.
[11:19:58] <brankom> (at the advantge of ease of maintenance)
[11:20:32] <sueastside> brankom: ok sounds good, get started! :)
[11:20:38] <brankom> lol
[11:20:42] <brankom> Still at work :)
[11:20:54] Vornne has joined #peragro
[11:20:55] ChanServ sets mode: +o Vornne
[11:21:01] <sueastside> i'm in class, doesnt stop me from coding :P
[11:21:10] <brankom> work != class
[11:21:20] <brankom> I'm just wondering who should deserialize the raw data - Connection or Dispatcher
[11:22:33] <sueastside> i think thats more of a connection thing, deserialize doesnt fall under dispatching
[11:27:34] TheAncientGoat has quit: Remote host closed the connection
[11:29:56] <brankom> True
[11:30:08] <brankom> Because Connections will have to know about Dispatcher then (for message registration).
[11:30:20] <brankom> That's why I originally had a separate class for registration.
[12:14:22] Vornne has quit: Ping timeout: 268 seconds
[12:15:06] Vornne has joined #peragro
[12:15:06] ChanServ sets mode: +o Vornne
[12:23:57] amogorkon has joined #peragro
[12:23:58] amogorkon has quit: Changing host
[12:23:58] amogorkon has joined #peragro
[12:45:34] Vornne has quit: Ping timeout: 248 seconds
[12:46:53] Vornne has joined #peragro
[12:46:53] ChanServ sets mode: +o Vornne
[12:56:24] Vornne_ has joined #peragro
[12:56:24] ChanServ sets mode: +o Vornne_
[12:57:28] Vornne has quit: Ping timeout: 252 seconds
[13:03:27] Vornne_ has quit: Ping timeout: 276 seconds
[13:04:51] Vornne has joined #peragro
[13:04:51] ChanServ sets mode: +o Vornne
[13:12:04] Vornne has quit: Ping timeout: 240 seconds
[13:14:14] Vornne has joined #peragro
[13:14:15] ChanServ sets mode: +o Vornne
[13:22:01] Vornne has quit: Ping timeout: 265 seconds
[13:23:41] Vornne has joined #peragro
[13:23:41] ChanServ sets mode: +o Vornne
[13:24:03] PK_ has quit: Read error: Connection timed out
[13:28:24] TheAncientGoat has joined #peragro
[13:40:34] Vornne has quit: Ping timeout: 260 seconds
[13:42:15] Vornne has joined #peragro
[13:42:16] ChanServ sets mode: +o Vornne
[14:09:55] <sueastside> circeavalon: wakey wakey hands on my snakey!
[14:17:39] <brankom> sueastside: So, do you like my idea of making every input to dispatcher a Connection?
[14:19:11] <sueastside> brankom: yeah, make sense sort of
[14:20:19] <sueastside> and since its a connection we can later even adapt to something where managers are run on seperate machines
[14:29:40] PK has joined #peragro
[14:29:40] ChanServ sets mode: +o PK
[14:30:48] <sueastside> PK: you cant do "int b; {int b;}" in java WTF?
[14:33:00] <PK> Might be that the compiler warns you about it, I never tried it though. Java is all about complaining about possible design issues.
[14:35:29] <sueastside> no its an actual error, quite retarded
[14:35:39] arpu has quit: Quit: Ex-Chat
[14:38:15] arpu has joined #peragro
[14:41:28] <sfb> You can scope b in Java.
[14:41:48] <sfb> But not like that. You can't do that in C++ either.
[14:42:14] <sfb> If the first 'b' is at a method scope, at least.
[14:42:35] <sfb> If the first 'b' is a member, you can have multiples but you have to be careful to reference it as 'this.b'
[14:43:09] <sfb> Same in Java. You can do: public class Foo { int b; void setB(int b) { this.b = b; } }
[14:43:25] <sfb> That's actually the 'preferred' bean layout for purposes of reflective libraries.
[14:43:30] <amogorkon> praise to python :)
[14:44:04] <sueastside> sfb: oh you can definitly do that in C++ !
[14:45:30] <sfb> Okay, so I have to come back and ask why on earth would you do "void foo() { int b; { int b; /* ... */ } }"
[14:45:51] <sueastside> sfb: cause you can! :)
[14:46:00] <sfb> It seems foolish when you have hundreds of millions of variable name combinations to orphan your method-scope variable in a scope.
[14:46:10] <sfb> Okay. Still seems foolish to me. (;
[14:46:19] <brankom> PK: Read logs from today about network :)
[14:46:51] <sfb> sueastside: And codepad has proven you correct.
[14:46:51] <brankom> sueastside: Exactly my thought :)
[14:46:54] <sfb> http://codepad.org/StXwfzWH
[14:47:00] <brankom> As in local NPC server connecting through socket
[14:47:22] <sfb> AI Mini Service. (;
[14:55:51] <sueastside> sfb: well i agree its not great for readability, but to remove functionality because people dont understand scope?
[14:56:34] <PK> sueastside,
[14:56:45] <sueastside> PK,
[14:56:52] <PK> sueastside: it's about forcing stupid developers into writing better code...
[14:57:20] <PK> why do you think they implemented garbage collection? Because most of the developers fail to use delete properly
[14:57:30] <sueastside> PK: nah i bet it doesnt improve your code :P
[14:57:43] <sfb> sueastside: Or because its stupid? (;
[14:58:01] <PK> sueastside: It does :) .... sometimes
[14:58:11] <sfb> PK: sueastside is right. GC doesn't improve it. It just enables them to be more sloppy.
[14:58:24] <sueastside> PK: if there is no delete, why the new....
[14:58:29] <sfb> I'm a prime example. I get sloppy in Java because I can. (;
[15:00:05] <PK> sueastside: I hear a lot of people here at work talking about about C++. How ugly the errors could get and how horrible the code looked. Then I have to tell them: "Just because your coders don't know how to write c++ doesn't make it a bad language" :)
[15:00:44] <sueastside> i must admit netbeans is kinda neat...
[15:01:05] <sfb> I hate Netbeans.
[15:01:06] <sfb> (;
[15:01:23] <sfb> PK: While you don't have a delete operator you can flag an object for collection using .finalize()
[15:01:26] <sfb> Just FYI.
[15:01:48] <PK> sueastside: btw, my code improves too. Having seen others, I must say that my code wasn't all bad. At least I got the indents right :)
[15:01:59] <sfb> It's not encouraged to overload the finalize method nor to necessarily call it directly.
[15:02:01] <sfb> But you cna. (;
[15:02:35] <sueastside> sfb: good to know, but my point was why have it at all? why not just do String str = String(); or better String str();?
[15:02:57] <sueastside> (the new i mean)
[15:04:29] <sfb> It's at least consistent.
[15:04:34] <sfb> YOu always do new String(...);
[15:05:19] <sueastside> PK: heh, well i configured netbeans for PT's coding style, so it sorta feels like i'm doing C++ :P
[15:07:21] <sueastside> sfb: true, it just feels a little verbose
[15:13:14] <sfb> ...
[15:13:37] <sfb> You're talking about Java where you often run into class names like: SpringAspectReflectionMessageNotFoundInScopeOrWiringException
[15:14:35] <sueastside> kill me now...
[15:17:50] <sfb> hahah
[15:19:15] <sfb> Or C#
[15:19:17] <sfb> IDataGridColumnStyleEditingNotificationService
[15:19:56] <sueastside> they steal everything from C++ except namespaces...
[15:20:01] <sfb> This is the longest actual class name in Spring (Java)
[15:20:03] <sfb> AbstractInterruptibleBatchPreparedStatementSetter
[15:24:57] <sueastside> oh no, we'll use spring in a few weeks
[15:25:32] <sfb> I *love* Spring.
[15:26:42] <brankom> sueastside: Yeah, Oracle will whack it :)
[15:26:56] * brankom tried lots of things, then settled for Emacs
[15:27:18] <brankom> sueastside: You can do C++ in Netbeans as well
[15:31:11] <sfb> And Eclipse via CDT. (;
[15:31:19] PK has quit: Read error: Connection reset by peer
[15:31:20] <sfb> If you use CMake you can auto generate CDT workspaces.
[15:31:36] PK has joined #peragro
[15:31:36] ChanServ sets mode: +o PK
[15:57:20] brankom_ has joined #peragro
[15:59:01] brankom has quit: Ping timeout: 252 seconds
[16:06:25] SgtFlame|Zen has quit: Ping timeout: 245 seconds
[16:11:08] SgtFlame|Zen has joined #peragro
[16:12:15] PK has quit: Read error: Connection reset by peer
[16:12:40] PK has joined #peragro
[16:12:40] ChanServ sets mode: +o PK
[16:28:40] PK has quit: Quit: Leaving
[16:33:01] needle has quit: Ping timeout: 260 seconds
[16:34:38] needle has joined #peragro
[17:16:56] Easton has joined #peragro
[17:22:10] Easton has quit: Quit: I used to think I was indecisive, but now I'm not too sure.
[17:39:47] brankom_ has quit: Quit: Page closed
[17:56:50] caedes has quit: Ping timeout: 245 seconds
[18:30:47] <circeavalon> sueastside, that is a little early for me dear...
[18:30:51] Easton has joined #peragro
[18:48:56] Deepa has joined #peragro
[18:48:59] Deepa has quit: Changing host
[18:48:59] Deepa has joined #peragro
[19:49:20] <azaghal> Yo
[20:12:37] * circeavalon stretches
[20:14:49] <azaghal> Had a nap?
[20:41:50] Vornne has quit: Ping timeout: 264 seconds
[20:43:29] Vornne has joined #peragro
[20:43:29] ChanServ sets mode: +o Vornne
[20:50:45] <azaghal> http://lwn.net/Articles/384556/
[21:38:26] * circeavalon twiddles her thumbs
[21:39:12] * azaghal throws a dice "8 - you fail dexterity test and your thumbs get all intermingled"
[21:43:09] * circeavalon throws azaghal a clue "here I got tired of you not having one"
[21:43:27] <azaghal> Heh
[21:55:29] * circeavalon pokes sueastside
[21:55:44] <circeavalon> I guess he died
[21:56:04] <Deepa> DEATH
[21:56:16] <Deepa> I twitch a lot
[21:56:18] <circeavalon> had to
[21:56:55] <circeavalon> he didn't text message me or poke me in channel and he knows I have skype on all day so he must have died
[21:57:16] <circeavalon> well at least I'll look hot at the funeral
[21:57:30] * circeavalon gets out her black clothes
[21:57:55] <circeavalon> should I say something nice? I think I should
[21:58:22] <circeavalon> he was a brilliant geek...short but smart
[21:58:34] <circeavalon> with glasses
[21:58:43] <circeavalon> oh that would be to general
[21:59:15] <sueastside> and incorrect, i'm not short
[22:01:56] <circeavalon> sort of
[22:09:36] <azaghal> If he stands up on a waffle, he looks taller...
[22:23:12] <sueastside> only if its a belgian waffle, american waffles arent worthy of the name
[22:25:17] <circeavalon> grrr!
[22:32:18] TheAncientGoat has quit: Remote host closed the connection
[22:36:18] <Deepa> OH CRAP
[22:36:21] <Deepa> It's friday today!
[22:36:28] <azaghal> Date time?
[22:36:33] <Deepa> That's tomorrow
[22:36:39] <Deepa> like 15 minutes after I wake up
[22:36:44] <azaghal> lol
[22:36:55] <azaghal> Honestly - I'm jealous :/
[22:37:20] <Deepa> even when I mention that it's been mostly a painful experience?
[22:37:41] <Deepa> Not as in S&M
[22:47:08] <azaghal> Why?
[22:47:21] <azaghal> She likes GPL more than BSD license? :)
[22:50:32] <Deepa> That I could fix :p
[22:51:30] <Deepa> But rather as in I'm just being passive because I don't know what to do
[23:16:41] Vornne has quit: Ping timeout: 276 seconds
[23:18:17] Vornne has joined #peragro
[23:18:17] ChanServ sets mode: +o Vornne
[23:28:03] * azaghal pokes circeavalon "Help! Geek in trouble :)"
[23:28:49] circeavalon has quit: Quit: peace out