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

Фетиш ЧПУ

17 лет назад в категориях usability вебдев

ЧПУ — вещь, безусловно, неплохая и местами полезная. Однако, и она превратилась в фетиш.

Проблема с ЧПУ по большому счету одна: URL не может содержать русские буквы. И она никак не лечится. Есть два способа как это обойти:

1. Использовать английский язык. Способ не так уж и плох, когда используются УРЛы, типа /about. А вот как только мы хотим, например, отображать в УРЛе название статьи... Если адрес статьи day_10_presenting_your_main_content_first.html, и при этом она называется — сюрприз! – «Day 10: Presenting your main content first», и вы, разумеется, спокойно понимаете по-английски, то никаких проблем не возникает.

А если статья называется «Десять убедительных доводов, почему все дураки», то в лучшем случае у вас получится из себя выдавить в качестве УРЛа «fools» или «morons». Вы можете даже разродится чем-то типа «ten_convincing_reasons_why_everyone_is_so_god_damn_stupid.html», но это будет такой специальный ЧПУ для очень ограниченного круга Ч. Не все знают английский. Далеко не все.

2. Использовать транслитерацию. Способ тоже не идеален, потому что многие — например, я — так и не застали транслит, и просто физически его не могут читать. Реальный пример — «/02.12.2004/chitallogid/comments». Слово «chitallogid» образовано автоматически из заголовка «Читал логи… долго смеялся».

Где тут понятность?

Выводы тут просты: не делайте из еды культа, не ебите мозги читателям сверхфункциональными УРЛами, которых все равно никто, кроме вас, не понимает. УРЛы, типа entry/3098, ought to be enough for everybody.

Иначе говоря, ЧПУ — это УРЛ, в котором нет непонятных для пользователя элементов. То есть ЧПУ — это не какая-то «добавочная понятность», которую все стараются внести в УРЛ, а всего-навсего отсутствие лишнего мусора.

0

Skinnable-cacheable

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

Придумал неболшую идею. Наверняка не я первый.


Идея заключается в том, что страницы кэшируется. Но при этом хочется сделать их Skinnable. То есть чтобы можно было «шкурки» менять. Как кэшировать в таком случае — не совсем понятно.

Простой и забавный (полу)выход. Везде в документах пишем и документы, естественно, кэшируем полностью. И выдаем кэш. А вот css.php — нет, не кешируем и выдаем в нем нужную css-ку в зависимости от содержимого cookies-ов.

0

ЧПУ и PHP (revisited)

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

ЧПУ — это термин, придуманный командой НовоКиберска, обозначает он «Человекопонятный УРЛ». Термин нигде широко не употреблялся, пока я не написал 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 работать не будет.

0
Мой «Курс реабилитации людей с техническим образованием».

Save changes?

Вот еще идея: есть админский интерфейс — или любая форма — и в ней есть Критичные Поля (КП). После того, как содержание КП изменилось (т.е. было отредактировано) пользователь не может уйти со страницы по любой ссылке, потому что выскакивает диалог «Вы не сохранили изменения. Действительно хотите уйти отсюда?». (еще 86 слов)

Картинки возвращаются-2

«When using a normal web server setup, images should be stored as files. That is, store only a file reference in the database. The main reason for this is that a normal web server is much better at caching files than database contents. So it it’s much easier to get a fast system if you are using files». (еще 205 слов)

Картинки возвращаются

Продолжая про картинки в базе. Вот это сообщение. Народ, однако, упорно комментирует, наглядно показывая выскоий уровень своего непонимания: «К тому-же у картинок могут быть другие атрибуты, которые нужно читать/менять (например счетчики)». Господа, блин, возьмите и почитайте ДОКУМЕНТАЦИЮ. (еще 131 слово)

MySql vs Files

Ну, если про хранение текстовой информации еще можно поспорить — и совершенно справедливо — то некоторые вещи меня удивляют. Использовать MySql для хранения картинок... и выдавать их так... $data = @mysql_result($result, 0, «imageinfouser»);
header(«Content-type: $type»);
echo $data; Мне даже сказать по этому поводу нечего..

Файлы vs Базы Данных

Дима Киселев (наш админ) перевел статистику на файлы www.livejournal.com/talkread.bml?journal=kiselev&itemid=29545 Он молодец. Говорит, что нагрузка резко упала. Еще бы. Сам я большой сторонник файлов, ибо — ... ---- из аськи Salvatore: Я же сделал сбор статистики в файл. Нагрузка упала до нуля :) Ненарадуюсь.
Spectator.ru: Дык :) Мне давно пора бы писать заметку «почему и как базы данных сосут». (еще 199 слов)

Что такое RSS?

Уже стало доброй традицией писать раз в месяц нечто на тему «Чего-то-там для чайников». Итак, аббривиатура дня: RSS. Это такой Web content syndication format. (Ничего, что я по-английски?)
RSS — это сокращение от Really Simple Syndication, что в переводе на русский звучит, как Действительно Простая... (еще 351 слово)

Правильноё ё

Мода на «правильные кавычки» прижилась. Теперь надо вводить моду на правильное ё. Написать скрипт, который в текстах сам расставляет правильное ё где надо. Только для этого словарь ё-слов нужен. Типа, её, ёж, ёлка, неебёт. Проблема — различение слов, типа все — всё..

Дерево, падающее в лесу

Когда проматываешь вниз страницу, на которой крутится GIF-мультик, так что он уходит вверх и исчезает с экране, продолжает ли он там крутиться?

Pngcrush

По наводкам читателей — Pngcrush: «Pngcrush is an excellent batch-mode compression utility for PNG images. Depending on the application that created the original PNGs, it can improve the file size anywhere from a few percent to 40% or more (completely losslessly)». Pngcrush — утилитка, работающая из командной строки и заметно сжимающая файлы PNG практически без потери качества изображения. (еще 123 слова)