webdev

 

Страницы: | 1 | 2 |

Древнее зло: www и / на конце

16 сентября 2010 // Хельги

Про то, что домен третьего уровня www — не нужен, известно уже очень давно. Однако не все так думают: Google считает, что он обязательно www.google.com; «Яндекс» до конца не определился (главная у него с www, а страница выдачи — без), но ссылки на «Тёплый край» до недавнего времени давал с www1.

Короче, www не нужен потому, что без него можно обойтись. Ещё можно обойтись без http: — не только не требовать его вводить, но и вообще не отображать в строке запроса. Так сделали недавно в хроме, и правильно: теперь страницы, открывающиеся через SSL, будут даже заметнее.

/users/helgi/nohttp.png

Последний элемент URL, который должен пасть жертвой минимализма — это концевой слэш. Понятно, что он наследник эпохи раскладывания HTML-файликов по физическим каталогам, но, если подумать, зачем он нужен в человекопонятном урле, который обрабатывается хитрыми рерайтами и/или веб-фреймворком? Пусть пользователь хочет, находясь на странице http://example.com/articles/192/, открыть статью номер 189. Зачем ему стирать слэш, а потом набирать его?

У меня сейчас концевые слэши пока используются. Это итог раздумий двухлетней давности, когда я решил сделать всё «классически». Но, полагаю, скоро удастся их отпилить вместе с кривой эмуляцией красивого пути через ?v=.


Я это заметил, настроил редиректы, «Яндекс» скушал 301 Moved permanently и теперь, слава богу, ставит ссылки уже без www.

Тэги: webdev
Написать комментарий

Немножко оффлайна

30 июня 2010 // Хельги

Благодаря внеплановому переезду, оставившему меня на неделю без интернета, я настроил оффлайновый Gmail и скачал себе на ноутбук документацию для веб-разработки (оказывается, больше года я умудрялся ничего серьёзного не делать без интернета). Нужно мне не так уж и много: я скачал стандарты HTML 4 и CSS 2, удобную доку по jQuery, ну и заодно прикольно свёрстанный, тоже на джава-скрипте, RFC 2616. Не хватает только справочника по web.py, но его как-то вообще слегка нет.

* * *

Кстати, Google Reader больше не поддерживает оффлайновый режим. Отключили его всего месяц назад — то-то я не смог найти заветной кнопочки, когда захотел настроить оффлайн в «ридере» вместе с почтой.

* * *

Про переезд: на этот раз я забрался аж в Новогиреево. В некотором смысле — следом за переехавшей работой.

Тэги: google, software, webdev, всё равно что пожар, жизнь
Написать комментарий

Минимальная галерея (на величественном jQuery)

7 июня 2010 // Хельги

Я несколько лет выпиливал лобзиком, мучился, и хоть бы одна собака сказала мне про величественность jQuery! Ну то есть я, конечно, слышал это название, но насколько кардинально jQuery меняет клиентский скриптинг — честно говоря, не представлял.

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

Сам скрипт можно посмотреть здесь: gallery.js. Он очень простой и наверняка в некоторых местах неоптимальный, но меня на первый раз устраивает.

Первый кусок добавляет в DOM-дерево элементы для оверлея и всплывающего окна с картинкой. Функция set_position позиционирует и показывает окно с картинкой, а заодно и окно с текстом «Loading». Следующие три функции срабатывают при завершении загрузки картинки, щелчку по миниатюре и щелчку по кнопке закрыть или большой картинке, соответственно.

Кроме написаная самого скрипта, потребовалось чуть-чуть изменить скрипт генерации галереи. Вот что он выдаёт (курсивом помечены новые фрагменты):

<div style="float: left; margin: 0.5em; 
text-align: center; width: 150px; height: 160px"><a class="gallery"
href="/users/helgi/g/parade/images/dsc_5805.jpg">
<img src="/users/helgi/g/parade/thumbnails/dsc_5805.jpg" 
alt="dsc_5805.jpg" title="Голова первой колонны"></a><br>Голова первой колонны</div> 

И, конечно, пришлось дописать несколько строчек в таблицу стилей:

