Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Межсайтовая авторизация (SSO)

Время на прочтение3 мин
Количество просмотров9.8K
Есть задача — организовать межсайтовую авторизацию между проектами, размещенными на разных доменах (site1.com, site2.com). Пользователь автризовавшись на одном проекте, авторизовывается на всех (Single Sign On). Тоже самое с кнопкой выход (Single Sign Out). Доступ к хранилищу сессий и к базе есть у каждого проекта.

За два дня перелопатил множество статей и обсуждений. Вывод — стандартного решения для моего случая найти не удалось (интранет решения и сайты с четко разделенной открытой/закрытой зоной я не рассматривал).

Update: Продолжение истории Межсайтовая авторизация 2.
В голове уложилась пара наиболее жизнеспособных вариантов, которые я и хотел бы с вами обсудить.
Всего голосов 7: ↑7 и ↓0+7
Комментарии27

Памятка по оптимизации PNG

Время на прочтение1 мин
Количество просмотров3K
4 совета по оптимизации изображений в формате PNG для пользователей Gimp. Будет полезно начинающим верстальщикам.

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии37

qJerry: пиши меньше, делай больше. Теперь на PHP.

Время на прочтение3 мин
Количество просмотров907
Как-то незаметно на Хабре прошло появление в свет интересной, на мой взгляд, библиотеки.

О библиотеке qJerry


qJerry — это библиотека для работы с XML-документами, написанная на языке PHP. Основная миссия qJerry — сделать работу с XML комфортнее, чем позволяют стандартные средства PHP, такие как расширение DOM.
Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Комментарии19

SEO продвижение и его последствия

Время на прочтение2 мин
Количество просмотров601
SEO SEO SEO. Кто придумал это слово? Ввел в поиск google.ru запрос — seo и добрая вика нам подсказывает, что это процесс называется как — поисковая оптимизация

Поиско́вая оптимиза́ция (англ. search engine optimization, SEO) — процесс корректировки HTML-кода, текстового наполнения (контента), структуры сайта, контроль внешних факторов для соответствия требованиям алгоритма поисковых систем, с целью поднятия позиции сайта в результатах поиска в поисковых системах по определенным запросам пользователей. Чем выше позиция сайта в результатах поиска, тем больше заинтересованных посетителей перейдет на него с поисковых систем.

Читать дальше →
Всего голосов 17: ↑5 и ↓12-7
Комментарии15

24 способа, увеличивающих вероятность индексации сайта

Время на прочтение6 мин
Количество просмотров8.3K
Далеко не все поисковые сервисы быстро и эффективно индексируют новый ресурс в Интернете. «Зубры» типа google или yahoo все схватывают на лету, надо просто немого подождать. При этом объем проиндексированного контента у них достаточно высокий. Множество поисковиков рунета (rambler, aport, altavista), а также майкрософтовские livesearch и msn тоже сами индексируют новый сайт.
Проблемы иногда возникают с индексацией в mail.ru, и его детище gogo, а также с Яндексом. Из индекса Яндекса сайты иногда пропадают, число проиндексированных поисковиком также часто меняется.
Cледует также отметить, что индексировать то может и индексируют поисковики, но если проиндексированная страница будет находиться на 10ой странице поиска, то вряд ли на нее кто-то перейдет. Разве что самый упорный. Поэтому особенно актуален вопрос именно эффективной индексации. О ней и вообще об индексации пойдет речь. Так как ориентация статьи сделана в основном на русскоязычный сегмент Интернета, то акцент слегка смещен в сторону Яндекса.
Читать дальше →
Всего голосов 36: ↑28 и ↓8+20
Комментарии18

Утилы для мониторинга траффика сайта

Время на прочтение3 мин
Количество просмотров1.1K
Некоторое время назад, я заинтересовался таким вопросом:

А какие же есть утилиты для мониторинга траффика сайта?


В задачу входило найти программу подходящую по следующим пунктам:

  • Достаточное количество информации о посетителе
  • Точность подсчета
  • Удобный и понятный интерфейс
  • Pазличные анализаторы параметров (путь, бэки, ключевые слова — ну чем больше тем лучше )

Читать дальше →
Всего голосов 12: ↑6 и ↓60
Комментарии13

Спам в комментариях — технические методы противодействия

Время на прочтение8 мин
Количество просмотров2.7K
Ниже приведена сумма основных, широко используемых методик противодействия спаму в комментариях (и прочим способам автоматической отправки нежелательных сообщений) — часть методик я использую при разработке собственных Web-приложений.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии30

