вебдев
22 заметки
терапия
Сейчас этот блог в основном про психотерапию.
как правильно
Слушайте меня, я вас научу правильно жить.
психология
Буржуазная лже-наука, пытающаяся выявить закономерности в людях.
практика
Случаи и выводы из психотерапевтической практики.
кино
Фильмы и сериалы.
книги
Это как кино, но только на бумаге.
nutshells
«В двух словах», обо всем.
дорогой дневник
Записи из жизни (скорее всего, не интересные).
беллетристика
Мои литературные произведения и идеи.
духовный рост
Когда физический рост кончается, начинается этот.
дивинация
Как предсказывать будущее.
половой вопрос
Про секс и сексуальность.
заяижопа
Творческий дуэт с моей женой.
магия
«Магическое — другое название психического».
Карл Юнг
игровой дизайн
Раньше я делал игры.
игры
Компьютерные игры.
язык
Слова там всякие.
людишки
Уменьшительно-ласкательно и с любовью.
культ личности
Про великих людей (то есть, в основном про меня).
hwyd
Уникальная Система Прививания Привычек.
буклет
я
идеи
блоги
spectator.ru
дети
wow
вебдев
музыка
контент
программирование
религия
дейтинг
диалоги
яндекс
кулинария
coub
fitness
символы
йога
шаманизм
tiny
ребенок

Гипертекст, веб и html

17 лет назад в категориях вебдев контент

Гипертекст — идея хорошая. Прочитать про нее можно (и нужно) в моем дипломе. Но конкретно так называемый «веб» и html — предельно кривая ее реализация.

Вот только некоторые «родовые травмы»:

1. Односторонние ссылки.

Абсолютный и полный бред. Если я связываю документ А с документом Б, то велика вероятность, что документ Б тоже как-то связан с документом А. Ну, если подумать, да?

Средствами же «веба» владелец документа Б никак не знает, что на него стоит ссылка из документа А. Рефереры — это, увы, совсем не то. Думаю, не надо объяснять, почему. Trackback — кривая заплатка на эту тему, которая не работает по понятным причинам: можно «подделать» и использовать для спама.

2. Невозможность сослаться на часть документа.

Якоря не считаются — автор должен их предварительно расставить. При этом его расстановка якорей может не совпадать с вашим представлением и нуждами. Я не могу взять и произвольно сослаться, допустим, на абзац из текста Б. Хотя деление на абзацы есть.

Так что минимальная и единственная единица гипертекста — это один документ, то есть один URL и все, что по этому URL-у находится. В Библии и то круче сделано. Понятно, что таких единиц должно быть минимум три, условно – «папка, документ, абзац».

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

3. Не использование децентрализации системы.

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

В интернете я же скопировал страницу, разместил по новому адресу — и опа, новый документ, связь с оригинальным документом и не установить.

Этот пункт вообще-то самый сложный. Если бы «весь интернет» находился «на одном сервере», то можно было бы отслеживать и перепечатки, и ссылаться на части документа, и прочее, и прочее. Интернет, однако, «у каждого свой». Да и вообще, в целом — совершенно дикий.

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

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

Кто виноват.

Виноваты все. Даже мы с тобой.

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

В результате вся история языка — борьба за отделение отображения (div, css) от смысловой разметки и полное отсутствие развития смысловой разметки.

Конкретные примеры я уже приводил — невозможность сослаться на часть документа, невозможность делать банальные сноски, то есть «ветвить» документ.

Максимум, что можно сделать – поставить якорь внутри документа на сноску и обратно. Или что-то в духе того, как я сделал в дипломе.

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

С другой стороны — виноваты и производители сопутствующего софта, то есть браузеров, движков сайтов и даже html-редакторов.

Нюанс заключается в том, что первый браузер, первый html-редактор, сам html и протокол http придумал один человек. До есть это всё — одна система, и рассматриваться должен не просто html, а всё, как единое целое.

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

А если есть, то браузеры просто на них «забили».

Например, я могу любому элементу присвоить атрибут title. Это будет практически сноска или комментарий. Более того, браузеры даже отобразят этот title, потому что должны по стандарту. Но, естественно, заранее о том, что тут есть title, они вас не предупредят. Поддержка для галочки.

Поэтому приходится использовать самодельные заплатки и как-то самому выделять наличие title-а.

Вообще же надо «пинать» не только html, но и всё в целом. Браузер по определению (browser) — средство навигации. Сейчас из навигации в браузерах есть только кнопки «вперед-назад», а крутизна браузера зависит от того, как хорошо он рендерит страницы.

Например, вещи, типа link rel="next" понимают не все браузеры, хотя, если вдуматься, навигация, которая не является смысловой частью документа, обрабатываться должна именно так. Грубо говоря, меню навигации по сайту относится к сайту, а не к телу (body) html-документа, в котором оно размещено.

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

Про взаимодействие между разными сайтами я вообще молчу.

Что делать.

Наиболее близка к духу гипертекста википедия. Но главным образом потому, что там как раз всё находится в одном месте. Маленький гипертекстовый рай, сделанный своими руками. Еще один пример — только не смейтесь — формат chm. Только потому, что позволяет нормально объединять несколько документов.

Что делать — понятно: раз на html уже не повлиять, остается только писать собственный «окологипертекстовый» софт так, чтобы не было мучительно больно.

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

