

How We Learned to Cheat at Online Poker: A Study in Software Security (1999) - sytelus
https://www.cigital.com/papers/download/developer_gambling.php

======
downandout
A far easier way to destroy your opponents in online poker is collusion, and
it's happening all day, every day.

------
eximius
I'm sorry, this seems incredibly naive, but couldn't you just have

    
    
        cards = range(52)
        shuffled = []
        while len(cards)>0:
            shuffled.append(random.choice(cards))
            cards.remove(shuffled[-1])
        return shuffled
    

which should be, given a good randomness, literally equivalent to drawing
randomly from a pool of 52 cards to form a deck. Is this somehow less
efficient than their algorithm?

~~~
rav
That is essentially the same as the algorithm in the article, which was Figure
3:

    
    
        for (i is 1 to 52)
            Swap i with random position between i and 52
    

After _i_ iterations, the first _i_ entries are your "shuffled", and the last
52 - _i_ entries are your "cards". "random.choice(cards)" corresponds to
picking a "random position between _i_ and 52".

~~~
eximius
I suppose. I guess I just prefer the more direct, naive algorithm when the
performance gain would seem to be so small. (not that I've profiled it or
anything :/)

~~~
rav
From a CS theory perspective, I would say it's two implementations of the same
algorithm, or two ways of phrasing the same algorithm. The most natural
formulation in your eyes is probably not the same as the most natural
formulation in the eyes of the article author.

------
erikb
I'd be really interested in articles after 2008. About 2005-2007 is when the
internet poker boom was on its height. I'd say in that area there must have
been a lot of progress, because there was a lot of money in it, a lot more
than now or 1999.

------
drydot
that's why there exist fairluck.org, to make players be confident with their
digital luck ; )

~~~
Justin_K
Well your site doesn't explain anything about how it technically works or what
steps you go through for certification. Your demo doesn't work and appears to
be a phony flash demo anyways. What kind of bond do you carry to support your
guarantee? It's pretty easy to conclude that your service is a scam.