Мой знакомый разработчик

Время на прочтение4 мин
Количество просмотров1.3K
Я работаю с удивительным человеком. Каждый раз, когда я смотрю в bugzill'у или проверяю почту, я им поражаюсь. Иногда мне кажется, что он мог бы стать неплохим писателем. Во всяком случае графоман из него отличный.

Этот разработчик принимает документирование очень близко к сердцу.
Что же тут такого удивительного?
Всего голосов 64: ↑59 и ↓5+54
Комментарии38

Стилевые описания для нескольких селекторов, указанных одновременно

Время на прочтение2 мин
Количество просмотров1.7K
Добрый день.

Хочу поделиться с хабрасообществом одним полезным свойством, которое не так часто используется, хотя при грамотном использовании способно сократить размер css и html кода. Речь идет о возможности прописывать css-свойства для элементов с несколькими селекторами, указанными одновременно.

Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии25

Dojo: Hello World!

Время на прочтение1 мин
Количество просмотров1.6K
Это мой первый хабрапост, посему прошу критиковать конструктивно.
Цель этого урока — дать отправную точку для тех, кто раньше не сталкивался с Dojo. Мы разберемся с настройкой и подключением Dojo, а также напишем небольшой пример AJAX-взаимодействия средствами Dojo.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии6

Параллельная загрузка JavaScript и CSS без блокирования парсинга страницы

Время на прочтение5 мин
Количество просмотров66K
Известно, что следуя идеям старой школы, а именно, добавляя ссылки на JS и CSS в страницы, может обернуться большим временем загрузки страницы. Браузер отображает страницу по мере скачивания, но останавливается, если натыкается на тег script со ссылкой, до того момента, пока скрипт не будет загружен и выполнен. Сайты стали использовать всё большее количество скриптов, начальное отображение страницы занимает всё больше времени, к примеру, на этой странице, которую вы читаете, 13 скриптов, 7 из которых находятся в head'е. Ко всему прочему, некоторые браузеры по-прежнему придерживаются ограничений на одновременное количество загрузок с одного хоста.

Сразу предлагаю принять, что все JS файлы минимизированы, и передаются в сжатом виде.

Существует несколько решений, как то:
— поместить стили и скрипты прямо в страницу;
— установка аттрибутов async/defer тегу script;
— склеить все скрипты в один файл;
— помесить ссылки на скрипты в конец body;
— разместить все файлы на CDN/на разных хостах;
— свой вариант…

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

Началось всё, конечно, с того, что я взялся за один проект, и в какой-то момент мне показалось, что простенькая страница достаточно долго загружается, и посмотрел на график загрузки, и на результаты YSlow. Огонь на секунду потух в моих глазах, но зная, что может быть лучше, я полез искать,
как сделать лучше.
Всего голосов 94: ↑89 и ↓5+84
Комментарии49

Замыкания и объекты JavaScript. Переизобретаем интерпретатор

Время на прочтение12 мин
Количество просмотров25K
Обычно концепции или парадигмы программирования объясняют либо описательно — «разжёвывая» новые идеи простыми словами, либо метафорически — уподобляя их хорошо знакомым аудитории предметам и понятиям. Но ни первый, ни второй способ не дает такого точного и полного представления о предмете, как взгляд с точки зрения низкоуровневой реализации.

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

JavaScript, как никакой другой язык, нуждается в именно таком объяснении. Функциональная природа, скрытая за Си-подобным синтаксисом, и непривычная прототипная модель наследования поначалу сильно сбивают с толку. Давайте мысленно понизим уровень JavaScript до простого процедурного, наподобие Си. Отталкиваясь от этого «недоязыка», переизобретем функциональное и объектно-ориентированное программирование.
Читать дальше →
Всего голосов 114: ↑113 и ↓1+112
Комментарии30

Конвертируем и загружаем на YouTube

Время на прочтение8 мин
Количество просмотров3.1K
Доброго времени суток!

Итак начнём. В статье я опишу краткий проект на django, который конвертирует/загружает видео-ролики на Ваш канал YouTube.
Подробнее под катом
Всего голосов 38: ↑37 и ↓1+36
Комментарии22

Обёртки для создания классов: зло или добро?

Время на прочтение4 мин
Количество просмотров24K
Раз за разом я читаю, что удобные библиотеки для создания классов на Javascript, видите ли, не соответствуют идеологии языка и тем, кто их использует просто необходимо учить язык. Такое говорят невежды, которые и сами толком не разобрались ни в самом языке ни в библиотеках, которые они критикуют. И так часто говорят, что я решил написать этот топик и просто давать ссылку
var Foo = new Class({
	Extends: Bar,
	initialize: function(firstname, lastname) {
		this.parent(firstname);
		this.lastname = lastname;
	},
	sayHello: function(){
		alert(this.lastname || this.firstname);
	}
});