Эта заметка не оплачена из кармана Яндекса.

0

Last.fm

17 лет назад в категориях вебдев музыка

Один из немногих гениальных сайтов «в стиле web 2.0» — это, конечно же, last.fm.

Гениальность этого сайта заключается в том, что пользователям не дается возможности генерировать этот самый поносный user-generated content.

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

В результате сайт довольно успешно отвечает на вопросы, типа «Что бы послушать этакого а-ля Tom Waits?» или «Я не знаю, кто такой этот Tom Waits, какие песни надо послушать, чтобы составить общее впечатление?».

0

Ajax vs gzip

17 лет назад в категории вебдев

Ajax — незаслуженно раздутая технология. Не, получить ответ с сервера, не перезагружая страницу, иногда может быть полезным. (На skill.ru, например, при голосовании страница не перезагружается, а грузится маленькая хэтэмэлька в iframe, которая выводит окошечко, типа «спасибо, ваш голос засчитан». Сплошной вебдваноль, ага).

Однако, стоит задуматься — почему иногда перезагружать страницу «ломает»? Да потому, что она весит полмегабайта. Ну ладно, четверть.

Я, кстати, видел, как грузятся мои сайты на модеме 14.4 Kbps. Очень шустро грузятся. Картинок на них нет, а сам хэтэмэль ужат gzip-ом. Первая страница на nudnik.ru с кучей текста на ней весит всего около 10 килобайт.

Короче, gzip и хоть какая-то оптимизация страниц — хорошо. Но Ajax зрелищней.

PS. Понятно, что ajax + gzip. Только вот ajax я везде вижу, а gzip — нет.

0

CSS и борьба со спамом

17 лет назад в категории вебдев

Изящный способ борьбы со спамом веб формах с помощью CSS. Хитрость заключается вот в чем: надо создать фиктивное поле в форме, скрытое с помощью CSS. Человек, пользующийся обычным браузером, это поле не увидит и не заполнит, в отличие от спам-бота, которые в большинстве своем CSS вообще не понимают. А дальше дело техники: серверный скрипт проверяет заполнено ли фиктивное поле и если оно заполнено — дает отлуп. Все просто и изящно, однако если будет применяться массово, то спам-боты научатся таки распознавать CSS и все вернется на круги своя.

Написано вот тут.

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

Я не так давно придумал менее изящный способ: передавать в поле hidden время (timestamp) генерации страници с формой. А потом сравнивать с текущим временем на сервере.

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

Пока не уверен, как будет работать этот способ, надо проверять.

0
Мой «Курс реабилитации людей с техническим образованием».

Версия для печали

На одном сайте у статей есть «печатная версия».
Видимо, все остальное по умолчанию — непечатное.

True story.

Оптимизация картинок

Бирман открыл для себя программу PureJPEG, начитавшись буржуя Joel-я, который на днях про нее написал. Программа эта убирает из jpeg-ов служебный мусор, уменьшая их размер. И ведь нет пророка в своем отечестве, ибо во-первых, Bolk давно еще писал программу photoshop crap remover, которая делает то же самое, а во-вторых, использовать фотошоп для оптимизации картинок для веба — черезвычайно глупо, так как он в jpeg-и столько говна пихает, что страшно. (еще 128 слов)

Фетиш ЧПУ

ЧПУ — вещь, безусловно, неплохая и местами полезная. Однако, и она превратилась в фетиш. Проблема с ЧПУ по большому счету одна: URL не может содержать русские буквы. И она никак не лечится. Есть два способа как это обойти: 1. Использовать английский язык. Способ не так уж и плох, когда используются УРЛы, типа /about. (еще 263 слова)

Skinnable-cacheable

Придумал неболшую идею. Наверняка не я первый.
Идея заключается в том, что страницы кэшируется. Но при этом хочется сделать их Skinnable. То есть чтобы можно было «шкурки» менять. Как кэшировать в таком случае — не совсем понятно. Простой и забавный (полу)выход. Везде в документах пишем и документы, естественно, кэшируем полностью. (еще 71 слово)

ЧПУ и PHP (revisited)

ЧПУ — это термин, придуманный командой НовоКиберска, обозначает он «Человекопонятный УРЛ». Термин нигде широко не употреблялся, пока я не написал 5 сентября 2000 года заметку «ЧПУ и PHP». За эти три года термин довольно неплохо раскрутился. За эти годы очень многие ссылались на эту заметку, поэтому я взял на себя труд переписать ее, добавив еще несколько способов сделать ЧПУ и убрав всякий мусор. (еще 568 слов)

Save changes?

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

Картинки возвращаются-2

«When using a normal web server setup, images should be stored as files. That is, store only a file reference in the database. The main reason for this is that a normal web server is much better at caching files than database contents. So it it’s much easier to get a fast system if you are using files». (еще 205 слов)

Картинки возвращаются

Продолжая про картинки в базе. Вот это сообщение. Народ, однако, упорно комментирует, наглядно показывая выскоий уровень своего непонимания: «К тому-же у картинок могут быть другие атрибуты, которые нужно читать/менять (например счетчики)». Господа, блин, возьмите и почитайте ДОКУМЕНТАЦИЮ. (еще 131 слово)