веб-разработка
Статьи по этой теме:
Веб-разработка
Переносы в вебе и выключка по формату
Позавчера я написал о том, что в браузерах постепенно начала появляться поддержка автоматических переносов. Немного подумал и нашел способ, как можно уже сейчас использовать на сайтах выключку по формату («выравнивание по ширине»), если браузер поддерживает переносы.
Читайте на Хабре: «Переносы в вебе и выключка по формату».
Переносы в вебе
Оказывается, Firefox 8 (и последние версии Safari) уже умеет автоматически переносить русские слова. В черновике CSS 3 для этого есть свойство hyphens.
Вообще непонятно, почему с этим тянули так долго. Для технической реализации нужны лишь словари. (Браузеры уже несколько лет проверяют правописание, для чего тоже нужны словари.)
Похоже, скоро в вебе уже можно будет растягивать текст по ширине (скриншот из FF):

Градиент на сайте Яндекса
Среди прочих недавних изменений на Яндексе упоминается градиент на желтой
Я понял, что происходит, когда открыл сайт Яндекса в другом браузере.
.b-head-search_grad_yes {
background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff09c),to(#f4be02));
background-image:-moz-linear-gradient(top,#fff09c,#f4be02);
background-image:linear-gradient(top,#fff09c,#f4be02)
}
Непонятно, кто помешал технологам Яндекса добавить еще одну инструкцию -o-linear-gradient для второго по популярности браузера в рунете.
Восстановление текстов в новой версии S2
В новой версии движка S2, которую я выпустил вчера, появилось очень важное нововведение. Теперь он умеет восстанавливать несохраненные тексты после непредвиденных ситуаций вроде зависаний или падений браузера, случайного закрытия окна и т. д.
Интерфейс простой. При следующем входе в админку выводится вот такое сообщение:

Восстановленный текст из нового окна можно затем скопировать куда угодно.
Реализация тоже крайне простая. Каждые 5 секунд содержимое редактора отправляется в
С помощью этого способа (в отличие от автосохранения) мы оставляем пользователю контроль над тем, когда сохранять редактируемый текст, но избавляемся от проблемы утери несохраненного текста при компьютерных сбоях или непродуманных действиях пользователя.
Left outer join
Недавно писал один SQL-запрос. Первый вариант заработал неправильно, и я подумал, что мне может помочь LEFT OUTER JOIN. Переписанный вариант с первого раза заработал как надо. И тут я понял, что становлюсь настоящим профессионалом, раз смог применить такую страшную вещь именно там, где надо.
CSS и переменные
Вот тут не понимают, зачем в CSS нужны переменные.
И последняя фантазия разработчиков уж точно кажется немного безумной — введение css-переменных. Неужели CSS превратится в полноценный язык программирования и управления html элементами?
…
Идея все же не проработана. Зачем определять для цвета переменную, если его можно просто указать?
Написать такое мог только человек, максимум оформивший с помощью CSS несколько сайтов. Странно только, что в обсуждении не указали самый убедительный аргумент в пользу переменных: разработка системы плагинов, когда набор цветов (фон, цвет текста, рамки, сообщения об ошибках и т. д.) указывается в основном CSS (возможно, в стиле оформления) и потом используется в плагинах как угодно.
А еще автор вышеприведенной цитаты ведет блог (конечно же, на Вордпрессе):
Здесь вы найдете интересную информацию о веб-дизайне, уроки CSS, новости SEO, обзоры сайтов, критику, статьи о юзабилити и много другого полезного контента.
Так и представляю себе интернет из поглощающих контент юзеров.
Офлайновая версия сайта
Когда-то давно я прочитал у Димы Смирнова о том, как можно использовать офлайновую версию сайта. Вообще основной аргумент против того, чтобы дать пользователям скачивать архив с кучей html-файлов, состоит в некрасивости подобного подхода. Дима Смирнов предлагал компилировать эту кучу в один chm-файл.
Если бы существовали компиляторы CHM под linux, всё было бы вообще здорово. Однако таких компиляторов не существовало. Я хотел было сам написать такой компилятор, но из этого так ничего и не получилось.
Потом я подумал о других форматах и вспомнил о PDF. Как оказалось, с PDF в вебе не всё так безнадежно, как с CHM. У меня даже получилось сделать более-менее приемлемое решение, о чем я писал больше года назад.
Однако у такого решения есть ряд недостатков. Во-первых, текущая реализация получилась не вполне качественной. Во-вторых, на экране и на бумаге (если пользователь решит что-то распечатать) будет отображен один и тот же текст, что не всегда удобно. Например, на бумаге желательно указать как-нибудь URL'ы ссылок, тогда как показывать их на экране нет смысла. В-третьих, мы жестко прописываем такие параметры документа, как размер шрифта, пользователь не сможет их изменить.
Я думал над этими недостатками и пришел к гениальному выводу: всё-таки, идеальный формат для офлайновой версии сайта — это HTML! Все html-файлы нужно слить в один большой файл, все картинки сложить в одну папку (и, возможно, переименовать в md5(<path>)), заархивировать это дело и дать скачивать пользователям.Преимущества такого подхода очевидны — пользователь сам может управлять отображением на экране и на бумаге. К печатной версии можно применить отдельные стили и показать, например, URL'ы ссылок. А еще пользователь сможет открыть такой документ в Ворде и распечатать своим любимым шрифтом.
Впрочем, вариант с PDF тоже можно спасти. По-хорошему нужно HTML-файл перегнать в TeX. На первый взгляд кажется, что str_replace должно хватить, проблемы могут быть только с картинками. pdflatex сделает всё остальное :)
К вопросу о…
Разгребая хлам в закладках, нашел следующее:
62 queries 1.354 seconds
WordPress — 62 запроса. Кто больше?
Adobe Air
Бывает, у нас в институте проводят лекции и презентации известные люди и компании, специализирующиеся в разработке программного обеспечения. В 2005 году я был на лекции Касперского. В прошлом году сначала Google, а потом и Microsoft провели свои презентации. Неделю назад читал лекцию Ричард Столлман (на эту лекцию я, к сожалению, не смог попасть). И вот в пятницу Adobe провела презентацию своих двух продуктов: Flex и Air.
Я не буду подробно останавливаться ни на презентации, ни на качестве ее проведения. Достаточно упомянуть, что они попытались сделать какую-то онлайн-презентацию. Несколько докладчиков сидели у себя дома за компьютерами и пытались нам что-то рассказать. Вся презентация длилась больше трех часов.
Сначала нам рассказывали про Flash и Flex. Потом речь дошла до Adobe Air. Оказывается, это такая примочка, которая превращает веб-приложения, написанные с использованием HTML, JavaScript, Flash, в обычные exe-программы. Специально для несообразительных (эвфемизм, да) веб-программистов, которым лень (еще эвфемизм) изучать другие средства разработки.
Практически единственный произнесенный на презентации аргумент, подтверждающий полезность Adobe Air, состоит в том, что не нужно разрабатывать два приложения, для веба и для десктопа, достаточно разработать одно. Однако ясно, что HTML и JavaScript изначально не предназначались для построения интерфейсов, поэтому создавать в них интерфейсы непросто, да и по возможностям они будут уступать традиционным предложениям (об этом я уже писал в статье про Ajax).
Я потратил заметное время на разработку административного интерфейса движка SiteX (в нем используется Ajax). За это время я бы разработал на Delphi принципиально другой интерфейс, не ограниченный рамками HTML и JavaScript, разобрался бы, как из программы на Delphi делать Get- и Post-запросы, и написал полноценную клиентскую программу администрирования сайта.
И последнее соображение. Я глубоко убежден в том, что хорошему программисту всё равно, на каком языке писать программы. И если есть Delphi, зачем еще нужен Adobe Air?
Защита от спама
О, сегодня пришел первый спаммерский комментарий после внедрения новой системы защиты. Один посторонний комментарий за полгода — очень неплохо :) Правда, в данном случае, как следует из логов (прогрузились CSS, JS, картинки), он был сделан не тупым спаммерским ботом, а полноценным браузером. Новая хитроумная система, обходящая любую защиту? На этот раз, к счастью, всё в порядке. Путь от запроса в Гугле к странице с комментариями мог проделать только человек.
Добавлено: появился еще один комментарий. Почерк такой же. Удалил оба. На этот раз пришли по запросу с Яндекса.
О спаме в гостевых и комментариях
Месяца два назад в мою гостевую повалил спам. Посмотрел логи сервера. Разумеется,
Тогда я поленился всё это делать и изменил URL гостевой, а так же имена полей в форме ввода сообщения. Как оказалось, хорошо, что я поленился. Пару дней назад ко мне на сайт попали вот по такому запросу из Рамблера: гостевая. Интересно, они просматривали эти 2700 сайтов вручную, или это тоже был скрипт? И после в гостевой опять началось безобразие. Главная особенность — перед отправкой POST-запроса спамерский скрипт обращается к гостевой. Теперь уж точно программно отследить спамерские сообщения нереально. Опять поменял URL и имена полей.
Надо подумать о методе, позволяющем фильтровать спам. Способ CAPTCHA, в котором пользователю предлагается прочесть текст на картинке и написать его в специально отведенное поле ввода, конечно, хорош. Но слишком уж он неудобен для пользователя. Я его просто ненавижу.
Хорошо еще, что спамеры не добрались до комментариев к статьям и к записям в блоге. Тогда точно надо будет придумывать что-то кардинально новое.
О спаме
Похоже, методы борьбы со спамом, использующие javascript, действительно хороши (подробности для интересующихся). На ящик, красующийся внизу каждой страницы, не пришло ни одного лишнего письма.
Но, видимо, спамеры не дремлют. Они пытаются отсылать письма на несуществующие адреса, например, на sale, buh, personal перед знаком @ и доменом. Пришлось отключить сбор почты на такие адреса.
Мозг крысы оценивает сайты
Меня весьма заинтересовал проект Cybernetic Analytic System. По заявлениям авторов, они построили систему оценивания сайтов, «изюминкой» которой является культура клеток крысиного мозга, подключенная к компьютеру. Цитата:
Но главный промежуточный результат AI-составляющей Кибераналитика — нейропространственная цифро-аналоговая матрица, которая затем анализируется нейронной составляющей Кибераналитика. Эта часть Кибераналитика управляется крысиными клетками мозга. Компьютер используется лишь для анализа нервных сигналов, поступающих от клеток крысиного мозга.
Разумеется, я стал проверять разные сайты и смотреть, что выдает система. Честно говоря, работы какого-либо мозга я не заметил. Вполне реально написать такую программулину, которая бы оценивала сайты подобным образом. Поэтому заявления авторов мне кажутся сомнительными.
Оценка сайтов более-менее соответствует действительности. Хотя система и ошибается. Вот, например, что она сказала о моем сайте:
Признаки наглой оптимизации при помощи невоздержанного примения заголовков.
Невоздержанное «примение» заголовков! Какой ужас! И это она говорит в ответ на вполне корректное, и, даже более того, рекомендуемое стандартом применение тегов H1, H2 и т.д.
Однако, если уже сейчас подобная система действительно существует и функционирует, кто знает, к чему приведет развитие этих технологий в обозримом будущем…
Добавлено 16.05.2007: Вот, кстати, что говорит эта система сейчас:
Верстка выполнена на высоком профессиональном уровне. Качество технической реализации практически безупречно.
Неплохо обеспечено функциональное предназначение страницы. Есть некоторые спорные моменты в реализации навигации.
Достаточно удачный дизайн и цветовое оформление страницы. Возможно, недостаточно тщательно прорисованиы графические элементы.
Отличная работоспособность во многих современных и старых браузерах. Грамотный баланс изящества и совместимости.
Про графические элементы он прав — всё-таки рисую в фотошопе я недостаточно хорошо. Может, нужно попробовать рисовать в векторном редакторе. А про дизайн — я уже знаю, что здесь не так и что нужно подправить.