Попалась на глаза заметка “Building a website with Photoshop and Dreamweaver” в PhotoshopCAFE. Как обычно на английском, но с картинками. Рекомендуется к просмотру начинающим вебмастерам для увеличения опыта и опытным – для критики. В программе: подготовка фонового изображения, добавление дизайнерских штучек, добавление слоев, оптимизация и публикация и т.д. Также на сайте можно обнаружить массу интересных туториалов по Photoshop.
Diesel loverdose ароматы
Вариант решения XSS-уязвимости при редиректе
Вот недавно пришлось вернуться к вопросу XSS-уязвимости, что это такое можно прочитать на SecurityLab. По сути DenD в своей заметке XSS-уязвимость в WordPress, подымал эту проблему в рамках движка WordPress.
Однако, решение с использованием функции urlencode() у меня просто не сработало. Создавалась ситуация, когда закодированная строка подставляемая как в header("Location: …, так и document.location.href=… просто прилипала к корню сайта, т.е. создавался URL вида /go.php?http://sitedomain.com//go.php?http://siteredirect.com. Решение этой ситуации я не нашёл поэтому попытался найти альтернативный вариант.
Суть моего вариант сводится к вырезке URL’я из передаваемой скрипту строки. Выглядит это следующим образом:
preg_match_all("#/go.php?http://(www|ftp\.)?(([\w\-]+\.)*[\w]+(:[0-9]+)?)#i",$_GET[url],$m);
$_GET[url] = $m[0][0];
Используемое здесь регулярное выражение возможно не самое совершенное и я буду рад если вы сможете помочь его доработать или вообще предложить свой более лучший вариант. Удачи.
Динамический список загружаемых файлов на JavaScript
Недавно понадобилось создать форму для загрузки файлов на сервер. Задача осложнялась тем, что количество файлов в каждом случае различно. Обойтись одними средствами PHP показалось немного нерентабельным, поэтому выбор пал на JavaScript. Суть решение заключается в создании DIV‘а, который содержит строки из массива ar. При этом, ar[0] содержит вложенный в DIV HTML код (в нашем случае форму типа file), а остальные его элементы представляют собой hidden‘ы со значениями загружаемых файлов и ссылок для удаления.
<script>
var ar = new Array()
var id = 0
var bn = ''
ar[1] =''
function shw () {
var res = ''
for (var i in ar) res = res + ar[i]
document.getElementById(bn).innerHTML = res
}
function del (id) {
ar[id] = ''
shw ()
}
function add (boxName, obj) {
if (bn=='') bn = boxName
if (ar[0]=='') ar[0] = document.getElementById(bn).innerHTML
id = id + 1;
ar[id] = '<input type="hidden" name="fnames[]" value="' + obj.value + '">' + obj.value + ' (<a href="JavaScript:del(' + id + ')">del</a>)<br>'
shw ()
}
</script>
<div id="box"><input onchange="add('box',this)" type="file" value="df"><br></div>
Как вы видите, используются 3 функции: add – добавление; del – удаление и shw – отображение массива ar в DIV’е. Думаю, что останавливаться более подробней на деталях нет смысла. Единственно, что для меня здесь было ново это реализация перебора элементов массива в JavaScript с учётом того, что сам индексы массива ar в случае удаления образуют пробелы. В PHP у нас есть foreach, а в JavaScript сработал “in“, который, как я понял, отдаёт переменной i индексы массива.
Если вы нашли ошибки в моём коде (если в тексте используйте Orphus) или знаете более лучшие варианты решение пишите в комментариях.
Редирект ссылки (URL) BBCode в форумах phpBB
Ведение форума не простая задача хотя бы потому, что он является заманчивым средством для ссылочного спама. Борьба с такими проявлениями активности пользователей имеет массу решений среди которых можно предложить вставки редиректа в ссылках. Другими словами вместо ссылки: /go.php?http://site.ru – мы делаем: go.php?/go.php?http://site.ru. По сути, ничего сложного если знаешь где, как и что прописать, в нашем случае речь пойдёт о движке phpBB.
Первое, что вам нужно сделать, так это создать какой ни будь go.php, самый простой вариант:
<?php @header("Location: ".$QUERY_STRING); ?>
Конечно, здесь можно сделать и иначе, так что экспериментируйте. Далее необходимо найти файл шаблонов: bbcode.tpl, по умолчанию ищите его в директории: templates/subSilver. Найдите строку:
<!-- BEGIN url --><a href="{URL}" target="_blank" class="postlink">{DESCRIPTION}</a><!-- END url -->
замените её на:
<!-- BEGIN url --><a href="go.php?{URL}" target="_blank" class="postlink">{DESCRIPTION}</a><!-- END url -->
Можно подправить и файл includes/bbcode.php, а точнее функцию make_clickable, в которой кусочки: <a href="\2" надо заменить на: <a href="go.php?\2".
Вот и всё, возможно есть более интересные способы, всегда буду рад узнать альтернативу.
Update:
Основной задачей внедрения редиректа в phpBB было сохранение тИЦ’а и PR’а форума и как результат снижение интереса спамеров. Однако нюанс существования склейки редиректа поисковиками Google, MSN и т.д. возможно, что приводит к определённым потерям. Как таковой, решение проблемы очень простое, спасибо fly136 за напоминание, достаточно в robots.txt прописать строку:
Disallow: /go.php
К слову, если вы занялись вопросом редиректа вам возможно будет интересно прочитать:
- Вариант решения XSS-уязвимости при редиректе
немного о том как слегка обезопасить редирект - Дружба партнёрских программ и SEO
вообще о партнёрских ссылках, но всё с тем же редиректом и посылаемыми им заголовками
Update:
Ещё одно интересное дополнение. Думаю, многим известен рейтинг LiveInternet.ru. Как известно, он даёт возможность вести статистику «переходы по ссылке». Чтобы долго не объяснять процитирую:
Отчет показывает статистику по переходам с вашего сайта по специально оформленным ссылкам.
По умолчанию на сайте только на логотипе liveinternet.ru может быть такая ссылка:/go.php?http://www.liveinternet.ru/click
Поэтому изначально в отчете показывается количество кликов по счетчику на сайте. С помощью этого click’а также можно считать переходы по произвольным ссылкам (для краткости есть дополнительный вариант написания click’а:/go.php?http://li.ru/go). Допустим, у вас сайте есть такая ссылка
<a href="/go.php?http://www.site.ru/super/">super</a>
если вы измените ее следующим образом:
<a href="/go.php?http://li.ru/go?www.site.ru/super/">super</a>
то при нажатии на такую ссылку система перенаправит браузер по адресуwww.site.ru/super/, произведя при этом учет перехода.
Таким образом можно особо не задумываться и использовать готовое решение которое ещё м поможет получить статистику.
Работа с Блоками в Template от PHPLib
Введение: эту статью я написал ещё 14.08.2003, но хочется добавить её в общую копилку. Возможно, что сейчас я бы написал её несколько иначе, однако ….
В этой статье мне хотелось бы поговорить об одной немаловажной вещице, которую Девид Орр, в своей статье “Шаблоны, путь к PHPLib“, всетаки опустил, а именно об работе с Блоками. Что такое блоки, спросите Вы? Представте себе ситуацию: у вас есть Шаблон, в котором какаята его часть должна дублироваться с измененим соответствующих переменных, другими словами листинг. Для лучшего понимания приведу живой пример list.ihtml:
<table border=0 cellpading=1 cellspacing=3>
<!-- BEGIN LIST -->
<tr>
<td>{NAME}</td>
</tr>
<!-- END LIST -->
</table>
Здесь Мы видем таблицу, содержащую строку, в которой имеется ячейка с переменной {NAME}. Сама страка помещена между двумя комментариями, формата:
<!-- BEGIN ИМЯ_БЛОКА --> … содержание блока … <!-- END ИМЯ_БЛОКА -->
что говорит, об существовании блока LIST, который мы можем продублировать необходимое число раз. Но как это сделать и как оно работает? Но давайте попарядку приведу живой пример:
include_once ('template.php'); // подключение библиотеки
$t = new template('template'); // создаем объект шаблона с именем $t
$t->set_file('list','list.ihtml'); // определяем используемый файл шаблона
$t->set_block('list', 'LIST', 'OUTPUT'); // определяем блок LIST
for( $i=1; $i<10; $i++ ){ // задаем цикл генерации строк листинга
$t->set_var('NAME', $i); // определяем переменную NAME
$t->parse('OUTPUT', 'LIST', true); // парсируем строки листинга
}
$t->pparse('output','list'); // парсируем и выводим шаблон list
Здесь set_block извлекает блок LIST из шаблона list и заменяет его на переменную OUTPUT. Переменная OUTPUT парсируется строками обработанного блока LIST и затем парсируется в шаблон list.
Синтаксис
set_block(string $parent, string $handle, string $name = "")
Извлекает блок $handle из шаблона $parent и заменяет его на переменную {$name}, которая по умалчанию равна $handle.
Техническая заметка.
Незнаю как у вас а у меня в Template.php строку:
$str = preg_replace($reg, "{$name}", $str);
пришлось подрихтовать:
$str = preg_replace($reg, "{".$name."}", $str);
быть может и Вам поможет.
Начальный курс по usability
Когда я впервые услышал это слово – usability
, я ассоциировал его с количеством информационных блоков, таких как: новости, погода, курсы валют и чем их было больше, тем сайт казался мне юзабельней. По всей видимости, такое представлении является очень ограниченным.
Usability (англ. usability – “возможность использования“) – удобство использования сайта посетителем в плане: навигации, структуры сайта, рациональности и т.д.
Как же сделать свой сайт более простым и удобным для посетителей? Чтобы ответить на это вопрос я обратился к книге Стива Круга «Не заставляйте меня думать!» Конечно, я не стану её перепечатывать, но хотелось бы поделиться полученными знаниями и своими соображениями. И так, остановимся на пяти важных шагах к юзабилити:
- Иерархия
Лучший способ сделать страницу простой заключается в организации ясной визуальной иерархии её элементов. Такая страница будет обладать тремя основными чертами:- Чем более важен элемент, тем более он заметен на странице;
- Элементы, логически связанные между собой, должны быть связаны и визуально;
- Элемент представляются в виде вложений, если являются частями друг друга.
- Обычаи и условности – ваши друзья
Речь идёт о общих признаках к которым мы привыкаем в течении своей жизни. Так мы привыкли, что сайт имеет своё название, меню и т.д. Другими словами, чем более обычней всё выглядит тем лучше с точки зрения юзабилити. - Разбейте страниц на чётко разделённые области.
- Покажите ясно, по чему можно щелкать мышью
Увлекаясь дизайном страниц, мы часто делаем ссылки сливающимися с текстом, что не даёт посетителю возможности понять, на что можно кликать. Лишь подведя курсор к ссылке пользователь узнаёт что это такое, что и влияет на юзабельность. - Уменьшайте визуальный шум
Визуальный шум является основным препятствием для получения легко воспринимаемых веб страниц. Можно выделить два типа визуального шума:- Перегруженность – наличие множества кричащей рекламы, восклицательных знаков и яркоцветных выделений;
- Фоновый шум – смешивание элементов оформления (разделителей, указателей и т.д.) с содержанием в единую массу.
Вот такой небольшой и кратенький экскурс в usability. Надеюсь он будет вам чем-то полезен, однако если вы в серьёз заинтересовались данным вопросом советую купить выше упомянутую книгу. Лично я покупал её на книжном рынке за 10$ (Киве, Украина) и по сути пока не разочаровался. Удачи.
По мотивам: Стив Кург «Не заставляйте меня думать!», Глава 3 «Начальный курс по созданию рекламных щитов»
Интернет реклама
Интересное дело эта реклама. Когда то, баннерные системы были в новинку. Мы с трепетом наблюдали как при каждом обращении к своему home page с незамысловатым «hi world» появлялся всё новый и новый рисунок какого то сайта. Кликнуть по такому рисунку было заманчиво, кликабельность была на высоте. Но время шло, реклама заполонила Интернет от А до Я и дальше.
Реклама стала появляться не только на сайтах, но и в программах, которые работают с Интернетом. Примером того является ICQ внедрившая динамическую рекламу в свой месенджер. Браузер Opera с тем же успехом транслировал баннеры в Trial версиях и т.д.
Но и сайты не стояли на месте. Появились умельцы, хитро размещающие свои баннеры, привлекающие кликнуть такими лозунгами как: «здесь есть то, чего больше нигде нет» или «если вам нравится наш проект, кликните по баннеру» и т.д. В некоторых случаях разрабатываются целые принудительные системы, такие как: «получение информации взамен клика». Многие стали пользоваться всяческой накруткой. Другими словами «клик» заставил подсуетиться, и найти новые виды рекламы.
Так появились RichMedia — всплывающие на сайте поверх его содержания баннера. Следует отметить, что их CTR намного больше, чем у обычных баннеров. Возможно именно поэтому, та же сеть AdNet, платит за показы, а не за клики. Однако, такой вид рекламы является немного навязчивым и следовательно её эффективность можно поддать сомнению. Разработчики пытаются обустроить свои системы виртуальным интеллектом.
И вот теперь реклама становится умнее и хитрее. Появляется контекстная реклама, например AdSense. Она уже не просто выводит ссылки и баннеры, она выводит их в соответствии с содержанием сайтов. Более того, наиболее релевантная реклама выделяется, дабы сделать её более заметной. При этом, мы не отказываемся от уже испытанных методов маскировки рекламы, привлечения к ней внимания и т.д. Да, когда в дело вступают деньги, все средства становятся хороши. Вообще, контекстная реклама перекочевала на наши сайты с поисковых систем, которые выделяют и ставят рекламные ссылки на заметные места в страницы результатов поиска. Такая реклама вызвала рост спроса и рост заработка.
Но там где бывают большие деньги, там появляются и агрессивная реклама. Так многие поисковые системы основным заработком которых стало создание трафика на сайты рекламодателей любой ценой, воспользовались услугами вирусных программ, так называемого spyware. Он проникает на ваш компьютер и делает так, что при каждом открытии того же браузера в окно загружается именно этот поисковик. Смена домашней страницы ничего не меняет. Как показывает практика, избавиться от подобного достаточно сложно и дешевле отформатировать диск и поставить всё заново. Даже антивирусные программы, различные бренмауэры и т.д. зачастую оказываются бессильны под натиском желания заработать.
Но вернёмся к рекламе законной. Как оказалось, поисковая реклама является наиболее выгодным, так как создаёт целевой трафик. Но то, что является наиболее эффективным, является и наиболее дорогим. И здесь нашлось место ещё одному альтернативному виду рекламы. Так называемое: «посуточному размещению прямых ссылок» — позволяющее повысить индекс цитирования сайта. Показатели тИЦ и PageRank стали своего рода средством заработка. Не даром рекламный брокер CLX.ru выделил этот формат рекламы, не смотря на оставшуюся в арсенале оплату за показы и клики. Суть рекламы проста, на главных страницах сайта размещаются прямые ссылки на сайт рекламодателя, при этом учитывается количества внешних ссылок и показатели индекса цитирования рекламной площадки. Отслеживать такой процесс бывает сложно, но CLX.ru берёт на себя всю ответственность и обязанности. Однако, это не исключает и прямого сотрудничества без такого посредника.
И так, ничто не стоит на месте. Всё движется. Какие новые виды рекламы появятся в будущем? Что ещё можно придумать? Время покажет. Пока же мы имеем перспективу роста и широкий арсенал разработок.
Ошибка 404
Иногда когда вы обращаетесь к той или иной странице сайта, но вместо неё получаете сообщение об ошибке. Сама ошибка сопровождается цифровым кодом. Наиболее распространённой ошибкой является – Ошибка 404.
Что означает ошибка 404?
Ошибка 404 обозначает, что на сайте не существует страниц соответствующей запрошенному вами URL’ю.
Каковы причины возникновения ошибки 404?
Ошибка 404 может возникнуть по двум причинам:
- ссылка неверна;
- ранее существовавшая страница была удалена.
Страница 404
Ошибка 404 выводится браузером в виде различных сообщений. Например, браузер Internet Explorer выдаёт страницу с заголовком HTTP 404 Не надено
и содержанием:
Возможно, эта страница была удалена, переименована, или она временно недоступна.
Попробуйте следующее:
- Проверьте правильность адреса страницы в строке адреса.
- Откройте www… домашнюю страницу, затем найдите там ссылки на нужные данные.
- Нажмите кнопку Назад, чтобы использовать другую ссылку.
- Нажмите кнопку Поиск для поиска сведений в Интернете.
HTTP 404 – Файл не найден
Internet Explorer
Однако, страницу 404 можно создать, оформить, контролировать и самому.
Как сделать свою страницу 404?
По сути, ошибка 404 – это возвращаемый сервером голый
HTTP-заголовок. Под словом голый
, я подразумеваю отсутствие содержания самой страницы, она формируется потом, тем же браузером. Однако, можно указать серверу страницу сайта на которую будет осуществляться переход при возникновении ошибки 404. Для этого, Вы должны иметь возможность вносить изменения в настройки сервера, по средствам того же .htaccess. Для нашего случая, нам необходимо прописать следующую директиву:
ErrorDocument 404 /404.html
где ErrorDocument – название директивы, 404 – код ошибки, а /404.html – URL страницы которая будет выводиться при возникновении ошибки 404.
Следует отметить, что большинство провайдеров, предоставляющих услуги по размещению сайтов в Интернете, облегчили процесс прописывания таких страниц за счёт специальных панелей управления сайтом.
Создание сайта
Что такое сайт?
Сайт (от англ. site – место, синонимы: веб-сайт, ресурс) – это место в интернете, которое определяется своим адресом, имеет своего владельца и состоит из веб-страниц, которые воспринимаются как единое целое. Строгого определения сайта не существует – например, некоторые разделы больших сайтов вполне могут восприниматься и даже определяться их владельцами как отдельные сайты. Стартовую страницу, которая появляется при обращении к доменному имени сайта, часто называют “мордой” сайта.
Основными составляющими сайта являются: дизайн, движок, хостинг и домен.
Что такое веб дизайне (web-дизайне)?
Дизайн (от англ. design – проектировать, чертить, задумать, а также проект, план, рисунок) – это новый вид деятельности по проектированию предметного мира. Данный термин возник в начале 20 в. как реакция на стихийное формирование визуальных и функциональных свойств предметной среды.
Веб-дизайн (от англ. web-design – проектирование веба) – это оформление веб-страниц. Он играет такую же роль для сайта, как полиграфический дизайн и верстка для бумажного издания. Часто под веб-дизайном понимают не только создание графических элементов для сайта, но и проектирование его структуры, навигации и иногда даже движков (CMS), нужных для работы сайта, то есть создание сайта целиком. Дизайн в смысле разумного устройства сайта значительно важнее, чем его “красивость”.
Дизайн сайта, как правило, выполняют специализированные студии веб-дизайна. Создание дизайна для сайта может стоить вам как $300, так и $30 000 – в зависимости от объема сайта, количества графических элементов, уровня специалистов, которые над ним работают, необходимости программирования и т.д. Во многих случаях бывает вполне достаточно студии, состоящей из двух толковых студентов, разбирающихся в интернете и владеющих навыками работы с графическим ПО.
Что такое движок?
Движок (англ. engine – механизм, двигатель) – это программа, реализующая функциональность веб-сайта, отличную от простого показа готовых веб-страниц. Например, просмотр каталога интернет-магазина (список товаров извлекается из базы данных магазина), поиск в интернете (страницы с ответами поисковой системы формируются динамически), показ баннеров (движок “выдает” страницам сайта тот или иной баннер по заданному алгоритму).
Что такое хостинг?
Хостинг (англ. web-hosting, collocation, синоним – веб-хостинг) – это услуга по размещению чужого веб-сайта на своем веб-сервере или чужого веб-сервера на своей “площадке”, т.е. предоставление подключения к интернету и обслуживание. Как правило, спрос на хостирование сайтов значительно больше, чем на хостирование серверов, поскольку последнее нужно только для довольно крупных сайтов. Кроме того, хостингами называют сами площадки или сервера, предоставляющие эту услугу.
Размещение своего сервера на хостинговой площадке (collocation) – всегда платная услуга, а вот размещение сайтов бывает бесплатным.
Бесплатные веб-хостинги – это веб-сервисы, которые предлагают пользователям некоторое пространство на своих серверах для размещения сайтов. При этом к размещаемой информации могут предъявляться определенные требования (ограничения по содержанию, по объему размещаемых файлов и др.). Кроме того, на многих веб-хостингах ограничено или невозможно использование движок, баз данных и т.д.
Многие известные веб-хостинги предлагают построение сайтов на основе так называемых “шаблонов” или “конструкторов”. С их помощью можно легко создавать веб-страницы, не имея представления о языке HTML.
Обычно бесплатные хостинги оговаривают в пользовательском соглашении свое право размещать на хостируемых сайтах рекламу, чтобы таким образом компенсировать свои затраты. Иногда бесплатный хостинг страничек пользователей предлагает провайдер.
Что такое домен?
Домен (от англ. domain – область, территория) – самая крупная структурная единица Internet. По международному соглашению каждой стране выделено некоторое кодовое обозначение длиной 2-3 буквы, которое называется доменом первого уровня или доменом этой страны. Так, например, если адрес сайта заканчивается на .ru – значит, сайт находится в домене России, .fr – Франции, .jp – Японии. Кроме того, существуют несколько доменов первого уровня, связанных не с географией, а с направленностью сайта – например, .com для коммерческих, .org для некоммерческих, .edu для образовательных организаций. Домен первого уровня также называют “зоной”.
Домены второго уровня выдаются предприятиям и частным лицам в аренду, как правило, с ежегодной оплатой. В каждой зоне домены второго уровня выдает специально уполномоченная организация. В России этим занимается РосНИИРОС. Домен второго уровня, также как и любого другого, должен состоять из цифр и букв латинского алфавита, например yahoo.com, lib.ru, b2b.ru. Выбирая домен второго уровня для своего сайта, как правило, стараются найти слово, которое будет соответствовать названию организации, товара или направления деятельности, а также легко читаться и запоминаться, например, gazeta.ru, generalmotors.ru, narod.ru.
Обладатель домена второго уровня имеет возможность создавать неограниченное количество адресов третьего и далее уровней. Так, например, владелец домена pupkin.ru может создать для себя домен vasya.pupkin.ru, а для своей собаки – sharik.pupkin.ru.
По мотивам «Интернетско-русский разговорник» основанном на материалах предоставленых проектом Яндекс
Факторы юзабилити и блоги
Вы задумывались над тем: «как люди используют Интернет?» Создавая блог, мы изначально предполагаем, что посетитель внимательно изучит его и выберет то, что ему нужно. Но в действительности всё происходит несколько иначе. Пользователь бегло просматривает страницы и кликает по первой, показавшейся ему интересной, ссылке. Конечно, это лишь самый упрощённый вариант событий и здесь есть масса нюансов, но эта схема куда ближе к реальности, чем та, которую мы строим.
Чтобы повысить эффективность свое блога нам нужно смириться с существованием как минимум трёх факторов реального использования Интернета:
- Мы не читаем блоги, мы их просматриваем
На это влияет масса вещей: спешка, отсутствие желания читать всё подряд, наличие предположения о том, что хорошо умеем это делать и т.д. Но самым интересным нюансом является некий подсознательный набор интересующих нас тем, который мы выделяем среди всего остального. Попробуйте выделить одну из тем блога, которая могла бы заинтересовать посетителя, закрасьте остальные и посмотрите на то, что останется. Так мы получим представление о том, как можно выделить и улучшить те или иные детали и повысить эффективность блога - Наш выбор не всегда оптимален
Так как о «первой попавшейся ссылке» я уже говорил то добавлю лишь, что срабатывает принцип satisficing’а – синтез англ. Слова satisfying (удовлетворительный) и sufficing (достаточный). - Мы не думаем, над тем как оно работает, мы просто делаем «как получится»
Думаю, идея понятна, мы не всегда используем инструкции и по обычаю применяем «метод научного тыка». Но и здесь есть один наверно рефлекторный нюанс. Когда у нас что-то однажды срабатывает, мы стараемся это использовать постоянно. Хорошим примером может стать фрагмент из сказки «Принц и нищий», где нищий будучи королём использовал Главную Королевскую Печать для колки орехов, т.к. использование тяжёлого, железного предмета для этих целей было естественным.
Теперь, зная как аудитория относится к нашему детищу можно либо всё бросить, либо попытаться сделать очевидным то, что было незаметным.
P.S. Я не раз упрашивал народ «учиться не просто читать, но и понимать, что прочли». По всей видимости, я был действительно не прав исходя из тех же выше перечисленных факторов.
Не заставляйте меня думать
Стив Круг, опубликовав свою книгу: «Не заставляйте меня думать» – наверно не стремился сделать переворота, но одним названием он подвёл жирную черту в вопросе юзабилити. Думаю многим из нас, хочется добиться максимальной эффективности от своего блога. Если да, то юзабилити становится неотъемлемой составляющей этого действия.
Что такое юзабилити?
Наиболее полное и интересное определение я нашёл в глоссарии проекта «Флешь-Потрошитель». Немного очистив его от акцента на Flash, мы получим вот такой вариант:
Юзабилити – это наука о том, как избавить пользователя от лишних мыслей и действий. Также это больной вопрос для мира дизайна, так как многие разработчики не могут обуздать собственную “креативность” и создают из ряда вон выходящие поделки, абсолютно неюзабельные отходы производства.
Или как говорит Стив Круг: «это не высшая математика». К счастью, лишь здравый смысл лежит в основе данного вида деятельности, и любой желающий может научится такому подходу. Другими словами, нужно помнить об одном простом принципе:
Чем труднее что-либо использовать, тем меньше хочется этим пользоваться.
По сути это и есть первый принцип юзабилити.
Проблемой такого процесса становится необходимость рассмотреть тот же блог, как бы, со стороны. При этом, сам анализ, состоит из личностного мнения о деталях. К примеру, зайдя на юзабильный блог мысли звучали бы приблизительно так: «так, это, кажется последние записи, а вот категории, раздел блоги, щёлк» – и так далее. Плохо юзабильный блог, заставил бы задуматься и задать себе множество вопросов. К примеру: «Ой, как много тут всего, с чего мне начать? Почему они это назвали Чтиво.ru? А сюда можно кликнуть? Где разделы блога? Зачем здесь это?» – и т.д. Чем больше вопросов возникает у посетителя тем хуже обстоят дела.
Что заставляет думать?
Очень много вещей на блоге могут заставить думать. Наиболее часто, виновниками происшествия становятся слишком сложные или запутаннее названия, термины и т.д. К примеру рубрики блога, которые нам порой так сложно сформулировать одним словом: «обо всём понемногу и интересные вещи» – всё это можно заменить разделом: «остальное». Иногда бывает и так, что погнавшись за внешним видом мы забываем о восприятии функциональных деталей. Те же ссылки, иногда становятся схожими с самим текстом или сливаются с ним, что заставляет задать себе лишний вопрос. Ещё одним примером, может стать слишком сложная детализация того же поиска, форм ввода комментариев и т.д.
И так?
Из выше сказанного можно вывести второй принцип юзабибилити:
Избавьтесь от половины, а затем уберите ещё половину из того, что осталось.
По мотивам:
- «Веб.дизайн» книга Стива Круга «Не заставляйте меня думать»
- глоссарии «Флешь-Потрошитель»
Релевантность SQL запроса
MySQL предоставляет нам достаточно неплохой, однако своеобразный, способ релевантного поиска используя FULLTEXT. К примеру: SELECT MATCH (title,entry) AGAINST ('michigan') AS score FROM blog_entries. Здесь score будет возвращать релевантность запроса. Конечно тут и готовый синтаксис и никаких тебе проблем, но как то оно мне не понравилось и я нашёл иной способ. Слова в запросе я соединяю логикой «ИЛИ», т.е. достаточно, чтоб одно из слов присутствовала в искомом тексте. Далее я подсчитываю количество слов присутствующих в искомом тексте и это называю релевантностью.
Ну а теперь к практике. Всё это дело делается используя функцию IF в SELECT’е. К примеру: SELECT *,IF(descrip LIKE ‘%слово1%’,1,0)+ IF(‘%слово2%’,1,0) as score FROM table. Кто-то скажет не оригинально, но зато просто и удобно, да и если руки есть можно сделать и по сложней.