Максим Каракулов, Вспомните, бывали ли вы в такой ситуации, когда "да ну его, эту регистрацию, пойду-ка я на другой сайт"? Я вот бывал, и неоднократно.
Сейчас, прикручивая куда-либо авторизацию я задумываюсь - можно ли сделать ее необязательной, как ее упростить или сделать максимально безболезненной.
Павел, если на пальцах, то после проверки gethostbyname можно записать где-то у себя дату успешной проверки, и в следующий раз смотреть - если прошло меньше часа, например (или меньше суток, или любой другой промежуток времени), то не вызывать gethostbyname, а довериться предыдущему результату.
Вариантов где именно хранить кеш - великое множество. Начиная от "записать в файлик" или в базу, и заканчивая встроенными решениями типа APCu или внешними штуками типа memcache или redis.
Павел, там вроде как внутри обычный nslookup. Если вы делает это ради экономии запроса к базе, то выигрыш сомнительный, запросы к DNS могут оказаться более медленными.
Вы напишите в гугл что-то вроде "что такое cookie", почитайте немножко и вопрос отпадет. Подсказка: cookie и сессии есть не только в php, и это будет актуально для любых языков.
Urukhayy, простого рецепта, который уместился бы в пару строк просто не существует.
Эта цитата, которую я привел - из блогаМартина Фаулера, а уж он то понимает толк в таких штуках.
Думайте, экспериментируйте, нарабатывайте опыт. В будущем будет легче (или нет).
Если совсем тяжело - возьмите фреймворк какой-нибудь, там уже подумали за вас, и значительная часть вопросов "как же мне назвать эту штуку" заменится на вопросы "какого хрена они эту штуку назвали вот так вот!?".
Задача в таком виде слишком абстрактная, и совершенно непонятно как ее оптимизировать. Можно создать какие-то индексы, но если у вас возможны мелкие цветные "квадраты" размером 1х1, то эти индексы только будут мешать. Если заранее известен какой-то минимальный размер квадратов, то можно перебирать не по одному пикселю за раз, а через один, что ускорит обход"карты". в 4 раза. Если через два - в 9 раз.