Thursday, 2009-06-11

*** tpb has joined #tp00:00
*** ChanServ sets mode: +o tpb00:00
Greywhindtansell: ping?00:04
*** bddebian has quit IRC00:07
cherezI fear he has abandoned us!00:12
Greywhindi prefer the term "left temporarily due to other duties"00:18
llnzbbl00:30
*** llnz has quit IRC00:30
*** tansell-laptop has joined #tp00:38
tansell-laptopGreywhind, ping?00:39
tansell-laptopGreywhind, sorry I'm late - I got caught up with a previous meeting00:39
Greywhindtansell-laptop: no worries00:40
Greywhindjust wondering about two things00:40
Greywhindfirst, do you have any idea where I should be looking to try to resolve this error:00:41
Greywhindhttp://pastebin.com/d428a7aee00:41
tpbTitle: pastebin - collaborative debugging tool (at pastebin.com)00:41
Greywhindseems to happen when an order completes itself00:41
cherezmithro: Ping?00:55
tansell-laptopin the ChangeDict code and the StateTracker00:58
*** Greywhind has quit IRC00:58
*** Greywhind has joined #tp01:06
tansell-laptopGreywhind, ping?01:35
Greywhindtansell-laptop: pong01:39
tansell-laptopGreywhind, so01:39
*** llnz has joined #tp01:39
tansell-laptopwe where are we at?01:39
Greywhindtansell-laptop: did you get my question about the error?01:40
Greywhindtansell-laptop: http://pastebin.com/d428a7aee01:40
tpbTitle: pastebin - collaborative debugging tool (at pastebin.com)01:40
tansell-laptop<tansell-laptop> in the ChangeDict code and the StateTracker01:40
*** llnz has quit IRC01:44
chereztansell-laptop: http://thousandparsec.net/~cherez/html/01:45
tpbTitle: Coverage report (at thousandparsec.net)01:45
tansell-laptopcherez, that is looking very impressive01:47
*** llnz has joined #tp01:47
chereztansell-laptop: Are the ifs at 386 or 398 important?01:50
tansell-laptopcherez, file?01:50
cherezOops. xstruct.py01:50
cherez386 is dead code, that looks like it tries to identify when the time is incompatible with datetime and avoid throwing an exception.01:51
cherez397 lets you convert floats to times, but pack doesn't allow that.01:52
cherezSo neither should ever be called without internal changes.01:54
*** llnz has quit IRC02:06
*** llnz has joined #tp02:12
CIA-46llnz tpserver-cpp-multiqueue * r87a425924dc1 /modules/games/minisec/ (minisec.cpp planet.cpp):02:15
CIA-46Added second orderqueue to Planets in minisec for TP04 testing.02:15
CIA-46This branch is NOT to be merged into the master branch02:15
llnzGreywhind: there is now the multiqueue branch in tpserver-cpp02:16
Greywhindllnz: awesome, thanks02:17
*** llnz2 has joined #tp02:25
Greywhindtansell-laptop: i've posted today's summary, along with my weekly update02:29
CIA-46joelboh tpclient-pyweb * r6a64182ba136 /frontend/ (index.html scripts/map.js):02:36
CIA-46Frontend: Make sure that the login ui is on top. Transparency is now02:36
CIA-46working in all browsers.02:36
*** llnz has quit IRC02:40
*** greenlion has joined #tp02:46
tansellGreywhind, hey02:52
tansellGreywhind, sorry about today02:52
tansellit's been really hectic at work02:52
tansellcherez, same02:52
cherezNo worries.02:52
tansellcherez, if you can confirm it's dead code, get rid of it02:52
Greywhindtansell: no worries02:53
tansellwe have RCS so we can always get it back :)02:53
tansellso any CL's you want me to review?02:53
tansellcherez, did you send the tabs/spaces patch upstream?02:53
tansellcherez, how close is ListProxy to a normal list?02:54
chereztansell: I sent the fix to the coverage.py guy, not sure when it will be added.02:55
tansellcherez, does he support templates?02:56
tansellit would be nice to mark files which have greater then 95% coverage in green02:56
cherezNot the way it's written now.02:56
tansellthoughs above 70% in yellow and the rest in red02:57
cherezOoh, that would be nice.02:57
cherezI'll implement that in my local copy some time.02:57
cherezlist has a lot of functions....02:57
cherez24 more functions to implement.03:00
cherezWell, time to get to work.03:00
*** llnz2 is now known as llnz03:01
*** Greywhind has quit IRC03:17
CIA-46landon tpclient-pyogre * rf53e9bb78fd4 /src/battleviewer.py: Added the {Battle,Round}Manager classes to keep track of battle progression03:18
CIA-46landon tpclient-pyogre * ra1dbcc644852 /src/battleviewer.py: Replaced TestBattle with BattleManager, started fleshing out the RoundManager. All cosmetic changes so far.03:18
CIA-46landon tpclient-pyogre * r314cf1e97270 /src/battleviewer.py: Started moving some of the general battle details (round/side info) away from BattleScene to BattleManager03:18
*** nash has quit IRC03:23
CIA-46joelboh tpclient-pyweb * r5610f0699e5a / (3 files in 2 dirs):03:29
CIA-46Added exception middleware to easier find errors. Also created a config03:29
CIA-46module.03:29
CIA-46landon tpclient-pyogre * r002d106763f0 /src/battleviewer.py: Now using RoundManagers instead of a straight BattleScene. RoundManagers are also created for each round now.03:49
* Landon bed now03:49
*** jmtan has quit IRC05:13
* llnz wanders off08:03
llnzlater all08:03
*** llnz has quit IRC08:03
*** jmtan has joined #tp09:55
*** bddebian has joined #tp10:00
bddebianHeya10:03
*** tansell-laptop has quit IRC11:30
*** alanp_ has joined #tp11:39
*** Noughmad has joined #tp11:56
*** Noughmad has quit IRC12:29
*** DTRemenak has quit IRC12:59
*** DTRemenak has joined #tp13:06
*** tuna-fish has quit IRC13:47
*** jmtan has quit IRC13:55
*** JLP_ has joined #tp13:56
*** JLP has quit IRC13:56
alanp_ping15:17
alanp_having problems15:17
ezodalanp_: specify?15:18
alanp_moved components to xml import, erroring out on connection now :(15:18
ezodany luck isolating the problem yet?15:19
alanp_it's erroring out in tpguile.cpp15:19
alanp_i think i have it, will advise15:41
*** alanp_ has quit IRC15:59
*** JLP_ has quit IRC16:12
*** JLP has joined #tp16:13
*** greenlion has quit IRC16:33
*** greenlion has joined #tp16:34
CIA-46joelboh tpclient-pyweb * r94481e8ee53d /frontend/ (images/loading.gif index.html scripts/map.js): Disable login button when clicked and added a loading animation.17:16
*** llnz has joined #tp17:21
epyonhmm bug?17:21
epyonBoardManager::addMessage always returns true17:21
llnzit shouldn't17:23
llnzif it's not able to save the message, then it will return false17:23
llnzif the persistence is not able to, that is17:23
*** greenlion has quit IRC17:28
*** bddebian has quit IRC17:39
epyonokay, now it will17:48
epyonbtw, is there a big "no!" to exceptions?17:54
CIA-46epyon tpserver-cpp-refactor * r893810d5ccc0 /tpserver/ (boardmanager.cpp boardmanager.h):17:57
CIA-46Basic doxyfication and corrections on BoardManager17:57
CIA-46* doxymentation for the header file17:57
CIA-46* style fixups17:57
CIA-46* removal of unused code17:57
CIA-46* simplification17:57
CIA-46* fixed boolean results of addMessage and removeMessage17:57
CIA-46epyon tpserver-cpp-refactor * re7e222e1b9c6 /tpserver/boardmanager.cpp:18:15
CIA-46BoardManager optimizations18:15
CIA-46* removed the unneccessary temporary stored id list from get/add/remove message18:15
CIA-46* getMessage simplified18:15
*** jnengland77 has joined #tp18:28
*** jnengland77 has left #tp18:28
*** Greywhind has joined #tp18:55
CIA-46epyon tpserver-cpp-refactor * rbb7d532ddbde /tpserver/ (boardmanager.cpp boardmanager.h player.cpp):18:56
CIA-46postToBoard for BoardManager18:56
CIA-46* added postToBoard to BoardManager18:56
CIA-46* made Player use the new function instead of requesting a board18:56
Greywhindllnz: ping?19:10
llnzGreywhind: pong19:10
Greywhindllnz: when i try to build the new branch for multiple queues:19:10
Greywhind  CXX   mapimport.o19:10
Greywhindmake[4]: *** No rule to make target `tinystr.cpp', needed by `tinystr.lo'.  Stop.19:10
Greywhindmake[3]: *** [all-recursive] Error 119:10
llnzi may have to go shortly to talk to the cops (work broken into this morning)19:10
Greywhindwoah19:10
epyonGreywhind: did you try make clean then autogen and configure?19:20
epyonseems as your Makefiles are out of date19:20
llnzGreywhind: you need to run autogen.sh and configure again19:21
Greywhindhm. i definitely did configure. i might not have rememberd to do autogen first though19:21
epyonconfigure is not enough19:21
epyonmake clean, then autogen19:22
epyonthe configue19:22
Greywhindyeah, seems to have fixed it. sorry.19:22
epyon:)19:22
*** nash has joined #tp19:25
* epyon is just blowing up the Board system19:26
Greywhindwell, now i'm getting a segfault whenever i try to start the server running minisec19:28
Greywhindhttp://pastebin.com/d4a53f34f19:29
tpbTitle: pastebin - collaborative debugging tool (at pastebin.com)19:29
epyonllnz, still around?19:39
epyonI think I found a potential segfault19:39
llnzi'm here19:41
epyontake a look at BoardManager::removeMessage19:41
epyonif msg retrieved from message cache is NULL, we do a retrieve from persistence, and then.... delete it... and leave a pointer dangling...19:42
llnzah, true19:43
Greywhindllnz: any idea on my segfault?19:44
llnzGreywhind: looking now19:44
epyonllnz, on refactor it will be corrected19:44
llnzGreywhind: odd19:47
llnzGreywhind: there is a line of code missing in the setup of the orderqueue parameter19:49
llnzin creating the planets19:49
llnzin particular from mars onwards19:50
llnzi will fix it when i get a chance19:51
Greywhindllnz: i think i see it19:54
llnzit's missing "oqop->setQueueId(planetoq->getQueueId());" before the setDefaultOrderTypes19:55
llnzmars, acprime, s1 all missing it19:56
*** bddebian has joined #tp20:12
Greywhindllnz: http://pastebin.com/d10c0b8520:19
tpbTitle: pastebin - collaborative debugging tool (at pastebin.com)20:19
tansellmorning20:21
tansellepyon, I would prefer exceptions20:23
epyontansell: thank goodness! :D20:26
epyonI'd like to add it to my timeline then :)20:26
* epyon is currently adding "here should be an error" comments in the code...20:27
tansellepyon, I don't develop the server however :P20:34
tansellI would prefer better error handling for sure :)20:40
Greywhindllnz: so it seems that the property it's trying to get is 'Order Queue', but the only one that exists is 'Order Queue 2'20:41
GreywhindOrders20:41
Greywhind[Order Queue 2: [queueid(I): 0, numorders(I): 0, ordertypes([I]): []]]20:41
GreywhindOrder Queue20:41
GreywhindOrder Queue20:41
Greywhind[<ObjectParamOrderQueue 0xa3cab0c Order Queue 2>]20:41
Greywhindso somewhere, it's not getting added, it's replacing the old one, i think20:42
llnzGreywhind: the parameters could be called anything, so look up by type20:42
Greywhindwell, it's getting "order queue" from inside the object's property list, it's not hard coded20:42
tansellllnz, it's invalid to have two parameters of the same name on an object20:42
GreywhindOrders20:43
Greywhind[Order Queue 2: [queueid(I): 0, numorders(I): 0, ordertypes([I]): []]]20:43
GreywhindOrder Queue20:43
GreywhindOrder Queue20:43
Greywhind[<ObjectParamOrderQueue 0xa3cab0c Order Queue 2>]20:43
Greywhinderr20:43
Greywhindfrom tp.netlib.objects.parameters import ObjectParamOrderQueue20:43
Greywhindfor group in object.properties:20:43
Greywhindfor property in group.structures:20:43
Greywhindif not isinstance(property, ObjectParamOrderQueue):20:43
Greywhindcontinue20:43
Greywhindprint group.name20:43
Greywhindprint getattr(object, group.name)20:43
Greywhindprint property.name20:43
Greywhindproperty.name is "order queue"20:43
Greywhindbut there's no property of that name20:43
llnztansell: they are not the same name20:43
Greywhindthis is the line that fails: value = getattr(getattr(object, group.name), property.name)20:45
CIA-46epyon tpserver-cpp-refactor * r6e4ae58b46a2 / (5 files in 2 dirs): (log message trimmed)20:49
CIA-46Board system refactoring20:49
CIA-46* main change -- moved id list of messages on board to Board class20:49
CIA-46* removed setBoardID from Board, to dangerous20:49
CIA-46* instead added ID to constructor, and blocked default constructor20:49
CIA-46* add/remove/get message in BoardManager only operate on messagecache20:49
CIA-46* add/remove/get message in Board and BoardManager cleaned up20:49
epyonduh, trimming commit messages sucks ^^20:50
llnzepyon: the email has it all20:50
llnzexcept it put it all in the subject line20:55
Greywhindllnz: so... any idea why it would have the "Order Queue" property in the structures, but not in the group's attributes?20:57
llnzdon't know, maybe it used tp0321:00
Greywhind2009-06-11 17:40:48 < Info  > Client has version 4 of protocol21:01
Greywhindmaybe the Order Queue 2 attribute is somehow replacing the Order Queue attribute, rather than being added on?21:02
llnzi have no idea how the internals of libtpproto-py/libtpclient-py work21:02
llnzask mithro instead21:04
Greywhindwell, it's odd, because that code seems to work for all the other objects i've downloaded from tpservers21:05
Greywhindmithro: ping?21:05
CIA-46epyon tpserver-cpp-refactor * r1e11ae226065 / (5 files in 2 dirs):21:05
CIA-46Board refactoring cont'd21:05
CIA-46* made constructor take name and desc, removed the setters21:05
CIA-46* moved persistence-related (dangerous) setters to one clearly named function21:05
Greywhindaha.21:14
Greywhind----------21:17
Greywhindgroup:  <GroupStructure 0xa4bb88c Orders>21:17
Greywhind-------------------21:17
Greywhindgroup.structures:  [<ObjectParamOrderQueue 0xa4bb8ac Order Queue>]21:17
Greywhindproperty:  <ObjectParamOrderQueue 0xa4bb8ac Order Queue>21:17
Greywhindproperty.name:  Order Queue21:17
Greywhindgetattr(object, group.name:  [Order Queue 2: [queueid(I): 0, numorders(I): 0, ordertypes([I]): []]]21:17
CIA-46epyon tpserver-cpp-refactor * rc690996cb4b2 /tpserver/ (board.cpp board.h):21:18
CIA-46Board refactoring, cont'd21:18
CIA-46* moved all retrieveMessageList into one common private function21:18
Greywhindtansell: ping?21:19
llnzepyon: cool21:27
epyonOkay, Boards are now more or less consistent and safer.21:28
llnzthat sort of thing was added in much latter than the orginal coding, not very cleanly done21:28
epyonAlso a blog post done, time to go to sleep :)21:28
llnzcya21:29
epyong'night! ^_^21:30
tansellGreywhind, pong - but heading to lunch now22:09
tansellepyon, you want to put a new line between your subject and your extra comments22:10
Greywhindtansell: let me know when you get back22:21
*** Erroneous has quit IRC22:26
tansellback22:46
Greywhindtansell: do you have any idea what might be causing the error i pasted about earlier?22:46
tansellwhich part?22:47
Greywhindtansell: http://pastebin.com/d10c0b8522:47
tpbTitle: pastebin - collaborative debugging tool (at pastebin.com)22:47
Greywhindit seems like object.properties has a property called Order Queue, but getattr() is only seeing Order Queue 222:48
tansellcan you print out the following22:49
tansellgettattr(object, group.name)22:49
tanselland22:49
tansellproperty.name22:49
Greywhind[18:17]        Greywhind : group:  <GroupStructure 0xa4bb88c Orders>22:50
Greywhind[18:17]        Greywhind : -------------------22:50
Greywhind[18:17]        Greywhind : group.structures:  [<ObjectParamOrderQueue 0xa4bb8ac Order Queue>]22:50
Greywhind[18:17]        Greywhind : property:  <ObjectParamOrderQueue 0xa4bb8ac Order Queue>22:50
Greywhind[18:17]        Greywhind : property.name:  Order Queue22:50
Greywhind[18:17]        Greywhind : getattr(object, group.name:  [Order Queue 2: [queueid(I): 0, numorders(I):22:50
tansellwhat is getattr(object, group.name) ?22:55
tansellare the groups name the same?23:04
tansellor are they both in the same group?23:04
Greywhindtansell: getattr(object, group.name) is [Order Queue 2:  [queueid(I): 0, numorders(I)23:09
Greywhind0, ordertypes([I]): []]]23:09
tansellwhat about the other order queue?23:09
Greywhindthere is none23:10
Greywhindsupposedly23:10
Greywhindor at least it doesn't show up23:10
tansellGreywhind, maybe it's time to write a pretty printer for objects which prints all the attributes?23:11
Greywhindtansell: maybe a good idea at some point23:11
tansellGreywhind, your suppose to have two order queues right?23:11
Greywhindtansell: yep23:12
tansellthe only thing I can guess is that you have multiple things with the same name23:12
Greywhindtansell: it seems like the ObjectParamOrderQueue "Order Queue" exists, but it's not in getattr(object, "Orders")23:12
Greywhindwhich makes no sense23:13
Greywhindespecially since this code has worked for all the other attributes we've ever encountered23:13
Greywhindbut it is in object.properties23:13
Greywhindand in the "Order" property gruop's structures23:14
tansellGreywhind, can you just wrap it in a try/except so you can pring group.structures and property/property.name23:14
chereztansell: I think ListProxy has all of list's functionality now.23:14
Greywhindtansell: but i already printed group.structures and property.name23:14
Greywhindgroup.structures: [<ObjectParamOrderQueue 0xa4bb8ac Order Queue>]23:15
Greywhindproperty.name: Order Queue23:15
Greywhindproperty: property:  <ObjectParamOrderQueue 0xa4bb8ac Order Queue>23:15
tansellso how do you know it's in object.properties?23:15
Greywhindbecause object.properties is where group comes from23:16
Greywhindfor group in object.properties:23:16
Greywhindfor property in group.structures:23:16
Greywhindbut getattr(object, group.name) only has Order Queue 223:16
Greywhindwhere is all this constructed?23:17
tansellOrderDesc.py23:17
tanselloh sorry23:17
tansellObjectDesc.py23:18
tansellline 26123:22
GreywhindGroupname:  Orders23:22
Greywhindname:  Order Queue23:22
Greywhindproperty.name:  Orders23:22
GreywhindGroupname:  Orders23:22
Greywhindname:  Order Queue 223:22
Greywhindproperty.name:  Orders23:22
Greywhindi think it's overwriting the Orders attr. with Order Queue 2 instead of adding to it23:22
tansellumm23:23
tansellso there are two groups23:23
tansellboth with the same name?23:23
Greywhindsounds like that might be the case23:24
cherezJeeze, Python is... weird with slicing.23:31
*** tansell-laptop has joined #tp23:35
Greywhindtansell: so is this a server-side problem?23:45
Greywhindthat it's giving two groups named orders, rather than two queues inside the same group?23:45
*** zzorn has quit IRC23:46
Greywhindllnz: ping?23:48
*** zzorn has joined #tp23:51
*** greenlion has joined #tp23:58

Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!