Как стать автором
Обновить
0
0
Антон Зеленский @zelibobla

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

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

Избавляемся от JavaScript в социальных кнопках (Facebook, VK, Twitter и др.)

Время на прочтение 5 мин
Количество просмотров 78K
Как мы избавились от JavaScript-библиотек социальных сетей, ускорили скорость загрузки страниц и использовали RESTful API для “шаринга” и “лайков”.


Читать дальше →
Всего голосов 78: ↑73 и ↓5 +68
Комментарии 44

Подходы к контролю доступа: RBAC vs. ABAC

Время на прочтение 5 мин
Количество просмотров 151K
В этой теме хотелось бы познакомить читателей с относительно новым подходом к контролю доступа под названием Attribute-based access control. Знакомство будет происходить на примере сравнения с популярным нынче Role-based access control.
Читать дальше →
Всего голосов 32: ↑31 и ↓1 +30
Комментарии 45

Четвероногий робот военного назначения AlphaDog растет и развивается

Время на прочтение 2 мин
Количество просмотров 75K
image

Еще в сентябре месяце этого года было известно то, что четвероногий шагающий робот LS3, известный еще как AlphaDog, получил массу модернизаций, которые дали ему новые возможности и функции. И начиная с осени, робот участвовал в обширной программе полевых испытаний в которых помимо представителей компании Boston Dynamics принимали активное участие и американские военные, а ниже представлен видеоролик, снятый на этих испытаниях, который наглядно демонстрирует нам некоторые новые способности робота LS3.

Напомню, что робот LS3 создается как своеобразное грузовое «транспортное средство», способное полностью самостоятельно перемещаться по трудной и пересеченной местности и которое может нести на себе 180 кг груза на расстояние более 30 километров в течение 24 часов времени. Все это робот должен уметь делать совершенно самостоятельно, не требуя в автоматическом режиме никакого участия человека. Это позволит солдатам не отвлекаться на управление роботом и максимально сосредоточиться на выполнении основной задачи.
Читать дальше →
Всего голосов 53: ↑46 и ↓7 +39
Комментарии 131

Nook Simple Touch with Glow Light: Unboxing и краткий обзор

Время на прочтение 2 мин
Количество просмотров 30K
Со времен первых читалок от Sony я следил за этим рынком краем глаза. От покупки сначала PocketBook а затем и Kindle меня отговаривала простая мысль, знакомая думаю многим — читать время выдается обычно в темном помещении и мобильный устройства с обычным жк-экраном бесспорно выигрывали. Пока не появился замечательный гаджет от Barnes&Noble.


Читать дальше →
Всего голосов 55: ↑44 и ↓11 +33
Комментарии 136

OAuth: описание протокола простым и понятным языком

Время на прочтение 16 мин
Количество просмотров 189K
OAuth — популярный протокол, который позволяет социальным сервисам интегрироваться между собой и дает безопасный способ обмена персональной информацией. OAuth может связать между собой 2 сервиса, каждый из которых имеет свою пользовательскую базу — именно их я в данном случае называю «социальными». Когда начинаешь работать с OAuth, первое ощущение — что протокол весьма сложен и избыточен. В этой статье я попытаюсь объяснить основы OAuth человеческим языком.

Пример кросс-авторизации


Вернемся в 2005-й год и представим, что мы пишем социальную сеть. В ней имеется форма импорта контактов из адресной книги GMail. Что нужно для доступа к контактам GMail? Конечно, логин и пароль от ящика. Но если мы попросим ввести их на нашем сайте, пользователь заподозрит неладное. Где гарантия, что мы не сохраняем на сервере введенные пароли? Поэтому нам хочется, чтобы пароль вводился только на сайте GMail, и после этого доступ к контактам через API GMail предоставлялся нашей социальной сети (возможно, на время).
Под катом - повествование с примерами
Всего голосов 134: ↑124 и ↓10 +114
Комментарии 34

RE: Земля в информационной блокаде?

Время на прочтение 6 мин
Количество просмотров 5.1K
Если ты очень ждёшь друга — не принимай стук своего сердца за топот копыт его коня
Восточная мудрость, процитированная И.С.Шкловским
в пятом переиздании книги «Вселенная. Жизнь. Разум»

Этот текст написан в форме ответа на пост "Земля в информационной блокаде", хотя по смыслу таковым не является. Я всего лишь хочу осветить вопрос внеземной жизни с точки зрения хорошого информированного скептика.
Читать дальше →
Всего голосов 174: ↑131 и ↓43 +88
Комментарии 496

