Потертый интерфейс
Как известно, в навороченных программах каждый юзер использует 5% фич. Проблема в том, что для каждого пользователя эти 5% — разные. И нельзя написать программу, в которой будет только те самые полезные 5%. Впрочем, дело не в этом.
Еще есть в физическом мире такая вещь, как потёртость. На моей клавиатуре, например, самые употербляемые буквы являются самыми грязными. У Кати на них краска слезла.
Почему бы не ввести эту метафору в интерфейс. Самые нажимаемые кнопки сделать со временем более потертыми и пошарпанными — чтобы было видно.
Да, у Microsoft XP и MS Office-а есть такая привычка: прятать «неиспользуемые» пункты в меню. Это совсем-совсем не то: это очень навязчиво, «я лучще знаю, что тебе надо и спрячу, что не надо», а когда нужно найти что-то, чем ты не пользовался, приходится много раз тыкаться на кнопку «показать все». При этом если есть фича, которая мне известна, то которой я пользуюсь раз в месяц, ее от меня «заботливо» спрячут.
Я всегда это отключаю сразу. А вот если интерфейс останется неизменным и ничего прятать не будут, но самые используемые пункты будут «затираться», то я быстро смогу сортировать как часто используемые, так и не используемые функции.
IQ: анаграммы сосут
Сегодня сподобился в первый раз в жизни (!) померить длину члена коэффициент интеллекта aka IQ. Ради забавы, перед сном (8 часов утра, кстати, спать пора).
В принципе — мне понравилось. Вспомнил почему-то олимпиады по математике. Но выяснил забавную вещь. Там написано «не пытайтесь ответить на все вопросы за 30 минут, все равно не получится». На все те вопросы, на которые я смог ответить, у меня ушло минут 15-20. Остальное время я сношался с анаграммами. Видимо, у меня мозг немного не туда повернут, но я смог решить только одну (!!!) анаграмму. Смотрю сейчас на результаты и плачу: все вопросы, на которые я не ответил — анаграммы.
В принципе, там пишут, что после небольших тренировок — или даже если повторно проходишь тест, а в качестве тренировки выступает первый проход — результаты теста легко увеличиваются на 10 очков.
Так что ради членомерства можно, конечно, насобачиться разгадывать анаграммы, выспаться и поднять результат еще баллов на 20 (или больше, ибо с анаграммами ну вообще все плачевно) — но зачем? Умнее я от этого не стану, а что я гений above average — так это и так мне давно известно.
Да, и что мне выпало —

