терапия
Сейчас этот блог в основном про психотерапию.
как правильно
Слушайте меня, я вас научу правильно жить.
психология
Буржуазная лже-наука, пытающаяся выявить закономерности в людях.
практика
Случаи и выводы из психотерапевтической практики.
кино
Фильмы и сериалы.
книги
Это как кино, но только на бумаге.
nutshells
«В двух словах», обо всем.
дорогой дневник
Записи из жизни (скорее всего, не интересные).
беллетристика
Мои литературные произведения и идеи.
духовный рост
Когда физический рост кончается, начинается этот.
дивинация
Как предсказывать будущее.
половой вопрос
Про секс и сексуальность.
заяижопа
Творческий дуэт с моей женой.
магия
«Магическое — другое название психического».
Карл Юнг
игровой дизайн
Раньше я делал игры.
игры
Компьютерные игры.
язык
Слова там всякие.
людишки
Уменьшительно-ласкательно и с любовью.
культ личности
Про великих людей (то есть, в основном про меня).
hwyd
Уникальная Система Прививания Привычек.
буклет
я
идеи
блоги
spectator.ru
дети
wow
вебдев
музыка
контент
программирование
религия
дейтинг
диалоги
яндекс
кулинария
coub
fitness
символы
йога
шаманизм
tiny
ребенок

Определение

22 года назад в категории inglish

Запас провианта, оставленный научной экспедицией в скрытом месте для обратного пути или для других экспедиций (чаще всего о первых арктических экспедициях).

Вот так вот переводится одно хорошее английское слово (думаю, что вы догадались, какое). И почему в словаре нет в качестве перевода тоже хорошего русского слова — «заначка»?..

0

Простое кэширование страниц

22 года назад в категориях технологии php

Простое кэширование страниц. Для чайников. На PHP.

Кэширование — замечательная вещь. Часто (теперь — почти всегда) страницы на сайтах генерятся динамически. Это теперь модно. Однако же — в реальности — почти всегда страница собирается заново гораздо чаще, чем она изменяется. Грубо говоря, мы опубликовали новый документ, и при каждом обращении к нему он заново считывается, скажем, из базы данных, заново прогоняется через шаблон и прочее и прочее. Мы снова и снова делаем одну и ту же работу.

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

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

Единственная проблема — это устаревание кэша. Допустим, что данные на странице изменились, а кэш страницы — еще нет, и пользователю будет выдаваться старая версия страницы. Способы борьбы:

1. Выставлять более-менее приемлимое время устаревания кэша. Например, через 10 минут страница устаревает и кэш генерится заново. Минусы: возможна ситуация, когда пользователю 9 минут будет показываться старая страница.

2. Кнопка «очистить кэш». В некоторых системах вообще нет кнопки «очистить кэш», вместо нее есть кнопка «перегенерить сайт целиком». Нажимаем на эту кнопку — и весь сайт генерится в статичные файлы, то есть, фактически, в кэш. Минусы: стрельба по воробьям из пушки. Мы поменяли одну страницу, а перегенерить приходится весь сайт.

3. «Умная» очистка кэша. Очищается только кэш той страницы, которую мы изменили. Минус: часто изменение одной страницы затрагивает и несколько других. Главное — понять, каких именно и очистить кэш у них тоже.

Лично у меня реализованы все три метода.

А теперь — в двух словах, как сделать себе кэш. Чудесные функции PHP — ob_start и иже с ней позволяют не выводить страницу в браузер, а, например, сохранить ее в переменную. Про это я уже писал.

Это вставляем в начале страницы:

$url=$GLOBALS['REQUEST_URI'];
$crc=md5($url);

$modif=time()-@filemtime ("cache/$crc");

if ($modif<600)
{
include ("cache/$crc");
exit();
}

ob_start ();

Как это работает:

Берем адрес страницы, вычисляем из него md5. Это будет использоваться, как идентификатор страницы. Например, для УРЛа technology/php/caching md5 будет всегда одим и тем же. Этим мы и воспользуемся.

Файлы кэша будут лежать в директории cache. Смотрим, сколько секунд (filemtime) исполнилось файлу с кэшэм данной страницы. Если он не очень старый (меньше 600 секунд) и вообще есть — выводим его (include).

Если нет — то включаем ob_start и продолжаем дальше.

Это вставляем в конец страницы:

$cache = ob_get_contents();
ob_end_clean ();
echo $cache;

$fp = @fopen ("cache/$crc", "w");
@fwrite ($fp, $cache);
@fclose ($fp);

Как это работает:

Считываем содержимое буфера (ob_get_contents). Получаем в переменной $cache то, что должно было выводится в браузер. Выводим в бразуер, раз должно (echo).

Записываем содержимое буфера ($cache) в директорию cache в файл $crc.

