воскресенье, января 20, 2008

Какой должна быть страница 404? В примерах.

(c)Автор - http://www.seowriter.ru/author/admin/

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

Если вы решите делать 404 страницу, то лучше придерживайтесь некоторых правил:

  • Постарайтесь сделать страницу похожую на остальные страницы

  • Используйте язык, который будет понятен простому юзеру

  • Объясните юзеру ГДЕ и КАК они очутились

  • Попробуйте вставить “форму поиска”, чтобы юзер смог найти что ищет

  • Поставьте ссылку на главную страницу

  • Если вам кажется, что все примеры - фигня, создайте что-то запоминающееся


Привожу примеры одних из самых интересных 404 страниц:

1. StumbleUpon
Ребята решили сильно не выделяться, но оставили свой дизайн и написали:

Это не конец света - Мы просто не может найти страницу



2. Pownce
Ребята вообще сделали очень просто. Вспомнили зверюшку из старых StarWars и оставили надпись: “Яйк, Мы не можем найти страницу!”


3. Mixx
Mixx сделали приятную для восприятия страничку, симпатичный мальчик и предложение перейти на некоторые страницы.



4. LiveJournal
ЖЖ как обычно выделились. Когда юзер попадает на 404 страницу он видит козла (Frank) сидящего в туалете. Просят покинуть страницу, чтобы не нарушать приватность.


4. Fark
Создатели просто поставили фотку белки с большими яйцами)).


5. Etsy
Все помнят древнюю игру ZELDA? 404 страница сделана в стиле Zelda “I am Error ” (Я ошибка!), и сверху навигационное меню.


6. Boagworld
404 страница сайта Boagworld была сделана как раз по всем критериям, которые я описал выше. Все просто, все понятно!


7. Pukka Dawn
Эти решили вообще не заморачиваться и решили на черном фоне написать, что вы потерялись и надо нажать на АПЕЛЬСИН, чтобы выбраться.

пятница, января 18, 2008

Баги 2007 года

(c) Автор - http://manpavel.habrahabr.ru/
В последнюю неделю уходящего года появилось желание вспомнить, чем отличился 2007 от других, обозначив ощущения в нескольких словах. Первым словом на ум пришло то, борьбе с чем отдана немалая часть времени: ответьте наконец, други, — кто кем владеет мы устройствами или они нами? Так или иначе — технологии всё выше и выше, — багов меньше не становится.

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

Однако на данном этапе развития технологий на пути сближения машины и человека встает одно очевидное препятствие: крайняя нестабильность работы современных электронных устройств.

В 2007 году через мои руки прошла дюжина гаджетов. Каждый из них мог похвастаться присущими ему багами.

iPod — время от времени наталкивался на некие ему лишь известные препятствия в треках и перезагружался (около десяти раз за год).

Nokia N800 (платформа Linux Maemo) — подвисала 2-3 раза и один раз загубила только что отснятые фотографии на новой SD-карте.

HTC P3300 — заменял содержимое карты памяти непонятными символами и в целом имел очень своенравный и трудноуправляемый характер. Об этом чудесном устройстве (равно как и о всей линейке устройств на Windows Mobile) можно говорить долго и красочно, если вам будет интересно, обращайтесь. Обобщая, остаётся добавить, что теперь я отношусь к Windows Mobile с необыкновенным трепетом и пиететом, как обычно относятся к не вовремя нашалившим детям, не волнуясь при очередном зависании, спокойно и регулярно топя стилус в Reset и не обременяя тщедушное тело системы большим количество ПО.

Под конец года баги решили поставить жирную точку. Приобретенный по заказу знакомых Archos 704 при проигрывании видео время от времени срывался в белый экран, отказывался работать в режиме Ad-Hoc и требовал приобрести для работы со всеми форматами плагины за 20 евро (последнее хоть и является ограничениями производителя, но пользователем, то есть мною, воспринимается исключительно как баг: зачем огород городить, за устройство заплачены деньги!).

И даже пустяковый Belkin fm-адаптер (по непустяковой цене 1653 рубля) для iPod отличался редкостной чувствительностью к эфиру и вместе с музыкой транслировал шипение различной громкости. Кроме того, разьём устройства при его лёгком задевании постоянно вываливался из iPod, не желая соответствовать репутации MAC-based устройств как надежных и подтверждая свое восточное происхождение. Допуская всё же, что элегантный дизайн и блестящая задняя панелька адаптера затмевают все его недостатки, с устройством пришлось без сожаления распрощаться.

