Computer Chess Club Archives


Search

Terms

Messages

Subject: Nxg6 or Nf3? f5 or Bc1?

Author: Slater Wold

Date: 21:36:23 03/06/02


Ok, let's take a look:

[D]2b1qrk1/5p1p/pBn3p1/1p2p3/4P2N/bBP1Q3/P4PPP/3R2K1 w - -

Best move?  It's supposed to be Nxg6.  But is it?

After 598 minutes, Crafty thought this line was best:

1. Nf3 Bg4 2. Bd5 Nb8 3. c4 Qe7 4. cxb5 axb5 5. h3 Bxf3 6. Qxf3 Bc5 7. Bxc5 Qxc5
8. Rb1 b4 9. Qe3 Qxe3 10. fxe3 Kg7 11. Rxb4 Rd8

Giving it a score of 0.93 and searching somewhere around 55B+ nodes.


So I set this position up, and I played Nxg6.  Crafty spit this out:

White(1): nxg6
              time used:  15.99
              clearing hash tables
              time surplus   0.00  time limit 3:00 (3:00) [easy move]
         nss  depth   time  score   variation (1)
starting thread 1
                7     0.11  -2.54   1. ... hxg6 2. Bd5 Bg4 3. Qg5 Be6 4.
                                    Bc7 Be7
                7->   0.12  -2.54   1. ... hxg6 2. Bd5 Bg4 3. Qg5 Be6 4.
                                    Bc7 Be7
                8     0.25  -2.57   1. ... hxg6 2. Bd5 Bg4 3. Qh6 Be6 4.
                                    Be3 Qd7 5. Bg5
                8->   0.26  -2.57   1. ... hxg6 2. Bd5 Bg4 3. Qh6 Be6 4.
                                    Be3 Qd7 5. Bg5
                9     1.00  -2.45   1. ... hxg6 2. c4 Bb4 3. cxb5 axb5
                                    4. Qe2 Ne7 5. Bc7 Bc3 6. Qf3
                9->   1.04  -2.45   1. ... hxg6 2. c4 Bb4 3. cxb5 axb5
                                    4. Qe2 Ne7 5. Bc7 Bc3 6. Qf3
               10     1.96  -2.50   1. ... hxg6 2. c4 Qe7 3. cxb5 axb5
                                    4. Bd5 Nb8 5. Qf3 Be6 6. Rd3 Bb4
               10->   2.03  -2.50   1. ... hxg6 2. c4 Qe7 3. cxb5 axb5
                                    4. Bd5 Nb8 5. Qf3 Be6 6. Rd3 Bb4
               11    10.00     --   1. ... hxg6
               11    19.71   0.00   1. ... hxg6 2. Qh6 Be6 3. Rd3 Ne7 4.
                                    Bxe6 fxe6 5. Rh3 Kf7 6. Qh7+ Kf6 7.
                                    Rf3+ Kg5 8. Rg3+ Kf6 9. Rf3+
               11->  19.92   0.00   1. ... hxg6 2. Qh6 Be6 3. Rd3 Ne7 4.
                                    Bxe6 fxe6 5. Rh3 Kf7 6. Qh7+ Kf6 7.
                                    Rf3+ Kg5 8. Rg3+ Kf6 9. Rf3+
               12    25.53   0.31   1. ... hxg6 2. Qh6 g5 3. Qxg5+ Kh7
                                    4. Qh5+ Kg7 5. Rd3 Ne7 6. Qxe5+ f6
                                    7. Qg3+ Qg6 8. Qf4 Bg4 9. Bd4
               12->  26.00   0.31   1. ... hxg6 2. Qh6 g5 3. Qxg5+ Kh7
                                    4. Qh5+ Kg7 5. Rd3 Ne7 6. Qxe5+ f6
                                    7. Qg3+ Qg6 8. Qf4 Bg4 9. Bd4
               13    32.86   0.37   1. ... hxg6 2. Qh6 g5 3. Qxg5+ Kh7
                                    4. Qh5+ Kg7 5. Rd3 Ne7 6. Rd8 Qxd8
                                    7. Bxd8 Rxd8 8. Qxf7+ Kh6 9. Qf6+ Kh5
                                    10. Qxe5+
               13->  33.89   0.37   1. ... hxg6 2. Qh6 g5 3. Qxg5+ Kh7
                                    4. Qh5+ Kg7 5. Rd3 Ne7 6. Rd8 Qxd8
                                    7. Bxd8 Rxd8 8. Qxf7+ Kh6 9. Qf6+ Kh5
                                    10. Qxe5+
               14    52.23     --   1. ... hxg6
               14     1:24   0.92   1. ... hxg6 2. Qh6 Be6 3. Rd3 f5 4.
                                    Rh3 Kf7 5. exf5 Bxb3 6. fxg6+ Ke6 7.
                                    axb3 Rf6 8. Rg3 Qf7
               14->   1:27   0.92   1. ... hxg6 2. Qh6 Be6 3. Rd3 f5 4.
                                    Rh3 Kf7 5. exf5 Bxb3 6. fxg6+ Ke6 7.
                                    axb3 Rf6 8. Rg3 Qf7
               15     1:42     ++   1. ... hxg6!!
              time=3:00  cpu=209%  mat=1  n=291725020  fh=93%  nps=1617k
              ext-> chk=12783975 cap=712366 pp=55686 1rep=1880629 mate=119640
              predicted=0  nodes=291725020  evals=62094071
              endgame tablebase-> probes done=0  successful=0
              hashing-> trans/ref=31%  pawn=99%  used=99%
              SMP->  split=1178  stop=164  data=9/32  cpu=6:18  elap=3:00

