<rmcreative>

RSS
  1. jQuery mobile 1.0

    20 ноября 2011

    Релизнулся jQuery для мобильных устройств. Основан на jQuery, поэтому синтаксис остался примерно прежним. Основной плюс — кроссплатформенность: можно реализовать приложение в десктопном браузере и затем смело выкатывать на iOS, Android, Windows Phone, Blackberry, Palm и ещё кучу всяких экзотических девайсов.

    В комплекте, помимо фреймворка, идёт неплохой набор из страниц, диалогов, тулбаров, кнопок, списков и всяческих элементов форм. Выглядит и работает достойно, поддерживает скины-темы.

    После минификации и Gzip весит 24 Кб + 7 Кб CSS, что похвально, учитывая постоянно растущий размер самого jQuery.

    Поговаривают, что на Android жутко глючит анимация, но дело это наживное… поправят.

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

    2 комментария
  2. Yii: автозагрузка библиотек, использующих namespace

    3 ноября 2011

    Для загрузки библиотек, использующих namespace по соглашению PSR-0 (например, Zend Framework 2 или Symfony2) необходимо сначала зарегистрировать корень библиотеки как псевдоним пути.

    Для примера попробуем использовать Imagine. Скорируем директорию Imagine в protected/vendors. Ну и само использование:

    Yii::setPathOfAlias('Imagine',Yii::getPathOfAlias('application.vendors.Imagine'));
     
     
    // Далее стандартный код из README Imagine:
    // $imagine = new Imagine\Gd\Imagine();
    // и т.д.

    В приведённом коде имя псевдонима пути должно совпадать с первой частью namespace, которая используется в библиотеке.

    Данное описание со следующим релизом попадёт в официальный гайд.

    8 комментариев
  3. Tabdir

    2 ноября 2011

    tabdir

    Работать с проектами, в которых встречается куча одноимённых фалов, в PhpStorm, IDEA, RubyMine, PyCharm и остальных не очень удобно. На это есть как минимум две причины:

    1. В PhpStorm, если не используются namespace, отключается дополнение кода. Шаг спорный, но логика разработчиков тут ясна. Неизвестно, что хуже: не подсказывать вообще или подсказывать неверно. В PhpStorm 3 дополняет.
    2. При открытии кучи вкладок выходит по 3—4 одноимённых с разными файлами, что несомненно замедляет работу.

    Вторая проблема частично решается настройкой IDE Settings → Editor tabs → Show directory in editor tabs for non-unique filenames, но лишь частично так как показывается только непосредственно директория, в которой находится файл. То есть вот такая ситуация с этой опцией станет только хуже:

    modules/blog/controllers/DefaultController.php
    modules/user/controllers/DefaultController.php
    

    Плагин Tabdir призван решить проблему как надо. Вместо директории, в которой находится файл он показывает различия. Для приведённого выше случая на вкладках будет [blog] DefaultController.php и [user] DefaultController.php.

    Поставить можно из самой IDE перейдя в IDE Settings → Plugins.

    Для корректной работы плагина опцию IDE Settings → Editor tabs → Show directory in editor tabs for non-unique filenames нужно отключить.

    13 комментариев
  4. PHP 5.4 beta 2

    21 октября 2011

    Вышла вторая бета PHP 5.4. RC немного отложили, что, хоть и не является хорошим знаком, но ничего плохого также не означает.

    На этот раз новых возможностей немного, чего нельзя сказать о багфиксах: улучшили ошибку при передаче неправильных аргументов в метод, производительность тернарного оператора, некоторые итераторы из SPL научились работать с потоками по умолчанию.

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

    Большинство изменений — улучшение уже существующего синтаксиса. Да, всё это замечательно, но только ради этого менять стабильное и проведенное на сырое и не обкатанное не стоит. Трэйты — штука действительно занятная, но, сдаётся мне, толку от них будет не сильно много. Заменить те же mixin или behavior они не могут по причине отсутствия состояния. Возможно, будет и вред т.к. фактически трейты поощряют, хоть и умный, но копи-пейст.

    Ещё одним аргументом остаться на 5.3 на какое-то время является отсутствие APC под 5.4. Вероятность, что его доделают до релиза, покачто мала.

    5 комментариев
  5. README и код

    21 октября 2011

    Код или документация? Чем заниматься сначала? Многие полагают, что это вопрос из серии яйцо или курица, однако, в нашем случае на него есть достаточно обоснованный ответ.

    Код без README

    Код без README бесполезен, так как не ясно, какую задачу он решает и как им пользоваться. Даже свой код со временем начинает забываться. При работе в команде без документации совсем плохо. Для открытого кода без README просто нельзя.

    Также, в большинстве случаев отсутствие README — признак того, что код писался либо для себя, что значит решение одной конкретной задачи, либо сходу. Второе хуже, так как даже идеальная реализация неправильной идеи будет работать неправильно.

    README без кода

    README без кода — объект для плодотворного обсуждения и почти документация. В процессе написания README программист сам понимает, что же он всё-таки собирается писать. Это позволяет:

    1. Подумать, не отвлекаясь на реализацию.
    2. Выдать красивый API опять-же не отвлекаясь на какие-то детали реализации.
    3. Выявить epic fail ещё до написания кода.

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

    Документация — это долго и скучно

    К README это не относится. README не описывает в деталях как работает код. В нём должны быть собраны простые вещи, такие:

    1. Короткое описание, что вообще код делает.
    2. Описание того, как его использовать.
    3. Пара примеров.

    Если README пишется в самом начале, пишется он легко, потому как рутина ещё не сбила всё желание. Если же делать наоборот, писать ещё и README будет ну совсем невмоготу.

    13 комментариев
  6. Современный брутфорс и безопасный логин

    2 октября 2011

    Оказывается, любой печатный восьмисимвольный пароль в домашних условиях ломается перебором всех комбинаций за три с половиной дня. Это при том, что хеширован он вполне современным sha256. Всего несколько лет назад на такой перебор могли уйти годы, а то и вся жизнь.

    Что же теперь делать?

    1. Можно и нужно сделать лимит на количество попыток ввода пароля. По достижении лимита можно, например, просить ввести капчу. Однако, если произойдёт «утечка» базы данных, что, конечно, бывает не так часто, но бывает, ограничение не поможет.
    2. Хорошим решением будет в дополнение сделать вычисление хеша более ресурсоёмкой операцией. Пользователь не заметит, а вот для взломщика перебор станет, если не невозможным, то, как минимум, финансово невыгодным. Реализуется, например, при помощи bcrypt. Выглядеть это может примерно как здесь.
    27 комментариев
  7. 2011 Open Source Awards

    2 октября 2011

    Каждый год издательство PACKT проводит голосование за лучшие проекты с открытым исходным кодом. Победители получают денежный приз, который можно потратить, например, на оплату серверов или редизайн. Этот год не исключение.

    Отдать свой голос за любимый проект (к сожалению, Yii среди номинантов в этом году нет) можно на этой странице. Проголосовав вы получаете хоть и небольшой, но шанс выиграть Amazon Kindle.

    Комментировать
  8. traits и члены класса

    1 октября 2011

    traits в PHP 5.4 — довольно занятный механизм. Хотя, приведённое ниже в официальном мануале не показывается (возможно, решили перестраховаться), но работает:

    trait MyTrait
    {
        public $traitVar = 'trait var';
     
        public function test()
        {
            echo $this->traitVar;
            echo $this->classVar;
        }
    }
     
    class MyClass
    {
        private $classVar = 'class var';
        use MyTrait;
    }
     
    $c = new MyClass();
    $c->test();
    echo $c->traitVar;
    28 комментариев
  9. PhpStorm 3.0 EAP 108.1421

    28 сентября 2011

    Вот и вторая сборка EAP 3.0. Кроме исправления небольшого числа зависаний и полузависаний есть и очень вкусная штука: поиск дублирующегося кода. Такого пока нет ни в одной известной мне IDE. Я уже успел поиграться и могу сказать, что штука определённо полезная.

    12 комментариев
  10. PhpStorm 3.0, первый EAP-билд 108.1343

    22 сентября 2011

    Вот и вышел первый EAP-билд долгожданной третьей версии полюбившейся многим разработчикам PHP IDE. Остаток дня был проведён за кодом уже в новом билде. Впечатления положительные. Что же интересного принесла нам свежая EAP? Среди просто нереального количества фиксов болячек разной степени важности стоит выделить следующее.

    Производительность

    Разница действительно очень значительна. Теперь ощущения от работы автодополнения и набора текста в общем очень похожи на работу в «нативных» IDE.

    Также обещают более плавную работу с большими проектами при использовании 32-х битной JRE. Как раз мой случай.

    Похоже, мне повезло. Коллеги жалуются на задержки в автокомплите. Возможно, связано с комплитом из библиотек.

    Интерфейс

    Интерфейс претерпел значительные изменения. Сразу бросаются в глаза похудевшие табы, более компактные и продуманные диалоги. Linux и Mac тоже вниманием не обделили. Маку дали более приятный вид и fullscreen, линуксу drag&drop файлов и кучу фиксов.

    PHP

    • Автоматический перевод курсора в нужное место при записи ассоциативного массива с каждым элементом на новой строке (ура!).
    • Улучшили анализ синтаксиса и подсветку ошибок.
    • Различные улучшения в поддержке XDebug.
    • Добавили тулзу для анализа дампов профайлера XDebug.
    • Поправлены ошибки автоформаттера.
    • Поправили неприятное поведение при вводе кавычек.
    • В настройках можно выбрать конкретный интерпретатор PHP. Зачем, правда, пока не ясно.
    • Улучшили поддержку Twig.
    • Улучшили дополнение по namespace и в замыканиях.
    • Нормально реагирует на ENTER внутри PHPDoc, да и вообще много всего по PHPDoc (ура!)
    • Улучшена поддержка Phing.
    • Поддержка @return $this, @return self и @return static, что очень полезно для дополнения в Yii.

    JavaScript

    • Улучшенная поддержка синтаксиса библиотек.
    • Фиксы форматирования и анализа кода.
    • JSLint / JSHint

    CSS / HTML

    • Автоматический перевод курсора в нужное место при записи CSS лесенкой.
    • Фикснули оптимизацию перекрывающих друг друга записей.
    • Улучшили поддержку HTML5.
    • Поменяли диалог для выбора цвета. Добавили пипетку и возможность вводить цвет в hex. Убрали HSB. Попробую привыкнуть.
    • Zen Coding 0.7

    Разное

    • Добавили возможность исключать директории из заливки по FTP.
    • XSLT debugger

    Так как это первый билд третьей версии, стоит отбэкапить настройки перед обновлением. У меня лично обновилось всё без особых проблем, но мало-ли.

    51 комментарий