Беляевский.ру

Метка «кодирование»

Борьба с хотлинкингом посредством .htaccess 02.09.09 — 14:53

Метки: ,

Итак, что же такое хотлинкинг, и зачем вообще с ним бороться. Хотлинкингом в народе называется внедрение в веб-страницу мультимедийного контента, расположенного на чужом сервере.

Пример «на пальцах»: на неком абстрактном ресурсе X размещается картинка. Недобросовестный же владелец ресурса Y, желая, чтобы это изображение было и на его сайте тоже, просто прописывает в теге <img> абсолютный адрес к целевому файлу, банально воруя чужой трафик. Ведь каждый просмотр такой картинки на сайте Y на самом деле будет обращением к файлу сайта X.

Чтобы пресечь подобное паразитирование, делается следующее:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?адрес_сайта [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpe?g|gif|bmp|png)$ путь_к_срамному_файлу [L]

Всё. Теперь наш сервер будет особым образом обрабатывать «внешние» запросы. Вместо целевых фалов с расширениями jpg, jpeg, gif, bmp и png сторонним ресурсам будет передаваться заранее подготовленная картинка с любвеобильными полицейскими (пожарниками, сантехниками и т. д.) в кожаных чапсах.

Комментировать

Нюансы экранной типографики 23.07.09 — 20:51

Метки: , , , ,

Экранную типографику, популяризированную Артемием Лебедевым, несмотря на определенные сложности в реализации, всё чаще и чаще можно лицезреть на «продвинутых» сайтах. Здорово, когда внимание разработчиков обращено не только на рисование градиентов и «мокрых полов», но и на грамотную обработку самого контента. Ведь красивый текст даже читать приятней.

Различать тире и дефис, кавычки и знаки дюйма народ уже худо-бедно научился. Наиболее продвинутые представители оного даже «копирайт» обозначают специальным символом (зажимаем Alt и набираем на цифровом блоке клавиатуры 0, 1, 6, 9). А вот постановка пробела в определенных ситуациях для многих до сих пор неочевидна.

Вот некоторые мои соображения на этот счет:

Надо сказать, что пробелы в ряде случаев по типографским правилам должны быть не стандартными, а уменьшенными. Смотрится это действительно лучше. Но поскольку вменяемого способа реализовать это на веб-страницах нету, я думаю, что лучше уж полновесный пробел, чем вообще никакого.

Интересный момент. При оформлении лебедевского «Ководства» к проблеме процента подошли следующим образом: размерность не отбивается от значения, а помещается в строчный контейнер с небольшим отступом слева: <span style="margin-left:2pt;">%</span>. Считаю это излишней въедливостью. К тому же страдает реализация:

«Ководство», § 83
«Ководство», § 83

Вообще же на данную тему я рекомендую к ознакомлению ГОСТ 8.417-2002 и труды Аркадия Мильчина. Очень познавательно. Главное — включать голову, экстраполируя прочитанное на особенности веб-верстки. Вот «висячая» пунктуация в данном контексте мне, например, видится самой настоящей блажью.

Комментировать

Выбор случайного цвета средствами PHP 22.07.09 — 14:27

Метки: , , , ,

Написал нехитрый PHP-скрипт для задания случайного цвета элементам веб-страниц. Сценарий работает следующим образом:

Таким образом, достаточно всего лишь вставить нижеприведенный кусок кода в «тело» PHP-пригодного документа, и цвет текста абзаца будет меняться при каждой новой загрузке страницы.

<p style="color: <?php include('относительный адрес файла color.php'); ?>;">
    Выбор случайного цвета средствами PHP. Итак…
</p>

Комментировать

Я знаю XHTML и умею летать! 21.07.09 — 21:52

Метки: , ,

Инсталляция навыков работы с XHTML прошла стремительно и успешно. Оказывается, я всю дорогу им и пользовался, только не подозревал об этом :

Вдохновившись этим осознанием, я резво переписал разметку данного сайта сразу под садо-мазо-версию языка — XHTML 1.1, с которой баловать значительно проблематичней, чем с более народной и всепрощающей XHTML 1.0 Transitional. Делов-то оказалось: закрыть непарные теги да «обернуть» абзацами input’ы.

В общем, с изначально грамотным кодом геморроя в перспективе завсегда меньше. Лично убеждался в этом не один раз. Сижу, наслаждаюсь результатом, попивая черный кофий со сливочной помадкой.