RESTful API на Node.js + MongoDB

Время на прочтение 16 мин
Количество просмотров 257K
Я, будучи разработчиком мобильных приложений, часто нуждаюсь в backend-сервисах для хранения пользовательских данных, авторизации и прочего. Конечно, для подобных задач можно использовать BaaS (Parse, Backendless, etc…). Но свое решение — это всегда более удобно и практично.

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

В данной статье будет рассмотрено построение REST API для мобильного приложения на Node.js с использованием фреймворка Express.js и модуля Mongoose.js для работы с MongoDB. Для контроля доступа прибегнем к технологии OAuth 2.0 с помощью модулей OAuth2orize и Passport.js.

Пишу с позиции абсолютного новичка. Рад любым отзывам и поправкам по коду и логике!

Содержание

  1. Node.js + Express.js, простой web-сервер
  2. Error handling
  3. RESTful API endpoints, CRUD
  4. MongoDB & Mongoose.js
  5. Access control — OAuth 2.0, Passport.js

Читать дальше →
Всего голосов 44: ↑41 и ↓3 +38
Комментарии 63

OAuth 2.0 простым и понятным языком

Время на прочтение 7 мин
Количество просмотров 782K
Логотип OAuth 2.0

На хабре уже писали про OAuth 1.0, но понятного объяснения того, что такое OAuth 2.0 не было. Ниже я расскажу, в чем отличия и преимущества OAuth 2.0 и, как его лучше использовать на сайтах, в мобильных и desktop-приложениях.

Что такое OAuth 2.0


OAuth 2.0 — протокол авторизации, позволяющий выдать одному сервису (приложению) права на доступ к ресурсам пользователя на другом сервисе. Протокол избавляет от необходимости доверять приложению логин и пароль, а также позволяет выдавать ограниченный набор прав, а не все сразу.

Читать дальше →
Всего голосов 168: ↑153 и ↓15 +138
Комментарии 44

PHP RUtils — небольшая библиотека для обработки русского текста

Время на прочтение 5 мин
Количество просмотров 20K
В работе на языке Python я частенько использую библиотеку Pytils для работы с русским текстом, и мне очень не хватало этой библиотеки при работе на PHP. Возможно, я искал плохо, но все, что я находил, не предоставляло подобных возможностей либо не слишком отвечало моим понятиям о чистом коде.

И вот, однажды я решил портировать библиотеку на PHP, и теперь хочу поделиться ею с народом и очень надеюсь на помощь в ее улучшении: буду рад советам, баг-репортам и особенно pull-реквестам. Библиотека находится на GitHub'е: github.com/Andre-487/php_rutils

UPD от 26.10.2013: теперь библиотека так же доступна через Composer: packagist.org/packages/andre_487/php_rutils
Так же хочу сказать спасибо всем, кто помог улучшить библиотеку и довести ее до стабильного релиза.

Возможности библиотеки


PHP RUtils — порт Pytils на PHP. Это утилиты для работы с русским текстом. Утилиты разделены на следующие модули (классы):

  • Numeral — работа с числами: склонение существительных в зависимости от количества, числа прописью, суммы денег в рублях и копейках прописью.
  • Dt — работа с датами: расширение формата дат PHP русскими именами месяцев, дней недели; временные периоды (например, 24 976 дней назад).
  • Translit — транслитерация, подготовка строк для использования в URL'ях, именах файлов.
  • Typo — небольшой набор правил типографики простого текста.

Примеры кода и подробности
Всего голосов 94: ↑90 и ↓4 +86
Комментарии 26

Фонетический поиск

Время на прочтение 4 мин
Количество просмотров 16K
Пару лет назад была задача написать для одного из сайтов такой поиск, который бы распознавал опечатки и предлагал бы исправленные запросы. Было перепробовано несколько вариантов, об одном из которых я и хотел тут написать. Поиск на основе звучания слов может стирать языковые границы, поскольку имена собственные на разных языках созвучны. Например, ищешь «Арнольд Шварцнеггер» на русском — находишь «Arnold Schwarzenegger» на английском, или ищешь «Michael Jordan» — находишь «Майкл Джордан», или ищешь «Чак Норрис» — и вдруг он сам тебя находит. Помимо поиска созвучных слов этот метод нивелирует большое количество опечаток. А то че-то задолбала попса, надо больше про инсайд…

...больше про инсайд
Всего голосов 123: ↑122 и ↓1 +121
Комментарии 77

Мне кажется, я начал понимать, что ты имела в виду!

