Как стать автором
Обновить
8
Карма
0
Рейтинг
Дмитро @WingeD

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

  • Подписчики
  • Подписки
  • Публикации
  • Комментарии

Микросервисная архитектура, Spring Cloud и Docker

Разработка веб-сайтов *Программирование *Java *Микросервисы *
Tutorial

Привет, Хабр. В этой статье я кратко расскажу о деталях реализации микросервисной архитектуры с использованием инструментов, которые предоставляет Spring Cloud на примере простого концепт-пруф приложения.



Код доступен для ознакомления на гитхабе. Образы опубликованы на докерхабе, весь зоопарк стартует одной командой.

Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Просмотры 226K
Комментарии 32

Big Data от А до Я. Часть 4: Hbase

Блог компании DCA (Data-Centric Alliance) Big Data *
Tutorial
Привет, Хабр! Наконец-то долгожданная четвёртая статья нашего цикла о больших данных. В этой статье мы поговорим про такой замечательный инструмент как Hbase, который в последнее время завоевал большую популярность: например Facebook использует его в качестве основы своей системы обмена сообщений, а мы в data-centric alliance используем hbase в качестве основного хранилища сырых данных для нашей платформы управления данными Facetz.DCA

В статье будет рассказано про концепцию Big Table и её свободную реализацию, особенности работы и отличие как от классических реляционных баз данных (таких как MySQL и Oracle), так и key-value хранилищ, таких как Redis, Aerospike и memcached.
Заинтересовало? Добро пожаловать под кат.


Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Просмотры 80K
Комментарии 21

Big Data от А до Я. Часть 1: Принципы работы с большими данными, парадигма MapReduce

Big Data *
Tutorial

Привет, Хабр! Этой статьёй я открываю цикл материалов, посвящённых работе с большими данными. Зачем? Хочется сохранить накопленный опыт, свой и команды, так скажем, в энциклопедическом формате – наверняка кому-то он будет полезен.



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



Начинать надо от простого к сложному, поэтому первая статья – о принципах работы с большими данными и парадигме MapReduce.


Читать дальше →
Всего голосов 58: ↑51 и ↓7 +44
Просмотры 432K
Комментарии 35

Сказ царя Салтана о потенциале лапласиана

Алгоритмы *Математика *
«Три девицы под окном пряли поздно вечерком.»

image

Ну как пряли. Не пряли, конечно, а лайкали друг на друга. По условиям конкурса «мисс Салтан» девицы должны были выбрать меж собой лучшую.

«Какой-то странный конкурс», — беспокоились девицы. И это было правдой. По правилам конкурса вес лайка участника зависел от того, сколько лайков он получает от других. Что это значит, — никто из девиц до конца не понимал.
«Как все сложно», — тосковали девушки и подбадривали себя песней «Кабы я была царицей».

Вскоре «в светлицу вошел царь — стороны той государь» (показан на рисунке). «Во все время разговора...», — ну понятно в общем.
«Собираем лайки нежности — формируем матрицу смежности», — бодро срифмовал он.
Девицы-красавицы с именами Алена, Варвара и Софья засмущались, но лайки (из балалайки) передали.

Вот что там было:
  • Алена получила 1 лайк от Софьи и 2 лайка от Варвары.
  • Варвара получила по лайку от Алены и Софьи.
  • А Софья получила 2 лайка от Алены и 1 от Варвары.

Царь взял лайки, покрутил гайки, постучал по колесам, пошмыгал носом, причмокнул губами, поскрипел зубами, сгонял в палаты и объявил результаты.

Наибольший вес лайков (7 баллов) получила Софья, но титул «мисс Салтан» достался Алене (15 баллов).

Подробнее о матрице лайков
Для матрицы


вектор потенциалов равен (5, 4, 7), а вектор потоков — (15, 12, 14).

После объявления результатов девицы бросились обратились к царю с просьбой рассказать,- откуда взялись эти странные цифры?
Действительно - откуда?
Всего голосов 67: ↑65 и ↓2 +63
Просмотры 42K
Комментарии 34

О ценности карт в игре «Пьяница»

Математика *
Из песочницы
В последнее время я много играю со своим 5-летним сыном в карточную игру «Пьяница». И он, и я радуемся, когда побеждаем, и огорчаемся, когда проигрываем.

