Pull to refresh
0
0

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

Send message

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

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

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

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

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

Reading time3 min
Views911
Как-то незаметно на Хабре прошло появление в свет интересной, на мой взгляд, библиотеки.

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


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

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

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

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

Читать дальше →
Total votes 17: ↑5 and ↓12-7
Comments15

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

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

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

Reading time3 min
Views1.1K
Некоторое время назад, я заинтересовался таким вопросом:

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


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

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

Читать дальше →
Total votes 12: ↑6 and ↓60
Comments13

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

Reading time8 min
Views2.7K
Ниже приведена сумма основных, широко используемых методик противодействия спаму в комментариях (и прочим способам автоматической отправки нежелательных сообщений) — часть методик я использую при разработке собственных Web-приложений.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments30

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

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

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

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

Reading time2 min
Views1.7K
Добрый день.

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

Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments25

Dojo: Hello World!

Reading time1 min
Views1.6K
Это мой первый хабрапост, посему прошу критиковать конструктивно.
Цель этого урока — дать отправную точку для тех, кто раньше не сталкивался с Dojo. Мы разберемся с настройкой и подключением Dojo, а также напишем небольшой пример AJAX-взаимодействия средствами Dojo.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments6

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

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

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

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

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

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

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

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

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

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

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

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

Читать дальше →
Total votes 77: ↑67 and ↓10+57
Comments113

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

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

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

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

Reading time1 min
Views6.7K
С mod_rewrite есть одна проблема, об которую набиты уже наверное 15 миллионов шишек: он просматривает список правил снова и снова, пока URL удается хоть как-то изменить.

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

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

Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments21

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

Reading time3 min
Views3.1K
image
После прочтения поста Стива Сойдерса о бесплатном инструменте — dynaTrace Ajax, я был дико заинтригован. Он предлагает полную анализ трассировки в IE6-8, включая JavaScript, прорисовку и сетевой трафик. Я протестировал несколько сайтов, но более интересный результат получил с тяжелым JavaScript'ом в Gmail в IE8.
Читать дальше →
Total votes 62: ↑55 and ↓7+48
Comments17

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

Reading time2 min
Views5.8K
Вдогонку к этому посту, решил выложить еще одну неплохую и достаточно свежую подборку.

jReject — jQuery Browser Rejection

jReject

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

Еще плагины
Total votes 116: ↑98 and ↓18+80
Comments28

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

Reading time5 min
Views275K
Пару месяцев назад нами (2Товарища и Антон Исайкин) была обнаружена уязвимость, присущая в основном большим интернет-проектам (вроде Рамблера, Мейла, Яндекса, Оперы и пр.). Удалось получить доступ к файловым структурам известнейших сайтов (в общей сложности 3320 сайтов) и в ряде случаев их полные исходные коды.
Читать дальше →
Total votes 1226: ↑1190 and ↓36+1154
Comments909

Information

Rating
Does not participate
Location
Бишкек, Кыргызстан, Кыргызстан
Date of birth
Registered
Activity