Ne v kontakte Asocial programmer's blog

“Спалили” тему с фальшивыми пузомерками.

Московский Полубомж тут недавно как бы спалил тему про тИЦ. Еще где-то похожая всплыла про PR. И тут же понеслась вонь “нафиг палить чужие темы”.

Так вот господа. Оказывается из-за собственной лени почти пол года владел офигенной темой и не заработал ни копейки. Обосную свои слова. Задумываться о такой возможности я начал еще летом, когда в подробностях изучал склейку. Я даже немного поспрашивал на одном форуме у более знающих товарищей. Естественно, я слегка завуалировал вопрос, чтобы не получить тухлым помидором в морду и обвинение в желании обмануть всех и вся. Спрашивал специально не на серче, а на форуме поменьше, чтобы сократить число людей, обративших внимание на топик. Удовлетворившись ответами, я даже написал небольшой скрипт, который бы помогал мне приклеиваться к чужим сайтам. Его у меня хватило ума не публиковать. А после этого я отвлекся на новые идеи и возиться с этой темой мне стало лень.

Вот так и вышло, что исключительно благодаря своей лени я за пол года обладания “мега-темой” не получил с нее ни копейки. Стыд и позор.

PS. Не я один не в контакте.

Концепция человечной защиты от ботов.

Мое активное присутствие в интернете можно отсчитывать с 6 апреля 2005, когда я впервые установил phpBB 2.0.13 на свой компьютер с целью “поиграться”. И с тех пор этот движок занимает достаточно важную часть моей жизни. Соответственно, занимаясь форумами, мне приходилось сталкиваться с разными видами спама и защиты от него. Среди последних были и эффективные, и не очень. Ниже я постараюсь изложить метод защиты от спама, который  должен сбивать с толку ботов и без проблем проходиться человеком.

Базовая идея.

Боты пользуются большим распространением небольшого количества известных движков. Научился работать с одним из них - получил возможность спамить по десяткам тысяч ресурсов. С другой стороны, каким бы навороченным не был пятый хрумер - даже двадцать пятый не сможет оценивать смысловую составляющую  формы регистрации/постинга, как это делает человек.

Соответственно, наша задача - сделать форму непонятной для бота.

Техническая сторона.

Бот имеет возможность вычленять по определенным сигнатурам те или иные части страницы и анализировать их, определяя назначения полей или типы защиты. Чаще всего он ориентируется на имена полей, реже - на их порядок, совсем редко - на располагающиеся рядом подписи.

Таким образом, чтобы отсеять абсолютное большинство ботов, мы должны разрушить хотя бы два первых ориентира.

Для первого вариант прост: имена полей формы должны быть уникальны для каждого экземпляра движка. Это можно достигнуть путем привязки к домену, а так же использование некоторого случайного числа, которое будет генерироваться при установке. Затем можно проделывать какое угодно количество хеширований (формулу хеширования тоже, кстати, можно сделать динамической) и пропускать имена всех полей через оные процедуры.

Со вторым вариантом, чтобы не осложнять жизнь людям, чуть сложнее, но лишь чуть. Выходом будет случайное разбрасывание по всей форме дополнительных полей-призраков со своими уникальными именами, скрытых при помощи JS или CSS от глаз людей. Чем больше такого мусора - тем больше шанс запутать бота. Заполнение хотя бы одного из таких полей будет сигналом для срабатывания защиты.

Как вариант, этим полям можно по умолчанию давать какие-то значения и сверять их при обработке формы.

На последний пункт сложнее всего влиять, поскольку подписи к формам необходимы в первую очередь людям, но и тут есть выход. К полям-призракам можно добавлять подписи, дублирующие подписи нормальных полей. Тогда боту придется угадывать правильное поле и чем больше полей-призраков, тем меньше у него шансов.

Больше крови!

Чтобы окончательно посадить спамеров на бобы, можно генерировать уникальные имена полей и расположение полей-призраков для каждой сессии.

Человеческая сторона.

Замечательность такого подхода, на мой взгляд, состоит в том, что человек даже не заметит присутствия антиспама, если его, конечно, не понесет читать исходный код страницы.

Реализация.

Подход, связанный с переименованием полей используется в моде для phpBB2 Stop Advertisement Bots v.3, написанном Xpert‘ом. Этот мод отлично защищал от спама конференцию на phpBBGuru.net до ее перехода на phpBB3 и защищает многие другие вплоть до сего момента.

А вот полей-призраков я еще нигде не встречал. Возможно, прохлопал ушами, но до сих пор я нигде ничего похожего не видел.

Чем живет лиру?

Идея назревала довольно давно. Ведь если вдуматься, подавляющее большинство блоггеров не слышали ни о блогуне, ни о монетизации как таковой, и пишут-то они в основном личные заметки. За счет чего же они становятся популярны и читаемы? Жутко любопытно.

