Pull to refresh
-5
@igormukhinread⁠-⁠only

User

Send message

Реализация Single Sign On в Symfony2 приложении

Reading time7 min
Views30K

Что такое Single Sign On?


Single Sign On — это технология, с помощью которой пользователь, будучи аутентифицированным на удостоверяющем центре (далее Identity Provider, IdP), будет автоматически аутентифицирован на другом сервисе (далее Service Provider, SP или Consumer[1-N]) этой компании.

Механизм Single Sign On используют такие сайты, как ХабраХабр, Yandex, Google. Приемущества такого подхода к аутентификации пользователей очевидны:

  • Пользователь вводит пароль только 1 раз
  • Или вовсе не вводит пароль на IdP, если там был использован вход через социальную сеть или с использованием OpenID
  • Автоматически аутентифицируется на всех проектах компании
  • Данные пользователя могут плавать между сервисами от IdP до SP прозрачно для пользователя

Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments21

НЕ Arduino за 55 центов

Reading time3 min
Views104K


Эксперимент с прикручиванию к дешевым микроконтроллерам ATTiny загрузчика и среды разработки Arduino был достаточно удачным. Конечно, с AVR неплохо живется и без Arduino. Но хорошо, когда есть возможность выбора. А потом я вляпался в STM32 и заковырялся в библиотеках и громоздких конструкциях инициализации портов. Спасением ARM-«чайника» стал проект ARM mbed. Лично мне он позволил просто взять и начать работать с STM32.

Но мигать светодиодом на плате Nucleo надоело очень быстро. Отложил я ее, ибо слишком много ножек и наворотов, и взялся за Maple Mini (STM32F103CBT6 с минимальной обвязкой). Тоже все довольно легко и просто — сервоприводы крутятся, датчики работают, экранчики показывают — все популярные библиотеки, знакомые ардуинщикам, в mbed имеются.

А третий заход отчасти повторял «Arduino за 1$». О нем я и расскажу подробно. Идея такая: хочу ARM за копейки. Открываю Aliexpress и нахожу STM32F030F4P6 за 55 центов за штучку при покупке пучка (10 чипов).
Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments26

Как работают профессионалы. Максим Петров, CPO ZeptoLab

Reading time3 min
Views16K
«Как работают профессионалы» продолжает знакомить читателей «Мегамозга» с рабочим ритмом специалистов русского IT-рынка.

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


Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments9

Супер-быстрый старт с Ардуино: берёшь и делаешь

Reading time5 min
Views248K
Когда я начала заниматься Ардуино, мне казалось, что весь мир только и делает, что занимается тем же. На самом деле оказалось, что, как и мне, многим просто трудно начать, «въехать» в саму тему. Поэтому я решила написать быстрый гайд для того, чтобы вы сразу могли взять несколько компонентов и попробовать эту игрушку. Вероятно, после прочтения, вы даже сразу во многом поймёте что к чему и без моих будущих постов. Итак.


Если вы не попробовали Ардуино только потому, что не можете начать, не зная что к чему, я сейчас спасу вас.
Читать дальше →
Total votes 41: ↑29 and ↓12+17
Comments92

Многоуровневое меню для Arduino и не только

Reading time7 min
Views134K


Несколько месяцев назад на хабре появилась статья «Реализация многоуровневого меню для Arduino с дисплеем». «Но, погодите, — подумал я. — Я написал такое меню еще шесть лет назад»!

В далеком 2009 году, я написал первый проект на базе микроконтроллера и дисплея под названием «Автомат управления освещением», для которого потребовалось создать такую оболочку меню, в которую влезет тысяча конфигов, а то и более. Проект был успешно рожден, компилируется и способен работать до сих пор, а оболочка менюОС пошла кочевать из проекта в проект, используя лучшие практики Ущербно-Ориентированного программирования. «Хватит это терпеть» сказал я, и переписал код.

Подкатом вы найдете legacy-код отборного качества, сказ о том, как я его переписал, а также инструкции для тех, кто захочет это использовать.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments21

Разработка простого плагина для JIRA для работы с базой данных

Reading time6 min
Views19K
Плагин будет представлять собой вкладку в административной части проекта, через которую и будем осуществлять работу с базой данных.

Плагин буду делать для джира 4.4.4. Для начала создадим пустой проект. Проект можно создать с помощью Atlassian SDK, а затем открыть в любимой IDE. В данном случае я буду работать с Netbeans. Файловая структура проекта будет выглядеть следующим образом:


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

О чем говорят 100 млн писем: Полная инструкция по работе с email-рассылками

Reading time14 min
Views16K
Примечание переводчика: Ранее в нашем блоге мы публиковали материал с советами по дизайну email-рассылок, созданными на основе анализа 22 млн писем, а также рассказывали о том, как те или иные параметры письма влияют на его эффективность согласно статистике (в том числе по Рунету). Сегодня мы представляем вашему вниманию обширную инструкцию по email-маркетингу, которую создали аналитики маркетинговой компании Vero на основе анализа 100 млн электронных писем.



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

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

