Блог Ильи Бирмана РСС

Пишу про всё подряд, но вообще интересуюсь представлением информации, вебом, пользовательским интерфейсом; транспортом и системами ориентирования, типографикой, шрифтами и вёрсткой, русским языком. Нередко выражаю своё недовольство идиотами.

41 заметка с тегом

веб-строительство РСС

21 декабря, 22:44

О шестнадцатеричных цифрах больших, чем 9

Шестнадцатеричные цифры a, b, c, d, e и f нужно писать исключительно в нижнем регистре. Читателю совершенно необязательно проводить время с лупой перед монитором, пытаясь различить 8 и B, 0 и D. Вывод различными программами этих цифр в верхнем регистре следует считать багом.

7 декабря 2009, 20:24

Автодополнение

Разыскивается хороший скрипт автодополнения с выпадайкой в текстовом поле. Скрипт должен брать перечень вариантов откуда-нибудь (аджакс не нужен, варианты могут идти сразу в исходном ХТМЛе) и автодополнять ими при вводе. Ещё должна выпадать выпадайка с подходящими вариантами.

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

Должно работать под всеми браузерами. Может использовать jQuery.js. Не должно тормозить.

Помогайте, пожалуйста.

17 ноября 2009, 12:39

Борьба со спамом в комментариях

Недавно у меня на «Вотсоуэвере» стали спамить в комментариях. До этого у меня такой проблемы не было — от спама спасал запрет на комментирование старых заметок (пока роботы успевали найти заметки, к ним уже закрывались комментарии).

Я считаю капчу недопустимым издевательством над посетителями, и я не буду её делать частью формы комментирования ни при каких обстоятельствах.

Самое первое, что я захотел проверить — это разница во времени между моментом получения роботом формы и отправкой комментария. Я думал, что если это делается подряд, то это по-любому спам, ведь живому человеку нужно время, чтобы что-то написать. Оказалось, «умный» робот ждёт 5 секунд перед отправкой формы — это довольно много, за это время человек может вставить комментарий, написанный в Ворде в соседнем окне. Следовательно, таким образом отрубить спам не получится.

Я обнаружил, что все айпи-адреса, с которых был спам, есть в базе на сайте stopforumspam.com, так что можно иметь под рукой эту базу, и считать спамом все комментарии с этих адресов. Но ведь спам может прийти и с адреса, который вчера принадлежал зомби с Виндоусом Экс-пи, а сегодня принадлежит безобидному Маку.

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

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

Если у вас есть какой-то опыт в этой области, поделитесь, пожалуйста.

15 июня 2009, 18:34

Страницы работ в портфолио

Да, ещё про сайты разных веб-студий.

На странице работы никогда не сказано, собственно, в чём состояло «комплексное интернет-решение». «Сайт компании Пумпурум-лимитед» — и скриншот. Что за компания, чем занимается, зачем ей делали сайт? Этого не написано. Потому, что этими вопросами реально не задавались разработчики. У них было ТЗ, где было сказано, какие нужны разделы, «график» нарисовал что-то в Фотошопе, верстальщик сверстал, вот и сайт, вот скриншот. Что ещё сказать? Не писать же вату из ТЗ, что сайт поддерживает такие-то браузеры и минимальное разрешение такое-то.

Всё это как-то очень уныло.

11 июня 2009, 12:17

Главные страницы сайтов веб-студий

На сайтах одних веб-студий главная страница рассказывает о том, какой у них опыт в разработке комплексных интернет-решений, поисковой оптимизации и созданию сайтов под ключ. В виде маркированного списка, естественно. Другие веб-студии думают, что первые — отстой, и пишут у себя на главной что-нибудь мерзко оригинальное, например: «О нашей компании больше любых слов могут рассказать наши работы» — и ставят ссылку на портфолио.

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

25 мая 2009, 22:33

Древовидность и урлы

Продолжим тему нормальных урлов. Некоторые ребята думают, что хороший урл получается, если бездумно заменить в адресе всю служебную хрень на прямые слеши. Эти идиотские урлы видны невооружённым глазом. Например, вместо site.ru/?article=4972304 делают site.ru/article/4972304/.

Такой «красивый» урл ничем не лучше исходного. Он даже хуже: он показывает нам древовидность там, где её нет. Кажется, будто текущая страница — дочерняя для страницы site.ru/article/, на которой 404 или вообще какая-нибудь ошибка ПХП отображается.

Вместо article должно быть написано articles, а по адресу site.ru/acticles/ должен быть список статей. А если он и так показывается на главной, то страница отдельной статьи должна быть дочерней по отношению к главной: site.ru/4972304/. Если уж очень хочется запихать слово article в адрес, то нужно писать: site.ru/article-4972304/.

Урлы с бессмысленным набором слов и чисел, разделённых слешами, являются следствием бездумной конвертации внутренней логики веб-приложения в формат, «похожий на урл». Есть какой-нибудь класс Article, или файл article.php, или функция article (), и в урл его название и попадает.

Конечно, структура сайта чаще всего не является строго древовидной. Частое отклонение — главная страница сайта одновременно и корневая, и соседняя для страниц второго уровня. Но беды в этом никакой нет: на уровне урла всё равно всегда можно решить, к какому из двух уровней относить страницу. В большинстве случаев решение стоит принимать в пользу более короткого урла, потому, что иначе появится ненастоящий промежуточный уровень иерархии. В тех же редких случаях, когда промежуточный уровень появляется, он должен просто тихо редиректить на «настоящую» страницу.

1 мая 2009, 23:32

Про псевдо-ЧПУ

В западном интернете постепенно тоже начинают понимать, что пользоватям не интересен .aspx и прочий?мусор=в&урлах, и переходить на более короткие и чистые урлы. Однако уже в нескольких местах я заметил кретинистические псевдочеловекопонятные урлы, которые нужно истребить. ПЧПУ — это урлы, в которые наряду с бессмысленной технической шелухой запихивается ещё и человеческая часть. Например, такие урлы сейчас делают на Дискогсе:Кроме того, что в урле по-прежнему содержится шелуха (1193791), даже человеческая его часть — это обман:По этому адресу оскорбительно (по отношению к Битлам) лежат «Руки вверх». А если часть, начинающуюся со слова release, стереть, то получим 404. Зачем вводить людей в заблуждение, имитируя нормальные урлы, когда система всё равно кривая и калечная?

Человекопонятный урл — это не просто такой урл, в котором понятно, что написано; должен быть понятен принцип, система формирования урлов, чтобы я мог написать адрес и попасть на нужную страницу, как я это с лёгкостью делаю на Википедии. Если слабо сделать как на Википедии (когда и урлы человеческие, и возможные наложения разрешаются дисамбигуационными страницами), то лучше не заниматься ерундой, а сделать урл хотя бы коротким и оставить просто /1193791.

10 января 2009, 5:37

Пара слов о валидной вёрстке

Ещё шесть лет назад я приводил любимую цитату из Монтескье:
Мне кажется, что наиболее совершенно то начинание, которое достигает своих целей с наименьшими издержками.
Валидная вёрстка может являться самоцелью в случае, когда она доставляет удовольствие верстальщику, греет его душу, лелеет его нежные чувства. Это эмоциональное состояние испытывают на определённом этапе довольно многие веб-разработчики — я не исключение.

Старшим товарищам к этому явлению стоит относиться с пониманием, но без одобрения.

3 ноября 2008, 10:28

Будущее e2 и УТФ-8

Я очень хочу, чтобы e2 перешёл уже, наконец, на УТФ-8 (сейчас он использует Виндоус-1251). При этом я в какой-то степени ощущаю себя разработчиком Виндоуса: мне нужно не просто сделать продукт, который был бы хорош сам по себе; мне нужно построить его на имеющейся довольно большой базе кода, научить автообновляться с предыдущей версии и заставить работать на имеющихся инсталляциях.

Идеально было бы сделать так, чтобы очередной e2 просто во время обновления сконвертировал всю базу и всё остальное в УТФ-8 так, чтобы никто не заметил, но зато начали работать любые символы.

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

Но почему-то всё очень сложно.

Есть идея пока оставить конвертацию старых данных и хотя бы просто написать движок, который при инсталляциях с нуля работал бы на УТФ-8. Можно даже не делать автообновления, а разрешить только восстановление из бекапа, в ходе которого уже писать всё в базу таким, как нужно. Но что делать с кодом? Если его сконвертить в УТФ-8 (что, конечно, очень просто), то уже после этого он, думаю, может сломаться из-за использования однобайтных функций работы со строками. Как можно безболезненно перейти на многобайтные функции? Существуют ли многобайтные версии всех однобайтных функций? Насколько это всё надёжно работает?

Короче, проблема, конечно, в том, что я мало знаю про это. Иначе мне было бы всё просто и очевидно. Поэтому я предлагаю тем, кто знает больше, а ещё лучше — у кого есть опыт перевода приложений на УТФ-8, поделиться со мной.

10 мая 2008, 1:50

Золотое правило веб-разработчика Избранное

Правило

Золотое правило веб-разработчика звучит так:
Не отвечай на POST-запрос страницей.
На пост-запрос следует отвечать редиректом на страницу, где есть какой-то результат выполнения этого запроса, скажем, список комментариев, где новый комментарий уже запостился.

Когда на странице, полученной по посту, жмёшь F5, «Эксплорер» спрашивает, переотправить ли данные формы. Естественно, нормальный пользователь не понимает, почему у него это спрашивают, и почему нельзя просто перезагрузить страницу — вдруг там появились ещё комментарии? А нельзя потому, что у браузера просто нет никакого механизма получения страницы заново, кроме как повторением того же пост-запроса.

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

Естественно, что при переотправке формы комментарий запосчивается дважды, трижды или восемнадцать раз. Не стоит переживать по этому поводу; пусть переживает создатель такого кривого сайта.

Исключение

Отвечать на пост-запрос страницей можно только в экстремальной ситуации.

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

Иными словами, нарушать это правило можно только тогда, когда иначе предотвратить потерю данных невозможно физически.
Страницы     ←  предыдущая     Ctrl     следующая  →
1 2 3 4 5