Pull to refresh
63
0
Иван @coolspot

User

Send message

Делаем did you mean, часть вторая

Reading time3 min
Views2.5K

Здравствуйте



Не так давно я писал про правильный did you mean.
Несмотря на все мои улучшения, guess-инг всё равно часто ошибался, и выдавал странные результаты.

Однако недавно, мне удалось значительно улучшить качество guess-инга, и я решил, что было бы неплохо написать «патч» к моей предыдущей статье :)


Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments33

Проблемы пользовательских поддоменов

Reading time2 min
Views3.4K
О том как реализовывать разделение пользователей по своим поддоменам тут уже писалось. Не были только затронуты плюсы и минусы идеи выноса логина на поддомен. Итак.
Обсудим под катом
Total votes 39: ↑35 and ↓4+31
Comments59

Пространство имён в Javascript-коде 2

Reading time1 min
Views8.1K
Прочитав заметку об использовании пространств имён в Javascript коде мне захотелось поделиться подходом, который использую я. Он изобретён не мной, конечно, но, возможно кто-то о нём не знает. Этот подход отличается от предложенных в той статье тем, что позволяет кроме функций и данных видимых снаружи, также определять данные и функции локальные для пространства имен и невидимые снаружи.

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments42

Плагины для лиса в прямом эфире

Reading time6 min
Views976
Вчера ночью мне не спалось, и я решил сделать что-то полезное (в кои-то веки). Поскольку приносить пользу окружающим можно лишь принося пользу себе, я попытался облегчить себе жизнь: создать плагин, мониторящий изменение некоторых чисел на одной странице (нечто вроде «количества непрочитанных комментариев в топиках, за которыми следишь» и «количества писем», если больше нуля — повод пойти и прочитать эти новые комментарии. Эти числа выводятся на двух известных коллективных блогах вверху страницы, но узнать об их изменении их состояния можно лишь обновив эту страницу — никакого механизма почты-rss-и т.п. не предусмотрено. Ну, надеюсь, понятно объяснил). Через полтора часа была готова более-менее стабильная версия плагина, и я буду рад рассказать вам о том, как повторить мой подвиг в любое время года.

Итак, на повестке дня: Создаем плагины для FireFox быстро и чисто.
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments45

Revecter- новый ECMAScript фреймворк для SVG

Reading time1 min
Views1.1K
Сегодня дебютировал ECMAScript фреймворк, созданный для работы с SVG документами в интернете.
Из их блога:
SVG мощный формат, нуждающийся в представление публике. Уже было доказано, что svg имеет потенциал (хабр), и мы нацелены представить его с помощью фрэймворка revecter

Между тем этот релиз всего-лишь демонстрация функциональности ядра фреймворка, нежели прямого исполнения, он показывает свой потенциал.
Фрэймворк обеспечивает наследование с помощью прототипов (prototype-esque), упрощает перемещение объектов и выполнение других основных задач. Кроме этого он имеет мощный класс анимации, используемый для кроссбраузерной анимации, или формально несуществующих вещей.
Досадно, что не поддерживается IE на данный момент, но поддержка планируется.
http://revecter.googlecode.com/
Total votes 19: ↑17 and ↓2+15
Comments4

Яндекс поддерживает Sitemap 0.9

Reading time1 min
Views1.1K
Михаил Сенин и разработчики сервиса Я.Вебмастер сегодня сообщили о поддержке поисковиком Yandex формат Sitemap.

Вы можете сообщить Яндексу о наличии файла Sitemap для сайта двумя способами:


Робот ждёт ваших подсказок!
Total votes 35: ↑35 and ↓0+35
Comments19

Динамическая висячая пунктуация в HTML

Reading time2 min
Views6.1K
Наверняка вы видели на многих сайтах свешивающиеся в начале строк кавычки и скобки. И хотя на бумаге такое полное свешивание в простых текстах (не заголовках) как минимум спорно, на вебе это выглядит отлично. Такое поведение текста называется «висячая пунктация», и на текущий момент есть ровно один способ её реализации в (X)HTML/CSS — добавление парных стилей. Этот способ, скажем, применён на сайте Артемия Лебедева.

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

В CSS прописаны парные стили: .h[symbol] и .s[symbol], например, .slaquo и .hlaquo. Для каждого из них прописан отвес через margin. При использовании свешивающихся символов в тексте к пробелу перед символом добавляется стиль s[symbol], а к самому символу — h[symbol]. Соответственно, когда и пробел, и символ, находятся в одной строке, отвесы взаимно компенсируются, и текст выглядит как обычно. А когда свешивающийся символ по каким-то причинам сносится на следующую строку — первый стиль (балансирующий второй блок) остаётся на предыдущей строке, поэтому нужный символ свешивается влево на заданный отвес.

Реализация по сути хорошая, с одним «но» — шрифты. Для каждого шрифта отвес, скажем, открывающей кавычки-ёлочки или открывающей скобки разный. Да, конечно, мы можем его вычислить вручную и прибить в таблице стилей гвоздями (так и сделано у Лебедева на сайте), но для этого придётся быть уверенным, что как минимум у 90% посетителей сайта будет именно этот шрифт. В случае, если браузер покажет это каким-то иным шрифтом, начнутся проблемы с разъезжающимися строками.

Что было сделано?
Читать дальше →
Total votes 48: ↑48 and ↓0+48
Comments44

Clip2net — очень быстрая публикация в Сеть