Разочарование от низкого поведения передовых представителей высоких технологий достигло таких пределов, что под конец года появилось желание хоть как-то отреагировать на все эти программно-аппаратные радости и завести блог «Баги», в который помещать видео-зарисовки неудачного общения с гаджетами. Вот, например, чем порадовал Archos:


YouTube, 14 секунд, 490 килобайт:

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

Итак, наличие россыпи ошибок стало настолько нормальным для современных электронных устройств, что лично мне 2007 год будет вспоминаться как год багов и железячного несовершенства. В связи с этим хочется пожелать стабильности работы всех высокотехнологичных устройств в новом, 2008 году. Надежда хоть и слабая (производители в бешенном ритме конкуренции выстреливают конфетти новых моделей устройств, забывая при этом об ошибках старых), но не угасающая. Для создания совершенного мобильного устройства Google в 2007 году решила позвать на помощь разработчиков со всего мира. Но это уже совсем другая история…

Отдельные иллюстрации и видео взяты из следующих источников:
http://ipm.ncsu.edu/AG271/soybeans/stink…

вторник, января 15, 2008

CSS Sprites: все, что вы знали, но боялись спросить

(c) Автор -  http://sunnybear.habrahabr.ru/

Сейчас уже много где написано и упомянуто про технику CSS sprites (aka CSS Image Maps). Я не буду открывать Америку и рассказывать о ней дотошно еще раз, а просто хочу привести несколько примеров и полезных ссылок. И пару советов из собственной практики.

Сама техника заключается в том, что мы создаем комбинированное изображение, из которого затем «вырезаем» с помощью свойств background-position нужный нам в данном случае кусок. На текущем уровне поддержки браузерами (я полагаю, что 99,9%) оно является просто must-have для любого уважающего себя интернет-ресурса (ибо позволяет сократить число запросов к серверу, отделить поведение от представления, возложить труд по анимации на CSS-движок браузера, а не на JS-движок, т.е. это будет работать даже с выключенными скриптами, и много-много прочих «вкусностей»). Но обо всем по порядку. Поехали.

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


Простой rollover-эффект

Обычно таким термином называют смену графической картинки при наведении на нее мышки, своеобразный call-to-action. У вебмастеров сложилась дурная практика делать такие эффекты через onmouseover/onmouseout на картинках. Я не буду говорить о том, что это прямое нарушения принципа разделение представления от поведения и несемантическая (в лучшем случае, в худшем — еще и невалидная) верстка. Это просто плохо, очень плохо. Я просто дам простейший пример, когда это делается средствами CSS, и является семантически-правильным (в большинстве случаев это ссылка, но с элементами форм приходится немного повозиться, согласен). Итак, примеры:

Простая кнопка About Us. При наведении просто показывается другая картинка.



Background для ссылки


Более интересный пример с анимированный логотипом. При наведении показывается анимированная часть картинки, логотип «оживает», однако за это приходится платить размером (20 Кб).



Анимированный логотип


Сложный rollover-эффект

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

Иконки. Размер ссылок фиксированный, поэтому проблем не возникает.



Фиксированные иконки

Еще один пример с фиксированными по ширине кнопками

Фиксированные кнопки


Матрица кнопок. Опять-таки, все фиксировано.



Матрица кнопок



Еще один пример с фиксированными кнопками. Авторы гарантируют, что в IE не будет происходить мигание фона (при наведении, фактически, фоновая картинка не меняется, просто фон становится прозрачным и «просвечивает» фон родителя. Правда, я так понимаю, это требует дополнительных, возможно, несемантических элементов в верстке. В общем, на любителя, но в определенных случаях можно использовать).



CSS Image map

Я намеренно отделил этот пункт от предыдущего, ибо в предыдущем все области были одинаковыми, а в данном разделе размер областей может быть, вообще говоря, произвольным. Одним из хинтов является совмещение разных областей, чтобы они занимали минимум места. Эта техника как раз и заменила классический Image Map.

Классические примеры
без использованию техники CSS Sprites. Заметны задержки при отображении отдельных областей на общей картинке.

Области не пересекаются. Размер картинок, показываемых при наведении, совпадает с размером исходных картинок.



Карта монитора


Области также не пересекаются, просто в отличие от предыдущего случая, они все расположены горизонтально.



Карта города


А вот тут уже области разные



Разные области


Статичные картинки

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

