From: <Tor...@t-...> - 2002-10-18 20:28:06
|
Hi, I've watched your project with great interest and I would love to play a game based on your engine. I would volunteer for source and design reviews on a 3 hours per week base as an early QS :-) My background is working for several years as developer/ designer/server sided very familiar with c++ and pthread. What I can do is to read your code and ask you why you did it this (c++ only) - language unconforming way - unsafe in respect to the c++ standard way - thread unsafe where not needed (a.k. static variables) way and so on; I guess most developers wouldn't like my work cause I will ask to much questions like : "Do you think an integer written on an PC will be read the same on an Alpha?" "What sense does a function like size() make on a threaded queue?" "Why does this class have a default cot's if a object of this class is unusable when default constructed?" "When this class should serve as a base class shouldn't this class have a virtual d'tor?" regards Torsten (Torsten@Robitzki.de) |
From: SkyFlash <sky...@ch...> - 2002-10-22 00:46:46
|
Erm... I really wouldnt want someone on the team that asks questions why something was written the way it was because he knows it can be done better and then wants other people to fix it.... If you wanna be a help, ask YOURSELF those questions, and if you answered them, FIX THEM!!!! I think people that know C++ well and can spot those problem areas are a great help to the project, but i dont have time to fix code that works but can be done better for people that know more about that stuff anyway and can fix it themselves. Thats probably why most developers dont like that kind of work. ;) Right now there are only a few programmers. Anarki MikeH Eugen? (where are you man, we need help here bad...) Miguel.. (sorta) Me And Anarki doesnt know the code well enough yet (but is on his way), MikeH I dont know how deep he is in the code, and Eugen seems to have disappeared... (:P) he does more 2dclient programming anyway, and is not deep into the server code I think. That makes me the only programmer doing those heavy duty stuff that needs to be done right now, and Miguel who doesnt wanna code that much. This is really not the time for doing clean up work or discussing C++ standard questions... if you know something about the fucked up threading go ahead and please fix it, we need help there bad. SkyFlash > What I can do is to read your code and ask you why you did it > this (c++ > only) > - language unconforming way > - unsafe in respect to the c++ standard way > - thread unsafe where not needed (a.k. static variables) way > and so on; > > I guess most developers wouldn't like my work cause I will > ask to much > questions like : > "Do you think an integer written on an PC will be read the > same on an Alpha?" "What sense does a function like size() > make on a threaded queue?" "Why does this class have a > default cot's if a object of this class is unusable when > default constructed?" "When this class should serve as a base > class shouldn't this class have a > virtual d'tor?" |
From: <Tor...@t-...> - 2002-10-25 20:55:21
|
Hi, SkyFlash wrote: > > Erm... I really wouldnt want someone on the team that asks questions why > something was written the way it was because he knows it can be done > better and then wants other people to fix it.... I've guessed that ;-) > If you wanna be a help, ask YOURSELF those questions, and if you > answered them, FIX THEM!!!! The problem is that it takes about an hour to write a line of code and 2 seconds to review it. I offered that kind of help coz I have not very much time to spend. I would have no problem with changing implementations and interfaces by my own (including every line of code that have to by changed to fit the new interface). But I guess I should ask the author of that code if he and me can agree that this changes will be an advantage to the project. (in safety of code reuse and maintenance) > I think people that know C++ well and can spot those problem areas are a > great help to the project, but i dont have time to fix code that works > but can be done better for people that know more about that stuff anyway > and can fix it themselves. Working code _might_ mean, "works under all circumstances I've seen" but who ever might have a look at the code might find some circumstances where the code will not work. > Thats probably why most developers dont like that kind of work. ;) > > Right now there are only a few programmers. > > Anarki > MikeH > Eugen? (where are you man, we need help here bad...) > Miguel.. (sorta) > Me > > And Anarki doesnt know the code well enough yet (but is on his way), > MikeH I dont know how deep he is in the code, and Eugen seems to have > disappeared... (:P) he does more 2dclient programming anyway, and is not > deep into the server code I think. > > That makes me the only programmer doing those heavy duty stuff that > needs to be done right now, and Miguel who doesnt wanna code that much. > > This is really not the time for doing clean up work or discussing C++ > standard questions... As you focus to port that project to as much platforms and _compilers_, I think it's worth to know a little bit about the c++ standard. > if you know something about the fucked up > threading go ahead and please fix it, we need help there bad. Can you give me some more pointers where the problem is? What platforms? Are core dumps reproducible. Do the crashes multiply with the numbers of processors? What STL e.g. standard library are you using on the faulting platforms? (the string implementation shipped with gcc 3.1.1 is _not_ thread save) Torsten |
From: SkyFlash <sky...@ch...> - 2002-10-26 18:43:53
|
> The problem is that it takes about an hour to write a line of > code and 2 seconds to review it. I offered that kind of help > coz I have not very much time to spend. We really need someone who knows C++ very well and can spot mistake, the problem is we dont have someone who knows C++ that well too and can fix them afterwards. > I would have no problem with changing implementations and interfaces > by my own (including every line of code that have to by > changed to fit the new interface). But I guess I should ask > the author of that code if he and me can agree that this changes will > be an advantage to the project. (in safety of code reuse and maintenance) The thing is, I dont know much of the code myself. So basicly, if you get to know some part of the code deeper you are already the expert.. lol Like: network layer, threading. > Working code _might_ mean, "works under all circumstances > I've seen" but > who ever might have a look at the code might find some circumstances > where the code will not work. Sure we need to know about that. > As you focus to port that project to as much platforms and > _compilers_, I think it's worth to know a little bit about > the c++ standard. Actually, everyone should know a little bit about C++ standard. However, I am not porting it, other than to windows and maybe later to linux. I am not good enough programming in other OSes to fix it, as I learned on Windows all the way through. I wrote one little program in Linux, but as the current code works in Linux I can manage to keep it that way. Hopefully. ;) But I am not interested in philosophical question, either it works or doesnt.. :) I wanna make it so it works in those two. > Can you give me some more pointers where the problem is? What > platforms? Are core dumps > reproducible. Do the crashes multiply with the numbers of processors? There are no crashes right now. But I KNOW threading is incomplete, so there WILL be problems arising sooner or later. Actually we need someone to review where threading is missing or broke and fix it from the base up... Even the base classes we use like Zone and World are probably not threadsafe. And those NEED TO BE PERFECT! > What STL e.g. standard library are you using on the faulting > platforms? (the string implementation shipped with gcc 3.1.1 > is _not_ thread save) I wouldnt know about gcc3.1.1, someone who knows linux needs to do that kind of porting work. I did compile with older linux compilers, but I am far from being an expert on that. SkyFlash |
From: Euan M. <lu...@co...> - 2002-10-27 15:59:10
|
On 26 Oct 2002, at 12:43, SkyFlash wrote: > We really need someone who knows C++ very well and can spot mistake, the > problem is we dont have someone who knows C++ that well too and can fix > them afterwards. This /has/ been true of the project historically. Since we have mooted a more supportive, friendly and helpful approach to newcomers and their skills, we have seen the contributor base increase significantly even without any publicity drive. Once again, SkyFlash, I would remind you of the private email I have already sent you on the previous time you posted a dismissive response to a newcomer's offers of help to this project. Again, it is neither helpful, nor is it in keeping with the Arianne project's new policy towards prospective new contributors. Unless you can find a less inflammatory and insulting way of making your points, please cease and desist from responding to newcomers posts. Cheers, Euan xlucid@users(.remove this).sf.(antispam.)net |
From: Mike H. <ar...@pe...> - 2002-10-27 22:32:00
|
----- Original Message ----- From: "SkyFlash" <sky...@ch...> To: <ari...@li...> Sent: Tuesday, October 22, 2002 12:46 AM Subject: AW: [Arianne-devel] Hi, from a stranger > Erm... I really wouldnt want someone on the team that asks questions why > something was written the way it was because he knows it can be done > better and then wants other people to fix it.... > I don't think he said he wanted other people to fix them. > If you wanna be a help, ask YOURSELF those questions, and if you > answered them, FIX THEM!!!! > > I think people that know C++ well and can spot those problem areas are a > great help to the project, but i dont have time to fix code that works > but can be done better for people that know more about that stuff anyway > and can fix it themselves. > > Thats probably why most developers dont like that kind of work. ;) > I think that refactoring existing 'working but poor quality' code into a thing of beauty is going to be vital over the coming months. We can't just go on hacking away at something until it falls to bits again. If nothing else we *must* learn this lesson from the near death of Arianne. Personally, I *do* enjoy this kind of work but I know you don't. It takes all sorts and I don't want to say that your development style is wrong. I know for a fact you've done some amazing stuff. I just don't think *everyone* on the project can afford to work the way you do. It's vital for some of us to come along and keep the rough edges smooth after guys like you come blazing through and add all sorts of amazing functionality in the space of a couple of days. > Right now there are only a few programmers. > > Anarki > MikeH > Eugen? (where are you man, we need help here bad...) > Miguel.. (sorta) > Me > > And Anarki doesnt know the code well enough yet (but is on his way), > MikeH I dont know how deep he is in the code, Not very deep at all. I did a couple of things the week before I went away but apart from that I really haven't had much of a chance yet. I'll make a proper start this week at getting into the whole thing. > and Eugen seems to have > disappeared... (:P) he does more 2dclient programming anyway, and is not > deep into the server code I think. > > That makes me the only programmer doing those heavy duty stuff that > needs to be done right now, and Miguel who doesnt wanna code that much. > > This is really not the time for doing clean up work or discussing C++ > standard questions... if you know something about the fucked up > threading go ahead and please fix it, we need help there bad. > > SkyFlash > > > > What I can do is to read your code and ask you why you did it > > this (c++ > > only) > > - language unconforming way > > - unsafe in respect to the c++ standard way > > - thread unsafe where not needed (a.k. static variables) way > > and so on; > > > > I guess most developers wouldn't like my work cause I will > > ask to much > > questions like : > > "Do you think an integer written on an PC will be read the > > same on an Alpha?" "What sense does a function like size() > > make on a threaded queue?" "Why does this class have a > > default cot's if a object of this class is unusable when > > default constructed?" "When this class should serve as a base > > class shouldn't this class have a > > virtual d'tor?" > > > > ------------------------------------------------------- > This sf.net emial is sponsored by: Influence the future > of Java(TM) technology. Join the Java Community > Process(SM) (JCP(SM)) program now. > http://ad.doubleclick.net/clk;4699841;7576298;k?http://www.sun.com/javavote > _______________________________________________ > Arianne-devel mailing list > Ari...@li... > https://lists.sourceforge.net/lists/listinfo/arianne-devel > |
From: SkyFlash <sky...@ch...> - 2002-10-28 00:01:31
|
> I think that refactoring existing 'working but poor quality' > code into a thing of beauty is going to be vital over the > coming months. We can't just go on hacking away at something > until it falls to bits again. If nothing else we *must* > learn this lesson from the near death of Arianne. Personally, > I *do* enjoy this kind of work but I know you don't. It > takes all sorts and I don't want to say that your development > style is wrong. I know for a fact you've done some amazing > stuff. I just don't think > *everyone* on the project can afford to work the way you do. > It's vital for some of us to come along and keep the rough > edges smooth after guys like you come blazing through and add > all sorts of amazing functionality in the space of a couple of days. Yeah actually I enjoy cleaning up code, but only after it works. :P I usually code away til I got the feature working and then I go back and fix everything that needs to be nicer or can be optimized better. Basicly I think we should be able to walk before we try to run. :) The whole redesign was necessary cause the edges were WAY to rough, even for what I usually like. :P I prefer to at least code the way that it CAN be made smoother afterwards... hehe > Not very deep at all. I did a couple of things the week > before I went away but apart from that I really haven't had > much of a chance yet. I'll make a proper start this week at > getting into the whole thing. Hey at least you know threading, which will be an upcoming issue. :) |
From: Mauricio S. L. <mau...@ya...> - 2002-10-22 01:49:03
|
Good, welcome aboard, your contribute will be good to the project, currrently the code is frozen and we are discussing the structure of the project. --- Torsten Robitzki <Tor...@t-...> wrote: > Hi, > I've watched your project with great interest and I would love to > play > a game based on your engine. > > I would volunteer for source and design reviews on a 3 hours per week > base > as an early QS :-) My background is working for several years as > developer/ > designer/server sided very familiar with c++ and pthread. > > What I can do is to read your code and ask you why you did it this > (c++ > only) > - language unconforming way > - unsafe in respect to the c++ standard way > - thread unsafe where not needed (a.k. static variables) way > and so on; > > I guess most developers wouldn't like my work cause I will ask to > much > questions like : > "Do you think an integer written on an PC will be read the same on an > Alpha?" > "What sense does a function like size() make on a threaded queue?" > "Why does this class have a default cot's if a object of this class > is unusable when default constructed?" > "When this class should serve as a base class shouldn't this class > have > a > virtual d'tor?" > > regards > Torsten > (Torsten@Robitzki.de) > > > ------------------------------------------------------- > This sf.net emial is sponsored by: Influence the future > of Java(TM) technology. Join the Java Community > Process(SM) (JCP(SM)) program now. > http://ad.doubleclick.net/clk;4699841;7576298;k?http://www.sun.com/javavote > _______________________________________________ > Arianne-devel mailing list > Ari...@li... > https://lists.sourceforge.net/lists/listinfo/arianne-devel ===== Mauricio Souza Lima mau...@ya... __________________________________________________ Do you Yahoo!? Y! Web Hosting - Let the expert host your web site http://webhosting.yahoo.com/ |
From: Euan M. <lu...@co...> - 2002-10-22 02:08:58
|
On 21 Oct 2002, at 18:46, SkyFlash wrote: > I really wouldnt want someone on the team that asks questions > why ... > If you wanna be a help, ask YOURSELF those questions, and if you > answered them, FIX THEM!!!! ... > Right now there are only a few programmers. I've said this before (and I do not want to be saying this again). It is these attitudes which are the direct cause of there being only a few programmers. This project needs more contributors to the code-base. Potential new contributors to the code-base deserve more courtesy than this. Therefore it is the duty of all existing team members to treat new contributors with kindness and courtesy. /Especially/ senior team members. Cheers, Euan xlucid@users(.remove this).sf.(antispam.)net |
From: Mike H. <ar...@pe...> - 2002-10-27 22:16:39
|
----- Original Message ----- From: "Torsten Robitzki" <Tor...@t-...> To: <ari...@li...> Sent: Friday, October 18, 2002 8:29 PM Subject: [Arianne-devel] Hi, from a stranger > Hi, > I've watched your project with great interest and I would love to play > a game based on your engine. > > I would volunteer for source and design reviews on a 3 hours per week > base > as an early QS :-) My background is working for several years as > developer/ > designer/server sided very familiar with c++ and pthread. > > What I can do is to read your code and ask you why you did it this (c++ > only) > - language unconforming way > - unsafe in respect to the c++ standard way > - thread unsafe where not needed (a.k. static variables) way > and so on; > > I guess most developers wouldn't like my work cause I will ask to much > questions like : > "Do you think an integer written on an PC will be read the same on an > Alpha?" > "What sense does a function like size() make on a threaded queue?" > "Why does this class have a default cot's if a object of this class > is unusable when default constructed?" > "When this class should serve as a base class shouldn't this class have > a > virtual d'tor?" I think that's exactly what we need. I wish people would ask me such questions about my code more often. We all make stupid design and coding decisions and especially C++ newbies won't always know a lot of these things. As long as comments like this are constructive then the inexperienced guys can learn from the gurus and the codebase quality improves tremendously. I had a discussion with SkyFlash a couple of weeks ago about using exceptions and he is completely against them since they cause so many problems in the code. But if people knew how to use them properly and threw *useful* exceptions with good logging info it would make things a lot easier. The only comment I would make is that if we're going to have people like you ripping our code to bits (helpfully of course) then it would be nice if you could help out with the solutions as well. I'd love to help out with this kind of thing and I think as long as we're senstive about it and helpful from start to finish we should attract *more* developers since they'll feel they can learn valuable C++ skills as well as helping with Arianne. > > regards > Torsten > (Torsten@Robitzki.de) > > > ------------------------------------------------------- > This sf.net emial is sponsored by: Influence the future > of Java(TM) technology. Join the Java Community > Process(SM) (JCP(SM)) program now. > http://ad.doubleclick.net/clk;4699841;7576298;k?http://www.sun.com/javavote > _______________________________________________ > Arianne-devel mailing list > Ari...@li... > https://lists.sourceforge.net/lists/listinfo/arianne-devel > |
From: SkyFlash <sky...@ch...> - 2002-10-28 00:24:50
|
> I think that's exactly what we need. I wish people would ask > me such questions about my code more often. We all make > stupid design and coding decisions and especially C++ newbies > won't always know a lot of these things. As long as comments > like this are constructive then the inexperienced guys can > learn from the gurus and the codebase quality improves tremendously. Well yes thats correct. > I had a discussion with SkyFlash a couple of weeks ago about > using exceptions and he is completely against them since they > cause so many problems in the code. But if people knew how > to use them properly and threw > *useful* exceptions with good logging info it would make > things a lot easier. Basicly I am against exceptions for some reasons... I am only talking about the server though, for the clients its different. First off the exceptions are used even where a function return could supply error information without throwing an exception. Thats real bad. I just don't see why we would throw an exception that POSSIBLY could make the server crash, when we can supply the error in a normal manner by using function return values. That way, we can also handle the error right where it happened and not cause the function to just exit and get catched like 5 levels higher. (Which was actually happening) Second, exceptions are not portable. They dont work everywhere, which for example you can also read in the Mozilla porting faq... Third, when an application crashes because of an exception, sometimes on windows the source cannot be traced down. I had the exception crash my whole comp, my compiler, sometimes just the program, but many times the not catched exception (which is a bad thing anyway) didnt even give me access to the traceback, so I had no idea where it crashed, why it crashed, or what to do against it. I dont know about linux, but on windows those exceptions tend to fuck up the whole compiler environment I prefer to use function returns whereever possible, and when using exceptions, to catch them right away! I dont know how much of the exception code needs fixing, but I guess its a lot. I basicly dont want the server to throw ANY exception for non-critical stuff. If he doesnt find the Worldfile, he COULD throw an exception.. but he wont cause i got it with function returns. But if some Object is not found, I dont wanna see an "Object not found" exception. Ok, he didnt find it. It may be gone. Get over it, dont make the server crash for it... even if the crash may be catched by a catch statement somewhere. Someone may delete the statement, and next time we are in for a server crash. The Server was even throwing exceptions when an attribute was not found! Thats not how it works. If the attribute is not found it will now return an empty string. For me, throwing exceptions is a way to crash the server. I dont want code that crashes the server. Its bad. Now it may be catched. Month later it may be a crash bug. And for clients, well, if they crash, I dont care. Tough luck. We fix it, and its fine. Now imagine you got a game server with 1000 players and it crashes. Those exceptions will not trigger the WorldSave function if they arent catched correctly. :) SkyFlash |
From: Mike H. <ar...@pe...> - 2002-10-28 01:19:59
|
----- Original Message ----- From: "SkyFlash" <sky...@ch...> To: <ari...@li...> Sent: Monday, October 28, 2002 12:25 AM Subject: AW: [Arianne-devel] Hi, from a stranger > > I think that's exactly what we need. I wish people would ask > > me such questions about my code more often. We all make > > stupid design and coding decisions and especially C++ newbies > > won't always know a lot of these things. As long as comments > > like this are constructive then the inexperienced guys can > > learn from the gurus and the codebase quality improves tremendously. > > Well yes thats correct. > > > I had a discussion with SkyFlash a couple of weeks ago about > > using exceptions and he is completely against them since they > > cause so many problems in the code. But if people knew how > > to use them properly and threw > > *useful* exceptions with good logging info it would make > > things a lot easier. > > Basicly I am against exceptions for some reasons... > I am only talking about the server though, for the clients its > different. > > First off the exceptions are used even where a function return could > supply > error information without throwing an exception. Thats real bad. I just > don't > see why we would throw an exception that POSSIBLY could make the server > crash, > when we can supply the error in a normal manner by using function return > values. > That way, we can also handle the error right where it happened and not > cause the > function to just exit and get catched like 5 levels higher. (Which was > actually > happening) > But that's the whole reason exceptions were invented. Using return values relies on the client code to *always* test returns. None of us can guarantee to live up to that. Throwing an exception gives you that guarantee. IMO it's better to have defined bahaviour (crash with unhandled exception which should contain enough info to uniquely identify where the problem occurred) than undefined behaviour when returns aren't checked properly. As for catching them, you can handle the exception wherever you want. If a bit of client code can't do anything useful with the knowledge then it just completely ignores it and eventually a caller will be able to act appropriately (or you crash out if nothing handles it). If completely unhandled exceptions causing a crash are a problem then just put a try-catch round the code in main and grab everything that could possibly go wrong in there by catch(...) > Second, exceptions are not portable. They dont work everywhere, which > for example > you can also read in the Mozilla porting faq... > I have no experience here so I'll go with you on this. What are the problems exactly and can't they be worked around though? > Third, when an application crashes because of an exception, sometimes on > windows the > source cannot be traced down. I had the exception crash my whole comp, > my compiler, > sometimes just the program, but many times the not catched exception > (which is a bad > thing anyway) didnt even give me access to the traceback, so I had no > idea where it > crashed, why it crashed, or what to do against it. I dont know about > linux, but on > windows those exceptions tend to fuck up the whole compiler environment > Again, if you have a catch all handler in main() then you won't ever see this kind of problem. > I prefer to use function returns whereever possible, and when using > exceptions, to > catch them right away! I dont know how much of the exception code needs > fixing, but > I guess its a lot. > > I basicly dont want the server to throw ANY exception for non-critical > stuff. If he doesnt > find the Worldfile, he COULD throw an exception.. but he wont cause i > got it with function > returns. But if some Object is not found, I dont wanna see an "Object > not found" exception. > Ok, he didnt find it. It may be gone. Get over it, dont make the server > crash for it... > even if the crash may be catched by a catch statement somewhere. Someone > may delete the > statement, and next time we are in for a server crash. > The Server was even throwing exceptions when an attribute was not found! > Thats not how it works. > If the attribute is not found it will now return an empty string. > > For me, throwing exceptions is a way to crash the server. I dont want > code that crashes the > server. Its bad. Now it may be catched. Month later it may be a crash > bug. > Well, I don't agree with this. I think using returns is just building on sand. You can introduce lots of subtle bugs this way. If you have a good exception handling strategy in place it should be much more stable. The C++ standards guys weren't stupid when they designed exceptions. > And for clients, well, if they crash, I dont care. Tough luck. We fix > it, and its fine. > > Now imagine you got a game server with 1000 players and it crashes. > Those exceptions will > not trigger the WorldSave function if they arent catched correctly. :) They will if your top level handler calls WorldSave. Anyway, just my 2c worth. MikeH |
From: SkyFlash <sky...@ch...> - 2002-10-28 01:43:08
|
> > Now imagine you got a game server with 1000 players and it crashes. > > Those exceptions will not trigger the WorldSave function if > they arent > > catched correctly. :) > They will if your top level handler calls WorldSave. Well, we could have a large surrounding try catch in the main, but I dont think thats the way its supposed to be..... I have no experience if that will cause any problems or not, but I never saw this done anywhere, so I *guess* it will introduce problems. Does it on all the compilers we support correctly process exceptions that are nested up with catch clauses? We should try to figure that out... cause I would really like to put that big catch into main, I did have enough problems with exceptions that were not catched.. SkyFlash |
From: Euan M. <lu...@co...> - 2002-10-28 02:51:08
|
On 27 Oct 2002, at 18:43, SkyFlash wrote: > > > Now imagine you got a game server with 1000 players and it crashes. > > > Those exceptions will not trigger the WorldSave function if > > they arent > > > catched correctly. :) > > They will if your top level handler calls WorldSave. > > Well, we could have a large surrounding try catch in the main, but > I dont think thats the way its supposed to be..... > > I have no experience if that will cause any problems or not, but I > never saw this done anywhere, so I *guess* it will introduce problems. > > Does it on all the compilers we support correctly process exceptions > that are nested up with catch clauses? > We should try to figure that out... cause I would really like to put > that big catch into main, I did have enough problems with exceptions > that were not catched.. To an extent, pre and post conditions and a good unit test rig are an alternative to exceptions / test return values debate. But visible crashes with useful debug info allow us to re-write and kill the bug dead. Subtle bugs often go undetected, even if they are expressing their undesirable behaviour. The exception approach just means we'll be doing testing prior to putting Arianne servers live... Cheers, Euan xlucid@users(.remove this).sf.(antispam.)net |