Читать дальше →
Всего голосов 77: ↑67 и ↓10+57
Комментарии113

Притча о шаблонах

Время на прочтение8 мин
Количество просмотров1.9K
 — Здравствуй *с широко развевающейся по лицу улыбкой* дружок.
 — Ваа! *с ярким блеском в широко распахнутых глазах* Тётя Ася приехала!
 — Да, и у меня есть для тебя новая сказка *присела и взяла малыша за руки* хочешь послушать?
 — Конечно! *слегка смутился и отвёл взгляд* Мне тут дядя такие страшные истории рассказывал…
 — Ну, надеюсь моя история тебя не испугает *потрепала его по волосам* Она должна научить тебя мыслить шаблонно.
 — Эээ? *лицо перекосилось от недопонимания* Это как?
 — М… сейчас узнаешь *подмигнула и взяла на ручки* Вот когда тебе нужно вставить переменные в строку — ты как поступишь?
 — Ну… *взял карандаш и чирканул на лежащей рядом бумажке* примерно так:
var query= 'xxx'
var resultCount= 512
var message= 'По запросу <kbd>' + query + '</kbd> найдено страниц: ' + resultCount

 — Ты ничего не забыл? *победоносно подняла голову*
 — Да вроде нет… *уткнулся носом в код, ещё раз внимательно его проверяя*
 — Что, если пользователь введёт… *выдержала многозначительную паузу и добавила*
какого же порева она там добавила?
Всего голосов 232: ↑157 и ↓75+82
Комментарии164

mod_rewrite: Просмотр списка правил только один раз

Время на прочтение1 мин
Количество просмотров6.7K
С mod_rewrite есть одна проблема, об которую набиты уже наверное 15 миллионов шишек: он просматривает список правил снова и снова, пока URL удается хоть как-то изменить.

Очень часто получаеются и бесконечные циклы(например добавление расширения — оно добавляется снова и снова, если специально регэкспом не ограничить), над которыми с непривычки приходится поломать голову. Все надежды на модификатор [L] тщетны — он лишь сразу запускает следующую иттерацию обработки. Да и без бесконечного цикла лишние иттерации скорости работы не добавляют :-)

Хочу поделится достаточно простым и универсальным средством борьбы с такой особенностью, который обнаружил только-что :-)

Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии21

Глубокая трассировка в Internet Explorer

Время на прочтение3 мин
Количество просмотров3.1K
image
После прочтения поста Стива Сойдерса о бесплатном инструменте — dynaTrace Ajax, я был дико заинтригован. Он предлагает полную анализ трассировки в IE6-8, включая JavaScript, прорисовку и сетевой трафик. Я протестировал несколько сайтов, но более интересный результат получил с тяжелым JavaScript'ом в Gmail в IE8.
Читать дальше →
Всего голосов 62: ↑55 и ↓7+48
Комментарии17

Как увеличить скорость работы jQuery скрипта

Время на прочтение4 мин
Количество просмотров9K
11 правил, следуя которым можно увеличить производительность скрипта, написанного с использованием jQuery.
Читать дальше →
Всего голосов 108: ↑88 и ↓20+68
Комментарии43

Подборка плагинов к jQuery

Время на прочтение2 мин
Количество просмотров5.8K
Вдогонку к этому посту, решил выложить еще одну неплохую и достаточно свежую подборку.

jReject — jQuery Browser Rejection

jReject

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

Еще плагины
Всего голосов 116: ↑98 и ↓18+80
Комментарии28

Были получены исходники 3300 глобальных интернет-проектов

Время на прочтение5 мин
Количество просмотров275K
Пару месяцев назад нами (2Товарища и Антон Исайкин) была обнаружена уязвимость, присущая в основном большим интернет-проектам (вроде Рамблера, Мейла, Яндекса, Оперы и пр.). Удалось получить доступ к файловым структурам известнейших сайтов (в общей сложности 3320 сайтов) и в ряде случаев их полные исходные коды.
Читать дальше →
Всего голосов 1226: ↑1190 и ↓36+1154
Комментарии909

Информация

В рейтинге
Не участвует
Откуда
Бишкек, Кыргызстан, Кыргызстан
Дата рождения
Зарегистрирован
Активность