Pull to refresh
32
0
Василий Кравчук @VasKravchuk

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

Send message

Консенсус в распределенных системах. Paxos

Reading time 7 min
Views 39K
В последнее время в научных публикациях всё чаще упоминается алгоритм достижения консенсуса в распределенных системах под названием Paxos. Среди таких публикаций ряд работ сотрудников Google (Chubby, Megastore, Spanner) ранее уже частично освещенных на хабре, архитектуры систем WANdisco, Ceph и пр. В то же время, сам алгоритм Paxos считается сложным для понимания, хоть и основывается он на элементарных принципах.

В этой статье я постараюсь исправить эту ситуацию и рассказать об этом алгоритме понятным языком, как когда-то это попытался сделать автор алгоритма Лесли Лэмпорт.
читать далее
Total votes 29: ↑28 and ↓1 +27
Comments 7

Многопоточная Core Data

Reading time 4 min
Views 25K
Как известно, Core Data является мощным Apple фреймворком для управления объектным графом. На Хабре немало статей о Core Data, тем не менее, многопоточность освещена достаточно слабо, а, как мне кажется, вопросом о том как правильно ее реализовать, задавался почти каждый.
Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Comments 13

«Галоп пикселя — часть третья» — Анимация

Reading time 32 min
Views 74K


«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)

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

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

Не смотря на то, что вторая часть цикла о пиксель-арте собрала куда меньше положительных отзывов и согласно статистике пользовалась меньшим успехом на Хабре — мы продолжим копать пиксель-арт так, чтобы исследованные нами территории перестали быть белыми пятнами, чтобы мы могли, наконец, воздвигнуть здесь надежный укрепрайон. Популярность вещь приходящая и уходящая. Было бы смешно руководствоваться исключительно ею. Тем более что есть люди, которые настояли на скорейшем выпуске этой части цикла. Я ещё коснусь этой темы в конце публикации.

Лопаты в руки.


Лопатить пиксели
Total votes 103: ↑99 and ↓4 +95
Comments 21

Почему я так сильно люблю EF, или Фичи, от которых сложно отказаться

Reading time 4 min
Views 10K
Недавно мы опубликовали статью, написанную по результатам посещения конференции DEVIntersection. Предлагаем вашему вниманию ещё одну полезную «выжимку», посвящённую Entity Framework (EF).
Читать дальше →
Total votes 16: ↑14 and ↓2 +12
Comments 0

Objective-C вопросы на уровень middle/senior

Reading time 4 min
Views 60K
Что должен знать objc разработчик на уровень middle/senior?
К сожалению, четкой черты на вертикальное развитие нет. Парадокс, но чтобы знать что изучить, нужно знать что ты не знаешь.
Я постарался вспомнить самые интересные вопросы, которые мне задавали самому на различных собеседованиях, а так же расширил их множеством вопросов(тем же уровнем) от себя.
Здесь нет общих вопросов вроде: IoC, design patterns, S.O.L.I.D. и т.п.

ВНИМАНИЕ!!!
Помимо вертикального развития немаловажно и горизонтальное

ВНИМАНИЕ!!! (2)
Не пишите в комментарии ответы на вопросы, это дает возможность людям самостоятельно разобраться.
Однако, если у вас имеются интересные вопросы по теме, я с радостью добавлю их в список.

Конечно, это не заменит живого общения, однако позволит неплохо подготовиться к собеседованиям.


Начинаем


Читать дальше →
Total votes 30: ↑23 and ↓7 +16
Comments 25

Создание приложения ToDo с помощью Realm и Swift

Reading time 17 min
Views 63K
С развитием смартфонов в последние годы было разработано много инструментов, чтобы упростить жизнь разработчикам, обеспечив их максимальной производительностью и качеством. Занимать лидирующие позиций в App Store сегодня не простое задание. А научить ваше приложение масштабироваться еще сложнее. Когда приложением пользуются миллионы пользователей, вы должны следить за приложением и при необходимости выполнять все операции моментально. Поэтому одной из проблем, с которой сталкиваются многие разработчики, является Database. Она действительно вызывает сильную головную боль для каждого из нас, и я думаю, что сегодня у вас есть только два варианта: SQLite и Core Data. Я был большим поклонником Core Data и его способностью работать с записями и сохраняющимися данными, но я понял, что впустую трачу много времени, работая с ним при разработке приложений. Недавно, я столкнулся с Realm, новой лучшей заменой SQLite и Core Data.

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

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

