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

Определение

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

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

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

0

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

21 год назад в категориях технологии 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

100 фактов обо мне

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

В ЖЖ стало модно в последнее время писать «100 фактов обо мне». Типа, это помогает людям больше узнать друг друга. Ну, ладно, вы сами напросились: 100 фактов обо мне —

    Самоидентификация.

  1. Меня зовут Дмитрий Смирнов.
  2. Я родился в Новосибирске в Halloween. В 18.05.
  3. «Спектатор» — это название сайта.
  4. Я, безусловно, эгоист и сноб.
  5. Я очень сильно интересуюсь свой персоной.
  6. Зато есть много других вещей, которые меня не интересуют.
  7. Я вовсе не гений, просто очень, очень умный.
  8. У меня руки растут из нужного места. Я проверял.
  9. У меня хорошее чувство юмора, хотя и местами извращенное.
  10. Я очень редко смеюсь, потму что у меня хорошее чувство юмора и я сноб. (под определение «сатирик» у меня подходит, например, Хаксли. Многое, что обычные люди называют «сатирой» и «юмором» я могу назвать разве что гавном). Однако, удачную шутку могу оценить, если вдруг. Смеяться не обязательно.
  11. Я не циник, я реалист.
  12. Ладно, я циник.
  13. Я прагматик.
  14. Я ленивый.
  15. Я ленивый, поэтому люблю искать простые и эффективные решения.
  16. Я к тому же умный, поэтому, как правило, нахожу простые и эффективные решения.
  17. Когда действительно надо — я готов на решительные поступки.
  18. Я очень упрямый. Многие совершенно справедливо считают, что я могу быть ужасным занудой. (Помимо упрямства есть еще много способов добиться своего).
  19. Самый лучший способ спорить: выслушать человека, а потом поступить так, как ты считаешь лучше. Это экономит время и речевые усилия.
  20. Мне палец в рот не клади.

    Образование

  21. Всему полезному в этой жизни я научился сам.
  22. У меня в дипломе написано «Журналист со знанием английского языка».
  23. Все, что идет после слова «журналист» — правда. Как и многое другое.

    Я и люди

  24. Я люблю людей, когда они не мешают мне это делать.
  25. Я не злопамятный, просто у меня очень хорошая память и я люблю красить должки платежами.
  26. Я не люблю занимать людям деньги и никогда не прошу взаймы (за исключением мизерных сумм, скажем, на проезд. Но такое бывает крайне редко — я стараюсь не забывать денег).
  27. Нет таких людей, на которых я могу показать пальцем и сказать «это — мой враг».
  28. Есть такие люди, про которых я могу сказать «это — мой друг». Это событие, если оно вдруг произойдет, данного человека ни к чему не обязывает. Таких людей мало.
  29. Людей, чье мнение меня ДЕЙСТВИТЕЛЬНО волнует — очень мало.
  30. Удивительно, но предыдущие две категории часто совпадают.
  31. Я могу, но не особенно люблю общаться со всеми подряд. Я ведь сноб, помните?
  32. Я твердо уверен, что есть люди, лучше меня. Мне попадались такие люди. Ни один из них не стремился доказать, что он лучше меня.
  33. Я ни кому не стремлюсь доказать, что я лучше кого-то.
  34. Вы поняли, к чему я клоню?
  35. Меня до сих пор удивляет человеческая тупость. Хотя давно бы пора привыкнуть.
  36. Больше всего в людях меня бесит нежелание думать своей головой и раздутая самоидентификация.
  37. В реальной жизни я очень спокойный и уравновешеный. Мама говорит, что я самый спокойный человек в семье. Петя говорит, что он только один раз видел, как я вышел из себя — на выпускном в школе. Тогда я побил человека.
  38. Меня ни разу не били. Но не раз обещали. Как после этого верить людям — не понятно.
  39. Я могу ударить человека, если он вынудит меня это сделать. А это очень тяжело.
  40. Я никогда не дерусь «понарошку». Поэтому я дерусь очень редко.
  41. Один раз я сломал человеку руку, еще один раз — нос.
  42. Я предпочитаю делать больно морально — у меня это очень хорошо получается.
  43. Я часто наступаю людям на их больные мозольки, потому что вижу, где они находятся.

    Appearance

  44. В 10 классе я проколол ухо, вдел в него сережку и забыл об этом.
  45. У меня две татуировки. А еще у меня шрам есть.
  46. У меня были длинные волосы, но год назад я побрился налысо и до сих пор не могу отрастить их до нормальной длины.
  47. Из «штанов» я ношу только джинсы. (Джинсы дешевле, скажем, 1200 рублей — это не джинсы (см. п. 4)). В один период жизни у меня бывают только одни джинсы.
  48. Некоторые люди считают меня стильным.
  49. Девушкам, как правило, нравится моя фигура (см. следующий пункт).

    Детство

  50. Я 10 лет занимался бальными танцами.
  51. В возрасте 6 лет я спрыгнул на асфальт с 3 его этажа. Случилось это 8 марта. Отделался ушибом головного мозга.
  52. За время учебы я сменил 4 школы 8 классов.
  53. В начальной школе я был отличником и любимчиком. Меня приводили всем в пример. Так я вырос снобом.

    Я и родители

  54. Меня в детстве били ремнем.
  55. Я люблю своих родителей.
  56. Довольно рано меня предоставили самому себе. За что им огромное спасибо.
  57. Я не помню, когда в последний раз родители давали мне денег.
  58. «Проблемы с родителями» — признак собственного инфантилизма.
  59. В первый и последний раз родители меня видели пьяным в 10 классе. С тех пор предпочитаю так не попадаться. Я знаю, что это было, но не помню, как. Подробности мне рассказывали родители.
  60. Они до сих пор это вспоминают.
  61. Папа считает меня технарем, а мама — гуманитарием.
  62. За все электронные дивайсы в семье отвечаю (отвечал) я.

    Половой вопрос

  63. Секс играет заметную — но не главную — роль в моей жизни. Потому что главную роль в ней играю я сам.
  64. Все, кто имеют право выносить суждения в данном вопросе, считают меня хорошим любовником. Не думаю, что эти люди особенно заблуждаются.
  65. Я никогда не обманывал девушку/давил на жалось/задаривал подарками/водил в рестораны/остальное впишите сами/и.т.д, чтобы переспать с.
  66. Я, как правило, однолюб (i.e. в один период времени люблю/сплю одну девушку).
  67. Я не гомофоб. И не гомофил.
  68. Лично для меня польза «Кама-сутры» свелась четкому пониманию разницы между «ебаться» и «выeбываться». (c) Линор Горалик
  69. Сексуальные пособия меня веселят до колик.
  70. «Извращение» — это ярлык.
  71. Я люблю порно. Oh, ja!

    Я и компьютеры

  72. Первый компьютер (ZX Spectrum) у меня появился перед началом 5-ого класса. Мне его купили только после того, как я научился программировать на BASIC’е, показав таким образом, что компьютер — это не игрушка.
  73. BASIC оказался проще, чем я ожидал.
  74. «Программирование на BASIC для Yamaha» была первой и единственной книгой «про компьютеры», которую я прочитал.
  75. Я программир/овал/ую на языках — BASIC, Assembler, Pascal, Delphi, PHP.
  76. Я считаю, что лучше два раза RTFM и разобраться самому, чем лезть к кому-то с тупыми вопросами.
  77. В 10-ом классе я победил в городской олимпиаде про программированию среди учеников 10-11 классов. (За время учебы я два раза принимал участие и занимал вторые места на городских олимпиадах по математике).
  78. Интернет я увидел только на первом курсе.
  79. На втором курсе я сам заработал на новый компьютер. С «помощью интернета».
  80. Я выучил HTML за полчаса.
  81. HTML оказался проще, чем я ожидал.
  82. Я считаю, что WYSIWYG — порочная технология, самый лучший интерфейс — текстовый файл, а универсальные системы часто сосут.
  83. Я считаю, что люди, которые пишут код в notepad’е и гордятся этим — либо ограниченые уроды, либо онанисты, либо просто никогда не писали код вообще (см. также следующий пункт).
  84. Я никогда не пользовался linux’ом. Поэтому никогда не говорил «О, да, linux рулез».
  85. Я считаю себя «дизайнером» в значении «разработчик, проектировщик, планировщик, конструктор» (смотри англо-русский словарь). Остальные значения слова «дизайнер», по моему мнению, гораздо правильнее называть словом «оформитель».
  86. Я ни разу не менял номер своей аськи с тех пор, как завел ее.
  87. Я не умею пользоваться Excel’ем и Access’ом. (Update: уже умею).

    Favorites

  88. My Top 5 в музыке: Nine Inch Nails, Tom Waits, Orbital, Morcheeba, Pixies.
  89. Любимые писатели: Воннегут, Ремарк, Хаксли, Булгаков (ну как же без него).
  90. Я люблю только дорогие спиртные напитки (см. п. 4).
  91. Я люблю только вареный кофе. А так — предпочитаю чай.
  92. Я, оказывается, люблю китайскую кухню.

    Пороки

  93. У меня была веселая юность.
  94. Я знаю значение слова «промискуитет» только потому, что я умный.
  95. Я могу выпить много водки и оставаться трезвым. (Если не мешать с).
  96. Я уже очень давно не пил много водки.
  97. Я не курю. Пробовал несколько раз — не понимаю, в чем фишка. Я не особенно уважаю людей, которые курят, хотят бросить, но не могут. С сигар меня прет.
  98. Я бы не доверил курящей девушке делать минет.
  99. Однажды я два года не ел мяса.
  100. В определенном смысле — я гурман. Я могу оценить, когда блюдо хорошо приготовлено. Когда поблизости нет хорошо приготовленного блюда — я всеяден.
0

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

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

Влад Головач недописал материал о СУКах (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
«Таро как инструмент самопознания», курс от создателя 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 слово)

Болезнь

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