Ajax Russia : Аякс по-русски

Свежие новости из мира IT

Archive for October, 2007

Боремся со спамом с jQuery

No SpamЯ терпеть не могу спам. И очень обрадовался, когда на днях увидел один интересный скрипт на jQuery, который усложняет жизнь спам-ботам, которые постят рекламу в комментах.

Идея простая - есть обычная HTML форма, и чтобы её отправить, нужно перетащить её мышкой в специальный регион. Спам-боты обычно не умеют работать с джаваскриптом, поэтому можно быть уверенным, что писать комментарии будут настоящие люди. Может конечно это и не даст 100% гарантии, может быть спам-боты уже настолько умные, что джаваскрипт для них не помеха (я никогда не видел ни одного), да и даже сам автор скрипта утверждает, что это всего лишь эксперимент, цель которого - вдохновить борцов со спамом. Тем не менее, идея очень интересная и оригинальная.

Посмотреть скрипт в действии можно тут.

Кто знает другие интересные методы борьбы со спамом? Я установил Akismet для Wordpress - пока справляется. Пишите в комментах интересные ссылки.

8 comments

Кросс доменный Аякс

Cross-Domain ajaxВы когда нибудь пытались делать Ajax запрос на сервер с другим доменом? Я - да. Не получается. Из соображений безопасности, Аякс запросы работают только если домен сайта на котором находится юзер совпадает с доменом сервера, куда сделан запрос. Можно поспорить, что это совсем не улучшает безопасность, но не в этом дело. Кросс-доменные запросы иногда нужны и сейчас я покажу как их делать.

Можно написать весь код самому и использовать Cross-Domain Proxy Pattern. Но есть способ попроще. Thierry Schellenbach написал плагин к джаваскрипт библиотеке Prototype и теперь можно сделать кросс-сайтовый запрос за пару минут. Для этого нужно:

Подгружаем скрипты:

JavaScript:
  1. <script type="text/javascript" src="http://www.foobar.com/prototype.js">
  2. <script type="text/javascript" src="http://www.foobar.com/transport.js">

Теперь используем прототайповский класс Ajax, к которому добавились некоторые функции:

JavaScript:
  1. new Ajax.Request('http://www.other-domain.com/',
  2. {
  3.     method: 'GET',
  4.     crossSite: true,
  5.     parameters: Form.serialize(obj),
  6.     onLoading: function()
  7.     {
  8.  
  9.     },
  10.     onSuccess: function(transport)
  11.     {
  12.  
  13.     },
  14.     onFailure: function(transport)
  15.     {
  16.  
  17.     }
  18. });

Обратите внимание на crossSite: true. Этот параметр активирует кросс-доменные возможности. Ну и стандартные callbacks:

  • onLoading: тут можно показывать индикатор загрузки.
  • onSuccess: тут можно показать юзеру результат запроса.
  • onFailure: а тут можно вывести сообщение на экран в случае ошибки.
4 comments

Новая работа на Qype.com

QypeВот я и вернулся из путешествия по Германии. Поиск работы завершился успешно. Теперь я работаю на Qype.com и занимаюсь разработкой вэб портала на Ruby on Rails. Через неделю переезжаю в Гамбург, поэтому если кто нибудь из читателей живёт в Гамбурге и может помочь с поиском жилья - просьба написать в комментах.

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

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

4 comments

Типа в отпуске

На этой неделе, скорее всего, не будет никаких новостей. Я в поиске новой работы, есть много интересных предложений и эту неделю придётся поездить по Германии на разные интервью. Сейчас уезжаю в Stuttgart, потом еду в München, и в конце недели в Berlin и Hamburg. Пока что предлагают следующие должности: PHP developer, Java developer, Ruby on Rails developer. Очень хочется работать на Rails.

HTML for food

3 comments

Prototype 1.6.0 RC1

Prototype LogoСоздатели Prototype решили не отставать от Script.aculo.us и выпустили Release Canditate 1. Два месяца, после выпуска rc0, они трудились, исправляли баги и добавляли новые функции. Изменений, как всегда, немало:

Read more

1 comment

Next Page »