Reading time 7 min
Views 782K
Логотип OAuth 2.0

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

Что такое OAuth 2.0


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

Читать дальше →
Total votes 168: ↑153 and ↓15 +138
Comments 44

Как пользоваться утилитой Instruments в Xcode

Reading time 16 min
Views 62K

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

Помимо улучшения вашего приложения путем добавления в него всяких «завитушек», есть одна вещь, которую все хорошие разработчики должны сделать со своим кодом – обработать его утилитой Instruments!

Это руководство покажет вам, как использовать наиболее важные особенности утилиты под названием Instruments, которая поставляется вместе с Xcode. Она позволит вам проверить свой программный код на наличие проблем с производительностью, утечкой памяти и других проблем.
Читать дальше →
Total votes 45: ↑40 and ↓5 +35
Comments 15

Objective-C что такое на самом деле метод и self? + runtime

Reading time 8 min
Views 23K
Как self и _cmd оказываются в методе? Как работает dispatch table и категории? Что такое мета-класс? Сколько на самом деле методов у ваших классов в ARC и в MRC? Как работает swizzling?
Интересно? Добро пожаловать под кат!

ВНИМАНИЕ!

Эта статья не рассчитана на начинающих разработчиков… Приношу свои извинения за то, что не рассматриваю многие моменты, которые должен знать Objective-C разработчик.


Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 4

Новый профилировщик памяти в Visual Studio 2015

Reading time 3 min
Views 29K
Долгие годы С++ программисты, пишущие под Linux язвительно пеняли разработчикам на С++ под Windows отсутствием в Visual Studio нормального профилировщика памяти. Вот в Линуксе, дескать, есть Valgrind, который решает все проблемы, а в студии что: расставляй какие-то макросы, анализируй какие-то логи — мрак. Клевета! Хотя и правда. Вернее, это было правдой до выхода Visual Studio 2015, в которой наконец-то (ура 3 раза!) присутствует нормальный профилировщик памяти, позволяющий ловить утечки памяти с закрытыми глазами, одной левой и даже не просыпаясь!

В этой статье мы посмотрим, что он умеет и как им пользоваться.


Читать дальше →
Total votes 49: ↑43 and ↓6 +37
Comments 13

Записки iOS программиста о его молотках, кувалдах и микрометрах

Reading time 20 min
Views 32K
В один прекрасный момент, когда на собеседованиях меня уже убеждали, что я senior iOS developer — у меня возникло ощущение, что я уперся. Пишу похожий код, решаю задачи похожими способами и ощущение, что непонятно, куда развиваться дальше. Я думаю, с этой проблемой сталкивался не один я — нехваткой новых идей, концепций, направлений. Я бы хотел рассказать вам о тех инструментах и фреймворках, которые помогли преодолеть мне это ощущение.

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


Читать дальше →
Total votes 27: ↑26 and ↓1 +25
Comments 13

Создание скелетной анимации в Spriter

Reading time 3 min
Views 39K


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

Сегодня мы поработаем в редакторе скелетной анимации Spriter. На готовом примере рассмотрим достоинства этого вида анимации, отличия от классической спрайтовой и расскажем про перспективы ее использования в HTML5-играх.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 8

Проектирование новостной ленты в социальных сетях

Reading time 9 min
Views 38K


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

Мой рассказ будет о том, как я, превозмогая трудности, решал задачу формирования новостной ленты. А также я расскажу о подходах, которые наработали ребята из проекта Socialite, и которыми они поделились на MongoDB World.
Читать дальше →
Total votes 38: ↑34 and ↓4 +30
Comments 68

Раннер под iOS с пятью персонажами

Reading time 4 min
Views 10K
Привет, хабр!

