Spectator: evolution
Эволюция «Спектатора» в картинках, или «выдавливая из себя по капле дизайнера».
...
«Дизайн» в пошлом, то есть в самом распространенном его понимании («оформительство»), — вещь часто вредная из-за своей неуместности. Время от времени, глядя на очередной «дизайн», я вспоминаю фразу из анекдота про такси: «Вам шашечки или ехать?».
...
Нам, все-таки — ехать, поэтому я вовремя упустил свой шанс стать хорошим дизайнером. Зато стал хорошим гражданином, прилежным семьянином и страстным любовником. Ха-ха, про гражданина было шуткой.
...
Рассмотрю в качестве примера четыре базовые «мутации» «дизайна». Желающие проследить всю историю, могут пойти на Web.Archive и поискать там сначала spectator.nsk.su, потом spectator.rulez.net и потом spectator.ru
...
Номер один. «Шапка — это наше все». 1998-99 год.
...
На рисование шапки ушло несколько часов. Еще несколько часов ушло на то, чтобы сообразить, как с помощью html делаются тени. Несколько дней ушло на борьбу с Netscape Navigator’ом, чтобы он отображал все верно.
...
Типичные ошибки: при создании дизайна думали обо всем, кроме навигации и текста. Огромное количество пользователей так и не сообразило, что стрелочки в шапке — это не украшение. К тексту — абсолютно никакого внимания: заголовок делался просто болдовым выделением, почти полное отсутствие полей.
...
Технология: голимый html.
...
Минусы: внезапно оказалось, что кроме кнопок «вперед-назад», нужны и другие пункты в навигации. Помещены они были на первую страницу сайта, на остальных же страницах места им не нашлось.
...
Номер два. «Куда же деть все эти заметки?»... 1999-2000 год.
...
Текстовый дизайн — несомненный плюс. Все, что накопилось, пошло в правую колонку: навигация, рекомендованные ссылки и прочее. Стало понятно, что красивая шапка — это хорошо, но занимает слишком много места. Самый большой недостаток данного дизайна бросается в глаза сразу же: номера заметок справа предоставляют возможность перемещаться по заметкам только «в режиме гадания» и никак больше: номера ничего никому не говорят. Текущая заметка также никак не выделяется, главным образом потому, что я просто не мог это сделать. Ибо глуп был.
...
Технология: html+ssi+javascript. С помощью javascript’а, например, расставлялась ссылки на следующую-предыдущую заметки.
...
Минусы: непонятный список номеров слева. Совершенно ненужный и нелепый. Тем не менее, даже это неудачное решение бездарно клонировали. Чем больше было заметок, тем очевиднее становились видны недостатки данной навигации. Кроме того, внезапно пришло осознание того невероятного факта, что любимые цвета не всеми воспринимаются одинаково, и лучше всего читать черные буквы на белом фоне.
...
Номер три. «And here comes PHP». Что-то около 2001.
...
Идея автоматизации настолько понравилась (переход на SSI был вообще в свое время прорывом), что захотелось сделать «движок» сайта. Были приняты попытки выучить Perl. Не вышло. Совершенно случайно наткнулся на PHP.
...
Была придумана навигация «вы находитесь здесь», реализацию которой регулярно передирали. Основное меню вынесено наверх, вспомогательные вещи — в правую колонку. Опять же с помощью PHP были сделаны комментарии, кавычки «елочкой» и прочие полезные вещи.
...
Технология: PHP.
...
Минусы: красивая, но нефункциональная шапка, — во мне снова проснулся «дизайнер». Графические ушки были совершенно неинформативны и впоследствии были заменены на текстовые.
...
Номер четыре. Closer to perfection.
...
Шедевр минимализма. Графическая шапка отсутствует как класс. Шапка с верхнем меню занимают минимум места. Из графики — только иконки, остались как память. Появились «заметки по теме», хотя рубрик все еще не было, и заметки были упорядочены по номерам.
...
Минусы: найдите сами.
...
Текущий дизайн.
...
При каждой смене дизайна находилось огромное количество людей, которым старый дизайн нравился больше. И я их не виню. Текущий «дизайн» был создан за полчаса в текстовом редакторе edit+, чтобы отразить возможности нового движка, который создавался пару месяцев. Поэтому я могу только улыбнуться, когда снова слышу рассуждения на тему о хорошести или нехорошести этого дизайна.
...
Так вам шашечки или ехать?
(еще 42 слова)
Определение
Запас провианта, оставленный научной экспедицией в скрытом месте для обратного пути или для других экспедиций (чаще всего о первых арктических экспедициях).
...
Вот так вот переводится одно хорошее английское слово (думаю, что вы догадались, какое). И почему в словаре нет в качестве перевода тоже хорошего русского слова — «заначка»?..
(еще )
Простое кэширование страниц
Простое кэширование страниц. Для чайников. На PHP.
...
Кэширование — замечательная вещь. Часто (теперь — почти всегда) страницы на сайтах генерятся динамически. Это теперь модно. Однако же — в реальности — почти всегда страница собирается заново гораздо чаще, чем она изменяется. Грубо говоря, мы опубликовали новый документ, и при каждом обращении к нему он заново считывается, скажем, из базы данных, заново прогоняется через шаблон и прочее и прочее. Мы снова и снова делаем одну и ту же работу.
...
А можно просто один раз сделать, а потом сохранить результат этой работы. И при каждом запросе выдавать готовый результат, а не делать все заново. Это и есть кэширование.
...
Оно позволяет, снизить нагрузку на сервер и на базу данных. Непонимание принципов работы кэша иногда приводит к забавным курьезам.
...
Единственная проблема — это устаревание кэша. Допустим, что данные на странице изменились, а кэш страницы — еще нет, и пользователю будет выдаваться старая версия страницы. Способы борьбы:
...
1. Выставлять более-менее приемлимое время устаревания кэша. Например, через 10 минут страница устаревает и кэш генерится заново. Минусы: возможна ситуация, когда пользователю 9 минут будет показываться старая страница.
...
2. Кнопка «очистить кэш». В некоторых системах вообще нет кнопки «очистить кэш», вместо нее есть кнопка «перегенерить сайт целиком». Нажимаем на эту кнопку — и весь сайт генерится в статичные файлы, то есть, фактически, в кэш. Минусы: стрельба по воробьям из пушки. Мы поменяли одну страницу, а перегенерить приходится весь сайт.
...
3. «Умная» очистка кэша. Очищается только кэш той страницы, которую мы изменили. Минус: часто изменение одной страницы затрагивает и несколько других. Главное — понять, каких именно и очистить кэш у них тоже.
...
Лично у меня реализованы все три метода.
...
...
А теперь — в двух словах, как сделать себе кэш. Чудесные функции PHP — ob_start и иже с ней позволяют не выводить страницу в браузер, а, например, сохранить ее в переменную. Про это я уже писал.
...
Это вставляем в начале страницы:
...
$url=$GLOBALS['REQUEST_URI'];
$crc=md5($url);
...
$modif=time()-@filemtime ("cache/$crc");
...
if ($modif
...
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 секунды. Выигрыш процессорного времени налицо.
...
Разумеется, я описал только общий принцип, у меня сделано несколько по-другому.
(еще 18 слов)
100 фактов обо мне
В ЖЖ стало модно в последнее время писать «100 фактов обо мне». Типа, это помогает людям больше узнать друг друга. Ну, ладно, вы сами напросились: 100 фактов обо мне —
...
Самоидентификация.
...
Меня зовут Дмитрий Смирнов.
Я родился в Новосибирске в Halloween. В 18.05.
«Спектатор» — это название сайта.
Я, безусловно, эгоист и сноб.
Я очень сильно интересуюсь свой персоной.
Зато есть много других вещей, которые меня не интересуют.
Я вовсе не гений, просто очень, очень умный.
У меня руки растут из нужного места. Я проверял.
У меня хорошее чувство юмора, хотя и местами извращенное.
Я очень редко смеюсь, потму что у меня хорошее чувство юмора и я сноб. (под определение «сатирик» у меня подходит, например, Хаксли. Многое, что обычные люди называют «сатирой» и «юмором» я могу назвать разве что гавном). Однако, удачную шутку могу оценить, если вдруг. Смеяться не обязательно.
Я не циник, я реалист.
Ладно, я циник.
Я прагматик.
Я ленивый.
Я ленивый, поэтому люблю искать простые и эффективные решения.
Я к тому же умный, поэтому, как правило, нахожу простые и эффективные решения.
Когда действительно надо — я готов на решительные поступки.
Я очень упрямый. Многие совершенно справедливо считают, что я могу быть ужасным занудой. (Помимо упрямства есть еще много способов добиться своего).
Самый лучший способ спорить: выслушать человека, а потом поступить так, как ты считаешь лучше. Это экономит время и речевые усилия.
Мне палец в рот не клади.
...
Образование
...
Всему полезному в этой жизни я научился сам.
У меня в дипломе написано «Журналист со знанием английского языка».
Все, что идет после слова «журналист» — правда. Как и многое другое.
...
Я и люди
...
Я люблю людей, когда они не мешают мне это делать.
Я не злопамятный, просто у меня очень хорошая память и я люблю красить должки платежами.
Я не люблю занимать людям деньги и никогда не прошу взаймы (за исключением мизерных сумм, скажем, на проезд. Но такое бывает крайне редко — я стараюсь не забывать денег).
Нет таких людей, на которых я могу показать пальцем и сказать «это — мой враг».
Есть такие люди, про которых я могу сказать «это — мой друг». Это событие, если оно вдруг произойдет, данного человека ни к чему не обязывает. Таких людей мало.
Людей, чье мнение меня ДЕЙСТВИТЕЛЬНО волнует — очень мало.
Удивительно, но предыдущие две категории часто совпадают.
Я могу, но не особенно люблю общаться со всеми подряд. Я ведь сноб, помните?
Я твердо уверен, что есть люди, лучше меня. Мне попадались такие люди. Ни один из них не стремился доказать, что он лучше меня.
Я ни кому не стремлюсь доказать, что я лучше кого-то.
Вы поняли, к чему я клоню?
Меня до сих пор удивляет человеческая тупость. Хотя давно бы пора привыкнуть.
Больше всего в людях меня бесит нежелание думать своей головой и раздутая самоидентификация.
В реальной жизни я очень спокойный и уравновешеный. Мама говорит, что я самый спокойный человек в семье. Петя говорит, что он только один раз видел, как я вышел из себя — на выпускном в школе. Тогда я побил человека.
Меня ни разу не били. Но не раз обещали. Как после этого верить людям — не понятно.
Я могу ударить человека, если он вынудит меня это сделать. А это очень тяжело.
Я никогда не дерусь «понарошку». Поэтому я дерусь очень редко.
Один раз я сломал человеку руку, еще один раз — нос.
Я предпочитаю делать больно морально — у меня это очень хорошо получается.
Я часто наступаю людям на их больные мозольки, потому что вижу, где они находятся.
...
Appearance
...
В 10 классе я проколол ухо, вдел в него сережку и забыл об этом.
У меня две татуировки. А еще у меня шрам есть.
У меня были длинные волосы, но год назад я побрился налысо и до сих пор не могу отрастить их до нормальной длины.
Из «штанов» я ношу только джинсы. (Джинсы дешевле, скажем, 1200 рублей — это не джинсы (см. п. 4)). В один период жизни у меня бывают только одни джинсы.
Некоторые люди считают меня стильным.
Девушкам, как правило, нравится моя фигура (см. следующий пункт).
...
Детство
...
Я 10 лет занимался бальными танцами.
В возрасте 6 лет я спрыгнул на асфальт с 3 его этажа. Случилось это 8 марта. Отделался ушибом головного мозга.
За время учебы я сменил 4 школы 8 классов.
В начальной школе я был отличником и любимчиком. Меня приводили всем в пример. Так я вырос снобом.
...
Я и родители
...
Меня в детстве били ремнем.
Я люблю своих родителей.
Довольно рано меня предоставили самому себе. За что им огромное спасибо.
Я не помню, когда в последний раз родители давали мне денег.
«Проблемы с родителями» — признак собственного инфантилизма.
В первый и последний раз родители меня видели пьяным в 10 классе. С тех пор предпочитаю так не попадаться. Я знаю, что это было, но не помню, как. Подробности мне рассказывали родители.
Они до сих пор это вспоминают.
Папа считает меня технарем, а мама — гуманитарием.
За все электронные дивайсы в семье отвечаю (отвечал) я.
...
Половой вопрос
...
Секс играет заметную — но не главную — роль в моей жизни. Потому что главную роль в ней играю я сам.
Все, кто имеют право выносить суждения в данном вопросе, считают меня хорошим любовником. Не думаю, что эти люди особенно заблуждаются.
Я никогда не обманывал девушку/давил на жалось/задаривал подарками/водил в рестораны/остальное впишите сами/и.т.д, чтобы переспать с.
Я, как правило, однолюб (i.e. в один период времени люблю/сплю одну девушку).
Я не гомофоб. И не гомофил.
Лично для меня польза «Кама-сутры» свелась четкому пониманию разницы между «ебаться» и «выeбываться». (c) Линор Горалик
Сексуальные пособия меня веселят до колик.
«Извращение» — это ярлык.
Я люблю порно. Oh, ja!
...
Я и компьютеры
...
Первый компьютер (ZX Spectrum) у меня появился перед началом 5-ого класса. Мне его купили только после того, как я научился программировать на BASIC’е, показав таким образом, что компьютер — это не игрушка.
BASIC оказался проще, чем я ожидал.
«Программирование на BASIC для Yamaha» была первой и единственной книгой «про компьютеры», которую я прочитал.
Я программир/овал/ую на языках — BASIC, Assembler, Pascal, Delphi, PHP.
Я считаю, что лучше два раза RTFM и разобраться самому, чем лезть к кому-то с тупыми вопросами.
В 10-ом классе я победил в городской олимпиаде про программированию среди учеников 10-11 классов. (За время учебы я два раза принимал участие и занимал вторые места на городских олимпиадах по математике).
Интернет я увидел только на первом курсе.
На втором курсе я сам заработал на новый компьютер. С «помощью интернета».
Я выучил HTML за полчаса.
HTML оказался проще, чем я ожидал.
Я считаю, что WYSIWYG — порочная технология, самый лучший интерфейс — текстовый файл, а универсальные системы часто сосут.
Я считаю, что люди, которые пишут код в notepad’е и гордятся этим — либо ограниченые уроды, либо онанисты, либо просто никогда не писали код вообще (см. также следующий пункт).
Я никогда не пользовался linux’ом. Поэтому никогда не говорил «О, да, linux рулез».
Я считаю себя «дизайнером» в значении «разработчик, проектировщик, планировщик, конструктор» (смотри англо-русский словарь). Остальные значения слова «дизайнер», по моему мнению, гораздо правильнее называть словом «оформитель».
Я ни разу не менял номер своей аськи с тех пор, как завел ее.
Я не умею пользоваться Excel’ем и Access’ом. (Update: уже умею).
...
Favorites
...
My Top 5 в музыке: Nine Inch Nails, Tom Waits, Orbital, Morcheeba, Pixies.
Любимые писатели: Воннегут, Ремарк, Хаксли, Булгаков (ну как же без него).
Я люблю только дорогие спиртные напитки (см. п. 4).
Я люблю только вареный кофе. А так — предпочитаю чай.
Я, оказывается, люблю китайскую кухню.
...
Пороки
...
У меня была веселая юность.
Я знаю значение слова «промискуитет» только потому, что я умный.
Я могу выпить много водки и оставаться трезвым. (Если не мешать с).
Я уже очень давно не пил много водки.
Я не курю. Пробовал несколько раз — не понимаю, в чем фишка. Я не особенно уважаю людей, которые курят, хотят бросить, но не могут. С сигар меня прет.
Я бы не доверил курящей девушке делать минет.
Однажды я два года не ел мяса.
В определенном смысле — я гурман. Я могу оценить, когда блюдо хорошо приготовлено. Когда поблизости нет хорошо приготовленного блюда — я всеяден.
(еще 51 слово)