Posts Tagged ‘разработка’

Вышел YUI 2.4.0

Posted in Анонсы on декабря 5, 2007 by korchasa – Be the first to comment

Нежданно-негаданно вышел новый релиз YUI 2.4.0. Нежданно, потому что я за ним перестал следить сразу после превращения YUI.Ext в Ext JS. А обратил внимание на эту новость из-за некоторых “вкусных” фич, которые появились в новой версии. Но об этом позже, а пока список нововведений:

Доступ к DOM-элементам

Доступ к DOM-элементам теперь стал похож на JQuery. Поддерживаются три типа операций:

Выборка (query)

var links = YAHOO.util.Selector.query('ul[class^=list] li:first-child a:not([href=#])');

Вернет все ссылки, у которых хреф не #, из первого элемента списка, класс которого начинается с “list”.

Фильтр (filter)

var nodes = document.getElementsByTagName('li');
nodes = YAHOO.util.Selector.filter(nodes, '.selected');

Вернет все элементы с классом “selected”, из nodes.

Проверка (test)

var nodes = document.getElementsByTagName('li');
var is_selected_list_items_exist = YAHOO.util.Selector.test(nodes, '.selected');

Вернет true, если есть li-элементы с классом selected, ну и false в противном случае.

Подкачка скриптов и CSS-файлов

Теперь YAHOO.util.Get умеет подкачивать скрипты (YAHOO.util.Get.script()) и CSS-файлы(YAHOO.util.Get.css()) после загрузки страницы. Соответственно если вам скрипты нужны не каждый раз, то можно их грузить по обстановке, за что вам пользователь и сервер спасибо скажут.

Профайлер

Ура! Даешь много данных хороших и разных!
*шепотом: А мы все равно будем использовать firebug…*

JSON-компонент

Главная фича – умеет парсить json, и соответственно контролировать его правильность:

try {
var prod = YAHOO.lang.JSON.parse(jsonString);
} catch (e) {
alert("Invalid product data");
}

Самое вкусное – напоследок…

Графики и диаграммы

Вроде бы эта штука существовала отдельно и раньше, хотя с mootools путать. Теперь же есть в самом YUI, и очень даже ничего. Работает на Flash’е( версия 9.0.45), поэтому гладка и анимирована.

  • виды нграфиков: обычные координатные графики(точками и линиями), бары, пироги, а так же их группы (серии)
  • формат данных – объект YAHOO.util.DataSource, который можно получать откуда душе угодно. По ним, кстати, и таблицы строить удобно и легко, следовательно смена вида таблица/график по кнопке, делается за несколько минут
  • умеет перерисовываться по времени
  • умеет рисовать легенду

Из остального – как обычно потрясающая документация. За одни только cheatsheet’ы на каждый раздел хочется пожать руку и угостить компотом.

Строгая типизация в PHP

Posted in Анонсы on ноября 23, 2007 by korchasa – Be the first to comment

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

Специально для таких любителей сотворить геморрой на пустом месте (а скорее не себе, а своему подчинённому), есть PECL’овское расширение SPL_Types, которое вводит строгую типизацию. Пример кода можно найти тут.

Вкратце:

getMessage();
}

Документирование JavaScript. JSDoc

Posted in Анонсы on ноября 22, 2007 by korchasa – Be the first to comment

Спасибо, Idler’у подкинул ссылку на генератор документации для JavaScript – JSDoc.

  • умеет генерировать HTML (вот такой), XML и XMI (например для Umbrello).
  • резок, как понос, ибо на Perl’е написан
  • поддерживает следующие Doc-кострукции:
    • @param
    • @argument
    • @return
    • @returns
    • @author
    • @deprecated
    • @see (связи с с методами, классами обрабатываются)
    • @version
    • @requires
    • @throws
    • @exception
    • @link
    • @fileoverview
    • @class
    • @constructor
    • @type
    • @extends
    • @private
    • @final
    • @member
    • @ignore
    • @base
    • @addon
    • @exec

Даешь документацию всего JS-кода!

UPDATE: Как оказалось JSDoc’и прекрасно понимает JSEclipse.

Враг не пройдет. Как остановить спам боты.

Posted in Статьи on июня 6, 2007 by korchasa – 7 Comments

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

Защита от ботов, ориентированных на CMS, и названия полей

Тут все относительно просто. Достаточно выделиться из серой массы, и количество ботов снижается почти до нуля. Пример: на странице регистрации можно присваивать id-шникам input’ов случайные значения, подписи к ним выводить с помощью JavaScript, и между некоторыми вставлять поддельные input’ы. Дополнительно можно проверять время заполнения формы, и нажатие клавиш.

Защита от ботов, которых пишут “под вас”

Вот несколько способов пришедших на ум.

Различение формы предметов, и их цвета

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

Плюсы:
  • простота реализации
  • простота прохождения людьми
Минусы:
  • узкий словарь (основных цветов и форм мало, чтобы предотвратить брутфорс)
Разбор сложных образов

Указать пол человека, изображенного на фотографии.

Плюсы:
  • вряд ли боты в скором времени станут такими умными
  • простота реализации самого механизма выбора
Минусы:
  • тяжело составить такой словарь

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

Конструирование сложных образов из кусков

Собирание пазла.

Плюсы:
  • очень широкий словарь (результатом конструирования может быть что угодно).
  • тяжесть брутфорса (6 кусков – 720 вариантов)
  • возможность увеличить защиту от брутфорса, если пересылать изменения (куда какой кусок положили) на каждом шаге, а не результат
Минусы:
  • пока не придумал ничего, кроме необходимости реализации самого механизма конструирования

Заключение:

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