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

Reply via email to