Кстати, сразу же отвечаю на незаданный вопрос «ну и захер это вообще было нужно?» — а для общего развития. Для чего ж еще-то?

Комментировать

Дилемма: HTML или XHTML? 06.07.09 — 17:24

Метки: , , ,

Бурное изучение различных материалов по хитрому-хитрому PHP буквально пинками подталкивает меня к «пересаживанию» с канонiчного, но откровенно распиздяйского HTML’а на модный и современный, но бесконечно строгий XHTML (eXtensible HyperText Markup Language). В нем-то уже, понятное дело, как раньше не забалуешь.

Хорошо хоть, что разница невелика и кроется преимущественно в мелочах. Временно забросил PHP, читаю про XHTML. Все-таки лучше <br>, но в HTML’е или <br />, но в XHTML’е? Чешу в нерешительности репу и понапрасну только волнуюсь…

Кстати, я уже успел упомянуть, что связь между осваиванием «ПэХэПэ» и изучением XHTML’а не прямая, но косвенная? Потому что в данном контексте это очень важно…

Комментировать

Изучение PHP 30.06.09 — 12:36

Метки: , , , ,

Есть у меня такое замечательное правило — «Не умею чего-то? Надо попробовать!». Руководствуясь именно этим, я сжег свой домашний компьютер, пробил артерию на левой ладони и научился жонглировать. И это только в пределах последних нескольких месяцев.

Вот и сегодня, чистя зубы, думал думы: «А не засесть ли мне за осмысленное изучение языка PHP?». Ведь связка HTML+CSS сама по себе малофункциональна, а главное — скучна. Динамический же PHP-код, приятно разбавляющий привычную HTML-разметку — другой коленкор! Совсем не лишняя дисциплина для могучего интернет-богатыря. Да и простое раздражение межушного нерва — занятие завсегда полезное.

Я, конечно же, регулярно пользуюсь рядом PHP-функций, но на довольно грустном уровне. Вроде того: найти готовое решение, похожее на то, что мне нужно, и посредством стамески, напильника и рубанка, методом проб, ошибок и полунаучного тыка обработать его до требуемой функциональности.

Между тем потенциальные возможности простого, что валенки деда Карпа, языка программирования конкретно впечатляют. Аж дух захватыват от открывающихся перспектив. Уж не знаю, на сколько хватит энтузиастского запала, но пока дико интерестно. Особенно если всё понятно и получается как надо :)

Почему мне раньше не приходила в тыкву простая идея заменить повторяющиеся витиеватые HTML-конструкции переменными/константами, многократно упрощая сам код и его последующее корректирование, — тайна, мраком покрытая… Так что <?php echo "Hello, world!!!!11"; ?>.

2 комментария

Сайты с фиксированной шириной: выравнивание 29.06.09 — 13:38

Метки: , , ,

Со времен царя Николая известно, что в общем макеты сайтов можно условно разделить на макеты с фиксированной шириной и «резиновые», которые автоматически подстраиваются под размеры окна. Я уже давно перестал мыслить категориями «„резина“ сложнее в исполнении, а значит, круче» — верстка всегда должна определяться здравым смыслом и поставленными перед сайтом задачами.

Страницу с одной-единственной колонкой, растянутой на всю ширину экрана, чертовски сложно читать. Крупный же новостной портал, содержащий изрядно информационных блоков, просто немыслим в формате фиксированной ширины.

Но я всегда ловлю клина, когда достопочтеннейшие веб-разработчики делают сайты фиксированной ширины, выравненные по левому/правому краю окна. Если на маленьких разрешениях всё выглядит более-менее опрятно, то на разрешениях побольше (скажем, 1680 пикселей по широкой стороне) начинается сущий цирк.

Например, сайт охренительной компании Adobe, раздел про Flash Player. Задизайнен мастерски — просто и со вкусом, техническая реализация выше всяческих похвал — не придерешься; а выглядит, как недоделанный. Но с чем черт не шутит? Может верстальщик и вправду еще не выучил CSS-конструкцию margin: auto, центрирующую целевой блок?

Фиксированная ширина
Фиксированная ширина

Комментировать

Простые истины о HTML и CS 21.03.09 — 12:27

Метки: , , , ,

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

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

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

Комментировать
© 2008—2010 Денис Беляевский
Пишите письма: den@belyaevskiy.ru