Структуральнейший лингвист
Подумалось: «экстраординарно» — это значит невероятно. В то время как «ординарно» — это «обычно, скучно, обыкновенно». По идее — «экстраординарно» — значит суперобычно, ужасно скучно, невероятно обыденно. Однако ж. www.livejournal.com/users/elefantariy/442606.html?mode=reply
Да, это называется «народная этимология». Хотя человек типа гуманитарий. Закончил гумфак НГУ. Вот в чем парадокс-то!
Обисняю. Extraordinary. Английское слово. Латинский корень и латинская приставка. Extra — это «outside, except, beyond, from exter being on the outside», ordinary — тот же латинский корень, что и в слове order, то есть действительно — «обычно», вернее — «осуществляемый в обычном порядке». Но, конечно же, не «скучно», тут человек опять наплел отсебятину.
Таким образом, Extraordinary — это всего-навсего beyond ordinary, то есть, по-русски — выходящее за рамки обычного. То есть — да, экстраординарное. «Однако ж».
Вывод: если ты сам не знаешь значение приставки extra — это не стыдно. Для этого люди и придумали словари. (Кстати, привет Ээльмаа, который обвинял меня за то, что я — какой кошмар — пользуюсь словарями). Но когда ты явно демонстируешь неумение пользоваться словарями, а полагаешься только на свои скудные догадки...
Кстати, Merriam-Webster, разумеется, есть в Сети.
ЧПУ и PHP (revisited)
ЧПУ — это термин, придуманный командой НовоКиберска, обозначает он «Человекопонятный УРЛ». Термин нигде широко не употреблялся, пока я не написал 5 сентября 2000 года заметку «ЧПУ и PHP». За эти три года термин довольно неплохо раскрутился.
За эти годы очень многие ссылались на эту заметку, поэтому я взял на себя труд переписать ее, добавив еще несколько способов сделать ЧПУ и убрав всякий мусор. Итак...
В принципе, ничего нового и оригинального в идее понятного УРЛа нет. Про это писал и Лебедев, и другие товарищи. Вообще, мне всегда нравились УРЛы такого, например, вида: php.resourceindex.com/Complete_Scripts/Guestbooks/
Итак, как это сделать в домашних условиях?
Способ раз
Вообще, самая первая мысль — это создавать для каждой заметки поддиректорию с соответствующим именем и помещать в нее index.html, то есть сделать так, чтобы по адресу spectator.ru/technology/php/user_friendly_urls лежал бы реальный файл. Разумеется, так дело не пойдет.
Способ два
Думаем дальше. Раз страница не существует, то она выдает 404. Так что вторая идея — прописать в фале .htaccess страницу, которая будет выдаваться при ошибке 404, а уже эта страница будет смотреть на текущий УРЛ и выдавать нужный документ
То есть, в .htaccess пишем:
------------------------------------
ErrorDocument 404 /index.php3
ErrorDocument 401 /index.php3
------------------------------------
Пользователь набирает spectator.ru/technology/php/user_friendly_urls, такая страница не найдена, и загружается файл index.php3. Дальше — все просто. Переменная $REQUEST_URI дает нам адрес вызываемой страницы (в данном случае это будет /technology/php/user_friendly_urls), вывести на экран соответствующий документ — дело техники.
Этого мало. В некоторых браузерах и с поисковиками такой фокус не пройдет: страница 404 будет выдавать соответствующий код, и страницы индексироваться не будут. Поэтому надо, чтобы страница, которая грузится в случае ошибки 404, изменяла бы код ошибки и сигналила, мол, все ОК, есть такая страница:
Итого: прописываем в .htaccess страницу, которая, собственно, за все отвечает (у меня это index.php3). В этой странице пишем php-скрипт, который работает с $REQUEST_URI, шлет заголовок «http/1.0 200 Ok» и отображает то, что надо.
Плюсы: Очень простой способ. Работает почти везде.
Минусы: При таком способе нельзя постить содержимое формы на несуществующие псевдоурлы. И если в Апаче ведется лог 404-ых ошибок, то он будет забит.
Способ три
Для этих (и не только) целей есть специальный модуль в Апаче, который называется mod_rewrite. Он позволяет «переписывывать урлы», то есть, преобразовывать их «на лету» по правилам, которые вы ему опишите.
Это очень мощный модуль, и если вы в нем разберетесь, то сможете творить чудеса. Сам я до сих пор довольно мало с ним работал, поэтому читайте документацию, благо, что ее полно.
Module mod_rewrite URL Rewriting Engine.
A Users Guide to URL Rewriting with the Apache Webserver.
Модуль Apache mod_rewrite.
Mod_rewrite для чайников.
Плюсы: Очень мощный способ.
Минусы: Может не хватить мозгов. На хостинге может быть не установлен этот модуль.
Способ четыре
Основан на директиве FilesMatch, которая в Апаче является core feature. Все просто. Пишем опять же в .htaccess
Action throw /index.php
ForceType throw
ForceType application/x-httpd-php
После этого все УРЛы, которые подпадают под условие «^([^.]+)$», (то есть все урлы, в которых не содержится точка) будут передаваться на index.php. Вы можете написать свое условие, разумеется.
Подробности: тут, тут или тут.
Плюсы: Простой и удобный способ.
Минусы: Говорят, что для того, чтобы ForceType работал, php должен быть подключен к апачу в виде модуля. Если php вызывается, как обыкновенный CGI — ForceType работать не будет.