Все. Теперь при следующем обращении к странице с этим адресом скрипт (смотрите первую часть) будет смотреть, есть ли соответствующий файл в кэше и если он еще не устарел — просто выводить его и прекращать обрабатывать страницу (exit).

Примерно так оно и работает. Таким образом, страница выводится из кэша где-то за 0.001-0.004 секунды. Выигрыш процессорного времени налицо.

Разумеется, я описал только общий принцип, у меня сделано несколько по-другому.

0

О СУКах и проч.

22 года назад в категории контент

Влад Головач недописал материал о СУКах (CMS) и выложил только вступление. blog.exmachina.ru/archives/000707.html Как всегда — много правильных вещей, в частности то, что «даже кухарка может управлять CMS» — порочная идея.

У меня у самого много мыслей по поводу CMS. Очень много. Нужно сесть и написать. Вообще, накопилось штук пять тем, которые хочется тщательно, во все дырки, описать на «Спектаторе». В том числе и темы «Спектатор против Регистра», или «Блоги vs Сайты со статьями“», «Проектирование системы vs выращивание“ системы» и прочее.

Update. Влад выложил еще и свои 10 тезисов о СУКах, например «Идеальная база данных для большинства СУКов — обычная файловая система (вы не забыли, надеюсь, что файловая система это тоже бататаза?). Во-первых, она не ограничивает пользователя в средствах редактирования, во-вторых, она обладает минимумом техподробностей». blog.exmachina.ru/archives/000708.html

Из тезисов становится понятно, о каких СУКах он говорит: работающих на стороне клиента и создающих преимущественно статические файлы. Не могу сказать, что он не прав, на spectator.ru до сих пор стоит подобная система, по сути дела-то. Он описал очень хороший тип СУК, хотя я навскидку могу сказать, где этот тип не будет так хорош. Впрочем, Влад написал же «Нет идеального СУКа. Нет же у нас идеальной верстальной системы. Под разные цели и разных пользователей нужны разные системы». В комментариях у него уже то-то отметился на тему «секретарше леночке, конечно, можно попробовать рассказать, как на фтп лить и ставить ссылки...а смысл ? все равно все испохабит...», — так вот, это глупость. Во-первых, ничего не мешает сделать так, чтобы на ftp оно лезло само и ссылки ставились удобным для секретарши способом, а во-вторых, каждый должен заниматься своим делом: глупые секретарши нужны для того, чтобы хуй у начальника сосать, а всем остальным достаточно потратить пару часов на обучение. Ибо работать с CMS должен человек обученный хотя бы минимальным навыкам.

PS. Эх, надо свой текст про CMS писать.

0

Два в одном

22 года назад в категории nutshells

По ящику рекламируют крем от комаров и крем от комариных укусов два-в-одном. Почему-то сразу думается, что крем от комаров не работает, иначе зачем в комплекте идет крем от укусов?

0
«Таро как инструмент самопознания», курс от создателя spectator.ru

Фотографии на пляжу

Свежие (пять дней назад) фотографии меня с Катей. Обское море. Фотографировал lj user Petroo.. (еще 27 слов)

Templates

Вот еще один правильный взгляд на шаблоны (курсив мой): "I’m basically advocating a «template engine» that uses PHP code as it’s native scripting language. I know, this has been done before. (еще 170 слов)

Life in the Liberty City

В игрушках мне очень нравится ненавязчивый юмор. В GTA III его полно. Для тех, кто не в курсе, GTA — игра про угонщика машин. Со всей аттрибутикой: взрывы, погони, мафия, полиция, радио. Радио — особый шик: оно занимает целый компакт-диск, при этом в игре около десятка радиостанций, переключаться по которым можно колесиком мышки. (еще 580 слов)

Креатив попер

Какие, все-таки, странные эти «люди творческих профессий». Когда им удается, наконец, к концу рабочего дня расшевилить свою задницу и начать заниматься своей непосредственной работой (помимо чтения ЖЖ и перекуров), они называют это состояние «Креатив попер». То есть он, вроде бы, и не пер целый день, поэтому и не работалось, а тут — бабах и попер. (еще 82 слова)

В начале было Слово

В начале было Слово, и Слово было у Блога, и Слово было Блог.

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

Но что просто выводит меня из себя, так это то, что ещё на первой моей работе я понял — производительное кодирование отнимает у меня, как разработчика, в среднем по два-три часа в день. russian.joelonsoftware.com/Articles/FireAndMotion.html А я думал, что я один такой.. (еще 41 слово)

Болезнь

Сегодня Катя встретила старую подругу из Барнаула, которую сто лет не видела. Та ей, мол, «Ой, как ты похудела! Чем болеешь?». Причем совершенно без подкола. Вот и ходи после этого на аэробику. Есть женщины в русских селеньях, да.

Проблема смайликов решена

Надо бы по аналогии с кавычками, если смайл внутри круглых скобок, то пишем (… :]), и так далее.

А я-то все время мучался. Теперь так и буду делать.