Так случилось, что я довольно давно занимаюсь разработкой под iOS, но вот незадача — никогда не писал игры. После змейки в 13 лет под IBM 386 наступил перерыв до 2014 года, когда я набрался сил воплотить теплую ламповую мечту в реальность. Что из этого получилось? Графика сводилась так:



А геймплей хотелось сделать похожим на это:


Если интересно, прошу под кат! (много картинок!)
Читать дальше →
Total votes 73: ↑61 and ↓12 +49
Comments 22

Алгоритмы устранения ложных и избыточных данных в GPS-потоке

Reading time 6 min
Views 30K


Разработка электроники на базе GPS/ГЛОНАСС-технологий — одна из наших любимых тем на Хабре. Мы уже писали обзорную статью на эту тему, рассказывали про систему «ЭРА-ГЛОНАСС» и даже определяли своё местоположение по сетям сотовой связи.

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

Для начала давайте посмотрим, что представляет собой тракт подготовки и сбора информации на терминалах перед отправкой данных на сервер.
Читать дальше →
Total votes 38: ↑34 and ↓4 +30
Comments 24

Развиваем кругозор и погружаемся в робототехнику вместе

Reading time 6 min
Views 17K
image

Электроника — это очень интересно. Крайне приятное ощущение, когда ты вскрываешь какой-то электронный прибор, видишь что-то знакомое: «Вот диод, а вот транзистор!», когда вместо того, чтобы нести материнскую плату в ремонт, ты можешь сам поменять на ней конденсатор за пару минут. Однако, многие боятся ее, представляя огромные монтажные схемы со странными закорючками и непонятный ассемблерный код. Я же хочу показать всем, что начать заниматься электроникой, а в частности робототехникой, это несложно! Простого робота можно изготовить всего за пару часов.
Читать дальше →
Total votes 151: ↑141 and ↓10 +131
Comments 99

Нано-эппл, или как стать производителем электроники

Reading time 5 min
Views 4.2K
Итак, вы решили сделать что-то вот эдакое! Новый MP3-плеер, пульт управления для телевизора, да хоть датчик температуры. В моем случае это был пульт управления фотоаппаратами, и идея пришла в час ночи, когда я ради развлечения фотографировал стройку при свете луны. Началось это все в сравнительно небольшом сибирском городе… а сейчас у нас производство в Техасе и дистрибьюторы по всему миру. Вспоминая этот веселый путь, хотелось бы описать как удачные находки, так и ошибки, допущенные в процессе подготовки к производству.
Читать дальше →
Total votes 119: ↑114 and ↓5 +109
Comments 88

На пороге дополненной реальности: к чему готовиться разработчикам (часть 3 из 3)

Reading time 10 min
Views 13K

Третья и заключительная часть стенограммы-трилогии (см. часть 1 и часть 2) доклада про Дополненную Реальность.

Речь пойдет об обработке изображений в применении к дополненной реальности:
  • детектирование маркеров и меток;
  • многокамерные системы маркерного захвата движений;
  • структурированная подсветка;
  • Z-сенсоры (в частности, Kinect);
  • использование баз данных поз;
  • чисто оптические системы захвата движений.

И на закуску — субъективный взгляд на будущее дополненной реальности, который прояснит смысл картинки с собакой.
Читать дальше →
Total votes 53: ↑47 and ↓6 +41
Comments 11

На пороге дополненной реальности: к чему готовиться разработчикам (часть 2 из 3)

Reading time 9 min
Views 82K

Это продолжение (см. часть 1) стенограммы одноименного доклада с конференции ADD-2010.

В этой части речь пойдет о том, как обрабатывать данные с сенсоров, а именно: акселерометров, гироскопов и магнитных компасов. И зачем в современных устройствах ставят все три вида датчиков.
Читать дальше →
Total votes 64: ↑62 and ↓2 +60
Comments 15

Тематические карты

Reading time 3 min
Views 29K

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

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

По сути, интеграция с картографическими сервисами приводит к созданию тематической карты. О том, что это такое и о наиболее популярных способах построения тематических карт будет рассказано ниже. Так же в тексте приведены англоязычные термины, с помощью которых можно будет найти дополнительную информацию.
Читать дальше →
Total votes 26: ↑26 and ↓0 +26
Comments 25

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity