Archive for October, 2007
Боремся со спамом с jQuery
Я терпеть не могу спам. И очень обрадовался, когда на днях увидел один интересный скрипт на jQuery, который усложняет жизнь спам-ботам, которые постят рекламу в комментах.
Идея простая - есть обычная HTML форма, и чтобы её отправить, нужно перетащить её мышкой в специальный регион. Спам-боты обычно не умеют работать с джаваскриптом, поэтому можно быть уверенным, что писать комментарии будут настоящие люди. Может конечно это и не даст 100% гарантии, может быть спам-боты уже настолько умные, что джаваскрипт для них не помеха (я никогда не видел ни одного), да и даже сам автор скрипта утверждает, что это всего лишь эксперимент, цель которого - вдохновить борцов со спамом. Тем не менее, идея очень интересная и оригинальная.
Посмотреть скрипт в действии можно тут.
Кто знает другие интересные методы борьбы со спамом? Я установил Akismet для Wordpress - пока справляется. Пишите в комментах интересные ссылки.
8 commentsКросс доменный Аякс
Вы когда нибудь пытались делать Ajax запрос на сервер с другим доменом? Я - да. Не получается. Из соображений безопасности, Аякс запросы работают только если домен сайта на котором находится юзер совпадает с доменом сервера, куда сделан запрос. Можно поспорить, что это совсем не улучшает безопасность, но не в этом дело. Кросс-доменные запросы иногда нужны и сейчас я покажу как их делать.
Можно написать весь код самому и использовать Cross-Domain Proxy Pattern. Но есть способ попроще. Thierry Schellenbach написал плагин к джаваскрипт библиотеке Prototype и теперь можно сделать кросс-сайтовый запрос за пару минут. Для этого нужно:
- скачать Prototype 1.5.0 (я не стал проверять более новые версии)
- скачать transport.js
Подгружаем скрипты:
-
<script type="text/javascript" src="http://www.foobar.com/prototype.js">
-
<script type="text/javascript" src="http://www.foobar.com/transport.js">
Теперь используем прототайповский класс Ajax, к которому добавились некоторые функции:
-
new Ajax.Request('http://www.other-domain.com/',
-
{
-
method: 'GET',
-
crossSite: true,
-
parameters: Form.serialize(obj),
-
onLoading: function()
-
{
-
-
},
-
onSuccess: function(transport)
-
{
-
-
},
-
onFailure: function(transport)
-
{
-
-
}
-
});
Обратите внимание на crossSite: true. Этот параметр активирует кросс-доменные возможности. Ну и стандартные callbacks:
- onLoading: тут можно показывать индикатор загрузки.
- onSuccess: тут можно показать юзеру результат запроса.
- onFailure: а тут можно вывести сообщение на экран в случае ошибки.
Новая работа на Qype.com
Вот я и вернулся из путешествия по Германии. Поиск работы завершился успешно. Теперь я работаю на Qype.com и занимаюсь разработкой вэб портала на Ruby on Rails. Через неделю переезжаю в Гамбург, поэтому если кто нибудь из читателей живёт в Гамбурге и может помочь с поиском жилья - просьба написать в комментах.
Ну а вообще, я очень рад как всё сложилось. Буду работать с любимым фрэймворком, в отличой комманде и ещё и рабочий язык на фирме - английский, что я давно искал.
На следующей неделе на Ajax Russia опять появятся новости, а через неделю у меня переезд, так что снова могу пропасть. В будущем буду выкладывать побольше новостей и туториалов по рельсам, но и про остальные технологии буду стараться не забывать.
4 commentsТипа в отпуске
На этой неделе, скорее всего, не будет никаких новостей. Я в поиске новой работы, есть много интересных предложений и эту неделю придётся поездить по Германии на разные интервью. Сейчас уезжаю в Stuttgart, потом еду в München, и в конце недели в Berlin и Hamburg. Пока что предлагают следующие должности: PHP developer, Java developer, Ruby on Rails developer. Очень хочется работать на Rails.

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