I have posted a repository containing the code for a web application I made using a server push (AKA Comet, long polling) architecture. The front end is in Javascript, and the back end is in Clojure. The clojure code is able to send notifications to clients' browsers effectively through use of nginx's push module, which the clients subscribe to. With websockets presently out of reach this can be a good way of doing this sort of thing, and at least on my small-scale testing it is a super responsive way of simulating a socket.
https://github.com/rplevy/sayoperation The application itself is online (for now) at: http://www.robertplevy.net/sayoperation/ A little bit of context is necessary here. This is a game I made as part of my final project for a course I am in (I am taking courses part time as part of an MA program I will eventually complete) on the topic of Machine Learning and Natural Language Processing. The purpose of the game is to collect game move data. I'm in the process of figuring out how to train a classifier to learn to make the same sorts of game moves (though the text generation piece is out of scope), to have 1/2 of an AI game player. If you want to play the game and help me collect training data, here are some things to know: 1. You will be asked to give an instruction to your team mate, given the information on the screen. The red is the target, and the green is what your teammate will move to the target. Notice that the target is always an empty space. For example "put the crab above the butterfly" would make sense if the crab had a green border, and there were a red bordered target above the butterfly. 2. Use clear and natural language when entering data., try to explain in the way you would explain to a person. Punctuation and capitalization is stripped out/lowercased. 3. The rounds work like this. Player 1 instruct -> Player 2 move --> Player 2 instruct --> Player 1 move. The game automatically presents your next available move just like in RIAs such as gchat or facebook (no need to refresh). 4. Multiple concurrent games are encouraged. The game should be responsive and will immediately tell you if you have a move to play in any of your games. 5. Caveat: The application has been tested thoroughly in Firefox and Chrome. While there is no inherent reason why it shouldn't be possible to make it work in Opera or Internet Explorer, I have not tested it in IE (so it probably doesn't work in that browser), and I am aware that it doesn't work in Opera. This is just a matter of time and effort, that I need to spend on the NLP side of this project at the moment. 6. The high scoring team as of 2am tonight will win something (I haven't decide what, give me ideas please). Thanks, Rob -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en