PHP Кэширование картинок часть вторая.

Я уже когда-то писал про мой способ кэшировать картинки, а сейчас заметил, что не выкладывал сюда переделанный варинт,
Идея осталась прежней, только работа с изображениями была отдана либе http://phpthumb.gxdlabs.com/

/**
 * Скрипт iCacher создан что бы облечить кеширование изображений на сайте
 * и организовать лаконичную возможность генерации картинок различных размеров.
 * iCacher является т.н. роутером для http://phpthumb.gxdlabs.com/ и не будет
 * работать правильно при отсутвие данной библиотеки.
 *
 * Для правильно работы подразумевается соблюдение нескольких правил:
 *
 *  1. В папке MAIN_FOLDER хранятся оригинальные изображения.
 *  2. В папку CACHE_FOLDER будут храниться измененные изображения.
 *  3. При обращение к несуществующему файлу из папки CACHE_FOLDER происходит
 *      перенаправление на данный файл*, который в свою очередь создает
 *      необходимый файл либо возвращет 404 ошибку.
 *          * .htaccess rewrite rule:
 *              RewriteRule   ^images_folder/([0-9a-z]+)/([0-9a-z]+)/(.*)$  iCacher.php?param=$1&size=$2&file=$3 [L,QSA]
 *  4. После генерации изображений они должны быть доступны по прямому запросу.
 *  5. Для обновления миниатюр вы должны самостоятельно организовать удаление
 *      созданых скриптом файлов.
 *      В крайнем случае можно использовать GET параметр flush с любым значением.
 *
 *
 *  При необходимости создавайте собственные плагины или ф-ции обработки.
 */

Скрипт лежит на github.com - https://github.com/Rpsl/iCacher/blob/master/iCacher.php

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


cache, htaccess, images, php, картинки      

2011

уволился

Я вам обязательно расскажу, как я ходил 4 месяца по разным собеседованиям, а это признаюсь "супер колосальный" опыт.

Очень много всего интересно произошло за последний год. Я, по привычке, написал огромный пост, но потом решил, что он слишком личный и сделал cmd+a, backspace.

В общем желаю всем удачи и процветания. Зла не держу. Звоните-пишите. :D :D :D


жизнь      

C новым годом

    ''=~(        '(?{'        .('`'        |'%')        .('['        ^'-')
    .('`'        |'!')        .('`'        |',')        .'"'.        '\\$'
    .'=='        .('['        ^'+')        .('`'        |'/')        .('['
    ^'+')        .'||'        .(';'        &'=')        .(';'        &'=')
    .';-'        .'-'.        '\\$'        .'=;'        .('['        ^'(')
    .('['        ^'.')        .('`'        |'"')        .('!'        ^'+')
   .'_\\{'      .'(\\$'      .';=('.      '\\$=|'      ."\|".(      '`'^'.'
  ).(('`')|    '/').').'    .'\\"'.+(    '{'^'[').    ('`'|'"')    .('`'|'/'
 ).('['^'/')  .('['^'/').  ('`'|',').(  '`'|('%')).  '\\".\\"'.(  '['^('(')).
 '\\"'.('['^  '#').'!!--'  .'\\$=.\\"'  .('{'^'[').  ('`'|'/').(  '`'|"\&").(
 '{'^"\[").(  '`'|"\"").(  '`'|"\%").(  '`'|"\%").(  '['^(')')).  '\\").\\"'.
 ('{'^'[').(  '`'|"\/").(  '`'|"\.").(  '{'^"\[").(  '['^"\/").(  '`'|"\(").(
 '`'|"\%").(  '{'^"\[").(  '['^"\,").(  '`'|"\!").(  '`'|"\,").(  '`'|(',')).
 '\\"\\}'.+(  '['^"\+").(  '['^"\)").(  '`'|"\)").(  '`'|"\.").(  '['^('/')).
 '+_,\\",'.(  '{'^('[')).  ('\\$;!').(  '!'^"\+").(  '{'^"\/").(  '`'|"\!").(
 '`'|"\+").(  '`'|"\%").(  '{'^"\[").(  '`'|"\/").(  '`'|"\.").(  '`'|"\%").(
 '{'^"\[").(  '`'|"\$").(  '`'|"\/").(  '['^"\,").(  '`'|('.')).  ','.(('{')^
 '[').("\["^  '+').("\`"|  '!').("\["^  '(').("\["^  '(').("\{"^  '[').("\`"|
 ')').("\["^  '/').("\{"^  '[').("\`"|  '!').("\["^  ')').("\`"|  '/').("\["^
 '.').("\`"|  '.').("\`"|  '$')."\,".(  '!'^('+')).  '\\",_,\\"'  .'!'.("\!"^
 '+').("\!"^  '+').'\\"'.  ('['^',').(  '`'|"\(").(  '`'|"\)").(  '`'|"\,").(
 '`'|('%')).  '++\\$="})'  );$:=('.')^  '~';$~='@'|  '(';$^=')'^  '[';$/='`';

