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

Белогривые лошадки

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

Про облако тэгов хотелось бы понудеть.

Движки, которые выводят облако тэгов на каждой странице, не кэшируя его — ущербны. Например, Wordpress генерирует страницу «пост с комментариями» с помощью 28 (!) запросов к базе данных. Поэтому посещаемые сайты на wordpress-е (не будем показывать пальцем) тормозят безбожно.

Совершенно же логично, что для генерации поста с комментариями — например, в этом блоге — нужно максимум три MySql запроса: 1) вывод поста, 2) вывод комментариев, 3) вывод навигации «Вы сейчас здесь».

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

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

От сайта к сайту «оно всё разное». Запоминать ваши тэги/ключслова ни один посетитель не будет, не обольщайтесь. Сортировка по алфавиту бессмысленна.

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

«Там решено было цветом выделять последнее, хорошая мысль» — мысль вовсе не хорошая. Цветом нужно выделять только посещенные ссылки. Это принятно, интуитивно понятно, и, что самое главное — это гораздо полезней. Разноцветные ссылки — никому не понятное уебище. Даже если и подписано «Bright Color = Newer» — я захожу на сайт читать, а не оттенки цвета угадывать.

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

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

Как надо

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

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

Bonus track

Хранить тэги в таблице надо так:

1. В таблице с постами. Отдельное поле «ключслова через запятую».
2. В отдельной таблице связей, которая имеет вид «ID поста — ID тэга».

Это не два способа, а один, то есть хранить надо и так и так одновременно. Ценой небольшой избыточности информации мы получаем гораздо больший простр для. Минус только один: при редактировании надо редактировать и то и то, разумеется.

0

Изобретение вебдваноля

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

There was a second part of the dream, too, dependent on the Web being so generally used that it became a realistic mirror (or in fact the primary embodiment) of the ways in which we work and play and socialize.

Вебдваноль изобрел — правильно! — Тим Бернес-Ли.

Он же вел первый блог — сразу после основания интернета.

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

А вообще, продолжая разговор о косяках веба — всё это можно выразить одной простой фразой:

Хотели LaTeX, а получился MS Word.

0

Гипертекст, веб и 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

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

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

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

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

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

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 слов)