Метка «кодирование»
Итак, что же такое хотлинкинг, и зачем вообще с ним бороться. Хотлинкингом в народе называется внедрение в веб-страницу мультимедийного контента, расположенного на чужом сервере.
Пример «на пальцах»: на неком абстрактном ресурсе X размещается картинка. Недобросовестный же владелец ресурса Y, желая, чтобы это изображение было и на его сайте тоже, просто прописывает в теге <img> абсолютный адрес к целевому файлу, банально воруя чужой трафик. Ведь каждый просмотр такой картинки на сайте Y на самом деле будет обращением к файлу сайта X.
Чтобы пресечь подобное паразитирование, делается следующее:
- Находится срамная пикча с совокупляющимися гомосеками. Это очень важно.
- В корневой директории сайта создается файл дополнительной конфигурации «Апача» .htaccess (если его там, конечно, еще нет).
- В файле прописывается нижеприведенный код.
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?адрес_сайта [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpe?g|gif|bmp|png)$ путь_к_срамному_файлу [L]
Всё. Теперь наш сервер будет особым образом обрабатывать «внешние» запросы. Вместо целевых фалов с расширениями jpg, jpeg, gif, bmp и png сторонним ресурсам будет передаваться заранее подготовленная картинка с любвеобильными полицейскими (пожарниками, сантехниками и т. д.) в кожаных чапсах.
Экранную типографику, популяризированную Артемием Лебедевым, несмотря на определенные сложности в реализации, всё чаще и чаще можно лицезреть на «продвинутых» сайтах. Здорово, когда внимание разработчиков обращено не только на рисование градиентов и «мокрых полов», но и на грамотную обработку самого контента. Ведь красивый текст даже читать приятней.
Различать тире и дефис, кавычки и знаки дюйма народ уже худо-бедно научился. Наиболее продвинутые представители оного даже «копирайт» обозначают специальным символом (зажимаем Alt и набираем на цифровом блоке клавиатуры 0, 1, 6, 9). А вот постановка пробела в определенных ситуациях для многих до сих пор неочевидна.
Вот некоторые мои соображения на этот счет:
- Символы единиц измерения (°C тоже), №, § и т. п. отбиваться от цифр должны. Мы же не пишем 500руб.? Вот и 10% писать не надо. Исключения из правила вполне логичны: слитно пишем знаки градуса, минуты и секунды — они обладают очень небольшой массой.
- Пробел между сокращениями (в т. ч. и между инициалами) тоже нужен. Я просто не вижу причин ему там не быть :)
- А еще пробел всегда ставится перед открывающей скобкой. Уважаемый(ая) — стыдоба!
- При указании размеров рекомендуется отбивать разделитель с обеих сторон. Если разделяем обычным «иксом», то это справедливо. При использовании же спeцсимвола ASCII
× (а так и надо) это лишне. И так хорошо смотрится: 120×120×25 мм.
- Юзаем неразрывный пробел (
) для группировки элементов, которые всегда должны быть вместе. Грустно, когда строчка заканчивается фамилией Иванов, а следующая начинается с инициалов И. И. Так быть не должно.
Надо сказать, что пробелы в ряде случаев по типографским правилам должны быть не стандартными, а уменьшенными. Смотрится это действительно лучше. Но поскольку вменяемого способа реализовать это на веб-страницах нету, я думаю, что лучше уж полновесный пробел, чем вообще никакого.
Интересный момент. При оформлении лебедевского «Ководства» к проблеме процента подошли следующим образом: размерность не отбивается от значения, а помещается в строчный контейнер с небольшим отступом слева: <span style="margin-left:2pt;">%</span>. Считаю это излишней въедливостью. К тому же страдает реализация:

«Ководство», § 83
Вообще же на данную тему я рекомендую к ознакомлению ГОСТ 8.417-2002 и труды Аркадия Мильчина. Очень познавательно. Главное — включать голову, экстраполируя прочитанное на особенности веб-верстки. Вот «висячая» пунктуация в данном контексте мне, например, видится самой настоящей блажью.
Написал нехитрый PHP-скрипт для задания случайного цвета элементам веб-страниц. Сценарий работает следующим образом:
- создается массив color из 216-ти элементов, каждый из которых представляет собой один из цветов «безопасной» веб-палитры в трехзначном HEX-формате;
- из массива выбирается один случайный элемент;
- значение этого элемента выводится, а вплотную перед ним вставляется «решетка» (#).
Таким образом, достаточно всего лишь вставить нижеприведенный кусок кода в «тело» PHP-пригодного документа, и цвет текста абзаца будет меняться при каждой новой загрузке страницы.
<p style="color: <?php include('относительный адрес файла color.php'); ?>;">
Выбор случайного цвета средствами PHP. Итак…
</p>
Инсталляция навыков работы с XHTML прошла стремительно и успешно. Оказывается, я всю дорогу им и пользовался, только не подозревал об этом :
- тегов открытых ни в жисть не оставлял («лесенка» рулит!);
- разметку делал только строчными буквами (лень рулит!);
- булевы атрибуты прописывал исключительно в развернутой форме (педантичность рулит!).
Вдохновившись этим осознанием, я резво переписал разметку данного сайта сразу под садо-мазо-версию языка — XHTML 1.1, с которой баловать значительно проблематичней, чем с более народной и всепрощающей XHTML 1.0 Transitional. Делов-то оказалось: закрыть непарные теги да «обернуть» абзацами input’ы.
В общем, с изначально грамотным кодом геморроя в перспективе завсегда меньше. Лично убеждался в этом не один раз. Сижу, наслаждаюсь результатом, попивая черный кофий со сливочной помадкой.
Кстати, сразу же отвечаю на незаданный вопрос «ну и захер это вообще было нужно?» — а для общего развития. Для чего ж еще-то?
Бурное изучение различных материалов по хитрому-хитрому PHP буквально пинками подталкивает меня к «пересаживанию» с канонiчного, но откровенно распиздяйского HTML’а на модный и современный, но бесконечно строгий XHTML (eXtensible HyperText Markup Language). В нем-то уже, понятное дело, как раньше не забалуешь.
Хорошо хоть, что разница невелика и кроется преимущественно в мелочах. Временно забросил PHP, читаю про XHTML. Все-таки лучше <br>, но в HTML’е или <br />, но в XHTML’е? Чешу в нерешительности репу и понапрасну только волнуюсь…
Кстати, я уже успел упомянуть, что связь между осваиванием «ПэХэПэ» и изучением XHTML’а не прямая, но косвенная? Потому что в данном контексте это очень важно…
Есть у меня такое замечательное правило — «Не умею чего-то? Надо попробовать!». Руководствуясь именно этим, я сжег свой домашний компьютер, пробил артерию на левой ладони и научился жонглировать. И это только в пределах последних нескольких месяцев.
Вот и сегодня, чистя зубы, думал думы: «А не засесть ли мне за осмысленное изучение языка PHP?». Ведь связка HTML+CSS сама по себе малофункциональна, а главное — скучна. Динамический же PHP-код, приятно разбавляющий привычную HTML-разметку — другой коленкор! Совсем не лишняя дисциплина для могучего интернет-богатыря. Да и простое раздражение межушного нерва — занятие завсегда полезное.
Я, конечно же, регулярно пользуюсь рядом PHP-функций, но на довольно грустном уровне. Вроде того: найти готовое решение, похожее на то, что мне нужно, и посредством стамески, напильника и рубанка, методом проб, ошибок и полунаучного тыка обработать его до требуемой функциональности.
Между тем потенциальные возможности простого, что валенки деда Карпа, языка программирования конкретно впечатляют. Аж дух захватыват от открывающихся перспектив. Уж не знаю, на сколько хватит энтузиастского запала, но пока дико интерестно. Особенно если всё понятно и получается как надо :)
Почему мне раньше не приходила в тыкву простая идея заменить повторяющиеся витиеватые HTML-конструкции переменными/константами, многократно упрощая сам код и его последующее корректирование, — тайна, мраком покрытая… Так что <?php echo "Hello, world!!!!11"; ?>.
Со времен царя Николая известно, что в общем макеты сайтов можно условно разделить на макеты с фиксированной шириной и «резиновые», которые автоматически подстраиваются под размеры окна. Я уже давно перестал мыслить категориями «„резина“ сложнее в исполнении, а значит, круче» — верстка всегда должна определяться здравым смыслом и поставленными перед сайтом задачами.
Страницу с одной-единственной колонкой, растянутой на всю ширину экрана, чертовски сложно читать. Крупный же новостной портал, содержащий изрядно информационных блоков, просто немыслим в формате фиксированной ширины.
Но я всегда ловлю клина, когда достопочтеннейшие веб-разработчики делают сайты фиксированной ширины, выравненные по левому/правому краю окна. Если на маленьких разрешениях всё выглядит более-менее опрятно, то на разрешениях побольше (скажем, 1680 пикселей по широкой стороне) начинается сущий цирк.
Например, сайт охренительной компании Adobe, раздел про Flash Player. Задизайнен мастерски — просто и со вкусом, техническая реализация выше всяческих похвал — не придерешься; а выглядит, как недоделанный. Но с чем черт не шутит? Может верстальщик и вправду еще не выучил CSS-конструкцию margin: auto, центрирующую целевой блок?

Фиксированная ширина
Давным-давно, когда трава была зеленее, небо — выше, а я был голубоглазым блондином двухметрового роста и только начинал робко интересоваться технологиями создания сайтов, один очень толковый товарищ, которого я (к своему стыду) по десять раз на дню дергал с совсем уж бараньими вопросами, сказал: «Пока не освоишь CSS, даже не думай начинай верстать». Я, разумеется, считая себя умнее всех современников, подумал, что мне и одного HTML хватит. Чай не пальцем сделан. Последующие несколько дней манипуляций с кодом превратились в колоссальное количество выкинутых на ветер жопо-часов.
Выражение «умный учится на чужих ошибках, дурак — на своих», приписанное рыхлому Будде, выдумали идеалисты-казуисты, т. е. личности, недостаточно сообразительные (см. «долбоебы»). Как выяснили британские ученые, собственный негативный опыт в четыреста семнадцать раз полезнее чужого, и это неоспоримая истина. После описанного выше случая я для себя четко понял (и записал в толстый хозяйственный блокнот): HTML-код должен содержать только целевую информацию и разметку страницы. Все описания визуализации должны быть вынесены во внешний CSS-файл.
Разумеется, бывают исключения, при которых правила отображения контента оправдано «вшивать» в сам HTML-код, но их ничтожно мало. Казалось бы, это настолько очевидно, что даже и говорить нет никакого смысла. Однако ж, работая с чужим кодом, порой просто диву даешься. Когда я вижу сайт, сверстанный одними только таблицами, да еще и с применением внутритекстовых стилей, я сатанею. Обслуживать его сложнее, чем занять денег у добропорядочного иудея (см. «разжигание межнациональной розни»). Мне не хватает фантазии представить, что твориться в голове у такого разработчика.