Кстати, это исходный код на perl.


code, perl, source      

Бюджетный NAS

Уже почти месяц у меня дома живет NAS ( Network Attachment Storage ). Желание приобрести подобную игрушку появилось после того, как я устал держать включенным ноутбук для скачивания и транслирования торрентов на телек/playstation. Из первых попыток прощупывания почвы и выяснения оптимальных решений пришел к выводу, что мне нужен ReadyNAS duo от компании Netgear.

Netgear
Кстати весьма странная ценовая политика в готовых решениях. Есть два варианта покупки:

  1. Купить nas без жестких дисков
  2. Купить nas в комплекте с жестким диском.

Так вот, в комплекте с жестким диском на 500гб, средняя цена 10-11 тысяч рублей. Без жесткого диска устройство стоит 8 тысяч рублей, а на оставшиеся две тысячи я докупил жесткий диск на 1500гб. ???. Профит.

Читать далее

hardware, nas, playstation      

seo rewrite rule

Оптимизаторы не знают что такое реврайты и эстетическая красота. А меня жутко бесит, когда в корне сайта лежит 100500 html файлов, которые очень нужны для продвижения.

Приходится постоянно лечить.

RewriteRule   ^([a-z0-9_-]+).html$  static/seo_pages/$1.html [L,QSA]

htaccess, html, seo      

WordPress — gallery shorttag highslide

Два примера, для решения одной и той же задачи.

В первом примере полный идиотизм, во втором хорошее решение. Вот теперь вопрос, почему большая часть всех CMS работает как первый пример. ?
Читать далее


blog, javascript, jquery, php, wordpress      

Разработка под Joomla

joomla.png

Хочешь испытать чувства сходные с разработкой под Joomla ?
Да
Брось говно на вентилятор.


CMS, joomla, php, разработка      

Варианты разные

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

В школе можно учиться на одни пятерки, учить химию и писать сочинения про Онегина, действительно размышляя о мотивах главных героев. А можно обойтись шаблонными фразами, домашку списать и закончить четверть как максимум без троек.
В 18 лет внезапно выяснится, что с полным трояков аттестатом можно поступать хоть в МГУ, всем похуй. Школа она и есть школа, все ее заканчивают.

В институте можно ходить на все лекции и семинары, записаться на три интересных спецсема, выбрать клевого научника и двигать с ним что–нибудь актуальное, тусуясь на конференциях. Можно выебать всех клевых однокурсниц, ездить в Крым автостопом, отвисая с хиппанами в Лисьей Бухте, основать митол–группу и записать альбом.
А можно сидеть в интернетах и контре по ночам, пить пиво с такими же задротами, никуда не ходить, ботать экзамены в последнюю ночь и получать свой законный трояк. «Обзор существующих методов…» сойдет за тему диплома, потерять девственность по пьяни поможет подвернувшаяся каракатица а соседи по общаге сойдут за друзей.

Читать далее

internet, деньги, жизнь      

Кэширование MySQL - MySimpleCache

Собственно возвращаясь к прошлому посту - "PHP Кэширование MySQL, хочу сказать спасибо всем, кто помог советами.

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

Проблем не заметил, все работает хорошо, нагрузка на базу данных значительно упала, а это именно то, что и требовалось.

Проект поселился на github.com, маловероятно, но возможно он еще будет обновляться, так что актуальная версия всегда там.

github.com

Логика работы проста. Что бы закэшировать MySQL запрос, вы подключаете класс и делаете замену стандартных вызовов, на вызовы функций кеширования. Они являются синонимами, а значит вам нужно только перед вызовом дописать название класса.

При вызове mysql_query, скрипт попытается закешировать данный запрос и либо вернет ссылку на закешированный массив, либо вернет ссылку на ресурс.

Все последующие операции будут проверять является ли ссылка ресурсом и уже по обстоятельствам будут либо доставать данные из memcache, либо получать их напрямую.

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


cache, memcache, mysimplecache, mysql, php, sql      

PHP Кеширование Mysql

mysql

UPD: Рабочая версия php MySimpleCache

Други, мне требуется ваша помощь или совет.

Такая ситуация, есть большая куча сайтов, написанных давным-давно. Они представляют из себя кучу файлов, в которых идет в перемешку php/html/sql запросы. Ни о каких современных паттернах программирования там речи нету. Переписывать эти сайты нет ни времени, ни желания, но они ужастно грузят БД.

Задача добавить на эти сайты кеширование sql запросов. Переписывать их и править дело очень не благодарное и потребует кучу времени.

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

mysql_query
mysql_fetch_assoc
mysql_fetch_array
mysql_num_rows
mysql_result
....

Фишка в том, что они должны внутри себя пробовать кешировать запрос и либо возвращать результат запроса, либо возвращать закешированный результат.

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

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


cache, memcache, mysql, php