Crafty thought this was even an "easy move".

Ok, so how about 10 minutes.  Maybe it'll resolve that fail high:



White(1): nxg6
              time used:  27.28
              clearing hash tables
              time surplus   0.00  time limit 10:00 (10:00) [easy move]
         nss  depth   time  score   variation (1)
starting thread 1
                7     0.11  -2.54   1. ... hxg6 2. Bd5 Bg4 3. Qg5 Be6 4.
                                    Bc7 Be7
                7->   0.13  -2.54   1. ... hxg6 2. Bd5 Bg4 3. Qg5 Be6 4.
                                    Bc7 Be7
                8     0.24  -2.57   1. ... hxg6 2. Bd5 Bg4 3. Qh6 Be6 4.
                                    Be3 Qd7 5. Bg5
                8->   0.27  -2.57   1. ... hxg6 2. Bd5 Bg4 3. Qh6 Be6 4.
                                    Be3 Qd7 5. Bg5
                9     1.00  -2.45   1. ... hxg6 2. c4 Bb4 3. cxb5 axb5
                                    4. Qe2 Ne7 5. Bc7 Bc3 6. Qf3
                9->   1.03  -2.45   1. ... hxg6 2. c4 Bb4 3. cxb5 axb5
                                    4. Qe2 Ne7 5. Bc7 Bc3 6. Qf3
               10     2.03  -2.48   1. ... hxg6 2. c4 Qe7 3. cxb5 axb5
                                    4. Bd5 Bb7 5. Rb1 Bb4 6. Qd3 Rc8 7.
                                    Qxb5
               10->   2.09  -2.48   1. ... hxg6 2. c4 Qe7 3. cxb5 axb5
                                    4. Bd5 Bb7 5. Rb1 Bb4 6. Qd3 Rc8 7.
                                    Qxb5
               11     9.58     --   1. ... hxg6
               11    13.30   0.00   1. ... hxg6 2. Qh6 Be6 3. Rd3 Bb2 4.
                                    Bxe6 fxe6 5. Rh3 Kf7 6. Qh7+ Kf6 7.
                                    Rf3+ Kg5 8. Rg3+ Kf6 9. Rf3+
               11->  13.49   0.00   1. ... hxg6 2. Qh6 Be6 3. Rd3 Bb2 4.
                                    Bxe6 fxe6 5. Rh3 Kf7 6. Qh7+ Kf6 7.
                                    Rf3+ Kg5 8. Rg3+ Kf6 9. Rf3+
               12    18.42     --   1. ... hxg6
               12    22.20   0.53   1. ... hxg6 2. Qh6 g5 3. Qxg5+ Kh7
                                    4. Be3 Rh8 5. Qh6+ Kg8 6. Qg6+ Kf8
                                    7. Bh6+ Rxh6 8. Qxh6+ Kg8 9. Qg5+ Kh8
                                    10. Qh4+ Kg7 11. Qg3+ Kh7 12. Bd5
               12->  22.72   0.53   1. ... hxg6 2. Qh6 g5 3. Qxg5+ Kh7
                                    4. Be3 Rh8 5. Qh6+ Kg8 6. Qg6+ Kf8
                                    7. Bh6+ Rxh6 8. Qxh6+ Kg8 9. Qg5+ Kh8
                                    10. Qh4+ Kg7 11. Qg3+ Kh7 12. Bd5
               13    24.78     ++   1. ... hxg6!!
               13->  44.05   0.14   1. ... hxg6 2. Qh6 g5 3. Qxg5+ Kh7
                                    4. Be3 Rh8 5. Qh6+ Kg8 6. Qg6+ Kf8
                                    7. Bh6+ Rxh6 8. Qxh6+ Kg8 9. Qg5+ Kh8
                                    10. Qh4+ Kg7 11. Qg3+ Kh7 12. Bd5
               14    52.19     --   1. ... hxg6
               14     1:18   0.92   1. ... hxg6 2. Qh6 Be6 3. Rd3 f5 4.
                                    Rh3 Kf7 5. exf5 Bxb3 6. fxg6+ Ke6 7.
                                    axb3 Rf6 8. Rg3 Qf7
               14->   1:22   0.92   1. ... hxg6 2. Qh6 Be6 3. Rd3 f5 4.
                                    Rh3 Kf7 5. exf5 Bxb3 6. fxg6+ Ke6 7.
                                    axb3 Rf6 8. Rg3 Qf7
               15     1:37     ++   1. ... hxg6!!
               15->   2:57   0.53   1. ... hxg6 2. Qh6 Be6 3. Rd3 f5 4.
                                    Rh3 Kf7 5. exf5 Bxb3 6. fxg6+ Ke6 7.
                                    axb3 Rf6 8. Rg3 Qf7
               16     4:01   0.59   1. ... hxg6 2. Qh6 Be6 3. Rd3 f5 4.
                                    Rh3 Kf7 5. exf5 Bxb3 6. fxg6+ Ke7 7.
                                    axb3 Qd7 8. Qh5 Qd5 9. Qh7+ Ke8 10.
                                    Qc7
               16->   4:13   0.59   1. ... hxg6 2. Qh6 Be6 3. Rd3 f5 4.
                                    Rh3 Kf7 5. exf5 Bxb3 6. fxg6+ Ke7 7.
                                    axb3 Qd7 8. Qh5 Qd5 9. Qh7+ Ke8 10.
                                    Qc7
               17     7:37   0.51   1. ... hxg6 2. Qh6 Be6 3. Rd3 f5 4.
                                    Rh3 Kf7 5. Qh7+ Kf6 6. Qh4+ Kg7 7.
                                    Bxe6 Qxe6 8. exf5 Qg8 9. Qh6+ Kf7 10.
                                    fxg6+ Ke7 11. Rg3 Qxa2 12. Qh4+ Ke8
                                    13. Qe4
               17->   8:02   0.51   1. ... hxg6 2. Qh6 Be6 3. Rd3 f5 4.
                                    Rh3 Kf7 5. Qh7+ Kf6 6. Qh4+ Kg7 7.
                                    Bxe6 Qxe6 8. exf5 Qg8 9. Qh6+ Kf7 10.
                                    fxg6+ Ke7 11. Rg3 Qxa2 12. Qh4+ Ke8
                                    13. Qe4
              time=10:00  cpu=204%  mat=1  n=973185402  fh=93%  nps=1621k
              ext-> chk=56156310 cap=2563819 pp=421411 1rep=5808398 mate=423139
              predicted=0  nodes=973185402  evals=162705326
              endgame tablebase-> probes done=0  successful=0
              hashing-> trans/ref=27%  pawn=99%  used=99%
              SMP->  split=2375  stop=358  data=10/32  cpu=20:28  elap=10:00