Время на прочтение 7 мин
Количество просмотров 33K
Опечататься дело нехитрое; опечататься в поисковом запросе так и вдвойне. Почитай все большие веб-поисковики сегодня умеют корректировать ошибки в ключевых словах во-1х и подсказывать запросы во-2х; вслед за ними того же хочется поискам поменьше. Обе штуки можно ловко реализовать при помощи открытого поисковика по кличке Sphinx; в этом посте расскажу, как конкретно.

Ну, за did you mean («что ты имела в виду») и прочий query completion («уж не Васю ли ты ищешь»).
Читать дальше →
Всего голосов 84: ↑75 и ↓9 +66
Комментарии 24

Путь JavaScript модуля

Время на прочтение 28 мин
Количество просмотров 121K


На момент написания этой статьи в JavaScript еще не существовало официальной модульной системы и все эмулировали модули как могли.

Модули или подобные структуры это неотъемлемая часть любого взрослого языка программирования. Просто иначе никак. Модули позволяют ограничить область видимости, позволяют реиспользовать части приложения, делают приложение более структурированным, отделяют ресурсы от шума и вообще делают код нагляднее.

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

Дело в том, что раньше не думали, что на JavaScript можно делать огромные проекты, а не просто «пропатчить DOM», поэтому о модулях не думали. Да и вообще не думали о будущем. И тут Внезапно будущее нагрянуло! Все вроде-бы уже есть, а модули в JavaScript, мягко говоря, запаздывают. Поэтому разработчикам приходится крутиться и выдумывать какие-то эмуляторы модульности.

Думаю многие из вас читали прекрасную статью Addy Osmani Writing Modular JavaScript With AMD, CommonJS & ES Harmony, которая стала одной из глав его книги Learning JavaScript Design Patterns в этой статье рассказывается про «современные» JavaScript модули или же читали достаточно старую статью JavaScript Module Pattern: In-Depth 2010 года про «старые» модули.

Я не буду переводить эти статьи и не буду делать из них солянку. В своей статья я хочу рассказать о моем модульном пути. О том как я проделал путь от «старых» модулей к «новым» и что использую сейчас и почему.
Читать дальше →
Всего голосов 188: ↑185 и ↓3 +182
Комментарии 71

Блог на node.js

Время на прочтение 1 мин
Количество просмотров 13K
Вышла ноль пятая версия mvc фреймворка Autodafe для node.js. Код стало писать удобнее, кода теперь писать нужно меньше, ещё меньше. Скоро код писать не надо будет совсем, достаточно будет лишь подумать о нём.

Пример действия контроллера, которое совершает два асинхронных запроса к базе данных, компанует вьюшку index.html и отправляет ее клиенту (при этом отлавливая и обрабатывая все ошибки):

Site.prototype.index = function( response, request ){
  response.send({
    topic : this.models.topic.With( 'author', 'comments.author' ).find_by_pk( request.params.topic_id ),
    news  : this.models.news.find_all()
  });
}


Написаны подробные статьи про тонкости работы с контроллерами, авторизацию пользователей и работу с URL адресами.

И самое главное: переработано и подробно задокументировано демо с блогом. Блог не обладает богатым функционалом, но может служить хорошей отправной точкой для разработки своего приложения.



За хабракатом только комментарии
Всего голосов 40: ↑33 и ↓7 +26
Комментарии 11

Подборка инструментов для эффективной frontend разработки

Время на прочтение 3 мин
Количество просмотров 101K
В эту прекрасную пятницу осмелюсь предложить хабрасообществую небольшую подборку приложений, предназначенных для увеличения продуктивности во время работы с фронтэндом. Если ваш любимый апп здесь не представлен — добро пожаловать в комментарии!

Form Builder

image

Этот прекрасный генератор форм поможет вам в создании красивейших CSS логин-боксов и прочих input вещей, при минимальных временных затратах. Помимо форм на сайте этого проекта можно создавать и другие не менее красивые CSS элементы, в том числе кнопки и ленты.
еще 24 ссылки
Всего голосов 204: ↑197 и ↓7 +190
Комментарии 46

Подборка полезного для любителей Twitter Bootstrap

Время на прочтение 2 мин
Количество просмотров 250K
В подборке сервисы, плагины, темы и другие полезности, облегчающие работу с Twitter Bootstrap.

Стилизация


BootSwatchr — быстрая стилизация Twitter Bootstrap.

Читать дальше →
Всего голосов 248: ↑243 и ↓5 +238
Комментарии 58

Pictonic — необычный иконочный шрифт