В какой-то момент я задался вопросом: какова «финансовая» ценность каждой из карт в «Пьянице»? Так как Шестерка бьет Туза (см. вариант правил под катом), то система ценностей в «Пьянице» циклична, и ответ неочевиден. Например, ценнее ли Семерка Шестерки? Семерка бьет Шестерку — значит да! Но с другой стороны, каждая из них бьет только одну другую карту в игре (Семерка — Шестерку, а Шестерка — Туза) — значит они равны по ценности? Но Туз, побитый Шестеркой, сам по себе гораздо ценнее чем Шестерка, побитая Семеркой — значит Шестерка ценнее?!

Я решил подвести математическую модель под анализ ценности карт в «Пьянице». Результаты получились самые неожиданные.
Читать дальше →
Всего голосов 41: ↑38 и ↓3 +35
Просмотры 28K
Комментарии 36

[ В закладки ] Алгоритмы и структуры данных в ядре Linux, Chromium и не только

Блог компании Wunder Fund Программирование *Алгоритмы *Разработка под Linux *
Перевод
Многие студенты, впервые сталкиваясь с описанием какой-нибудь хитроумной штуки, вроде алгоритма Кнута – Морриса – Пратта или красно-чёрных деревьев, тут же задаются вопросами: «К чему такие сложности? И это, кроме авторов учебников, кому-нибудь нужно?». Лучший способ доказать пользу алгоритмов – это примеры из жизни. Причём, в идеале – конкретные примеры применения широко известных алгоритмов в современных, повсеместно используемых, программных продуктах.



Посмотрим, что можно обнаружить в коде ядра Linux, браузера Chromium и ещё в некоторых проектах.
Читать дальше →
Всего голосов 158: ↑149 и ↓9 +140
Просмотры 82K
Комментарии 15

Айтишник на отдыхе: добавим немного астрономии?

Космонавтика Астрономия

Стремительно приближается лето и сопутствующие ему выезды на природу. Посиделки затягиваются заполночь, и над головой появляются звезды. Но, как правило, зведное небо таинственно и непонятно — астрономию в школах не преподают толком, наверное, уже с конца 80-х, да и кто помнит, чему его учили в школе, если это не использовалось в жизни постоянно? А в небе хватает интересного, особенно если потратить чуть-чуть времени на астрономическое обеспечение выезда на природу.
Читать дальше →
Всего голосов 107: ↑104 и ↓3 +101
Просмотры 66K
Комментарии 80

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

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

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


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

История шашек (в иллюстрациях)

Разработка игр *
image         — Эволюция? — оживился Главный. — Что-то новенькое?

         — Французская выдумка. Я в этом пробовал разобраться. Если, к примеру, взять дождевого червя и вместо него сразу подсунуть африканского носорога, то все увидят, что их надули. Но если тот же фокус растянуть надолго, то никто и не заметит.

        В этом вся штука: кто видел червяка — все давно повымерли, а кому встретился носорог — тому некогда рассуждать о всяких пустяках.

        Евгений Чемеревский "Вариации на тему черепахи"


Так всегда бывает, когда чем то интересуешься. Чем больше узнаешь, тем больше появляется возможностей узнать что то новенькое. Потом нескончаемый поток этого самого новенького захлестывает тебя с головой, и ты начинаешь тонуть. Но пока это не произошло — жизнь прекрасна.

Я хочу рассказать о том, с чем знакомы почти все. О том, чем мало кто интересуется. О том, о чем никто практически ничего не знает. Я хочу рассказать о Шашках. Не спешите ухмыляться. Если вы думаете, что знаете о Шашках все, ответьте (для себя) на несколько простых вопросов:

  • Какие разновидности Шашек существуют?
  • Чем отличаются Шашки от Шахмат?
  • Что общего у Шашек и «Крестиков-ноликов»?

Эти вопросы кажутся вам глупыми? Это нормально, мне тоже казались… пока я не заинтересовался историей Шашек
Читать дальше →
Всего голосов 82: ↑81 и ↓1 +80
Просмотры 38K
Комментарии 24

Синхронизация в Android приложениях. Часть первая

Блог компании e-Legion Разработка мобильных приложений *Разработка под Android *
Tutorial
image
На дворе 2014 год, доля Android JellyBean перевалила за 60%, появились новые тренды в дизайне. В общем, случилось много всего интересного. Но синхронизация данных с сервером осталось неотъемлемой частью большинства приложений. Существует много способов реализации ее в приложении. Android предоставляет нам SyncAdapter Framework, который позволяет автоматизировать и координировать этот процесс и предоставляет множество плюшек в довесок.

Account


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

Краткое резюме преимуществ:
  • Поддержка фоновых механизмов вроде SyncAdapter
  • Стандартизация способа авторизации
  • Поддержка различных токенов (прав доступа)
  • Шаринг аккаунта с разграничением привилегий (возможность использовать один аккаунт для различных приложений, как это делает Google)