Notice the difference between Rebel's eval, and Crafty's:

Rebel:  hxg6 Qh6 Be6 Rd3 Bc1 Qxc1 Bxb3

Crafty:  1. ... hxg6 2. Qh6 Be6 3. Rd3 f5 4. Rh3 Kf7 5. Qh7+ Kf6 6. Qh4+ Kg7 7.
Bxe6 Qxe6 8. exf5 Qg8 9. Qh6+ Kf7 10. fxg6+ Ke7 11. Rg3 Qxa2 12. Qh4+ Ke8 13.
Qe4

Bc1 vs f5

Other engines also *think* f5 is better.  Monsoon & GT 2.0 are among them.
(Rebel is the only I've seen give Bc1 in its eval.)

Crafty after hxg6 Qh6 Be6 Rd3:

White(3): rd3
              time used:  33.85
              time surplus   0.00  time limit 10:00 (10:00)
         nss  depth   time  score   variation (1)
                6     0.06     --   3. ... Qe7
                6     0.10   1.68   3. ... Qe7 4. Bxe6 Qxe6 5. Rh3 Qxh3
                                    6. Qxh3 Kg7
                6     0.13   0.00   3. ... Bb2 4. Rh3 Bxh3 5. Qxg6+ Kh8
                                    6. Qh6+ Kg8 7. Qg6+
                6     0.25  -1.13   3. ... Ne7 4. Bxe6 fxe6 5. Rh3 Kf7
                                    6. Qh7+ Kf6 7. Rf3+ Kg5 8. Be3+ Rf4
         (4)    6->   0.25  -1.13   3. ... Ne7 4. Bxe6 fxe6 5. Rh3 Kf7
                                    6. Qh7+ Kf6 7. Rf3+ Kg5 8. Be3+ Rf4
                7     0.27     --   3. ... Ne7
         (3)    7     0.30   0.00   3. ... Ne7 4. Bxe6 fxe6 5. Rh3 Kf7
                                    6. Qh7+ Kf6 7. Rf3+ Kg5 8. Rg3+ Kf6
                                    9. Rf3+
         (4)    7->   0.44   0.00   3. ... Ne7 4. Bxe6 fxe6 5. Rh3 Kf7
                                    6. Qh7+ Kf6 7. Rf3+ Kg5 8. Rg3+ Kf6
                                    9. Rf3+
         (3)    8     0.49   0.00   3. ... Ne7 4. Bxe6 fxe6 5. Rh3 Kf7
                                    6. Qh7+ Kf6 7. Rf3+ Kg5 8. Rg3+ Kf6
                                    9. Rf3+
         (4)    8->   0.74   0.00   3. ... Ne7 4. Bxe6 fxe6 5. Rh3 Kf7
                                    6. Qh7+ Kf6 7. Rf3+ Kg5 8. Rg3+ Kf6
                                    9. Rf3+
                9     0.77     --   3. ... Ne7
         (3)    9     0.88   1.32   3. ... Ne7 4. Bxe6 fxe6 5. Rh3 Kf7
                                    6. Qh7+ Kf6 7. Rf3+ Nf5 8. exf5 exf5
                                    9. h3 Rh8
                9     3.02   1.18   3. ... f5 4. Rh3 Kf7 5. exf5 Bxb3 6.
                                    fxg6+ Ke7 7. axb3 Qb8 8. Qe3
                9     4.38   1.07   3. ... Nb8 4. Bxe6 fxe6 5. Rh3 Qd7
                                    6. Qxg6+ Qg7 7. Qxe6+ Qf7 8. Qxe5 Qf6
                                    9. Rg3+ Kf7 10. Qd5+ Qe6
         (3)    9->   4.38   1.07   3. ... Nb8 4. Bxe6 fxe6 5. Rh3 Qd7
                                    6. Qxg6+ Qg7 7. Qxe6+ Qf7 8. Qxe5 Qf6
                                    9. Rg3+ Kf7 10. Qd5+ Qe6
               10     4.44     --   3. ... Nb8
         (2)   10     4.72   2.10   3. ... Nb8 4. Bxe6 Qxe6 5. Rh3 Qxh3
                                    6. Qxh3 Bc1 7. Bc7 Nc6 8. Qd7 Nb8 9.
                                    Qg4
               10     7.70     ++   3. ... f5!!
               10->  23.05   0.68   3. ... f57
               11    31.42     ++   3. ... f5!!
               11->  54.69   0.29   3. ... f57
               12     1:14   0.57   3. ... f5 4. Rh3 Kf7 5. exf5 Bxb3 6.
                                    fxg6+ Ke7 7. axb3 Qd7 8. Qh7+ Ke6 9.
                                    Qh5 Qg7 10. Rd3
               12->   1:22   0.57   3. ... f5 4. Rh3 Kf7 5. exf5 Bxb3 6.
                                    fxg6+ Ke7 7. axb3 Qd7 8. Qh7+ Ke6 9.
                                    Qh5 Qg7 10. Rd3
               13     2:02   0.51   3. ... f5 4. Rh3 Kf7 5. Qh7+ Kf6 6.
                                    Qh4+ Kg7 7. Bxe6 Qxe6 8. exf5 Qg8 9.
                                    Qh6+ Kf7 10. fxg6+ Ke7 11. Rg3 Qxa2
                                    12. Qh4+ Ke8 13. Qe4
               13->   2:23   0.51   3. ... f5 4. Rh3 Kf7 5. Qh7+ Kf6 6.
                                    Qh4+ Kg7 7. Bxe6 Qxe6 8. exf5 Qg8 9.
                                    Qh6+ Kf7 10. fxg6+ Ke7 11. Rg3 Qxa2
                                    12. Qh4+ Ke8 13. Qe4
               14     8:10   0.80   3. ... f5 4. Rh3 Kf7 5. Qh7+ Kf6 6.
                                    Qh4+ Kg7 7. Bxe6 Qxe6 8. exf5 Qg8 9.
                                    Qh6+ Kf7 10. fxg6+ Ke7 11. Qg5+ Ke6
                                    12. Qg4+ Ke7 13. Rd3 Rf6 14. Rd7+ Kf8
               14->   9:28   0.80   3. ... f5 4. Rh3 Kf7 5. Qh7+ Kf6 6.
                                    Qh4+ Kg7 7. Bxe6 Qxe6 8. exf5 Qg8 9.
                                    Qh6+ Kf7 10. fxg6+ Ke7 11. Qg5+ Ke6
                                    12. Qg4+ Ke7 13. Rd3 Rf6 14. Rd7+ Kf8
              time=10:00  cpu=199%  mat=-2  n=951540628  fh=93%  nps=1584k
              ext-> chk=66878696 cap=2555815 pp=554466 1rep=5478898 mate=352172
              predicted=0  nodes=951540628  evals=156655872
              endgame tablebase-> probes done=0  successful=0
              hashing-> trans/ref=23%  pawn=99%  used=99%
              SMP->  split=2073  stop=315  data=11/32  cpu=19:59  elap=10:00

Ok, so what about Bc1.  Is it a mistake?

After hxg6 Qh6 Be6 Rd3 Bc1:


Black(3): Bc1
              time used:   1:19
crafty is behind  2.0 on time, reducing by 1/6.
              time surplus   0.00  time limit 10:00 (10:00)
         nss  depth   time  score   variation (1)
                7->   0.09   1.45   4. Qxc1 Bxb3 5. axb3 Qe7 6. Qd1 Qh4
                                    7. Qf3 Qf4
                8     0.16   1.55   4. Qxc1 Bxb3 5. axb3 Qe7 6. Qd1 Qh4
                                    7. f3 Rb8 8. Bc5
                8->   0.19   1.55   4. Qxc1 Bxb3 5. axb3 Qe7 6. Qd1 Qh4
                                    7. f3 Rb8 8. Bc5
                9     0.59   1.59   4. Qxc1 Bxb3 5. axb3 Qe6 6. Qd1 Rb8
                                    7. Bc7 Rc8 8. Rd7 Qf6
                9->   0.63   1.59   4. Qxc1 Bxb3 5. axb3 Qe6 6. Qd1 Rb8
                                    7. Bc7 Rc8 8. Rd7 Qf6
               10     1.30   1.68   4. Qxc1 Bxb3 5. axb3 Qe7 6. Qd1 Qg5
                                    7. Rd6 Rc8 8. Be3 Qh5 9. Qd5
               10->   1.39   1.68   4. Qxc1 Bxb3 5. axb3 Qe7 6. Qd1 Qg5
                                    7. Rd6 Rc8 8. Be3 Qh5 9. Qd5
               11     3.00   1.63   4. Qxc1 Bxb3 5. axb3 Qe7 6. c4 Rc8
                                    7. c5 Nd4 8. Qh6 Rxc5 9. Bxc5 Qxc5
               11->   3.25   1.63   4. Qxc1 Bxb3 5. axb3 Qe7 6. c4 Rc8
                                    7. c5 Nd4 8. Qh6 Rxc5 9. Bxc5 Qxc5
               12    10.34   1.72   4. Qxc1 Bxb3 5. axb3 Qe7 6. Qd1 Qg5
                                    7. b4 Qf4 8. f3 Nb8 9. Be3 Qf6 10.
                                    Rd5
               12->  10.97   1.72   4. Qxc1 Bxb3 5. axb3 Qe7 6. Qd1 Qg5
                                    7. b4 Qf4 8. f3 Nb8 9. Be3 Qf6 10.
                                    Rd5
               13    22.56   1.70   4. Qxc1 Bxb3 5. axb3 Qe7 6. Qd1 Qg5
                                    7. b4 Rb8 8. Bc7 Rc8 9. Rd7 Qf4 10.
                                    Qc2 f6
               13->  23.42   1.70   4. Qxc1 Bxb3 5. axb3 Qe7 6. Qd1 Qg5
                                    7. b4 Rb8 8. Bc7 Rc8 9. Rd7 Qf4 10.
                                    Qc2 f6
               14    56.59   1.75   4. Qxc1 Bxb3 5. axb3 Qe7 6. b4 Qe6
                                    7. Qd2 Qb3 8. f3 Qb1+ 9. Qd1 Qxd1+
                                    10. Rxd1 Kg7 11. Kf2 f6 12. Rd7+ Rf7
                                    13. Rxf7+ Kxf7
               14->  57.98   1.75   4. Qxc1 Bxb3 5. axb3 Qe7 6. b4 Qe6
                                    7. Qd2 Qb3 8. f3 Qb1+ 9. Qd1 Qxd1+
                                    10. Rxd1 Kg7 11. Kf2 f6 12. Rd7+ Rf7
                                    13. Rxf7+ Kxf7
               15     2:04   1.76   4. Qxc1 Bxb3 5. axb3 Qe7 6. b4 Rb8
                                    7. Bc5 Qh4 8. Rd6 Rc8 9. f3 Kg7 10.
                                    Qd2 Rc7 11. Rd5 Qf4
               15->   2:07   1.76   4. Qxc1 Bxb3 5. axb3 Qe7 6. b4 Rb8
                                    7. Bc5 Qh4 8. Rd6 Rc8 9. f3 Kg7 10.
                                    Qd2 Rc7 11. Rd5 Qf4
               16     8:13   1.84   4. Qxc1 Bxb3 5. axb3 Qe6 6. Qd1 Rb8
                                    7. Rd6 Qe8 8. Bc5 Rd8 9. Rd5 Kg7 10.
                                    b4 f6 11. Bd6 Ne7 12. Rd3
               16->   8:29   1.84   4. Qxc1 Bxb3 5. axb3 Qe6 6. Qd1 Rb8
                                    7. Rd6 Qe8 8. Bc5 Rd8 9. Rd5 Kg7 10.
                                    b4 f6 11. Bd6 Ne7 12. Rd3
              time=10:00  cpu=199%  mat=-2  n=986065611  fh=91%  nps=1642k
              ext-> chk=36422012 cap=2570000 pp=278103 1rep=4776065 mate=419377
              predicted=0  nodes=986065611  evals=236334977
              endgame tablebase-> probes done=0  successful=0
              hashing-> trans/ref=22%  pawn=99%  used=99%
              SMP->  split=981  stop=196  data=8/32  cpu=20:00  elap=10:00

_That_ is why Crafty will never play Nxg6.



Ed, could you please give a 10 minute analysis of this position after nxg6 hxg6
Qh6 Be6 Rd3 f5?  I know GT still think it's better after f5 (1.xx or something)
and Monsoon thinks it's still better (0.67).  What does Rebel think?

I will also let Crafty look at this line overnite, and I bet it drops to at
least 1.00 for white.  (Which I think shows, in the long run, Nxg6 is winning.
If indeed f5 leads to +1.00 for white.)

The line to look at is:
[D]4qrk1/5p2/pBn1b1pQ/1p2p3/4P3/bBPR4/P4PPP/6K1 b - - 0 3

Which is better?  f5 or Bc1?  Do either save the position?



This page took 0.01 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.