Рубрика «Веб-разработка» - 165

Как вы уже поняли из предыдущих постов, Meople.Net — это агрегатор ваших персональных (и не только) новостей из социальных сетей, реализованный для WEB и Windows 8. Многие из вас могут законно сказать, что сервис далеко не революционный. Но в этой статье я бы хотел остановиться на том, что его делает уникальным с технической (функциональной) точки зрения, а не с пользовательской.

Итак, как происходит работа с социальными сетями: большинство социальных сетей предоставляют REST API функционал для сторонних разработчиков, которые хотят построить свои приложения на платформах/данных социальных сетей. То есть, если вы хотите использовать данные Facebook или ВКонтакте в своем приложении, то это то, что вам нужно.
Я опущу общие шаги, которые должен сделать любой разработчик:
● регистрация приложения на сайте соц. сети и получение секретных ключей приложения;
● реализация (в большинстве случаев) OАuth 2.0 авторизации (http://tools.ietf.org/html/rfc6749);
● собственно отправление подписанного запроса в соц. сеть для получения необходимых вам данных.

Авторизация

Авторизация делится на клиентскую и серверную. 99% приложений, которые построены на платформе социальной сети, делают серверную авторизацию, что дает им возможность проксировать все запросы и сохранять ваши авторизационные данные на своих серверах. Они, собственно, это и делают. Так как в противном случае вам пришлось бы постоянно вводить пароль от вашего аккаунта в соц. сети (либо постоянно подтверждать разрешение на пользование вашего аккаунта для стороннего приложения). Ваши авторизационные данные в таком случае хранятся на сторонних серверах, не принадлежащих соц. сети. Там с ними может произойти все что угодно — ими даже могут воспользоваться без вашего ведома: например, поставить лайк на какую-то страницу, подписать вас на какие-то новости, в целях рекламы отправить вашим друзьям сообщение, что вы начали использовать какое-то приложение и тд.
Наш сервис использует клиентскую авторизацию там, где это возможно. В результате чего ваши авторизационные данные находятся в вашем же браузере (cookies, data storage) или устройстве и не сохраняются на наших серверах. Подписка запросов, отправляющихся в сеть, также происходит на клиенте. То есть, когда вы не используете наш сервис, у нас нет даже теоритической возможности воспользоваться вашими данными.

Отправление запросов на получение данных

При серверной авторизации для получения актуальных данных подпись запроса происходит на стороннем сервере, это означает, чтобы получить какие-то данные запрос из вашего браузера идет на сторонний сервер, оттуда в дата центр соц.сети, из соц.сети обратно на сторонний сервер и возвращается к вам. Казалось бы, все хорошо, но представьте себе, что вы находитесь в России (а раз вы читаете этот пост, то вы, скорее всего, там находитесь), а сервер стороннего приложения в большинстве случаев (и у нас в том числе) в США. Это означает, что ваш запрос образно пропутешествует вот так: Россия -> США сторонний сервер -> США соц.сеть (у ВКонтакте не уверен есть ли там сервера) -> США сторонний сервер -> Россия.
В итоге мы видим кучу запросов и на каждом из них многочисленные задержки. Особенно в случае запросов Россия — США. В результате производительность приложения падает. Частично это решается кешированием на некоторое время данных на сторонних серверах (это еще одна вещь, которой всегда хочется избежать) — но при этом вы лишаетесь возможности получить актуальные на данную секунду данные, а получаете данные с задержкой.

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

image
Читать полностью »

О том, как я доверился своей интуиции и был очень упорным Бывало ли у вас ускользающее чувство как-будто вы на правильном пути? Возможно, вы что-то делали, подсознательно понимая что двигаетесь в правильном направлении, вы ощущали то неуловимое состояние когда «я понятия не имею что сейчас делаю, но мне кажется я на правильном пути». У меня часто бывает такое состояние. Вашему вниманию предлагается скромная история, произошедшая со мной несколько лет назад. Заранее прошу прощения если я где-то неправильно использую технические термины, поправьте меня в комментариях, спасибо.

Собственно, началось все со звонка моей сестры и описания насущной проблемы, которая встала перед ней. А случилось следующее — организация, в которой она работала, год назад назад заказала создание сайта с 15-тью виртуальными турами (это там, где используя встроенный flash-плеер вы можете крутить во все стороны и изучать пространство вокруг себя, например, номер в гостинице). В какой-то определенный момент, как вы уже, наверное, догадались, все виртуальные туры на сайте вместо красочных картинок стали показывать ошибку: «Error 20» на красивом белом фоне. С этим и предстояло мне разобраться.
Читать полностью »

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

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

Для тех, кому только глянуть: the result, the cat.

Читать полностью »

В продолжение предыдущего поста заглянем за кулисы RuSSIR Music Hackathon 2013. В данном тексте представляю вашему вниманию анализ события с точки зрения организатора. Надеюсь, этот рассказ будет полезен организаторам будущих аналогичных мероприятий.

Цели мероприятия

Идея проведения хакатона родилась, в первую очередь, благодаря школе RuSSIR. По моей субъективной оценке, предыдущие школы показали, что ее серьезной проблемой являлся недостаток интенсивной практики. Свободный и соревновательный формат хакатона представлялся наиболее удобным для применения слушателями школы полученных навыков при решении реальных задач. Кроме того, лично я — большой фанат музыки и музыкальных сервисов/приложений. Таким образом, основная тема школы — аудио-поиск — трансформировалась в музыкальную тему хакатона.

Анкета участника

Мы собирали фидбэк от участников после мероприятия, поэтому некоторые пункты будут иллюстрироваться статистикой из анкеты.

Читать полностью »

В Firefox 27 появился новый инструмент — редактор шейдеров — который значительно упрощает их разработку. Редактор показывает все запущенные в контексте WebGL программы, даёт возможность редактировать их и сразу же видеть изменения без единого обрыва анимаций или потери состояния.


Читать полностью »

Приветствую всех.

JellyBone или просто jBone — микро библиотека (2кб gzipped) для работы с DOM в современных браузерах. Она частично имплементирует интерфейсы jQuery для основных методов необходимых для корректной работы Backbone, но может использоваться и независимо.

Проблема

jBone родился при решении конкретной задачи — разработки мобильного приложения. Основными требованиями были отзывчивость UI и скорость загрузки приложения. Очень скоро стало ясно, что почти половину всего кода у нас занимает jQuery, причем решались с помощью него очень простые задачи.
Читать полностью »

Какие дизайнеры бывают? Чем отличается дизайнер от UI/UX-специалиста, арт-директора, креативного директора, где его работа пересекается со сферой бизнес-аналитика? Именно эти темы хотелось бы обсудить.

image

Читать полностью »

image
Вольный перевод статьи Jacob Nielsen и Kara Pernice про 10 лучших интранетов 2013 г. в мире и тренды развития таких решений — "10 Best Intranets of 2013"

Год назад Якоб Нильсен, который традиционно стремиться сделать работу в интернете для пользователей максимально удобной и доступной, провел исследование в области интранетов, и определил ключевые тренды, которые будут происходить в ближайший год. Это исследование показало, что 70% победителей используют сильно кастомизированный SharePoint. Среди основных выявленных трендов — увеличение численности команды разработки почти вдвое, ряд преимуществ: улучшенная интеграция с социальными сетями и многочисленные продвинутые фильтры.
Как нам показалось, данное исследование не получило широкого распространения, и мы решили восполнить этот пробел и обсудить с вами, случились ли те тренды, о которых говорит Nielsen Norman Group.
Читать полностью »

image
Сегодня, когда я в очередной раз просматривал stackoverflow в поисках готового рецепта для iptables, который бы делал то, что мне нужно, а не что-то другое (к сожалению, я так и не осилил iptables настолько, чтобы самостоятельно составлять правила, и не так часто им пользуюсь, чтобы просто запомнить их), мне попалось упоминание о UFW — Uncomplicated Firewall. Сразу отмечу, что статья предназначена скорее не для суровых администраторов, а для обычных веб-разработчиков, которым нужно закрыть неиспользуемые порты на VPS-сервере, который им самим и приходится настраивать.
Читать полностью »

image
В последнее время тема удалённой работы стала особенно актуальной — достаточно вспомнить этот недавний пост на хабре, выход книги Remote от Джейсона Фрайда и приуроченный к запуску книги старт биржи поиска удалённых сотрудников от 37 Signals.
Сторонников у неё более чем достаточно, особенно среди работников, уставших изо дня в день добираться до офиса по сумасшедшим городским пробкам. Противников также немало и в первую очередь среди работодателей. Здесь я постараюсь объяснить, почему, несмотря на все минусы (многие из которых, к слову, либо временные, либо вымышленные), удалённая работа — это наше будущее, и будущее весьма близкое. Как человек из IT-индустрии, я конечно имею в виду в первую очередь её, но значительная часть этих наблюдений носит универсальный характер.
Сразу оговорюсь, я не хочу сказать, что работа в офисе уйдёт в небытие, она лишь превратится из единственного возможного способа в инструмент, решающий определённый спектр задач. Под катом список основных плюсов удалёнки для работника и работодателя, а в следующей части я постараюсь опровергнуть основные мифы, к которым часто апеллируют её противники.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js