private static void ShowPirateBayFastWithMemory()
        {
            var memory = new MemoryDirectory(new DirectoryInfo("memory"));

            Console.WriteLine("memory: " + memory.Count);

            Console.WriteLine("<ol>");

            BasicPirateBaySearch.Search(
                k => memory.Contains(k.Hash),
                (entry, deferred) =>
                {
                    var hash = entry.Name.ToMD5Bytes().ToHexString();

                    if (memory.Contains(hash))
                        Console.WriteLine("<li style='color:gray; font-size: small;'>");
                    else
                    {
                        memory.Add(hash);
                        Console.WriteLine("<li>");
                    }

                    Console.WriteLine(entry.Name.ToLink("http://thepiratebay.org" + entry.Link, hash));
                    Console.WriteLine(" | " + "torrent".ToLink(entry.TorrentLink));
                    Console.WriteLine(" | " + entry.CommentText);
                    Console.WriteLine(" | " + entry.Size);
                    Console.WriteLine(" | " + entry.Seeders);
                    Console.WriteLine(" | " + entry.Leechers);
                    Console.WriteLine("</li>");
                }
            );

            Console.WriteLine("</ol>");

            Console.WriteLine("memory: " + memory.Count);
        }