Посему в качестве эксперимента я решил заняться быдлоблоггингом. Без монетизации, уникального контента и авторских статей. Для этих целей я завел быдлоблог на быдлосервисе и написал первый быдлопост. Поначалу хотел делать быдлоблог на ЖЖ, но быстро передумал, вспомнив, насколько у них все убого и неудобно. Я же не полное быдло, так ведь? ;) Что из этого выйдет - фиг знает. Но есть шанс, что я еще как следует повеселюсь, наблюдая развитие процесса.

Планы:

  1. Взять несколько уроков дизайна. (Все-таки надо было на ЖЖ делать дневник, там я смог бы учиться у Великого Тёмы).
  2. Зафрендить несколько сотен других быдлоблоггеров.
  3. Подробно описывать быдложизнь.
  4. Делиться быдлопланами.
  5. И все такое.

PS. Не принимайте слишком всерьез ;)

PPS. И не парьтесь вы с финансовым кризисом. Просто вспомните, где мы были 10 лет назад и работайте, чтобы снова там не оказаться. Тогда все образуется.

UPD

Не прошло и получаса, как пригласили в какое-то быдлосообщество. Круто. Я знаменит!

Год кончился… Да здравствует новый год! (Итоги 2008 года).

До конца года осталось 7 часов, пришло время подводить итоги.

Вспомнить есть что, как в реальной жизни, так и в виртуальной. Год назад я был совсем другим человеком.

И так, за этот год я успел:

  1. Успешно закончить школу (Привет, ФМШ! Ты - самая счастливая эпоха в моей жизни! Кто знает, тот поймет).

  2. Успешно поступить в университет, и даже на тот факультет, на который хотел. Эти два достижения, пожалуй, самые важные.

  3. Приобрести чудесную гитару B. C. Rich Masterpiece. Пожалуй, самое удачное вложение денег за этот год, если измерять по количеству приятных часов. Позавчера, кстати, в качестве подарка самому себе купил новую педальку к ней.

  4. Очередной раз съездить в ЛШЮП, теперь уже в качестве подмастерья. Незабываемый опыт, хорошие друзья и масса позитива.

  5. Создать этот блог.

  6. Придумать и реализовать несколько проектов. В частности, Google Cache Browser, Anything 2 Zebrum, RegSubmitter, Йа.Словарь и еще вагон с тележкой более мелких идей.

  7. Провести эксперимент по тому, какие ссылки индексируют разные поисковики (раз, два, три, четыре).

  8. ????????

  9. PROFIT!!!

    Большую часть заработка в этом году мне принес фриланс, но это и не удивительно - ничем другим я всерьез и не занимался.

  10. И многое, многое другое.

Что я хочу успеть в следующем году? Многое:

  1. Успешно сдать две сессии и быть готовым к третьей.
  2. Собрать свою группу и выйти на сцену. Будет одной дерьмовой группой больше.
  3. Захватить мировое господство.
  4. Узнать то, чего не узнал за этот год.
  5. Написать много-много интересных статей в этот блог.
  6. Придумать и реализовать еще больше идей, чем в этом году.
  7. ??????
  8. PROFIT

В общем, с Новым Годом всех! Успехов, радости и душевного равновесия в следующем году!

RegSubmitter вышел в продажу!

Спустя месяц напряженной работы, он наконец увидел свет!

Для тех, кто не читал анонса сообщаю: RegSubmitter - это авторегистратор аккаунтов в 13 сервисах социальных закладок. Программа написана на PHP5 и будет отлично работать практически на любом хостинге с поддержкой curl.

Для более подробного ознакомления вы можете посетить сайт RegSubmitter, а так же пощупать демо-версию.

Стоить программа будет $25, но по случаю праздников и начала продаж до 3 января цена будет вдвое меньше - **$12**.

Так что, пока не поздно - налетай ;)

PS. Надо же было такому случиться - только я начал готовить к релизу RegSubmitter, как оказалось, что Тормоз собрался продать Закладочник.

PPS. Нашел сайт, где имеются всякие футболки для тех, кто занимается заработком через интернет. Порадовать себя новой футболкой, что ли? Хотя у меня их и так до фига )).

Список датацентров Google 24.12.2008

Для собственных нужд скомпоновал список рабочих ДЦ Гугля, возможно коме-то пригодится. Всего в списке 55 ip адреса, возможно есть и еще :)

Собственно, список:

209.85.129.104
209.85.135.102
209.85.135.19
209.85.135.99
209.85.143.184
216.239.59.115
216.239.59.147
216.239.59.17
216.239.59.19
216.239.59.99
64.233.161.102
64.233.161.147
64.233.161.184
64.233.161.19
64.233.161.81
64.233.161.84
64.233.161.99
64.233.179.184
64.233.179.19
64.233.179.99
64.233.183.17
64.233.187.91
64.233.189.161
64.233.189.83
66.102.1.104
66.102.1.115
66.102.1.184
66.102.1.44
66.102.1.84
66.102.9.102
66.102.9.104
66.102.9.115
66.102.9.147
66.102.9.99
66.249.89.184
66.249.91.81
66.249.91.84
66.249.93.44
66.249.93.81
66.249.93.91
66.249.93.99
72.14.203.99
72.14.205.100
72.14.205.81
72.14.207.100
72.14.207.81
72.14.207.99
72.14.221.101
72.14.221.184
72.14.221.84
72.14.221.99
72.14.235.102
72.14.235.83
72.14.235.84
72.14.253.104

Удачи ;)

PHP.net уже готов к новому году. А вы?

Feature image

Только что заметил, что у них обновился логотип (тот, что в верхнем левом углу).

Не я один к новому году решил обновить дизайн.

А Гугль, кстати, уже давно праздничную картинку повесил :)

Google Holiday Doodle

Так что еще раз всех с наступающим.

PS. Блин, всего-то неделя осталась до нового года… Даже не верится как-то.

Обновление блога - 2

Давно планировал как следует заняться блогом, но до сих пор находились причины отложить обновление на завтра. В субботу такие причины кончились - теперь блог работает на Drupal 6 :)

Кроме того, было сделано множество мелких доработок и, самое главное, слегка изменен уже поднадоевций дизан. За окном суровая и непредсказуемая сибирская зима, так что и раскраска блога стала “зимней”.

Из наиболее значительных изменений - из формы комментирования исчезла капча, будучи замененной ее скрытой JS версией, а сама форма работает на AJAX (спасибо автору блога DrupalDance). Так же была убрана дурацкая надпись “не проверенно” от ников незарегистрированных комментаторов. Старый невнятный блок последних комментариев тоже стал чуть более приличным, что тоже гуд.

Всех с наступающим Новым Годом!

Мысли по поводу уникального контента. Практическая реализация.

Некоторое время назад я изложил идею о том, как можно получать хороший, уникальный контент в больших количествах. А теперь наконец дошли руки до реализации.

Google Cache Dumper парсит выдачу гугла по запросу site:example.com и пытается выкачать из кеша гугла все найденные страницы. На вход принимаются домен, количество страниц выдачи, подлежащих парсингу и задержка между запросами. На выходе - папка со кешированными страницами.

На данный момент существует только одна проблема - через некоторое время гугль палит, что его пытаются доить, и перестает отдавать требуемые страницы. Как с этим бороться я пока не придумал.

Тем не менее, желающие могут скачать и пользоваться: gcache.php.txt

Кроме того, в комментариях к тому посту была высказана идея парсить вебархив. В принципе здесь даже проще, чем с гуглом, зато существует проблема найти сайт с достаточно большим количеством сохраненных страниц. Все проверенные мною домены содержали не более 10 страниц, что явно недостаточно. Так что если кто предложет эффективный способ - с меня реализация в виде кода :)

UDP

Появилась идея отправлять запросы разным датацентрам по очереди. Надо будет попробовать.

Mozilla Firefox и докачка файлов.

Ни для кого не секрет, что родной менеджер закачек в Firefox, мягко говоря, слабоват. Однако, иногда нет выбора и приходится пользоваться им, например, если для скачивания файла требуется хитрая авторизация. И порою случаются ситуации, когда, скачав добрую половину файла, закачка прерывается из-за обрыва связи или еще чего-нибудь. Как в таком случае быть? Начинать закачку по новой, тратя кучу времени и трафика?

Оказывается, выход есть. Единственное требование, чтобы сервер, откуда качаете, поддерживал докачку файлов. И так:

  1. Заходим в папку, куда мы хотели сохранить файл.
  2. Находим в ней файл с именем имя_файла.part и переименовываем его во что-нибудь. Например, имя_файла.part.bak.
  3. Начинаем закачку заново, с нуля. Достаточно, чтобы скачалась пара десятков килобайт, после чего ставим закачку на паузу.
  4. Переименовываем файл имя_файла.part.bakобратно в *имя_файла.part__,*заменяя вновь созданный при повторном старте закачки. (Здесь предполагается, что при второй попытке мы сохранили файл под тем же именем.)
  5. Возобновляем закачку.

В результате вышеописанных манипуляций закачка должна продолжиться с того места, где она оборвалась.

Примечание: этот способ так же действует в случае, если старая ссылка для закачки истекла или мы решили качать с другого зеркала. Тогда надо на третьемшаге начать закачку по новому адресу и все.

PS. Закончилась эстафета “Палю тему”, в которой я принимал участие. Тем было спалено немного, но поводы для размышления есть.