|
||||||||||||||||||||
Title: Chat room 2010 development and tests Post by leo on Jun 26th, 2010, 12:34pm For anyone interested in discussing the development of the next gen Arimaa chatroom, this is the place. I've made an interface, just an empty shell for now, to discuss layout. Before testing it, please have a look at what you should see in your browser on startup: http://img16.imageshack.us/img16/4900/ch2startup.jpg That's the chat tools. Random dummy messages should fill the chat log as time goes. Please check that the log automatically scrolls down to the bottom each time a line comes in. http://img16.imageshack.us/img16/9003/ch2chattools.jpg That's the archive calendar. Please check it for math bugs if you have time. http://img16.imageshack.us/img16/6138/ch2calendar.jpg Don't try to send chat messages for now, no server is implemented for now. For the moment I'd like to discuss the layout and the collapsable panel system, to see if it's a good system for a chat room or not. I've tested several layouts before, including one nifty one with fixed panels over a scrollable page but internet exploder blasted all the elements all over the place so I opted for a simple two column system. Please let me know if you see useless scrollbars appear or weird behaviors of any kind. Half of the things don't work in IE8 for the moment so try with a real browser instead. The latest versions of Firefox, Chrome and Safari display everything OK. Here it is : http://aa.leoki.ws/ch2/ Next, there will be much to discuss, most notably for the server side and the communications. I have some ideas to improve performance and avoid loss of messages, etc. More about it later. Thank you for any feedback. Please indicate which OS and browsers you used (including versions). Some forum links that can be helpful: Recent chatroom features discussion (http://arimaa.com/arimaa/forum/cgi/YaBB.cgi?board=siteIssues;action=display;num=1270002515) 2008 chatroom thread (http://arimaa.com/arimaa/forum/cgi/YaBB.cgi?board=siteIssues;action=display;num=1250270424;start=0) I sure forgot to tell half of the things I should have. That's the developer's documentation sickness syndrom. I'll add them later. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by Eltripas on Jun 26th, 2010, 2:39pm I love it, especially the shared board. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by Hippo on Jun 26th, 2010, 3:30pm I would prefere North on top of the shared board. Is there any functionality on the shared board already? |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by 722caasi on Jun 26th, 2010, 3:42pm In the calendar section, indicate the day of the week somewhere. Also, once the chatting is functional, I would like a preview post button. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by leo on Jun 26th, 2010, 4:41pm @Eltripas: Thanks! For two years I've been dreaming of implementing that shared board ;) or hoping someone else would. @Hippo: Board orientation option added to the to-do list. No, there is no functionality on the board yet. It will have a set of commands that can be either clicked or typed such as "/b h b3" (archiving jargon for "highlight square b3") or "/b p b3 gh" (put gold horse on b3) (mouse-drag horse icon onto the square). I'll tell more about it in the days to come, I need to sort my brains first. @722caasi: That's two of the things I forgot to mention and ask. Which should be the first day of the week? And I envisioned an input preview that refreshes at each key stroke (especially for some commands and codes that might be a bit difficult at first, for instance the short move notation codes adapted for picture conversion) but wasn't sure anybody wanted that. Now it's clear. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by Fritzlein on Jun 26th, 2010, 4:56pm Leo, the concept of a shared board is fantastic, exactly what I need to give a workshop at the Arimaa Festival. I'm more eager for this feature than all the others combined! You're doing a great service to the Arimaa community. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by leo on Jun 26th, 2010, 5:00pm Thank you Fritz! :) The shared board is a tiny gadget that is much much simpler than a game interface though, and I'm not sure it can serve the purpose of the workshop. Should I add an option to make it larger and with the marble background? |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by Fritzlein on Jun 26th, 2010, 5:29pm I'm not fussed about the background, but a larger size would be great. I'm not sure what features of the plan window I would miss if they weren't there, but I could, for example, do without a move list. Checking legality of moves and removing captured pieces would be nice. Simply being able to move pieces around in full view of others, however, is the essential functionality. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by leo on Jun 27th, 2010, 3:05pm I'll make the control panel resizable then, and the board adjust its size accordingly. However offering step arrows and legality check as in a game client might make both the client code and the server code incredibly complicated: What if somebody sends the first step of a pulling move while somebody else sends another move? How to discard the second message gracefully? What if somebody sends an undo command while another step has been sent by somebody else meanwhile? Or if someone ends the turn while someone else is still playing the current color? And how to distinguish between square highlighting and arrow clicking? I understand that in a workshop there should be only one person manipulating the board though, so it could be possible to implement a special mode in which the board is locked for everybody but one user. Another solution would be to have a queue of users who want to change something on the board, but do we really want that much complexity for the chat room? There are tons of such questions that haunt me since I started coding version 2, and they are not always easy to express because each one depends on what basic choices of functioning are selected, and there are several. My hope is that maybe I missed *the* simple solution and someone will tell it here. For the moment I walk on my toes trying to keep everything very basic and less bug prone. I see the shared board as a white board on which everybody can write (with some delay due to the current technology). I hope the discussions in the following weeks will lead to the "perfect" chat room (perfect for our needs, that is). I prefer not to rush coding for the moment. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by jdb on Jun 27th, 2010, 4:36pm on 06/26/10 at 17:29:03, Fritzlein wrote:
I agree. Anything on top of this may not be needed. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by Fritzlein on Jun 27th, 2010, 5:26pm on 06/27/10 at 15:05:51, leo wrote:
That will be a nice functionality. Quote:
I doubt locking the board will be necessary. This is a case where anti-social behavior is entirely visible, i.e. we would know who was doing it, so it would be less likely to happen. For a workshop it is actually desirable not to have the board locked, so that someone else could suggest a move on the board rather than having to figure out notation to describe it so that the presenter can make it. Quote:
I would vote against the queue as unnecessary complexity. Let's see whether we can cooperate socially first. If social cooperation doesn't work, we can address the problems that arise. Quote:
Legality check is different from step arrows. You could implement the former server-side only and the latter not at all. Quote:
Just discard the second message ungracefully as an illegal step. See whether the chat room users can work out a graceful way to cooperate with a minimal interface. Quote:
Process the commands in order. If the step gets there first, it is undone by the undo that comes second. If the undo gets there first, it happens, and then the step happens second if it is legal, or not if not. Quote:
Then the step that arrives for the player whose turn it is not must be discarded. Quote:
Make it easy on yourself. Input moves with click and drag rather than arrows and highlights. Then all legality can be checked server-side. For a minimal interface, you can put the responsibility on the players to know not to move frozen pieces and know that dislodgement must be completed, etc. Quote:
Good! Better to have simple functionality that works instead of complex functionality that often breaks. Quote:
I don't want to rush you. If the shared board is not ready by September, I will give the workshop by other means, or perhaps not give one at all. No worries. Don't feel pressure to do more than you want to or to do it faster than you have free time for it. Contributing to the community should be fun and feel good, or else why would you do it? Enjoy! :) |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by leo on Jun 28th, 2010, 4:31pm Thank you for all the feedback Fritz and jdb. I'm actually the one putting pressure on myself and resisting the temptation of implementing a ton of things. I'm sorry if my wording sounded otherwise. The chatroom will be ready well before september, no worries. Regarding the shared board, I suddenly realized what itched in the back of my mind: The more functionality in the chatroom, the more delay at the server in serving each request, because everything must be serialized to avoid collision in the data and log files. In a normal game there are only two players and they never send a move at the same time. But a shared board is a mess :) It will be much smoother and ready for more complexity when we all have websocket-enabled browsers though. I've been thinking of the resizable shared board and hit a problem: The squares on it are filled with text and icons, the same we have in the chat log (plus the ones I'm adding now such as arrows and symbols) and the icons don't look good when stretched: pixel porridge. So another idea came up: I've interrupted the development of the new notation converter tool, but it already contains functions for loading a game log (without legality check though), displaying a clickable list of it and displaying the position at any move or step. Since I'm currently exploring SVG graphics (you know, the vector graphics that are on all phones and browsers except IE), I thought I could transform that tool into a workshop window with a fully sizable game board (but no real game interface). It would be used in parallel to the chatroom for the workshop and it would run on its own server script, thus lightening the chatroom load. I'll keep you posted with the progress. As soon as the chat room interface is more or less finished there will be a big discussion about optimizing the http requests to the server and avoiding losses and duplicates (they are mutually exclusive in a simple system, lol) |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by Fritzlein on Jun 28th, 2010, 5:47pm Having a workshop window separate from the chat room sounds like a fine alternative, not only for the festival but also for everyday use. Thanks for the updates. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by leo on Jun 30th, 2010, 12:53pm I've been turning the problem on all its facets and realized that since a separate shared board would need login and authentication from the chatroom anyway, I might as well make it a big pane that would get inserted to the left of the control panel of the chatroom. That way the board would benefit from a lot of useful scripts and state data already there. There is a way for javascript to share data between windows though but it doesn't always work consistently across browsers. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by omar on Jul 1st, 2010, 7:18am Wow, the new chatroom interface is looking great. on 06/28/10 at 16:31:05, leo wrote:
Since HTML5 WebSockets are taking a while to become ubiquitous, I had considered using a socket bridge for the next version of the JavaScript client. I have not experimented with these yet, but I did find some that look suitable. Here is a Java to JavaScript socket bridge: http://stephengware.com/projects/javasocketbridge/ Here is a Flash to JavaScript socket bridge: http://devpro.it/xmlsocket/ The Java one will give a pop-up and require the user to accept it to run. But it is more powerful since it uses a conventional socket as opposed to an XMLSocket. Also it can connect to any server and does not require running a policy file daemon on the server it connects to. Both do require running a daemon on the server to accept connections and process requests. This daemon is usually referred to as a websocket server. Apache is eventually supposed to have a module to make this easier, but it is not complete since the HTML5 WebSocket specs aren't yet settled. For the backend of the Flash V2 client which uses XMLSockets I have written a websocket server in Perl. So I can send you that code if you would like. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by Hippo on Jul 1st, 2010, 1:15pm I can imagine one coordinator manipulating the shared board and others questioning/suggesting moves. It is hard for me to imagine the shared manipulation of the board. May be 2 boards would be helpful ... one for coordinator, one for suggestions ... I don't want to complicate things, but it may be useful to think about two/multiple boards from he start. Extreme case would be tiny board for each other chatter and copy feature, but it is probably completely different solution. I can imagine watch feature ... automatically copying given person's board. And not displaying tiny boards in watch mode. Edit of the board in watch mode stops the watch mode ... having stack of say 3 saved positions is another possible complication. OK let me stop now :) I think any shared board would be big improvement and i's better to have working code than a long to do list. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by Fritzlein on Jul 1st, 2010, 2:51pm on 07/01/10 at 13:15:39, Hippo wrote:
Then don't imagine it. Instead imagine that the people in the chat room work out some way to take turns, and imagine that they could enforce not stepping on each other's toes by some social means rather than you enforcing it by some technical means. Quote:
Then don't. ;D Quote:
Whew! I'm glad you talked yourself off the ledge. :) |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by FireBorn on Jul 1st, 2010, 3:18pm If necessary, I think allowing only one player to have control of the board at a time would help. You would just need some commands like these: /give <user> - gives the board to a user /give - makes the board "unowned" (free to take) /take - takes a free board And if people are being stupid and not giving boards back to the main commentator, these commands may be handy: /lend <user> - lends the board to a user temporarily /take - takes back a lent board A user that has not used the board in 5 minutes or so gives the board up. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by Sconibulus on Jul 1st, 2010, 3:29pm I'd really like the ability to spawn multiple boards, if at all possible, and tab between them. This would give people a few more options if multiple wanted to show moves at once, but, more importantly, would allow commentators for two different games to have persistent boards to work with, rather than having to swap off completely recreating the position each time. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by leo on Jul 10th, 2010, 11:42am @Omar: Using sockets would really be the ideal solution. I should be able to install a socket daemon on my new server for the time of the development. I'll email you soon about the technical details. Thanks! Regarding the possibility of having multiple boards: It's relatively easy to code and I've been thinking of it but without implementing it yet, because I feared I would clutter the interface with tons of controls. I trust that we'll find good ergonomic solutions as we beta test though. I plan to upload an update during next week, or tomorrow if I'm valiant enough ^^ Regarding a controled access to the board(s), it's also quite feasable but for the moment I'm with Fritzlein thinking that we can first trust people to self manage the queue. Some testing will tell if it works. Thank you all for the feedback and ideas, keep them coming. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by Nombril on Aug 12th, 2010, 9:53pm I'm wondering if "Your Local Time" can be integrated to chat room messages. I've noticed a few times when people try to plan for a future game that it is sometimes a bit complicated to make sure everyone is on the same clock. So, for example, you could type "How about 20:00YLT" and the message that appears on each user's screen would be converted to their local times. Of course, this could lead to confusion if 20:00YLT is converted and 20:00 YLT isn't converted. If it is tough or impossible to put in the actual text, maybe a converter between YLT to/from GMT on the side would be helpful. I just moved time zones, so am probably having more problems with time zone conversions than usual :P so maybe this wouldn't be worth the effort if noone else is getting confused by scheduling with someone in another time zone. |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by Hippo on Aug 13th, 2010, 2:29am I am trying not use time describtion relative to my time but relative in general ... after 3 hours ... not at evening, but not all users did it as well. But <ylt>14:45</ylt> would be nice if seen converted on the other side. (And denoted as converted.) |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by leo on Aug 15th, 2010, 4:06pm That's a very cool idea, Nombril. The sender's client can convert from the local time to GMT/UTC upon sending the message to the server, the server stores the time in UTC, then each receiver's client converts to their local time. As Hippo says, the result should be signaled as converted to help prevent misunderstandings. Imagine someone writes "The tournament starts on Saturday at MLT:2300" and someone in a time zone two notches eastwards reads "The tournament starts on Saturday at YLT:0100" instead of "Sunday at YLT:0100" :/ Maybe it would be better to read something like "The tournament starts on Saturday at 2300+08 <<<0100YLT>>>". Or allow to work with timestamps instead of just times. Definitely a useful tool in my opinion as I'm arithmetically arthritic. I hoped to have the new chatroom and shared board ready for the online Festival, but I'm very -very- late in the development for various causes, so I'm starting to consider developing the shared board as an isolated web app that will work with the current chat room, while the new chatroom will be ready when it is, and we'll have more time to discuss the necessary features. What do you think? |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by Fritzlein on Aug 16th, 2010, 3:37am on 08/15/10 at 16:06:20, leo wrote:
I understand that your coding efforts are purely a volunteer donation to the community and as such are subject to many preemptions. I hope you aren't feeling bad for not having donated more sooner. Anything you can do now or later is a gift for which we are grateful. I have thought again about my scheduled strategy workshop. If there is no communal analysis board, I will simply cancel the workshop. Talking about a position without being able to play out and take back variations on the board would be somewhere between frustrating and futile. As far as scheduling goes, though, it would be good to have a working tool at least a week beforehand so that there is no danger of a last-minute cancellation and a big hole in the schedule which could be taken up by some other event given a bit of advance warning. A strategy workshop needs a board that everyone can see, on which I can enter moves and take them back arbitrarily. (The nested takeback function of 0/0/0/0/0 time control games in the gameroom didn't work last time I tried it; otherwise I could just play a game against myself.) It is not necessary for this communal board to be integrated in the chat room, or to have permissions restricting who can and can't make moves, or to allow more than one person to use it, etc. I understand that even a feature-stripped analysis board is a non-trivial piece of code. If you can't get it done in the next eighteen days, no problem, we can simply take the workshop off the schedule and celebrate in some other way. :) |
||||||||||||||||||||
Title: Re: Chat room 2010 development and tests Post by leo on Aug 17th, 2010, 5:31pm Thanks Fritzlein. Somehow I still hope I can make it all, chat room and board, for August 31, because of my unpredictable jump-and-burst ways. But I must also acknowledge that I'm in a deep trough of wave, so the alternate solution of using a web based desktop sharing that's being discussed in the Festival thread is a very wise one. |
||||||||||||||||||||
Arimaa Forum » Powered by YaBB 1 Gold - SP 1.3.1! YaBB © 2000-2003. All Rights Reserved. |