<rmcreative>

RSS
  1. Команде переводчиков документации PHP требуется помощь

    1 августа 2011

    Документация PHP на русском несколько лет назад пропала с сайта PHP как неактуальная. Русскоязычная команда переводчиков хочет исправить эту ситуацию, но т.к. объёмы документации по PHP очень внушительны, сделать это небольшой группой сложно.

    Итак, если вы владеете PHP, английским и русским, то у вас есть шанс помочь PHP и войти в историю, заполучив попутно почту с доменом @php.net и OpenSource-лицензию на PhpStorm (конечно, при значительном вкладе в общее дело).

    Подробности описаны в двух постах на хабре:

    2 комментария
  2. Chosen, функциональные и красивые селекты

    28 июля 2011

    Элементы select доставляют достаточно много проблем: начиная с того, что пользоваться ими не очень удобно при большом количестве вариантов и заканчивая тем, что применить к ним стили в старых версиях IE — совершенно неблагодарное занятие.

    Плагин Chosen превращает select-ы в довольно приятные штуки. При этом не нужна ни дополнительная разметка, ни какие-либо значительные телодвижения.

    Пользуемся

    7 комментариев
  3. Symfony 2.0

    28 июля 2011

    Релизнулся Symfony 2.0. От первого Symfony осталось, пожалуй, только название.

    Фреймворк похож на Struts из мира Java, требует PHP 5.3, довольно быстр и очень гибок. Основные интересности:

    • Состоит из отдельных пакетов (Bundle). Собирается и разбирается.
    • Повсеместно использует Dependency Injection. Естественно, с контейнером.
    • Призывает строить приложения с использованием HTTP по полной.
    • Присутствуют веб-инструменты для профайлинга и отладки.
    • Имеются консольные генераторы кода.
    • Документирован.

    Официальный анонс

    9 комментариев
  4. Google Page Speed Service

    28 июля 2011

    Ни для кого не секрет, что скорость загрузки страниц зависит не только от времени генерации страницы, но и от количества и веса картинок, скриптов и файлов стилей. У нас первым серьёзно подошёл к данной проблеме Николай Мациевский, основавший впоследствии компанию WEBO, которая создала продукт WEBO Site SpeedUp. Продукт позволяет автоматически применить довольно большое количество техник клиентской оптимизации. Site SpeedUp ставится на тот же сервер, который генерирует страницы и выступает в роли умного кэша-оптимизатора.

    Google пошёл немного другим путём и, вместо коробочного решения, предоставил оптимизирующий прокси. То есть Google забирает страницы сайта, оптимизирует и раздаёт уже со своего CDN. Пока что доступ можно получить бесплатно по запросу, но сервис после обкатки станет платным.

    Особенности

    • Очень легко конфигурируется (всего одна CNAME) запись для домена.
    • Не работает с HTTPS.
    • Не поддерживает домены без www.
    • Не работает с Flash, потоками аудио и видео.
    • Не работает с файлами более 50 Мб.
    • Не работает с POST более 2 Мб.
    • Не работает без пропускания трафика через сервера Google (кстати, есть ещё mod_pagespeed для Apache).
    • Некоторые страницы можно исключить из обработки.

    Пробуем

    6 комментариев
  5. Запретить выделение текста средствами браузера

    25 июля 2011

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

    Пример:

    Попробуйте выделить и скопировать этот текст.

    Для основных браузеров достаточно следующих стилей:

    -moz-user-select: none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    user-select: none;

    IE приходится обучать отдельно:

    <div unselectable="on">текст</div>

    UPD: допиленное решение mihdan-а.

    14 комментариев
  6. PhpStorm 2.1.2 RC build 107.403

    14 июля 2011

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

    2.1.2 RC build 107.403

    2.1.1 получился немного глючным. По крайней мере, на моих проектах ему плохело и раз в день отваливался autocomplete. 2.1.2 RC пока ведёт себя очень прилично: ничего не отваливается, работает как часы. Оно и понятно: поработали над ошибками очень продуктивно.

    Билды, о которых я не писал

    21 комментарий
  7. Google+

    11 июля 2011

    Уже пару-тройку дней пробую Google+. В принципе, пока ничего революционного в плане возможностей там нет, всё это уже было в Facebook. Но! Сделано всё очень качественно, особенно интерфейс circles (это там так группы друзей называются). Им хочется пользоваться ещё и ещё. Пока наиграешься — добавишь всех, кого только можно и даже немного больше. Остальные страницы тоже интересные, но circles — это нечто.

    Всем дизайнерам и юзабилитистам рекомендуется к изучению.

    49 комментариев
  8. urldecode и кодировки

    9 июля 2011

    Сегодня неожиданно много времени провёл за изучением одного из репортов в трекере Yii. Первопричина оказалась совсем не той и крылась, как это часто бывает, в несоблюдении стандартов. Вообще тонкости две:

    1. PHP-шный urldecode работает напрямую с октетами (теми, что %AB), так что интерпретация строки зависит от кодировки скрипта. В случае Yii это UTF-8.

    2. Хоть RFC 3986 в районе 16-ой страницы и говорит нам, что «data should first be encoded as octets according to the UTF-8 character encoding», но всё-же достаточно большое количество ПО использует другие кодировки. Чаще всего это ISO-8859-1.

    То есть после декодирования мы можем получить либо UTF-8, либо что-то ещё. Это ещё скорее всего будет ISO-8859-1.

    Ну и решение — свой urldecode:

    /**
     * Improved variant of urldecode.
     * Properly decodes both UTF-8 and ISO-8859-1 encoded URIs.
     *
     * @param string $str encoded string
     * @return string decoded string
     */
    private function urldecode($str)
    {
        $str = urldecode($str);
     
        // is it UTF-8?
        // http://w3.org/International/questions/qa-forms-utf-8.html
        if(preg_match('%^(?:
           [\x09\x0A\x0D\x20-\x7E]            # ASCII
         | [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte
         | \xE0[\xA0-\xBF][\x80-\xBF]         # excluding overlongs
         | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte
         | \xED[\x80-\x9F][\x80-\xBF]         # excluding surrogates
         | \xF0[\x90-\xBF][\x80-\xBF]{2}      # planes 1-3
         | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
         | \xF4[\x80-\x8F][\x80-\xBF]{2}      # plane 16
        )*$%xs', $str))
        {
            return $str;
        }
        else
        {
            return utf8_encode($str);
        }
    }
    3 комментария
  9. Сравнение популярных PHP-фреймворков

    8 июля 2011

    CMS Magazine опубликовал собранную мной сравнительную табличку по PHP-фреймворкам. Данные очень субъективны и основаны на личном опыте, поэтому ранее я не акцентировал на ней внимания. Если у вас есть уточнения или что-либо кажется вам совсем не верным, напишите об этом в комментариях.

    Рассматриваем

    48 комментариев
  10. PHP 5.4 alpha1

    30 июня 2011

    После долгого безрелизья PHP сдвинулся с мёртвой точки. Команда выпустила вкусную альфа-версию 5.4, которая, кстати, является первой версией, выпущенной согласно releaseprocess RFC:

    А вот типизацию параметров для скалярных типов данных, похоже, выпилили совсем.

    Версия тестовая, так что использовать на production не стоит. О найденных ошибках отписываемся в php-qa@lists.php.net и в багтрекер.

    Да, в следующих альфах должна быть ещё куча вкусностей.

    5 комментариев