четверг, 1 марта 2012 г.

Записки курильщика

  Что то последние года два как то полюбил ночью выйти покурить. Много интересного стал замечать вокруг,вот решил и с вами поделиться. А суть моей заметки проста: просто обратил внимание на то что происходит вокруг зимой и летом.
   Итак: смеркалось)
10 часов вечера-лето: молодеж приземлилась на скамейке что возле подъезда и начала распивать пиво.
10 часов вечера-зима: с соседних улиц слышно машины(довольно редко) на улице встречаются редкие люди
11 часов вечера-лето: на улице все ещё шумно, молодеж все ещё допивает пиво, с соседних улиц доносится рев моторов псевдо стритрейсеров на девятках и тому подобных машинах
11 часов вечера-зима:редкий проходимец идет домой прикрыв нос варежкой, от холода воют собаки
1 час ночи-лето: молодеж допила пиво и двинула дальше, гонки на улицах набирают нешуточные обороты и к девяткам присоединяются мотоциклисты, под болконом на лавочке остановилась влюбленая пара(по крайней мере так выглядет)
1 час ночи-зима: собаки уже устали выть, тишина
3 часа ночи-лето: гонщики либо  накидались и  уехали спать либо просто устали, на улице тишина
3 часа ночи-зима: мертвая тишина
5 часов утра-лето: благодать самые первые лучи солнца гладаят и склоняют ко сну
5 часов утра-зима: в доме напротив загорается свет в квартирах- проснулись автомобилисты
6 часов утра- лето: проснулся дворник и уже подметает двор(не люблю этот звук шварк,шварк,шварк хррык- это собраную метлой кучу дврник на лопату собрал), проснулись птички
6 часов утра-зима: сонные люди выходят и начинают прогревать машину(кто просто запускает двигатель и идет дальше спать а кто остается в машине)
7 часов утра-лето: солнышко уже хорошо пригревает, помимо птичек поют коты неподилившие пространство
7 часов утра-зима:начинается зимняя движуха,школники-в школу, студенты-в вуз, люди-на работу итд
   А дальше... А дальше все как обычно.. тут уже сами смотрите. Пожалуй надо добавить что живу я в центре. на этом все

Drupal и jquery

Интересные вещи происходят я смотрю. Вот казалось бы все должно быть просто, но это только на первый взгляд. Итак тема дня Друпал и JQuery
Была поставлена задача сделать что то вроде закладок у нод для конкретного типа материала + интеграция списка закладок на страницу пользователя. Тут проблем никаких: модуль flag и маленько его настроить. А вот дальше уже пляски с бубном. Есть у этого модуля такая красивость переключение флага с помощью яваскрипта, то есть в настройках для конкретного флага тыкаем на js link и спим спокойно. Работать будет так: пользователь заходит на страницу,видит ссылку флага,тыкает на неё,отрабатывает скрипт,и содержимое дива с флагом меняется на новую ссылку(приходит новый html код). Все просто,но не у меня. При детальном изучении выяснил что возвращается все правильно, но возникает ошибка parsererror.
Всем,кто работает с друпалом известно, что последний дружит с jquery. Ну дружит это громко сказано, умеет общаться. И то только с версиями jquery ниже 1.3. А там где мне нужно уже 1.5 (и используется данная версия из-за возможности использования jqueryUI).
Почему же 6-ой друпал не любит новый jquery? Тут надо углубиться в код и первого объекта исследования и второго. Итак в коде функции друпала drupal_to_js, подготавливающей данные для передачи в ответе на запрос яваскрипта есть такая строка(для переменных типа string)(common.inc строка 2499):
return '"'. str_replace(array("\r", "\n", "<", ">", "&"),
                              array('\r', '\n', '\x3c', '\x3e', '\x26'),
                              addslashes($var)) .'"';
здесь идет замена некоторых символов, ну и пусть идет. Какая разница что будет в json-строке? а вот есть!
В старых версиях jquery формат json никак не парсился толком да и не проверялся особо а вот начиная от версий 1.3 и выше появляется такая функция как parseJSON в которой в дев версии(в сжатой все нечитабельно,думаю знаете) присутствует вот такой интересный кусочек кода(jquery.js v1.5 строка 535):
if ( rvalidchars.test(data.replace(rvalidescape, "@")
            .replace(rvalidtokens, "]")
            .replace(rvalidbraces, "")) ) {

            // Try to use the native JSON parser first
            return window.JSON && window.JSON.parse ?
                window.JSON.parse( data ) :
                (new Function("return " + data))();

        } else {
            jQuery.error( "Invalid JSON: " + data );
        }
красивый но коварный, для ясности надо добавить сюда вот что:
rvalidchars = /^[\],:{}\s]*$/,
    rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
    rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
    rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g
и как?)
Вывод напрашивается сам: появился строгий парсер,очень строгий я бы сказал.. Как с этим быть решайте сами: либо забыть про новый jquery либо забыть про 6-ой друпал,либо форкнуть 6-ой друпал (кстати надо седьмой изучить на предмет этой фичи,хотя какой фичи,она не задокументирована,значит баг) либо писать свой колбэк и кормить скрипты валидными JSON-данными, выбор ваш.

среда, 29 февраля 2012 г.

Ололо или бехжалостные люди

Почему есть люди у которых нет жалости? =) Будто у них самих не было трудных положений.. Да ну и хер с ними,не должно же мое настроение из-за них портится,закроем глаза перелистнем страничку и  увидим... что нибудь да увидим! А то что такие люди творят - к ним ещё вернется, я уверен!

Ололо или переехал

Решил отказаться от собственного домена в пользу бесплатного сервиса гугла. Так будет проще