Шаги для получения плюшек:
1) Создание Authenticator'а
2) Создание Activity для логина
3) Создание сервиса для общения с нашим аккаунтом

Читать дальше →
Всего голосов 52: ↑51 и ↓1 +50
Просмотры 60K
Комментарии 12

Лямбда-выражения в Java 8 — Простые примеры того, как они могут облегчить вашу жизнь

Java *
Из песочницы


Вот и состоялся релиз Java 8. Кто-то по-настоящему ждал её и тестировал предрелизную версию, считая недели до марта, для кого-то смена цифры в версии JDK была лишь поводом пару раз поиграть с обновленным языком в домашней IDE без отрыва от работы (ввод языка в production всегда занимает некоторое время), кто-то просто не нуждается в новых фичах, им и возможностей «семерки» хватает с лихвой. Тем не менее, восьмую Java ждать стоило — и не просто ждать, но и внимательно присмотреться к некоторым ее нововведениям, ведь в этой версии их действительно немало, и если ознакомиться с ними поближе, то не исключено, что хорошо знакомый язык предстанет перед вами в совершенно новом свете, порадовав возможностью писать еще более красивый и лаконичный код. И если уж говорить про новые возможности Java 8, было бы странно не начать с лямбда-выражений.
Читать дальше →
Всего голосов 45: ↑39 и ↓6 +33
Просмотры 163K
Комментарии 33

Новое в Java 8

Java *
Перевод
Java еще не умерла — и люди начинают это понимать.

Добро пожаловать в ведение по Java 8. Этот материал шаг за шагом познакомит вас со всеми новыми фичами языка. Вы научитесь использовать методы интерфейсов по умолчанию (default interface methods), лямбда-выражения (lambda expressions), ссылки на методы (method references) и повторяемые аннотации (repeatable annotations). Все это будет сопровождаться короткими и простыми примерами кода. В конце статьи вы познакомитесь с наиболее свежими изменениями в API, касающихся потоков, функциональных интерфейсов, расширений для ассоциативных массивов, а также с изменениями в API работы с датами.
Читать дальше →
Всего голосов 96: ↑95 и ↓1 +94
Просмотры 464K
Комментарии 139

Простой мониторинг нагрузки на сервер в реальном времени с веб-интерфейсом

Ruby *
Сегодня существует довольно много профессиональных инструментов для мониторинга состояния серверов с обилием настроек, плагинов, поддержкой сразу множества машин и т.д., это известные Nagios, Zabbix, Munin, Cacti и многие другие.


Но в этом посте речь пойдет об очень маленьком и простом, но от этого не менее полезном инструменте: инструменте для мониторинга Scout Realtime. Этот написанный на Ruby open source проект позиционируется разработчиками как современная замена консольной утилите top с выводом статистики использования диска, памяти, сети, CPU и запущенных процессов. Все это отображается в реальном времени с плавными графиками. Во время диагностики работы сервера, иногда полезно пару минут понаблюдать за показателями, и проследить их изменение во времени (в отличие от гирлянды мерцающих чисел в терминале, отображающих данные исключительно на текущий момент).
Читать дальше →
Всего голосов 42: ↑38 и ↓4 +34
Просмотры 77K
Комментарии 34

Обновлены средства разработки под android, поддержка java 7

Разработка под Android *
Сегодня Google обновил инструменты разработки для eclipse под платформу Android.
Одно из ключевых изменений — поддержка java 7.
Читать дальше →
Всего голосов 34: ↑31 и ↓3 +28
Просмотры 23K
Комментарии 12

Подсветка кода на android. Мой опыт

Java *Разработка под Android *
Tutorial

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

Кода будет немного, только основные моменты.

Для начала хочу привести небольшой список фактов для того, чтобы ввести читателя в курс дела:

  • Несмотря на N ядер (каждое с огромной частотой), современный смартфоны все еще очень сильно уступают в производительности даже недорогим, но большим компьютерам.
  • Каждое приложении в андроиде имеет строго ограниченный размер выделяемой памяти. И он не велик.
  • Метод setSpan работает медленно.
  • Чем больше работы вы вынесете в Worker'ы, тем отзывчивее будет ваше приложение.
  • Держать подсвеченным весь текст не получится — только видимую его часть.
  • Довольно очевидно, но все же: поиск места размещения спана в UI потоке делать не получится.


Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Просмотры 16K
Комментарии 14

Еще раз об архитектуре Android приложения или джентльменский набор библиотек

Разработка веб-сайтов *Разработка под Android *
Вот надумал написать обзор библиотек с помощью которых легко и удобно писать приложения под Android.
Список вырисовывается такой:

Если заинтересованны прошу под кат.
Читать дальше →
Всего голосов 69: ↑62 и ↓7 +55
Просмотры 56K
Комментарии 83

ActionBar на Android 2.1+ с помощью SupportLibrary

Разработка под Android *
Tutorial
Здравствуй, Хабрахабр!

Недавно я писал о том, что Google добавил поддержку ActionBar в свою Support Library. Думаю, стоит рассказать, как же им пользоваться. Под катом — инструкция по правильному импорту библиотеки в свой проект и основные моменты использования SupportActionBar.
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Просмотры 43K
Комментарии 16

Re: Собеседование разработчика (альтернатива/дополнение)

Разработка веб-сайтов *Разработка под Android *
Из песочницы
Не мог пройти мимо топика "Вопросы на собеседование middle/senior iOS Developer" и статьи "Собеседование разработчика". Хочу предложить альтернативный или дополнительный подход к собеседованию разработчиков.

Разбор говнокода или сотня разношерстных вопросов на листочке — это, конечно, прекрасно, но если это единственный этап собеседования, то это вызывает желание спросить что-то вроде: «Вы серьезно?»

Вы не устали от того, что на собеседованиях на конкретную позицию разработчика вас спрашивают достаточно сильно оторванную от жизни фигню, которую хочется поскорее забыть после такого собеседования (режим nightmare — это тест на 150+ вопросов и психолог в конце)? Я не отрицаю, что оценивать качество кода — это очень важно, но оценивать качество какого-то конкретного куска и делать по нему большие выводы — это точно неправильно.

К тому же, слишком много так называемых разработчиков не имеют никакого понятия о том, как строить архитектуру приложения, как грамотно разделить компоненты на модули, как внести гибкость для последующих изменений проекта. А вопросы подобные вопросам из топика "Вопросы на собеседование middle/senior iOS Developer" не дадут вам понять, насколько человек хорошо применяет свои знания при реализации проекта.

Что ты предлагаешь, чувак?

Давайте рассмотрим на примере android разработчика (адаптировать можно для любой области, но вы же понимаете, что без конкретики эту статью просто раскритиковали бы, так что поговорим об android).

Что я предлагаю: берем популярное, большое (в плане функционала) и сложное (в плане реализации) приложение и беседуем насчет того, как кандидат бы его сделал!

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

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

Для примера, возьмем приложение Вконтакте для android (оно большое, сложное и многим знакомое).
Читать дальше →
Всего голосов 65: ↑55 и ↓10 +45
Просмотры 57K
Комментарии 35

Реально ли заработать на мобильном приложении по просмотру рекламы за деньги?

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

Уже несколько лет AppNana (AppJoy) находится на волне популярности, ведь они дают возможность бесплатно, без смс, скачивать платные приложения из магазинов приложения для iOS и Android. В чем подвох, спросите вы? Где спрятаны подводные камни? Всё очень просто: вы тратите своё время на просмотр рекламы, установку левых, не подписанных приложения по прямым ссылкам, а также делитесь своей личной информацией с пол-дюжиной рекламных агрегаторов для мобильных телефонов, передавая им всю информацию к которой имеет доступ AppNana (включая личный email).
Читать дальше →
Всего голосов 34: ↑23 и ↓11 +12
Просмотры 65K
Комментарии 7

Легализация дохода фрилансера в Украине. Часть 1: государственная регистрация бизнеса

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

Я работаю предпринимателем — фрилансером с 2007 года и успел накопить значительный опыт получения денег из-за рубежа как через онлайн-биржи вроде oDesk и Elance, так и работая с заказчиками напрямую. В свое время я был инициатором некоторых изменений на oDesk, помогающих упростить легальное получение денег на свой предпринимательский счет. Сегодня я руковожу разработкой в нашем украинском стартапе Taxer.ua, от чего опыта во взаимодействии с государством накопилось еще больше.

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

  1. Государственная регистрация предпринимателя: выбор системы налогообложения, подача заявления.
  2. Составление ВЭД договора, получение денег от клиентов: биржи oDesk, Elance и напрямую.
  3. Ведение ВЭД бухгалтерии: акты, счета, книга доходов и курсовая разница.
  4. Уплата налогов и отправка отчетности в контролирующие органы: сдавать ли валютную декларацию.

Читать дальше →
Всего голосов 91: ↑81 и ↓10 +71
Просмотры 51K
Комментарии 74

Информация

В рейтинге
Не участвует
Откуда
Украина
Зарегистрирован
Активность