Готовы узнать, использование какого типа электронных писем наиболее эффективно, в какие дни недели можно получить больше переходов по ссылкам на вашем сайте, как часто следует присылать электронные сообщения, а также изучить прочую информацию, связанную с пересылкой данных, и приемы, которые можно будет испытать на практике?
Читать дальше →
Total votes 17: ↑13 and ↓4+9
Comments2

«А что если», Event Sourcing

Reading time4 min
Views70K
Наверное, про Event Sourcing слышал каждый, кто хоть раз пересекался с темой CQRS и DDD. Это подход хранения данных, при котором вместо конечного результата храниться череда записей о событиях происшедших с некоторой сущностью. На сайте Мартина Фаулера есть подробное описание, а мы же остановимся на фундаменте, основных «печенюшках», а также проблемах в его применении.
Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments106

PHPUnit: Электронная таблица (spreadsheet) в качестве источника данных (data provider)

Reading time3 min
Views8.1K
В документации PHPUnit есть небольшой раздел посвященный источникам данных (data provider), которые позволяют скормить тесту большой объем данных, а чуть ниже есть даже пример источника данных для CSV файла.
но что делать если хочется отдельную страницу для каждого теста?
Total votes 15: ↑12 and ↓3+9
Comments2

Тестирование отдельных Symfony 2 бандлов

Reading time3 min
Views5.4K
Начну с коротенькой предыстории. Была у меня задача написать резерватор для номеров в отеле, я полез на всеми нами любимый packagist, в поисках готового решения и, к моему глубокому разочарованию, не нашел ничего. Ну, надо сделать — сделаем. Код написан, покрыт функциональными тестами в приложении. Через пару недель я решил выложить написанный бандл на github. Но передо мной встал вопрос: при тестировании отдельного бандла у нас нет самого приложения. Начал гуглить, и опять не нашел ничего стоящего. В общем пришлось собирать информацию по крупицам, и сейчас я хочу поделиться своим опытом с вами.
Начнем наши тесты
Total votes 11: ↑6 and ↓5+1
Comments2

Способы организации CSS-кода

Reading time8 min
Views204K
Разработчик Бен Фрейн (Ben Frain) однажды заметил: «Писать CSS-код легко. Масшабировать и поддерживать его — нет».

К счастью, на просторах интернета можно найти множество решений этой проблемы. В данной статье рассмотрены основные киты структуры CSS-кода, а также интересные рыбы/млекопитающие поменьше.

Статья служит лишь памяткой или кратким справочником — для подробного ознакомления с методологиями настоятельно рекомендуется изучать оригинальную документацию.

Итак, начнем.
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments61

Введение в CQRS + Event Sourcing: Часть 2

Reading time8 min
Views48K
В прошлой статье я начал с основ CQRS + Event Sourcing. В этот раз я предлагаю продолжить и более подробно посмотреть на ES.

В примере который я выкладывал с моей прошлой статьей магия Event Sourcing’а была скрыта за абстракцией IRepository и двумя методами IRepository.Save() и IRepository.GetById<>().
Для того чтобы поподробнее разобраться что происходит я решил рассказать о процессе сохранения и загрузки агрегата из Event Store на примере проекта Lokad IDDD Sample от Рината Абдулина. У него в аппликейшен сервисах идет прямое обращение к Event Store, без дополнительных абстракций, поэтому все выглядит очень наглядно. Application Service — это аналог CommandHandler, но который обрабатывает все комманды одного агрегата. Такой подход очень удобный и мы тоже на него в одном проекте перешли.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments39

Попробуй БЭМ на вкус!

Reading time11 min
Views68K
Эта статья рассказывает о том, как создать проект с использованием БЭМ-технологий.
Мы шаг за шагом создадим страничку каталога товаров, пользуясь принципами БЭМ в CSS, возможностями писать декларативный JavaScript на фреймворке i-bem.js и с использованием шаблонизатора BEMHTML. Помогать делать всё это будут bem tools, в частности — инструмент для разработки bem server.

Онлайн магазин

Важно: в статье нет особенных подробностей, её цель — получить проект максимально быстро. Текст, раскрывающий больше информации, пройдёт следующим постом.
Читать дальше →
Total votes 80: ↑61 and ↓19+42
Comments82

Почему я больше не рекламирую услуги своей компании

Reading time5 min
Views19K


Клиенты – основа любого дела. Первые клиенты приходили в мою ИТ-аутсорсинговую компанию по рекомендации. Это был непредсказуемый и крайне скромный поток. Временами, по 3 месяца никто даже не интересовался нами. Чтобы хоть как-то подтолкнуть рост бизнеса, через два года после его открытия я вложился в рекламу и продвижение сайта компании в Интернете. Дела пошли куда веселее.

