Оптимизация изображений

Каждый владелец или создатель сайта хочет чтобы пользователь быстрее получал необходимый контент, на сервер была меньше нагрузка, и расходовалось меньше траффика. Об одном из таких способов я говорил в статье Минификация JS и CSS, а сегодня мы поговорим о красивой составяляющей всех сайтов – изображениях.

Ни для кого не секрет что картинки весят достаточно много, и, не смотря на то что времена сайтов по 100кБ ушли в прошлое, все равно для некоторых сайты которые весят больше 1мБ из-за картинок могут открываться достаточно проблематично. Да и кому нужно расходовать лишний траффик.

Читать далее “Оптимизация изображений”

Микроразметка

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

Но некоторые сайты выделяются многим – от рейтинга, до хлебных крошек и разделов на сайте.

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

Читать далее “Микроразметка”

Редирект на поддомены с помощью .htaccess

Как вы могли заметить – в блоге появилась полноценная мобильная версия.

http://m.phpbl.ru/

Она легкая, простая, но от этого не менее информативная.
А самое главное – она находится на поддомене.

поддомен мобильной версии m.phpbl.ru

О том как сделать простой редирект на поддомены с помощью .htaccess и пойдет речь.

Читать далее “Редирект на поддомены с помощью .htaccess”

Массивы и итераторы (часть 2)

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

Итератор это интерфейс от которого мы наследуемся – вот он.

interface Iterator extends Traversable {
    abstract public mixed current ( void )
    abstract public scalar key ( void )
    abstract public void next ( void )
    abstract public void rewind ( void )
    abstract public boolean valid ( void )
}

Разберемся поподробнее зачем нужна каждый из этих методов.

Читать далее “Массивы и итераторы (часть 2)”

Массивы и итераторы (часть 1)

С массивами в программировании невозможно не столкнуться. Они – огромная и очень полезная часть любого кода.

Сегодня речь пойдет об итераторах.

“Итератор (от англ. iterator) — объект, абстрагирующий за единым интерфейсом доступ к элементам коллекции. Итератор иногда также называют курсором, особенно если речь идет о базе данных. В Обероне он называется также бегуно́к и представлен как тип данных. В простейшем случае итератором в низкоуровневых языках является указатель.”
(c) Wikipedia

То есть итератор представляет из себя список чего либо, и с помощью итератора мы можем проходить по этому списку и выбирать нужные значения.
Он работает немного не так как простые массивы – он просто перемещает указатель и забирает то значение на которое указывает текущий указатель.

Но зачем?

Читать далее “Массивы и итераторы (часть 1)”

Минификация js и css

Небольшая заметка по поводу минификации – что, чем и как.
(немного кода и совсем мало текста)

Сжимаем js/css вместе

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

Читать далее “Минификация js и css”