#gallery_overlay { position: absolute; left: 0; top: 0;
    opacity: 0.8; z-index: 900; background: black; display: none }
#gallery_image, #gallery_loading { position: absolute; display: none;
    z-index: 990; background: white; padding: 10px; 
    border: 1px black solid; width: auto }
#gallery_image a { float: right; padding: 2px 5px;
    cursor: default; border: 1px solid; font-size: larger }

На работающую галерею можно посмотреть, например, здесь.

P.S. Кстати, моё собственное правило о границах применимости клиентских скриптов соблюдено: очевидно, что без джаваскрипта всё будет работать как прежде.

Тэги: indiana, webdev
Комментарии (9)

Крокодил: тот, да не тот

16 сентября 2009 // Хельги

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

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

Но, например, ЖЖ подошёл к реюзу как-то совсем тупо. В этом комментарии, например, ссылка на Крокодила теперь не просто побилась («The journal has been deleted»), а стала вести на упомянутого неофита.

Наверное, нужно делать слои. Проходит время, и старый, неактивный юзернейм (владелец которого удалился, а то и вообще помер — мы же продумываем сервис на века), например, расширяется при помощи некоего уникального идентификатора. Теперь на него сослаться можно будет только с этим идом: user/1, например. Все существовавшие до того ссылки переделываются автоматом, а новые пользователи всё-таки будут проверять. И тут, в принципе, можно регистрировать нового такого же.

Тэги: livejournal, webdev
Написать комментарий

Поле «заголовок» должно находиться ниже поля «текст поста»

1 июля 2009 // Хельги

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

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

А что в реальной жизни? Если пост короткий, то его автор не будет составлять никакого плана, а немедля начнет изливать душу / жечь глаголом.

И в лучшем случае в заголовок попадает первая фраза поста. Хорошо, если она релевантна (посмотрел терминатора). А если нет (я тут вот о чем подумал)?

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

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

Редакция от 2 июля 2009
Тэги: webdev
Комментарии (9)

Облако тэгов

15 апреля 2009 // Хельги

Я таки сделал это уродское облако; более того, что-то очень похожее я показываю в списке авторов. Мне не нравится, но остальные варианты ещё хуже.

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

Да и вообще в столбик очень много тэгов получается.

Можно сделать два метода сортировки — но см. предыдущий абзац. Так что пусть будет облако, пока ничего лучше не придумалось.

* * *

Заодно я переделал вывод страницы архива ссылок. А комментарии от гостей теперь скрываются только те, где есть ссылки (сделал по примеру Каганова).

Тэги: indiana, webdev
Комментарии (6)

Отзывы на книги

5 марта 2009 // Хельги

Есть две крайности, два формата. Можно «вести блог», и в нём писать отзывы на прочитанные книги. Этот формат слишком вольный. Конечно, можно извернуться, завести отдельную ленту, проставить тэги для жанров и авторов — приблизительно так устроил Роман Парпалак свой Киноблог. Но в любом случае блог — это удобная навигация по дате и неудобная — по всем остальным измерениям.

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

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

Тэги: library, webdev, мета
Написать комментарий

Границы применимости клиентских сценариев

14 февраля 2009 // Хельги

В ознаменование момента 1234567890. Основано на.

JavaScript — прекрасное изобретение человечества. Когда-то давно, например, на «башорге» кнопки «+» и «−» работали как переход на страницу цитаты с одновременным её плюсованием / минусованием. Да, тогда «баш» ещё был сайтом для гиков, которые умеют нажимать на ссылки третьей кнопкой мыши.

Но, полагаю, даже гики обрадовались, когда голосовалка на «баше» стала асинхронной — нажатие на «+» или «−» отправляет запрос без перезагрузки страницы. Логичное и полезное нововведение, не правда ли?

/users/helgi/bashorg-ajax.png

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