За 4 года использования рекламы штат моей компании вырос с четырех до 25 специалистов. Но чем дальше, тем меньше это приносило радости. Использование рекламы размывало заложенные при создании компании цели и ценности работы. Компания превращалась в еще одного «аутсорсера». В итоге, чтобы исправить ситуацию, мне пришлось отказаться от использования рекламы, а в последующие два года расстаться с большинством привлеченных через нее клиентов. Теперь мы работаем только с пришедшими к нам по рекомендации клиентами. В данной статье я хочу рассказать о причинах, побудивших меня к такому шагу.
Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments19

Создание собственного вендорного бандла в Symfony2

Reading time26 min
Views20K
Часто возникает необходимость использовать одинаковый код в разных проектах. Чтобы не было повторения кода, такой код обычно помещают в библиотеку. В фреймворке Symfony2 весь код должен быть помещён в так называемые бандлы (bundle). Уже сейчас существует огромное количество бандлов, решающих совершенно разные задачи, но всё-таки часто возникает необходимость создания своего бандла, решающего рутинную задачу.

Это может быть обычный бандл, находящийся в папке src, и тогда при необходимости использовать его в новом проекте нужно скопировать его в новый проект. Но в таком случае возникает проблема с обновлением кода, ведь, когда код доступен для изменения, то он будет изменён (особые извращенцы изменяют даже код в папке vendor). Для удобства процедуры использования своего кода в других проектах можно оформить бандл как внешний, вендорный бандл, и управлять им через composer наравне с остальными сторонними бандлами.

Эта статья пошагово показывает, как можно с нуля создать бандл, доступный к установке через composer.

Содержание:
  1. Создание нового бандла
  2. Добавление настроек в бандл
  3. Подготовка бандла к публикации
  4. Публикация бандла

Будет рассмотрено создание бандла для управления статичными страницами сайта. Можно найти несколько готовых подобных бандлов, но они либо слишком простые, либо слишком сложные (типа SonataPageBundle). Уровень статьи — продвинутый новичок. Подразумевается, что читатель уже умеет создавать бандлы в проекте, а также пользоваться контроллерами и шаблонами.
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments6

Программа «самопоедания» Google

Reading time1 min
Views78K
Группа разработчиков, участвующих в программе контекстной рекламы Adsense, несколько лет назад запустила проект Google Will Eat Itself (GWEI), который представляет собой модель «самопоедания» для компании Google. Суть такова: в сети веб-сайтов крутится контекстная реклама Adsense, а на заработанные деньги автоматически покупаются акции Google.

Что удивительно, модель работает. По крайней мере, работала в первые годы после запуска эксперимента. Если верить статистике, то в собственность GWEI в какой-то момент перешло 819 акций Google, что по нынешнему курсу составляет почти миллион долларов (примерно $960 тыс.).
Читать дальше →
Total votes 70: ↑60 and ↓10+50
Comments15

Робот, неплохо играющий в настольный теннис: разработка из Германии

Reading time1 min
Views85K


Напомню, сегодня, 11 марта, проходит соревнование по настольному теннису между роботом и человеком (Тимо Болль — неоднократный чемпион разного рода соревнований).

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

Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments31

Искусственный интеллект и Почему мой компьютер меня не понимает?

Reading time5 min
Views153K


Гектор Левекwiki утверждает, что его компьютер тупой. И ваш тоже. Siri и голосовой поиск Google умеют понимать заготовленные предложения. Например «Какие фильмы будут показывать неподалёку в 7 часов?» Но что насчёт вопроса «Может ли аллигатор пробежать стометровку с барьерами?» Такой вопрос никто раньше не задавал. Но любой взрослый может найти ответ на него (Нет. Аллигаторы не могут участвовать в беге с барьерами). Но если вы попытаетесь ввести этот вопрос в Google, то получите тонны информации о спортивной команде по лёгкой атлетике Florida Gators. Другие поисковые системы, такие как Wolfram Alpha, тоже не способны найти ответ на поставленный вопрос. Watson, компьютерная система выигравшая викторину «Jeopardy!», вряд ли покажет себя лучше.
Читать дальше →
Total votes 94: ↑87 and ↓7+80
Comments146

Деннис Тито планирует отправить людей к Марсу в 2018 году

Reading time7 min
Views42K
В гонку за Марс включился еще один серьезный игрок.
Вчера состоялась пресс-конференция недавно созданного некоммерческого фонда Inspiration Mars Foundation, представившего свой проект беспосадочного пилотируемого полета вокруг Марса в 2018 году.
image
Читать дальше →
Total votes 80: ↑79 and ↓1+78
Comments145

Шестиногий робот двигается почти как живой

Reading time1 min
Views89K
Робот PhantomX от Trossen Robotics обладает впечатляющей гибкостью и подвижностью и способен бегать со скоростью около одного метра в секунду. Он работает под управлением Arduino-совместимого контроллера, и может управляться дистанционно с пульта или компьютера. Робот уверенно передвигается по пересечённой местности.



Стоимость комплекта для сборки робота составляет 1200 долларов.
Total votes 107: ↑92 and ↓15+77
Comments93

Information

Rating
Does not participate
Registered
Activity