Набор иконок. Основной опасностью таких файлов является «наложение» фоновых картинок одного блока на фон другого. Лучше всего это видно при увеличении размера шрифта: блок становится выше или длиннее, и запаса полей данного изображения уже не хватает, в результате у одного элемента отображается сразу несколько иконок. Непорядок. Как с ним бороться, я расскажу ниже в общих советах по созданию ресурсных картинок для CSS sprites.



Иконки


Аналогичная проблема



Иконки


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

Все-в-одной

Здесь я выделил пару случаев, когда авторы стараются максимально оптимизировать число загружаемых файлов и объединяют порядка десятка различных картинок в одном файле.

Комбинированный пример. Автор использует ресурсный файл как для элементов списка (и та же самая проблема), так и для фона обычных картинок (с фиксированными шириной и высотой). В последнем случае, естественно, все ок.

Мой собственный пример. Для всех «статичных» картинок — один файл. Проблем при любом масштабировании текста не наблюдается.



Все-в-одной. Creative.su


Онлайн-генераторы

Оговорюсь сразу, онлайн-генераторами не пользовался, предпочитаю делать все «ручками» в Photoshop'е.
www.csssprites.com. Довольно минималистичный дизайн, есть возможность загружать несколько исходных файлов.
printf.ru/spritr/. За пример спасибо посмотреть профиль printf. Есть возможность загружать несколько файлов, очень милый дизайн, но, в целом, настроек мало.
spritegen.website-performance.org. Много настроек, позволяет гибко генерить и сам CSS-фрагмент, но все картинки нужно загружать одним архивом.

Полезные советы

Итак, самое вкусное. Для начала я бы советовал разбить все фоновые картинки на 5 групп:

  • Анимированные картинки

  • Те, которые предполагается распространять по всем направлениям (repeat)

  • Те, которые предполагается распространять по горизонтали (repeat-x)

  • Те, которые предполагается распространять по вертикали (repeat-y)

  • И те, которые предполагается показывать только один раз (no repeat)

  • Выделение первой группы опционально, она может быть объединена с пятой, но тут уже надо решать на конкретных случаях (да и автор сайта выше решил, что 20 Кб его посетители переживут, и не побоялся их объединить). Откуда взялось разделение на остальные группы? Из очень простых соображений: если картинка будет повторяться по какому-то направлению, то по этому направлению она должна быть она-единственная в своем «окне», иначе повторяться будет не только она одна. Также я бы порекомендовал ориентироваться на общий размер файла в 10-20 Кб, если файл получается больше, то лучше подключать больше одного.

    Далее, все картинки из группы 2 оставляем, как есть (вообще говоря, можно подумать над их преобразованием в стилевые правила для самых простых случаев, но это уже тема для отдельной дискуссии на тему особых извращений). Все картинки из группы 3 можно склеить по вертикали (тогда в своем горизонтальном окне они будут единственны), все картинки из группы 4 — по горизонтали. Что же делать с группой 5?


    Тут нам нужно понять, для какой цели будет использовать каждая картинка. Если она будет изображать фиксированную по размерам кнопку, то ее можно размещать в любом месте итогового ресурсного файла, если она будет использована как иконка для списка (размещение в левом верхнем углу элемента), то мы должны очистить все пространство правее и ниже ее, чтобы при любом увеличении такого элемента (а «растут» элементы у нас всегда вниз и вправо) ничего лишнего не выводилось. Как пример можно привести картинку с последнего ресурса. В таком случае в иконки располагаются не вертикально, а «лесенкой».
    Описанная выше проблема с изменением размера надписей в фиксированных кнопках (фон у них фиксированный, поэтому мы не можем их раздвигать при увеличении шрифта, и он обрезается) может быть преодолена путей разбиения фона на 4 части (угловые) и задания соответствующего цвета фона для всех элементов. Однако, это повлечет наличие, как минимум, 4 вложенных элементов для отображения каждого угла. Не во всех случаях это допустимо семантически (да, можно генерить дополнительную разметку JavaScript'ом, но насколько оно того будет стоить? Лучше решать в каждом конкретном случае).

    Напоследок скажу, что готовится более сложный материал об использовании CSS sprites и стилей для отображения различных кнопок (на корпоративном сайте). Сейчас обрабатывается порядка 25 различных случаев, которые планируется свести к 2–3 фоновым картинкам и десятку различным классам стилей. Надеюсь, он будет более полезен для профессионалов в этой области.