Время на прочтение 1 мин
Количество просмотров 30K

В последнее время появилось множество иконочных шрифтов для нужд веб-дизайнеров, но такой как Pictonic я вижу впервые. Это «логотипный» иконочный шрифт, где собрано более 220 логотипов известных сервисов, браузеров, операционных систем, языков программирования и т.д. Среди символов конечно нет русскоязычных сервисов.
Читать дальше →
Всего голосов 82: ↑79 и ↓3 +76
Комментарии 32

Открытое интервью с Василием Воропаевым (Free-Lance.ru)

Время на прочтение 16 мин
Количество просмотров 70K
Вчерашние изменение правил сайта free-lance.ru вызвало широкий резонанс у общественности, особенно у специалистов IT области. Многие задаются вопросами, чем вызвана подобная политика биржи и к чему это приведет.

Новость не обошла стороной даже популярные издания вроде Lenta.ru.

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

Спустя сутки мы получили ответы от генерального директора free-lance.ru
Текст письма
Всего голосов 161: ↑139 и ↓22 +117
Комментарии 270

HybridAuth — интеграция сайта с социальными сетями

Время на прочтение 7 мин
Количество просмотров 38K

Введение


На своем сайте на php для авторизации пользователей я в последнее время пользовался сервисом Loginza. Все было очень круто и удобно, но в голове начала зарождаться идея отказа от этого замечательного сервиса и вот почему:

  1. Авторизация пользователей в случае закрытия Loginza или отказа от нее — в этом случае мы потеряем пользователей, в привязанных профилях которых не указан email;
  2. Дополнительная информация, например, ВКонтакте умеет отдавать фото пользователя в нескольких видах, в том числе квадратный аватар. С Логинзой получить эти данные не представляется возможным, сервис сам решает какие данные запрашивать и какие отдавать;
  3. С момента продажи Яндексу Логинза начала умирать: на запросы пользователей никто не отвечает, сервис не развивается, а находится в том виде, в котором был 1-2 года назад.

Встал вопрос замены и использовать альтернативные сервисы желания уже не возникало — никто не представлял возможности «общаться» с соц. сетью напрямую, а расширенные поля профиля обычно включались в платные услуги. Хотелось автономного решения с возможностью гибкой настройки запрашиваемых полей и в итоге я остановился на php библиотеке HybridAuth.
Подробнее о HybridAuth
Всего голосов 54: ↑52 и ↓2 +50
Комментарии 28

Профилирование PHP скриптов на живом сервере

Время на прочтение 5 мин
Количество просмотров 17K
Добрый день, сообщество!

Наверняка кто-то из вас сталкивался с такой проблемой: медленно работает сайт на реальном сервере.
Важно оперативно выяснить в каких местах возникли сложности. Использовать для этого xdebug нельзя, так как он создает большую нагрузку на сервер и сам вносит погрешность в измерения. Для решения этой задачи мы выбрали систему, которая позволяет очень быстро собирать древовидную статистику по работе сайта — pinba.
Читать дальше →
Всего голосов 39: ↑34 и ↓5 +29
Комментарии 59

Карта Интернета

Время на прочтение 3 мин
Количество просмотров 18K
Привет всем!

Хочу представить вам Карту Интернета или результат кластеризации более чем 350 тысяч сайтов в соответствии с переходами пользователей между ними. Размер круга определяется посещаемостью сайта, цвет – национальной принадлежностью, а положение на карте – его связями с другими сайтами. Если два сайта имеют стабильный поток пользователей между ними, то они будут «стараться» расположиться ближе друг к другу. После завершения работы алгоритма, на карте можно наблюдать скопления сайтов (кластеры) объединенные общими пользователями.

image

Например, если ввести в поиск habrahabr.ru, то можно увидеть, что dirty.ru и leprosorium.ru в том же «созвездии», а еще подальше livejournal.ru. Это говорит о том, что тот, кто сейчас читает этот текст, также с высокой вероятностью посещает эти сайты (относительно усредненного пользователя Рунета конечно).

Еще более интересный пример кластеризации можно увидеть внизу карты, между фиолетовой Японией и желтоватой Бразилией: там расположилась целая порнострана по размерам сопоставимая со всем Евронетом. Интересно, что будучи достаточно компетентным в рассматриваемом вопросе, внутри большого порнокластера можно различить тематические подкластеры меньшего размера.

Тем, кого интересует краткое техническое описание – добро пожаловать под кат
Читать дальше →
Всего голосов 224: ↑217 и ↓7 +210
Комментарии 146
1

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность