Будут сравниваться 4 способа сериализации:
Стандартная сериализация serialize JSON msgpack igbinary Кратко об установке Что еще важно отметить Тесты 1. Массив ассоциативный: вложенные массивы и строки 2. Массив числовой: большие массивы целых чисел 3. Массив числовой: большие массивы длинных целых чисел (int64) 4. Массив числовой: большие массивы чисел с плавающей точкой (float) 5. Массив строковый: большие массивы длинных строк Кратко об установке JSON раньше шел в стандартной поставке PHP.
Сделали с дочей мультик из пластилина.
Делается так:
convert -delay 20 -loop 0 *.jpg mygif.gif Вот результат:
Еще полезное:
Сделать из кадров ролик:
convert -delay 20 -loop 0 *.jpg mympg.mpg MOV из gif:
convert mygif.gif mymov.mov Видео на YouTube:
Смотреть на YouTube
По результатам выборки из логов сервера за 1 сутки.
Googlebot — 43 229 запросов YandexDirect — 21 260 Mediapartners-Google — 14 386 Mail.RU_Bot — 13 715 YandexBot — 13 079 AhrefsBot — 11 997 openstat ru/Bot — 2 709 Выводы:
Гугл предсказуемо обошёл всех и вся. Честь и хвала ему.
Удивил Mail.RU, который обошёл Яндекс.
Что касается Яндекса, то очевидно, что приоритет Яндекса — их рекламная сеть. И уже потом поисковые технологии.
Еще раз к вопросу откуда в логах берутся строки вида:
1.1.1.1 - - [19/Jan/2013:07:19:23 +0400] "-" 400 0 "-" "-" При медленном соединении удалось отловить эффект появления таких записей в браузере и увидеть все вживую.
Вот тут видно, как Chrome отправил два запроса, держит соединение открытым, а потом закрывает:
А секундой позже уже загружает то, что его просили.
Успел сделать снимки экрана.
Повторить эксперимент можно либо подключившись к медленному каналу, либо намеренно ограничив скорость соединения на стороне веб-сервера.
Оказывается, узнать, что сайт использует SSL и страница открыта по протоколу https — не настолько тривиальная задача, чтобы решить её с наскока.
Однако, решение оказалось достаточно простое.
Проблема заключается в том, что для определения протокола могут быть использованы переменные:
$_SERVER['HTTPS'] $_SERVER['HTTP_SCHEME'] $_SERVER['HTTP_X_FORWARDED_PROTO'] И косвенно:
$_SERVER['SERVER_PORT'] Но все эти переменные, кроме номера порта, почти наверняка будут отсутствовать.
Определять http-схему, основываясь только на номере порта — приемлемое, но не очень гибкое решение.
Из фотографий или картинок одинакового размера можно сделать мозаику. Получается интересный эффект.
Для этого я написал два bash-скрипта.
Первый уменьшает размеры фотографий, второй делает из миниатюр мозаику.
Скрипт для уменьшения фотографий #!/bin/bash SW=150 SH=150 FROMDIR="fromdir" TODIR="todir" for name in $(ls $FROMDIR); do convert -resize ${SW}x${SH} -strip $FROMDIR/$name $TODIR/$name done Здесь:
SW — ограничение ширины миниатюры; SH — ограничение высоты миниатюры; FROMDIR — каталог, в котором находятся фотографии; TODIR — каталог, в который будут сложены миниатюры.
О том, как установить Redis в качестве сервера на Linux и обращаться к нему через Unix.socket По мотивам куцей доки: http://redis.io/topics/quickstart и http://redis.io/download
От рута делаем:
mkdir /usr/src/redis cd /usr/src/redis wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz tar xzf redis-2.4.4.tar.gz cd redis-2.4.4 make && make test Если тесты прошли нормально (должно быть написано что-то вроде этого: “\o/ All tests passed without errors!"), то двигаемся дальше.
mv ../redis-2.4.4.tar.gz ./redis-2.4.4.tar.gz cp src/redis-server /usr/local/bin/ cp src/redis-cli /usr/local/bin/ mkdir /etc/redis mkdir /var/redis Далее в доке предлагается сделать cp utils/redis_init_script /etc/init.