<div dir="ltr">the courier package on hackage seems to strike a better balance vs CH<div><a href="https://hackage.haskell.org/package/courier">https://hackage.haskell.org/package/courier</a><br></div></div><div class="gmail_extra">

<br><br><div class="gmail_quote">On Wed, Jul 9, 2014 at 2:52 PM, Wojtek NarczyƄski <span dir="ltr"><<a href="mailto:wojtek@power.com.pl" target="_blank">wojtek@power.com.pl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

On 09.07.2014 19:40, Isak Hansen wrote:<br>
<br>
Thousands of connections, your smartphone wouldn't handle, not to mention a server.<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
#1 - What's a good way to set up and maintain compressed and encrypted connections from the clients to my cluster? I've been wanting to try out websockets, think that'll do?<br>
<br>
</blockquote>
<br>
</div><a href="http://caniuse.com/websockets" target="_blank">http://caniuse.com/websockets</a> - WebSockets browser compatibility, caveat emptor<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
#2 - I'm new to Haskell and would appreciate thoughts on how to store and process game state. Imagine a plain application managing 1000 tables of poker, responding to player input (that magically appears) and timer events (e.g. folding players that fail to take action). What data structures and libraries should I be looking at here? Thoughts on concurrency and how I organize program flow?<br>


<br>
</blockquote>
<br></div>
I would spawn a process for each game, and a process for each player.<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
#3 - I'm thinking of ZMQ to wire components together. Would I be better off basing my cluster on Cloud Haskell or some other library for distributed work?<br>
<br>
</blockquote></div>
Erlang/OTP is great, but I have a feeling that something was 'lost in translation' to Haskell, and that thing is simplicity. For example, I do not understand why such a small cabal package has been split into multiple tiny cabal packages. This is the fuel that cabal hell fire burns on. Despite this, I would give Cloud Haskell a try. If you don't you, will have to rediscover things like supervision hierarchy, not to mention timeouts as the first line of defense againtst all kinds of concurrency problems. Erlang/OTP really does get certain things right.<span class="HOEnZb"><font color="#888888"><br>


<br>
-- <br>
Kind regards,<br>
Wojtek N.</font></span><div class="HOEnZb"><div class="h5"><br>
______________________________<u></u>_________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/<u></u>mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br></div>