Другой пример разумного применения клиентских сценариев — Gmail. Оторвать от него клиентские сценарии просто невозможно, поэтому разработчики и сделали его сразу в двух ипостасях — синхронной и асинхронной. Несмотря на всю свою крутизну (а вернее, благодаря ей) сотрудники «Гугля» понимали, что люди с браузерами без JS просто не смогут пользоваться «джи-мэйлом» вообще, если не сделать для них отдельную версию.

Это два полюса мира асинхронных сайтов. К сожалению, между ними лежит множество промежуточных вариантов — сайтов, которые запросто ломаются, если JavaScript выключить.

Я не могу понять, чем руководствуются люди, которые лепят скрипты без разбора. Наверное, просто не думают об этом вообще. Или считают, что нынче JS есть везде.

Но вопрос нужно ставить иначе: а что такого хорошего мы обеспечиваем пользователю, требуя от него включить JavaScript? Визуальный XHTML-редактор? Отлично! Отправку голосов без перезагрузки страницы? Ничего, оправданно.

Главное — задать себе этот вопрос, а то получится «фэйсбук», на который нельзя зайти с КПК.

Редакция от 19 марта 2009
Тэги: webdev, лучшее
Комментарии (5)

Чужие идеи

27 января 2009 // Хельги

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

Недавно пришло мне в голову, что в багтрекере правильнее было бы классифицировать случаи не просто по важности (blocker, critical, major, minor, trivial), а минимум по двум параметрам: серьёзности и вероятности. Тогда, если бы серьёзность и вероятность задавалась как величина в диапазоне 0..1, то важность можно было бы получить простым перемножением.

К счастью, добрые люди меня просветили: эта модель давно используется в методиках по управлению рисками. Да и задолбаешься всё это в трекер вбивать, на самом-то деле.

Где-то с полгода назад я окончательно определился, как удобнее всего оценивать книги и что делать с полемикой, которая неизбежно появляется везде, где читателям предлагают «оставить рецензию». В первом случае я придумал для себя простую и симметричную шкалу −2..+2, которая достаточно проста для того, чтобы соотнести впечатление с определённой цифрой шкалы. Во втором — решил отделить мух от котлет, разнеся рецензии (отзывы) и обсуждение (флуд) пользователей.

И то, и другое предназначалось для моей многострадальной, уже больше года не могущей добраться до веба библиотеки. Но — вот незадача! — обе эти идеи много раньше пришли в голову разработчикам «Яндекс-маркета».

Даже немножко грустно становится.

Тэги: reflection, webdev, программирование
Комментарии (1)

Старую собаку новым трюкам

1 декабря 2008 // Хельги

Листая «Информационный бум», я случайно наткнулся на колонку «Веб-анатомия», которую Артемий Ломов вел с мая 2004 г. по июнь 2005. Времена давние, но имя Ломова я встречал ещё очень давно на страницах журнала «Чип», так что я решил поностальгировать. А кроме того, вдруг — чем чёрт не шутит? — попадётся что-нибудь полезное.

Кстати, Ломов, похоже, страдает тягой к многословию и выспренности чрезмерной. Сам за собой такое замечал. А вот за Ломовым, читая его статьи в «Чипе» — нет.

Выпуск № 25, «По следам огненной лисы», заставил меня отвлечься на минуту и сопоставить даты. Статья посвящена выходу первого релиза «файрфокса», который состоялся в начале ноября 2004 г. Осень две тысячи четвёртого, сообразил я, — это время появления на свет «Кривого угла». Самая старая из сохранившихся новостей этого сайта также упоминает выход «файрфокса», правда, почему-то с полуторамесячным опозданием.

Так вот, занятно то, что именно в то время я осваивал HTML/CSS-вёрстку. Начал я со статей Ломова в «Чипе» (обладатели крепких нервов могут заглянуть в исходный код сайта «фингертипа», который сделан по Ломовскому шаблону); своего рода дипломной работой, итогом двух лет изучения приёмов вёрстки оказался дизайн «Тёплого края». А после этого новым трюкам старую собаку уже научить не удалось.

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

* * *

Кстати, позавчера, 29 ноября, «Тёплому краю» исполнилось три года.

Тэги: design, self, warmland, webdev
Комментарии (1)

Страницы: | 1 | 2 |