Reading time4 min
Views3.8K
Хочу рассказать почтенной публике про Clip2Net — сервис быстрой публикации изображений (и не только). Целью этого сообщения является не столько реклама сервиса как такового, но, скорее, возможность открыто обсудить этот проект, его текущий статус и возможное развитие. Краткая информация об этом сервисе уже пробегала когда-то на Хабре, но думаю, что будет интересно узнать кое-какие подробности, так сказать, от первого лица.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments29

Компромисс между жадностью и удобством

Reading time1 min
Views852
На многих сайтах часто можно наблюдать внешние ссылки, «закрытые» в домен сайта. Например, когда автор писал новость на сайте example.com, он поставил ссылку на yandex.ru, но вражеская машина при сохранении умело подменила этот линк на example.com/redirect/yandex.ru или, еще того хуже, на какой-нибудь example.com/redirect/7345435.

Делается это, если кто не знает, из соображений поисковой (или тИЦ/PR) жадности. Машина поисковика сканирует сайт и выявляет количество внешних ссылок. Поэтому задача вебмастера example.com состоит в том, чтобы сделать все ссылки «внутренними», т.е. в рамках своего домена.

Идея заключается в использовании js. Как только страница сгенерировалась, то js пробегает по всей странице и ото всех ссылок вроде example.com/redirect/yandex.ru отрезает первую часть. Т.е. машина поисковика видит «закрытый» линк, а пользователь — нормальный линк, по которому можно сразу понять о месте назначения.

«Закрытые» ссылки можно искать как по вхождению «httр://example.com/redirect/», так и по какому-то классу, добавляемому к переделанным ссылкам.
Total votes 54: ↑44 and ↓10+34
Comments50

Переменные сессии на яваскрипте без кук

Reading time3 min
Views30K
Мне никогда не нравилась реализация кук в Яваскрипте. Объем ограничен (4х20 Кб на домен), хранить возможно только в строковом типе, синтаксис для установки и получения кук избыточно сложен.

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

Поэтому я написал маленький скрипт, который позволит вам использовать переменные сессии в Яваскрипте без установки кук. Он позволяет хранить до 2 Мб данных, что намного меньше ограничивает в возможностях, чем решение на основе кук.

Читать дальше →
Total votes 70: ↑66 and ↓4+62
Comments135

Разгоняем favicon.ico — это как?

Reading time1 min
Views5.5K
В очередной презентации Yahoo! о клиентской производительности был поднят вопрос о favicon.ico. Они проводили несколько интересных фактов о данном явлении и давали пару советов. Процитирую их рекомендации:

  • www.example.org/favicon.ico
  • Необходимое зло:
    • Браузер ее запросит
    • Лучше не отвечать 404-ошибкой
    • Будут отправлены cookie
    • Не может быть в CDN
    • Мешается в последовательности загрузки ресурсов
  • Уменьшайте ее (<=1 Кб)
  • Использовать анимированные иконки ни разу не хорошо
  • Выставляйте заголовок Expires
  • Инструменты: imagemagick, png2ico, favicon.ru
  • Материал для изучения: в поиске Yahoo! favicon.ico занимает 9% всех просмотров страниц (для webo.in это 7%)




Поскольку favicon.ico не является обычной картинкой при загрузке сайта (она, во-первых, запрашивается едва ли не один-единственный раз браузером при посещении сайта, во-вторых, загружается, игнорируя обычный порядок загрузки), то в дополнение к уже имеющейся информацией я захотел провести ряд дополнительных исследований и объединить все, что известно прогрессивному человечеству на данную тему. Однако, в ходе изучения материала оказалось, что проблема совсем не так прозрачна, как представлялось изначально. Формат .ico предстал в новом, весьма выгодном для использования в вебе, свете.

читать дальше на webo.in →
Total votes 100: ↑94 and ↓6+88
Comments48

Страны, регионы, города

Reading time1 min
Views119K
Карта мира
Хочу поделиться базой стран, регионов и городов на русском языке. Возможно, кому-то пригодиться в своих проектах. В базе 106 стран, 922 региона и 10969 городов!

Если кто не понял о чем речь, то вспомните, например, как на ВКонтакте указывается город: выбирается страна -> подгружается список регионов -> выбирается регион -> подгружается список городов

Читать дальше →
Total votes 124: ↑122 and ↓2+120
Comments128

Сохранение по Ctrl+S в браузере

Reading time2 min
Views11K
Могу ошибаться, но решения данной проблемы на Хабре еще не приводилось, так что позвольте поделиться с вами полезным куском кода. Задача: по нажатию Ctrl+S заблокировать браузерный диалог о сохранении страницы и запустить пользовательскую функцию.

Читать дальше →
Total votes 54: ↑44 and ↓10+34
Comments91

Обходим ограничения браузера на число соединений

Reading time1 min
Views6.4K
Несколько дней назад эта видео-запись размещенная на metacafe высветилась на digg. В ней объяснялось, как увеличить скорость открытия сайтов путем тонкого тюнинга браузера и изменения его настроек, отвечающих за число параллельных соединений. Чтобы объяснить, почему это работает, давайте немного углубимся в то, как браузеры обслуживают серверные соединения.

Утилитарный выбор



При разработке любых приложений всем разработчикам приходится делать то, что называется «утилитарным» выбором (utilitarian choice). Если несколько вычурно перефразировать Jeremy Bentham, то «утилитарным» можно назвать тот подход, «в результате которого мы получаем наибольшее количество добра для наибольшего числа [людей]». Много раз производительностью жертвовали для небольшого числа пользователей, чтобы, в результате, средняя производительность для всех пользователей в совокупности была бы лучше.

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

читать дальше на webo.in →
Total votes 36: ↑34 and ↓2+32
Comments23
12 ...
33

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity