pypentago-devel Mailing List for python pentago
Status: Pre-Alpha
Brought to you by:
segfaulthunter
You can subscribe to this list here.
2007 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(56) |
Jun
(38) |
Jul
(9) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Florian M. <flo...@ai...> - 2008-08-06 23:41:07
|
Dear pypentago developers, I just completed refactoring the pypentago code-base to make use of the new actions module I have written. It enables us to exchange the UI of pypentago more easily. As the current user-interface is not the best one, this could give us the opportunity to make a better way. Because I am not that skilled in user-interface design, as you can tell from the current interface, I think we could make use of a seasoned user-interface programmer. Secondly, I have to talk about worse news. You might not have noticed, as I am currently the de-facto only committer to the repository, but it is down pretty often: [ gna/pypentago/trunk ] % svn update ssh_exchange_identification: Connection closed by remote host svn: Connection closed unexpectedly I get this pretty often and I am pretty annoyed by it. It also ruined todays commit I did using git-svn, as I *really* like the branching of DVCS. This all boils down the the question of whether we should switch to a new repository. We could still keep our bug-tracker at Gna! or wherever we want it to be, but I, personally, would really support opening up a Git or Mercurial repository for pypentago. There are good and free locations where you can put up your Git or Mercurial repository, being http://gitorious.org and http://bitbucket.org, respectively. I really ask you to, if you have time, install both Git and Mercurial and play around with them locally. As they are DVCS you do not need a central repository to try out all the stuff. Thirdly I am telling you that I am not going to be available starting from the following Wednesday for about one-and-a-half week. If you don't know what to do, you can always try to improve pypentago.server.rooms if you want, as at the moment it only is a blueprint. Best regards, Florian Mayer PS: If you have time to review the changes I have recently done, please tell me what you think. -- GPG Key ID: BC0FFB31 Blog: http://segfaulthunter.blogspot.com/ |
From: Florian M. <flo...@ai...> - 2008-07-27 22:02:53
|
Good day, Locally, I have been reimplementing the connection between the network interface and the graphical interface using simple variables that the GUI assigns functions or methods to, which are called when needed. Although this works pretty well, we might have scalability issues, because this rather limits us later on when we want to bind multiple handlers to one actions. Of course a workaround would be to write and pass a function that calls all of these handlers, but this is rather hacky. So I have been developing a 'hooks' module, which I am probably going to rename to 'actions' or 'handlers', to make it more clear what it does. For more informations of this terminology please see 'hooks.py' in trunk/src/pypentago. This module allows us to bind multiple handlers to one event. I have been trying to put a lot of design in it, although it might not seem so at a first glance at the source code. It is difficult to let both the registrar and the emitter pass data to the handler, but I think I have chosen a system that should work. Nevertheless it is still work in process and I think that I will change the API some times, if I think it would be better. Best regards, Florian Mayer -- GPG Key ID: BC0FFB31 Blog: http://segfaulthunter.blogspot.com/ |
From: J. K. <ko...@fr...> - 2008-07-22 16:01:02
|
I think pulling the game-related code out of connection.py is a good idea. It makes the code more modular, portable, and understandable. JSON looks awesome! Its kind of like a nice, non-bloated XML. I'd try to use that and save yourself the trouble or rewriting/reparsing the messages. Nice regex cheatsheet. I like it! I also like your blog. Sorry again for my lack of presence lately! Having a busy summer! Things will slow down eventually and I'll get back into it. |
From: Florian M. <flo...@ai...> - 2008-07-19 16:13:55
|
I have been thinking about a different approach on how the Interface and the Connection might interact. At the moment, the GUI functions to be called are hard-coded into the Connection code. While this is okay, it might be hindering if we plan to use a different GUI tool-kit or refactor the GUI code. So what I have thought about is a hook system. This means that the connection code offers hooks that can be set by the GUI code, which are executed after particular functions have been called. This would emphasize the separation of GUI and Connection. I have also thought about doing major changes to the easy_twisted library which should allow it to send other data than strings. I could either use JSON, where there is a module for Python, or write the serialisation myself, which would of course be some work. This would have the advantage that we could send lists and tuples over the network with nearly no limitations(JSON has the limitation that dictionary keys have to be strings). So what do you think? Best regards, Florian Mayer -- GPG Key ID: BC0FFB31 Blog: http://segfaulthunter.blogspot.com/ |
From: Florian M. <flo...@ai...> - 2008-07-09 11:46:26
|
You can still do the glicko workings and see if they work out. I think the thing we lack most now is a decent user interface, the one we have of course is okay, but sadly not more. I have recently played some matches of Go on the KGS server, and I'm impressed on how much functionality it has and how good the games look. I think we should aim for something like this, with a list of games, a ranking curve if possible and so on. If you have some free-time you could try to do drafts for a new user interface, scan them and mail them to me, so I can review them and see whether it's possible or not. Another thing I'd like to know: As far as I know you own a copy of the Pentago board game, which I probably will too after today, but anyway, what happens if you got 5 in a row after you set your stone, but rotating any quadrant would make your opponent get 5 in a row too. Do you win or not? Is it legit to win without rotating at the last turn, that's the question in one sentence. I overhauled the setup script, so it now puts all the stuff in site-packages and creates scripts that call the so-called entry points being pypentago.server.main:main() and pypentago.client.main:main(). One more thing, your server seems to have problems with the sqlite bindings, I tried running a new version of the pypentago server, and I got the following traceback: http://paste.pocoo.org/show/78972/. I really hope you can solve this problem, as I think sqlite is best for testing purposes, but in productive mode I would suggest using Postgres. Best regards, Florian Mayer J. Kovacs wrote: > Sounds good! > Sorry it didn't work out to use glicko ratings! :( > > And for my lack of involvement lately. > > I do hope to maybe get back and work on some tasks when things settle down > a bit. > > Glad you got ELO ratings going! > > Talk to you later! > > Kovacs > > > > > ------------------------------------------------------------------------- > Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! > Studies have shown that voting for your favorite open source project, > along with a healthy diet, reduces your potential for chronic lameness > and boredom. Vote Now at http://www.sourceforge.net/community/cca08 > _______________________________________________ > Pypentago-devel mailing list > Pyp...@li... > https://lists.sourceforge.net/lists/listinfo/pypentago-devel |
From: J. K. <ko...@fr...> - 2008-07-09 02:00:38
|
Sounds good! Sorry it didn't work out to use glicko ratings! :( And for my lack of involvement lately. I do hope to maybe get back and work on some tasks when things settle down a bit. Glad you got ELO ratings going! Talk to you later! Kovacs |
From: Florian M. <flo...@ai...> - 2008-07-03 19:44:58
|
Okay ELO ratings are now functional for pypentago. I also fixed a rather major bug regarding databases today. I have so far left the database untouched so we may still implement glicko2 ratings, but I think going with ELO would be just as fine, and much much easier. This is due to the fact that we will not need to store all the data for an amount of games, but rather calculate it after every game, at least as far as I have understood it. If we agree to use ELO only I will clean up the database so that it doesn't contain information not needed as it currently does. Best regards, Florian Mayer Florian Mayer wrote: > Today I have written a python library for rating systems that supports > both ECF and ELO. There is only one possible flaw, being that I do not > exactly understand what happens when there is a draw in ECF, but the ELO > implementation should work well. > You can browse the source code here[1]. > Please tell me what you think, we may be able to use it for pypentago > until glicko2 is finished or instead of glicko2. > > I have uploaded it into a separate repository so other people have the > chance of finding and using it for their games. > > Best regards, > Florian Mayer > > [1]: > http://bazaar.launchpad.net/~flormayer/pygrade/main/files/4?file_id=pyrate-20080702184406-zdhbv25a5s36txiv-1 > > ------------------------------------------------------------------------- > Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! > Studies have shown that voting for your favorite open source project, > along with a healthy diet, reduces your potential for chronic lameness > and boredom. Vote Now at http://www.sourceforge.net/community/cca08 > _______________________________________________ > Pypentago-devel mailing list > Pyp...@li... > https://lists.sourceforge.net/lists/listinfo/pypentago-devel |
From: Florian M. <flo...@ai...> - 2008-07-02 20:38:55
|
Today I have written a python library for rating systems that supports both ECF and ELO. There is only one possible flaw, being that I do not exactly understand what happens when there is a draw in ECF, but the ELO implementation should work well. You can browse the source code here[1]. Please tell me what you think, we may be able to use it for pypentago until glicko2 is finished or instead of glicko2. I have uploaded it into a separate repository so other people have the chance of finding and using it for their games. Best regards, Florian Mayer [1]: http://bazaar.launchpad.net/~flormayer/pygrade/main/files/4?file_id=pyrate-20080702184406-zdhbv25a5s36txiv-1 |
From: Florian M. <flo...@ai...> - 2008-07-01 22:10:46
|
It will just save some CPU as it will not have to load the images from the file again and again for each square there is. Be sure to svn update your local copy as I made a lot of changes today, also to your files. I noticed you catch exceptions often and then return a string saying that it failed. It is much better to just catch the exception some where else where it can be handled better. Now login works fine. I hope you will continue work on the glicko2 module some time. Best regards, Florian Mayer J. Kovacs wrote: > Can it load the images into memory at program startup? > > Where is the performance gain? (at initial program startup, or during > gameplay?) > > > I think I prefer having the images in their own separate files. Seems > simpler and intuitive. (just my opinion. I haven't contributed much to > the project, so go ahead and do it however you want to!) > > Question: How is there a performance gain by embedding them into the > python script? Is it just saving a disk read at program startup time? > > Now if you can reduce the SIZE of the images in memory (resulting in > faster memory transfer and display) now there, I can see a greater > benefit. > > Sorry for my lack of presence on this project lately. Busy time of year > right now! > > Hope we will all have an IRC or jabber chat soon. > > Take care! > > > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Pypentago-devel mailing list > Pyp...@li... > https://lists.sourceforge.net/lists/listinfo/pypentago-devel |
From: J. K. <ko...@fr...> - 2008-07-01 14:16:28
|
Can it load the images into memory at program startup? Where is the performance gain? (at initial program startup, or during gameplay?) I think I prefer having the images in their own separate files. Seems simpler and intuitive. (just my opinion. I haven't contributed much to the project, so go ahead and do it however you want to!) Question: How is there a performance gain by embedding them into the python script? Is it just saving a disk read at program startup time? Now if you can reduce the SIZE of the images in memory (resulting in faster memory transfer and display) now there, I can see a greater benefit. Sorry for my lack of presence on this project lately. Busy time of year right now! Hope we will all have an IRC or jabber chat soon. Take care! |
From: Hardik M. <har...@gm...> - 2008-06-28 08:52:42
|
Hi guys, Starting from tomorrow, I will not be available for the next week. regards, Hardik |
From: Florian M. <flo...@ai...> - 2008-06-27 11:15:13
|
I have found out a way, and created a script, to embed images into python files which then can be easily accessed and displayed by wxPython. The advantages are faster loading times and that all the image information can be obtained using simple python code, but the disadvantage is that this python file is much bigger than the image files are. The images are 60K while the python file is 92K, it's not a big problem, but nevertheless a disadvantage. So what do you think? Should we use that way to embed images into python code, or use the conventional, more resource-heavy way of generating them from the image files? Best regards, Florian Mayer |
From: Abishek G. <god...@gm...> - 2008-06-23 03:12:33
|
Hi, On Fri, Jun 20, 2008 at 9:55 PM, Florian Mayer <flo...@ai...> wrote: > First of all, I'd like to explain why exactly I have done this. I was > trying to use distutils to create a setup script for pypentago, which > pretty much failed because it was complicated to access the pypentago > functions from outside the package, meaning that the main file has to be > with the other files, which is not good, as the main file should be put > into /usr/bin or /usr/local/bin so that Linux/*BSD users may use it > correctly. I agree. But you could have tried something else also. Create a shell script that goes in to the bin directories and invokes the client setting up the paths appropriately. That was only an idea. OTOH it is always a good idea to have a separate src directory.. Abishek Goda -- Frank Lloyd Wright - "TV is chewing gum for the eyes." |
From: Florian M. <flo...@ai...> - 2008-06-22 09:44:59
|
First of all, I'd like to explain why exactly I have done this. I was trying to use distutils to create a setup script for pypentago, which pretty much failed because it was complicated to access the pypentago functions from outside the package, meaning that the main file has to be with the other files, which is not good, as the main file should be put into /usr/bin or /usr/local/bin so that Linux/*BSD users may use it correctly. That is why I created a master directory called src, so that nothing can possible disturb the imports. This directory is added to the PYTHONPATH by any files that are executable(see main.py files) and so it is easy to import pypentago.client and pypentago.server modules. I put easy_twisted into a separate directory because I think it belongs to pypentago, but may be used otherwise too, and this way I ensure that I can make a separate setup script for only easy_twisted. I tried it out, put pypentago and easy_twisted into site-packages and the client.main to /usr/bin/pypentago and the server.main to /usr/bin/pypentagod and it seemed to work pretty well. I think these changes were necessary to ensure that we can properly distribute the project and am sorry for an inconvenience that may have occurred because of the dislocation of the code. So what should you do? Just commit any changes that you make until Thursday the 26th afternoon(GMT) normally as if this change did not occur, by then I will have come back from my 5 days unavailability due to a short "holiday" with school. I will merge these changes into the src directory and eventually delete the old directories so that there is no confusion which is the "real" code that you should work on. I really hope that this transition goes seamlessly and that we do not need to do such things again. I once again apologize for changing the location of the code, but as said I think it was necessary. Best regards, Florian Mayer |
From: Florian M. <flo...@ai...> - 2008-06-21 11:24:45
|
First of all, I'd like to explain why exactly I have done this. I was trying to use distutils to create a setup script for pypentago, which pretty much failed because it was complicated to access the pypentago functions from outside the package, meaning that the main file has to be with the other files, which is not good, as the main file should be put into /usr/bin or /usr/local/bin so that Linux/*BSD users may use it correctly. That is why I created a master directory called src, so that nothing can possible disturb the imports. This directory is added to the PYTHONPATH by any files that are executable(see main.py files) and so it is easy to import pypentago.client and pypentago.server modules. I put easy_twisted into a separate directory because I think it belongs to pypentago, but may be used otherwise too, and this way I ensure that I can make a separate setup script for only easy_twisted. I tried it out, put pypentago and easy_twisted into site-packages and the client.main to /usr/bin/pypentago and the server.main to /usr/bin/pypentagod and it seemed to work pretty well. I think these changes were necessary to ensure that we can properly distribute the project and am sorry for an inconvenience that may have occurred because of the dislocation of the code. So what should you do? Just commit any changes that you make until Thursday the 26th afternoon(GMT) normally as if this change did not occur, by then I will have come back from my 5 days unavailability due to a short "holiday" with school. I will merge these changes into the src directory and eventually delete the old directories so that there is no confusion which is the "real" code that you should work on. I really hope that this transition goes seamlessly and that we do not need to do such things again. I once again apologize for changing the location of the code, but as said I think it was necessary. Best regards, Florian Mayer |
From: Florian M. <flo...@ai...> - 2008-06-19 11:09:49
|
I will be unavailable from SAT 21th evening to THUR 26th afternoon( UTC). If you have any questions please send me an email, I will respond to it as fast as possible, maybe even during that time if I get the chance to get an internet access there. Best regards, Florian Mayer |
From: Florian M. <flo...@ai...> - 2008-06-18 19:41:19
|
I nearly have writing and parsing of simple, meaning only the turns taken, replay files done. This leads to the question which other information the replay file should contain. I'd suggest the two players' names, rating at the time of the match and time information, and, of course, the turns which were taken in that match. Could you think of anything else, or do you think what I suggested is too much for a replay file to contain. Hope we'll get some good ideas. Best regards, Florian Mayer |
From: Florian M. <flo...@ai...> - 2008-06-18 18:34:49
|
Good. Then be ready to add a new field called "validation code" to our database... I nearly finished the replay file functions today :) Best regards, Florian Mayer Hardik Mehta wrote: > Hi, > > Email validation is helps in two wasy, first it prevents software bots from > registering with us and second makes a professional impression on whoever > registers with us. > > regards, > Hardik > > On Wed, Jun 18, 2008 at 4:51 PM, Florian Mayer <flo...@ai...> wrote: > >> I've been wondering if we should do email validation to make sure users >> provide their real email address. >> What do you think? >> >> Best regards, >> Florian Mayer >> >> ------------------------------------------------------------------------- >> Check out the new SourceForge.net Marketplace. >> It's the best place to buy or sell services for >> just about anything Open Source. >> http://sourceforge.net/services/buy/index.php >> _______________________________________________ >> Pypentago-devel mailing list >> Pyp...@li... >> https://lists.sourceforge.net/lists/listinfo/pypentago-devel >> > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > > > ------------------------------------------------------------------------ > > _______________________________________________ > Pypentago-devel mailing list > Pyp...@li... > https://lists.sourceforge.net/lists/listinfo/pypentago-devel |
From: Hardik M. <har...@gm...> - 2008-06-18 18:30:28
|
Hi, Email validation is helps in two wasy, first it prevents software bots from registering with us and second makes a professional impression on whoever registers with us. regards, Hardik On Wed, Jun 18, 2008 at 4:51 PM, Florian Mayer <flo...@ai...> wrote: > I've been wondering if we should do email validation to make sure users > provide their real email address. > What do you think? > > Best regards, > Florian Mayer > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Pypentago-devel mailing list > Pyp...@li... > https://lists.sourceforge.net/lists/listinfo/pypentago-devel > |
From: Florian M. <flo...@ai...> - 2008-06-18 14:51:06
|
I've been wondering if we should do email validation to make sure users provide their real email address. What do you think? Best regards, Florian Mayer |
From: Florian M. <flo...@ai...> - 2008-06-14 15:06:50
|
I have been wondering whether [A-D](Quadrant)[a-d](line)[1-3](column), [A-D][L/R] would be better as a notation as it would be easier to implement with the current rotation code. This means that the string would, for instance, look like that: Aa1 AL - Meaning set a stone in the left corner, then rotate the left Quadrant to the left. Just a thought, what do you think? Best regards, Florian Mayer |
From: Hardik M. <har...@gm...> - 2008-06-05 19:18:42
|
Hi, Yes you understood correctly and the GameHistoryManager is already committed and does what I think is necessary. If you want more queries or database interaction, I will add it to the GameManager. Florian got his two methods login_available() and email_available() implemented on demand.. regards, Hardik On Thu, Jun 5, 2008 at 5:00 PM, J. Kovacs <ko...@fr...> wrote: > > Hi! > > So, is it correct that there will be a GameLog class and also a > GameHistoryManager class? > > GameLog will use GameHistoryManager to make its database calls. > > Is that the correct setup? > > And does everyone agree with that structure? > > If so, I commence work on GameLog.py. Else, lets discuss. > > Thanks! > > JK > > > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Pypentago-devel mailing list > Pyp...@li... > https://lists.sourceforge.net/lists/listinfo/pypentago-devel > |
From: J. K. <ko...@fr...> - 2008-06-05 16:03:41
|
Hi! So, is it correct that there will be a GameLog class and also a GameHistoryManager class? GameLog will use GameHistoryManager to make its database calls. Is that the correct setup? And does everyone agree with that structure? If so, I commence work on GameLog.py. Else, lets discuss. Thanks! JK |
From: Florian M. <flo...@ai...> - 2008-06-04 17:57:31
|
I have just finished the style guide and think it is pretty complete. I you think of any other things you'd like to include or change, please just let me know. Please try to follow this guide as best as possible. It is available at: https://gna.org/cookbook/?292 Best regards, Florian Mayer |
From: Florian M. <flo...@ai...> - 2008-06-04 12:03:55
|
Of course it *could* improve the quality, but take it that way: what does a unittest, that only checks one module, help when I forget to change a reference in the connection.py file imported from the game.py file, like applyturn. I think the effort/gain ratio is just too low to write unittests for the server/client program. Florian Mayer Hardik Mehta wrote: > Hi guys, > > Unit tests are actually meant to test a small, independent component. You > should in no case write unit tests for a huge software project (these tests > are called functional tests ) but divide that project into small independent > (this is more important) components and test the behavior of those > components. > > Apart from providing the safety-net while refactoring, writing first the > unit tests and then developing the corresponding component improves the > design of your project because you automatically modularize your project. > > Anyway, this is just my opinion. If we can refactor the code without unit > tests, it would be good to avoid the overhead. > > > regards, > Hardik > |