<rmcreative>

RSS
  1. Steve Souders об особенностях клиентской оптимизации

    15 февраля 2010

    Steve Souders поделился сразу несколькими занятными фактами об особенностях современных и не очень браузеров.

    IE и независимые от протокола URI

    Internet Explorer 7 и 8 при использовании URI вида "//rmcreative.ru/css/main.css" будут загружать файл два раза. При явном указании http, https или использовании относительных URI этого не происходит.

    document.write и FireFox

    При загрузке скриптов через document.write в FF (в том числе и в 3.6) блокируются остальные загрузки.

    IE грузит стили с media="print"

    Причём делает это даже когда мы ничего не печатаем. При этом до полной загрузке блокируется рендеринг страницы.

    Подключаем стили через JavaScript

    Можно избежать блокировки, используя JavaScript:

    var link = document.createElement('link');
    link.rel = 'stylesheet';
    link.type = 'text/css';
    link.href = '/main.css';
    document.getElementsByTagName('head')[0].appendChild(link);

    Chrome, Safari и загрузка фоновых изображений

    Перечисленные браузеры начинают загружать фоновые изображения до подгрузки CSS. Таким образом, изображения будут загружены даже если в CSS они переопределены.

    Источники:

    4 комментария
  2. MVC: Front Controller, Controller и Router

    12 февраля 2010

    В прошлый раз я описал построение простейшего, но довольно функционального компонента View. В этот раз займёмся Front Controller, Controller и Router. Код, приведённый ниже может не запускаться, не является безопасным, но объясняет общие принципы работы большинства MVC-фреймворков.

    Читаем

    27 комментариев
  3. Форматирование кода в IDE

    11 февраля 2010

    Год назад Zend Studio выгодно выделялась наличием отлично настраиваемого форматтера кода. Остальные популярные IDE (за исключением, может PhpEd) такой замечательной возможности не имели, либо настроек было по минимуму.

    Сейчас ситуация меняется. NetBeans в довольно хорошем темпе обзаводится приятным форматтером:

    Всё это можно попробовать в свежей ночной сборке.

    В Web IDE форматтер тоже вроде имеется, но настраивать его пока возможности нет. К релизу вроде обещали сделать настройки.

    3 комментария
  4. Plupload

    10 февраля 2010

    Позволяет загружать файлы через HTML5 Gears, Silverlight, Flash, BrowserPlus или обычные формы. Поддерживаются такие удобные штуки, как прогресс-бар и нарезка картинок на стороне клиента. Распространяется по GPLv2.

    При инициализации можно указать способ загрузки файлов, например:

    runtimes : 'gears,html5,flash',

    Если у нас нет gears, будет использоваться html5. Если нет и его — flash.

    Пользуемся

    Примеры работы

    6 комментариев
  5. HipHop

    3 февраля 2010

    Facebook, как вы уже могли слышать, выпустил транслятор PHP в код C++, названный HipHop.

    Отмечу основные моменты

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

    • HipHop уже используется в Facebook по полной программе.

    • PHP → С++ → GCC → бинарник. Делать это надо каждый раз при развёртывании кода.

    • Бинарник может работать как сервер (libevent), а также запускаться из командной строки.

    • Веб сервер = один процесс, много потоков.

    • Не использует Zend Engine. Использует написанный на C++ почти совместимый с PHP 5.2 фреймворк.

    • Используются расширения на C++ (стандартные написаны C). Сейчас доступны те, что использует Facebook. Остальные будьте готовы переписывать сами. Все расширения на C++ thread-safe.

    • Некоторые магические методы поддерживаются, но не работают быстрее.

    Не поддерживаются

    • Windows.

    • PHP 5.3 (поддержка планируется).

    • eval().

    • create_function()

    • preg_replace с модификатором /e.

    • function_exists() до объявления функции.

    Поддерживаемый динамический функционал

    • Динамический вызов функций, в том числе call_user_func().

    • Динамические методы и свойства объектов.

    • Динамические переменные, extract().

    • Динамический include().

    • Переопределение функций, классов, констант.

    • __toString(), __get(), __set(), __call().

    Источники информации:

    10 комментариев
  6. jQuery source viewer

    1 февраля 2010

    Довольно интересный проект, позволяющий очень и очень удобно изучать код jQuery. Вводим название метода и получаем подсвеченный исходный код с навигацией к другим методам. Всё как в хороших IDE, только намного удобнее.

    Пользуемся

    Кстати, вышла jQuery 1.4.1. Стоит обновиться.

    2 комментария
  7. В конце марта 2010 г. в Санкт-Петербурге пройдет первая в России конференция по Zend Framework

    1 февраля 2010

    http://lh5.ggpht.com/_LTrMB58vSzk/S2XRVWUWqMI/AAAAAAAAABw/ItmlHrVIMVs/s800/205x175.png

    На днях закончился прием тезисов по планируемым докладам. Примечательно, что в состав докладчиков вошли ведущие участники русскоязычного сообщества ZF, опытнейшие специалисты и лично один из создателей фрэймворка!

    Участие в конференции планируется сделать бесплатным или за небольшую стоимость. На данный момент уже открыта предварительная регистрация на конференцию! Для решения ряда вопросов организаторам очень важно сейчас понять приблизительное количество человек, которые смогут посетить конференцию или каким-то иным образом принять участие в ней.

    Каждый предстоящий доклад возможно обсудить на форуме ZF-сообщества. Ваше мнение очень важно для авторов!

    Планируемые доклады

    Александр Веремьев (Zend Technologies, команда Zend Framework Core).

    Александр Стешенко (Norada Corporation, PHP-разработчик).

    Смело обсуждайте доклады и регистрируйтесь!

    За последними новостями можно следить здесь:

    К участию также приглашаются информационные и финансовые спонсоры.

    Комментировать
  8. Друпалогия, пилотный номер

    28 января 2010

    Анонс уже был сделан на хабре, но считаю, что ради такого события можно и повториться. Итак, вышел первый пилотный номер электронного журнала о Drupal. Первые блины обычно бывают комом, но в этот раз всё получилось очень и очень достойно.

    Читаем

    Комментировать
  9. DIRECTORY_SEPARATOR в PHP

    26 января 2010

    В PHP есть предопределённая константа DIRECTORY_SEPARATOR, содержащая разделитель пути. Для Windows это «\», для Linux и остальных — «/».

    Так как Windows понимает оба разделителя, достаточно использовать в коде разделитель Linux вместо константы.

    Тем не менее, DIRECTORY_SEPARATOR полезен. Все функции, отдающие путь (вроде realpath), отдают его с специфичными для ОС разделителями. Чтобы разбить такой путь на составляющие как раз удобно использовать константу:

    $segments = explode(DIRECTORY_SEPARATOR, realpath(__FILE__));
    8 комментариев
  10. Использование Drupal через bootstrap

    25 января 2010

    Drupal позволяет поработать со своим API из внешнего скрипта. Ну или почти внешнего.

    Покажу на примере, как можно организовать импорт данных в Drupal.

    Читаем

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