[00:52:10] Easton has joined #peragro
[01:13:50] Easton has quit: Ping timeout: 240 seconds
[01:23:48] needle has quit: Ping timeout: 240 seconds
[01:25:43] needle has joined #peragro
[02:04:14] Easton has joined #peragro
[03:18:44] <azaghal> Good night all
[03:51:02] k2 has joined #peragro
[05:46:42] k2 has quit: Ping timeout: 265 seconds
[06:42:25] TheAncientGoat has joined #peragro
[07:47:10] Easton has quit: Ping timeout: 240 seconds
[09:23:40] caedes has quit: Ping timeout: 240 seconds
[09:32:27] caedes has joined #peragro
[09:32:28] ChanServ sets mode: +v caedes
[09:42:35] induane has joined #peragro
[09:42:35] ChanServ sets mode: +o induane
[09:42:49] <sueastside> hey induane
[09:45:45] <thebolt> hi sueastside , induane
[09:48:25] <sueastside> hi sueastside , induane
[09:48:33] <sueastside> err hi thebolt
[09:52:05] <thebolt> hehe :P
[09:54:42] <thebolt> what's up?
[09:56:17] <sueastside> thinking about what other front i can progress on, currently stuck with that terrain :s
[09:56:33] <thebolt> ok :)
[10:27:27] Deepa has quit: Read error: Connection reset by peer
[11:26:10] <azaghal> Yo
[12:03:40] <Vornne> hey azaghal... guessing you don't generally read history (which is fine ;)), on the topic of coding style only quibble I have with the latest is the usage of <> for local project includes rather than ""
[12:05:00] * azaghal grumbles "Everyone's a critic"
[12:05:14] <Vornne> ;)
[12:05:53] <azaghal> Reading it right now
[12:06:58] <azaghal> Regarding /// - I used to use this, but then gave up because the moment you have multi-line comment it kind of beats the purpose.
[12:07:04] <azaghal> So opted for a universal thing.
[12:08:11] <Vornne> that's not really important to me, but I would just add the next line with /// under it, still less extra lines
[12:09:57] <azaghal> Ok, ok...
[12:10:00] <azaghal> I'll change that as well...
[12:10:50] <Vornne> no, it's fine :)
[12:10:56] <Vornne> don't worry about it
[12:11:27] <azaghal> The main thing for me is that /// looks great with single-line comments, but looks out of place otherwise.
[12:11:28] <Vornne> personally I'd just leave it up to the writer of the class (whether to use /// or /** */
[12:11:36] <azaghal> Btw, what about column width? (for wrapping)
[12:11:50] <Vornne> I've always been doing 80 characters
[12:12:21] <azaghal> I'm wondering if 80 is too little nowadays.
[12:12:26] <Vornne> I don't mind using more, but maybe sue had a preference for that? don't recall
[12:12:37] <azaghal> I'm also using 80, but after the speech of one of kernel devs at FOSDEM, I started wondering.
[12:12:43] * azaghal bitchslaps sueastside
[12:12:52] <azaghal> circeavalon: We want your b/f!
[12:12:55] <Vornne> kernel devs also use 8 char indents, though ;)
[12:13:19] <azaghal> Yep, but they might be changing some coding styles.
[12:13:21] <Vornne> but on the other hand, not as long syntax
[12:13:30] <Vornne> generally
[12:13:49] <azaghal> The reason he put forward is that we're not restricted to 80-char wide terminal anymore.
[12:14:01] <azaghal> Btw, how do you like the current code?
[12:14:24] <azaghal> I'm thinking of dropping that "BlahBlahSlot" notation, though.
[12:15:28] <Vornne> hmm, I had a quickish look through... looks fine to me
[12:16:44] <azaghal> Probably thread-unsafe quite a bit, though.
[12:16:51] <azaghal> Do you like the design itself?
[12:16:51] <Vornne> I have had a tendency lately shy away from virtual methods unless there is a good reason, but that's probably unfounded for this
[12:17:17] <azaghal> Well, it does use polymorphism.
[12:17:25] <Vornne> I haven't really looked into it in detail, not having felt like working on my own code much lately :(
[12:17:51] <azaghal> Heh
[12:17:56] <azaghal> Issues?
[12:18:06] <Vornne> but it looks like a good start on the filtering ideas we've all talked about
[12:19:05] <azaghal> There are some additional things I might try introducing into connections, though.
[12:19:21] <azaghal> I was thinking of adding a std::string GetUri() const;
[12:19:33] <Vornne> hmm, I don't know for sure... but that other game is using up part of my computer time, and I got discouraged thinking about how one to many relationships would work (like inventories) and tie into the db thing
[12:19:47] <azaghal> Other game?
[12:19:53] <azaghal> Planeshit?
[12:20:08] <Vornne> started thinking I might need to redo the basics again
[12:20:14] <Vornne> no, mount & blade
[12:20:18] <Vornne> warband
[12:21:34] <azaghal> Ah, right.
[12:21:53] <azaghal> Well, make some docs etc this time :)
[12:22:44] <Vornne> actually fiddling around with the module system for that; they use python to generate the data for their own scripting system
[12:23:21] <Vornne> it's fairly interesting seeing how other games (that actually work, with thousands of players) do the scripting angle
[12:23:30] <Vornne> and it's very limiting compared to c++ ;)
[12:25:03] <azaghal> How so?
[12:27:15] <Vornne> all these kludges with global variables and complicated if / else trees, not having things like bit shift to pack to values into one (because they only allow you to send 4 ints in a message, or a single string)
[12:28:31] <Vornne> and big walls of text compared to compact little class templates that are applied by the compiler rather than copy paste
[12:28:33] <azaghal> Btw, regarding filters, I've been thinking if it'd be possible to somehow create some kind of FilterRule abstraction.
[12:28:40] <azaghal> But no idea how that'd work.
[12:33:42] <Vornne> still looking at code to see what you mean, but btw you don't have to fully specify the namespace names if they are the current one ("namespace PT { namespace Foo { typedef Baz<PT::Foo::Bla> ... ")
[12:34:04] <Vornne> just "Baz<Bla>" is fine
[12:34:44] <Vornne> or even if they are in an enclosing namespace
[12:35:08] <azaghal> Yeah, I know.
[12:35:55] <azaghal> Gah, managed to fsck-up some things during last core revamp.
[12:36:04] <azaghal> Or not.
[12:36:08] <azaghal> False alarm.
[12:36:17] <Vornne> I don't see how a FilterRule would differ from a Filter, isn't that a rule itself?
[12:36:39] <Vornne> or is it multiple rules?
[12:37:50] <Vornne> I guess you could chain the Filters if they are one rule, but that might not be as efficient, is that what you meant?
[12:38:29] <azaghal> fucking keyboard>
[12:38:32] <azaghal> FFUCK
[12:38:38] <Vornne> or rather, run each and add the results together
[12:39:09] <azaghal> Well, for example.
[12:39:14] <azaghal> iptables would be Filter in our case.
[12:39:22] <Vornne> I don't really know what I'm talking about, haven't fully understood your design ;)
[12:39:25] <azaghal> And FilterRule would be a single iptables statement.
[12:39:30] <Vornne> ok
[12:39:56] <azaghal> Vornne: Try generating the doxygen docs, might be helpful up to a point. I'll try to write down some docs this weekend about the architecture of the network system.
[12:40:08] <Vornne> ok
[12:41:27] <azaghal> Vornne: Hm... Where did you catch that " don't have to fully specify the namespace" thing?
[12:41:41] <azaghal> I think I mostly didn't utilise stuff like that, maybe somewhere early in code.
[12:42:19] <azaghal> Vornne: Generally, the idea is that you have dispatcher which is kind of central hub in the design.
[12:42:42] <azaghal> Dispatcher can receive new connection registrations.
[12:43:04] <azaghal> And everything is a connection, even stuff like entity manager.
[12:43:16] <Vornne> was just looking in filter/filter.h, stuff like "typedef boost::tuple<PT::Network::Connection::ConnectionSPtr, PT::Network::Message::MessageSPtr> FilterResult;" could be "typedef boost::tuple<Connection::ConnectionSPtr, Message::MessageSPtr> FilterResult;"
[12:43:16] <azaghal> Which makes it almost completely transparent.
[12:43:34] <azaghal> Erm
[12:43:52] <azaghal> But the current namespace is PT::Network::Filter ?
[12:44:13] <azaghal> And ConnectionSPtr and and MessageSPtr reside in different namespaces?
[12:44:14] <Vornne> yeah, you don't have to give the common namespaces
[12:44:59] <azaghal> Hm... Up to what level does it work?
[12:45:01] <Vornne> to fully specify you use ::PT::Network::Foo but the first one is always unnecessary unless to resolve ambiguities
[12:45:22] <Vornne> the common enclosing namespaces
[12:45:36] <azaghal> Hm...
[12:45:52] <azaghal> Well, to be honest, I might prefer full path since it makes it clear.
[12:46:11] <Vornne> it's also a lot of extra unnecessary typing...
[12:46:40] <azaghal> Yes, but it really makes it clear where something resides.
[12:47:03] <azaghal> Personally, I wish there was a '..' equivalent for C++ namespaces.
[12:47:51] <Vornne> but it doesn't really matter if you like it that way, but to be pedantic you should use :: at the start as well, since PT::Foo::Bar could refer to ::PT::PT::Foo::Bar or ::PT::Foo::Pt::Foo::Bar
[12:48:37] <Vornne> the extra PT doesn't convey anything imho, it's just to avoid clashes with external files
[12:49:48] <azaghal> Ok, ok...
[12:49:52] <azaghal> Damn critics...
[12:50:30] <azaghal> But what if you have, for example, PT::Component::Message ?
[12:50:44] <Vornne> :P
[12:50:53] <azaghal> Well?
[12:51:13] <Vornne> um, I don't know... what's the problem?
[12:51:25] <azaghal> Ok, what if...
[12:51:29] <azaghal> But what if you have, for example, PT::Component::Message::Message ?
[12:51:41] <azaghal> And PT::Network::Message::Message
[12:52:10] <azaghal> Just what's the denominator when using that stuff? Does it go down just one level for matching or more?
[12:52:28] <Vornne> then you need to use Message::Message inside the leaf namespaces, and you need to use Component::Message::Message and Network::Message::Message lower down
[12:52:49] <Vornne> I try to avoid re using namespace names for classes
[12:53:20] <Vornne> it goes right to the root from the current namespace
[12:53:42] <azaghal> Great
[12:53:53] <azaghal> I would like to meet the moron who designed that one>
[12:53:56] <azaghal> and i hate my keyboard
[12:54:00] <azaghal> god damn it>>>
[12:54:06] <azaghal> _>_
[12:55:27] <Vornne> hmm, I guess it's a c++ thing to allow you to be quite compact at the expense of possible readablity, compared to some other languages
[12:55:32] <Vornne> like c
[12:56:06] <azaghal> Beats the purpose of namespaces if you ask me.
[12:56:34] <Vornne> so to specify a type, you only have to put enough namespaces on the front to find it from any enclosing namespace
[12:56:59] Baldur has joined #peragro
[12:57:06] <azaghal> The way I see it it makes the whole thing possibly ambiguous.
[12:57:24] <Vornne> well, in a certain module you probably refer to the other classes inside it most
[12:57:58] <Vornne> it only makes it ambiguous if you include something that clashes
[12:58:19] <azaghal> Which was what they were _trying_ to avoid in the first place :)
[13:01:03] <Vornne> well... you can put stuff inside PT::System::Subsystem::Detail::Hack namespace to hide it from ADL or whatever, but the code inside there doesn't need to add 50 chars to the front of each variable
[13:01:10] <Vornne> *type
[13:02:42] <Vornne> namespaces are not only to organise things when reading the code, they are so you can do things like "Twist(MyClass)" and it will use the Twist function from your namespace, not any other ones someone might have written
[13:02:54] <Vornne> to associate types and functions together
[13:04:39] <Vornne> you can "use" certain namespaces to make plain where the compiler should look, rather than having to use really_really_really_long_function_names, like in c
[13:06:56] <azaghal> I still claim it's silly :)
[13:07:12] <azaghal> And it overly complicates the thing.
[13:07:18] <azaghal> (which should've been actually simple)
[13:07:52] <Vornne> for example something like boost spirit or phoenix (or lambada or bind...) using directives allow your code to be compact and readable, like (guessing) parse(sBegin, sEnd, int_ >> double_[push_back(val1, v)] >> lex["fdsdf])"
[13:10:21] <Vornne> rather than adding ::boost::spirit::qi:: or ::boost::phoenix::stl::assign:: in front of each part
[13:10:36] <Vornne> making a one liner into a ten liner
[13:11:44] <Vornne> namespaces are necessary for certain things rather than being just an organisation tool, like argument dependent lookup
[13:12:25] <Vornne> where the namespace of each function argument is checked for the function
[13:13:29] <azaghal> Meh
[13:13:38] <azaghal> I don't like that kind of thing to be honest.
[13:14:08] <Vornne> so you can do "namespace PT { class T; ostream operator<<(ostream &, const T&); } namespace F { PT::T t; cout << t; }" and it will find the correct overload of operator<<
[13:15:41] <Vornne> ah well :)
[13:17:13] <Vornne> part of the complicated mess that is c++... the only time I've had trouble is with namespaces being the same as class names
[13:17:44] <Vornne> in boost they often pluralise the namespace, e.g. boost::flyweights::flyweight
[13:19:30] <Vornne> I personally think it helps to have code quite compact to read; just my own preference, not saying others should like that :)
[13:42:26] hooloovoo has quit: Ping timeout: 265 seconds
[13:45:04] needle has quit: Ping timeout: 264 seconds
[13:46:43] needle has joined #peragro
[14:42:09] k2 has joined #peragro
[15:05:03] arerhihi has joined #peragro
[15:08:13] Arerano_Areramau has quit: Ping timeout: 276 seconds
[15:19:10] Vornne has quit: Ping timeout: 260 seconds
[15:20:51] Vornne has joined #peragro
[15:20:51] ChanServ sets mode: +o Vornne
[16:13:12] arpu has quit: Ping timeout: 260 seconds
[17:39:06] k2 has quit: *.net *.split
[18:43:48] Easton has joined #peragro
[19:46:29] k2 has joined #peragro
[20:37:17] <sueastside> azaghal: ok, now first you have to write some code before you get to mess with the style again!
[20:37:24] <azaghal> lol
[20:37:29] <azaghal> sueastside: I blame Vornne :)
[20:46:43] <sueastside> azaghal: well you brought it up, he just voiced his opinion
[21:35:50] TheAncientGoat has quit: Read error: Connection reset by peer
[22:01:52] <azaghal> sueastside: I'm writing a small Bash utility script for generating .h and .cpp files, btw.
[22:03:10] <sueastside> azaghal: why not python? so us (well me) windows devs can use it too
[22:03:26] <azaghal> God-damn critics...
[22:03:37] <sueastside> :P
[22:03:41] <azaghal> Well, to be honest, easier to do it in bash.
[22:04:10] <sueastside> dont worry about it
[22:06:18] <azaghal> FUCKING KEYBOARD>
[22:06:20] <azaghal> THAT"S IT>
[22:06:24] <azaghal> I"M DOWNGRADING XORG
[22:14:50] hooloovoo has joined #peragro
[22:16:07] caedes has quit: Ping timeout: 265 seconds
[22:19:03] caedes has joined #peragro
[22:19:03] ChanServ sets mode: +v caedes
[23:07:56] <azaghal> hooloovoo: Yo!
[23:27:58] Baldur has quit: Quit: ChatZilla 0.9.86 [Firefox 3.6.3/20100401080539]