Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 5023 сообщений
Cообщения с меткой

разработки - Самое интересное в блогах

Следующие 30  »
Agoll

Беспредел, творимый Израильтянами, совершён в университете имени Бен-Гуриона!

Четверг, 14 Июля 2016 г. 23:02 (ссылка)


Help



АВТОР: MICHAEL LOYMAN



Исследователи израильского университета имени Бен-Гуриона создали топливо, которое заменит нефть.



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



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



Ещё одной целью было получить новое универсальное топливо и как можно более дешёвое.



Читать далее...
Метки:   Комментарии (1)КомментироватьВ цитатник или сообщество
Пусть_буду_-_Я

✿ღ✿Новости Израиля. В Израиле разработали шлем для лечения Альцгеймера✿ღ✿

Понедельник, 11 Июля 2016 г. 15:50 (ссылка)

Это цитата сообщения ЕЖИЧКА Оригинальное сообщение

✿ღ✿Новости Израиля. В Израиле разработали шлем для лечения Альцгеймера✿ღ✿

100716_213317_66990_2 (700x466, 244Kb)
Компания Neuronix разработала методику лечения болезни Альцгеймера на основе когнитивных упражнений с использованием компьютерной игры и стимуляцией мозга с помощью магнитного шлема. Представители компании сообщили о хороших результатах во время тестирования нового изобретения.

4248238_59 (141x95, 29Kb)
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
m65v

Единственный в своем роде: «Афганит» впечатлил США сильнее «Арматы» » Новости со всего мира

Воскресенье, 03 Июля 2016 г. 13:26 (ссылка)
mirnews.su/v-rossii/3394-ed...rmaty.html


Эксперты авторитетного американского журнала The National Interest назвали российский комплекс активной защиты (КАЗ) «Афганит» самой впечатляющей особенностью «Арматы». По информации Минобороны РФ,

Комментарии (0)КомментироватьВ цитатник или сообщество
NetFact

JavaScript для профессионалов. 2-е издание (2016) PDF + code » NetFact.Ru: Скачать бесплатно – Популярная Интернет Библиотека

Пятница, 01 Июля 2016 г. 12:43 (ссылка)
netfact.ru/computer/2974-ja...-code.html


JavaScript для профессионалов. 2-е издание (2016) PDF + code




Эта книга является незаменимым пособием для профессиональных разработчиков современных веб-приложений на javascript. Читатель найдет в ней все, что требуется знать о современном состоянии языка javascript, его достоинствах и недостатках, новых языковых средствах, внедренных в последних версиях стандарта ECMAScript, передовых приемах отладки и тестирования кода, а также инструментальных средствах разработки.



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



В этой книге вам предстоит ознакомиться с ключевым словом this и новыми типами объектов. В ней поясняется, как создавать повторно используемый код посредством инкапсуляции, перегрузки и наследования. В книге обстоятельно рассматриваются современные приемы отладки и тестирования кода, а также инструментальные средства разработки вроде Jasmine, PhantomJS и Protractor. Настоящее издание книги завершается главами, посвященными построению одностраничных веб-приложений, господствующих в современной веб-разработке.



Название: javascript для профессионалов

Жанр: программирование

Автор: Джон Резиг, Расс Фергюсон, Джон Пакстон

Год издания: 2016

Издательство: Вильямс

Формат: pdf + code

Язык: русский

Количество страниц: 242

Размер: 100,54 Мб



Скачать: javascript для профессионалов. 2-е издание (2016) PDF + code



Скачать | Download | TurboBit.net

http://turbobit.net/jbhus26q4bmi.html



Скачать | Download | HitFile.net

http://www.hitfile.net/qB1EFwm



Скачать | Download | Файлообменник.рф

http://файлообменник.рф/6vuxy1s05afn.html



Скачать | Download | BornCash.org

http://borncash.org/load/1734001061



Скачать | Download | StartFiles.org

http://startfiles.org/load/1734001061



Скачать | Download | GoldFiles.org

http://goldfiles.org/load/1734001061



Скачать | Download | DataFile.com

http://www.datafile.com/d/TVRZeE5UTXlNRFEF9

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Охлаждение ЦОД: советы от Bluon Energy, Emerson, Star Refrigeration, Asetek и CoolIT Systems

Среда, 29 Июня 2016 г. 19:23 (ссылка)

Технологический процесс стремительно развивается, создаются новые технологии и усовершенствуются разработки. Тем ни менее для большинства операторов и владельцев ЦОД до сих пор остается актуальной проблема выбора наиболее подходящей системы охлаждения дата-центров. На оптимизацию температурного режима серверов расходуется слишком много электричества (вплоть до 40-50 процентов от общего энергопотребления ЦОД). В то же время немалых денег стоит и повышение эффективность систем охлаждения серверных ферм. И поэтому компании постоянно бьются над решением данной задачи. Системы и стратегии охлаждения также с каждым разом совершенствуются. Это происходит как благодаря состоятельным владельцам дата-центров, вроде корпорации Microsoft (инженеры компании подумывают о том, чтобы разместить автономный дата-центр на дне Тихого океана), так и благодаря отдельным вендорам, которые тратят часть своей прибыли на исследования и разработки данной отрасли. С общими усилиями рынок систем охлаждения ЦОД движется вперед.



Ниже описаны рекомендации и новости по-поводу охлаждения дата-центров от компаний: Bluon Energy, Emerson, Star Refrigeration, Asetek и CoolIT Systems.







Продукт Bluon Energy — новая зеотропная смесь хладагентов ASHRAE



Специалисты компании по производству хладагентов Bluon Energy разработали зеотропную многофазную смесь хладагентов TdX 20 (название по каталогу ASHRAE – R-458A). Данный продукт проходит сертификацию американской ассоциацией инженеров по отоплению, охлаждению и кондиционированию воздуха (American Society of Heating, Refrigerating and Air-Conditioning Engineers; ASHRAE). Смесь призвана заменить фреон R-22. Над ее созданием в течении шести лет трудилось множество сотрудников компании. А также в разработке принимали участие некоторые постоянные клиенты вендоры Bluon Energy.



Смесь предварительно относится к классу безопасности A1, но окончательное утверждение и присвоение классификации ASHRAE ожидается к середине лета 2016 года.







Продукт Bluon Energy предназначен для замены R-22 без внесения каких-либо изменений или модификации в теплохладотехнику. Все что понадобится — это лишь провести незначительную настройку оборудования.



Хладагент TdX 20 способен повысить эффективность существующих холодильных систем за счет снижения нагрузки на компрессор. Он позволяет снизить потребление электроэнергии вплоть до 25 процентов. Помимо этого он является хладагентом с низким потенциалом глобального потепления (ПГП), тем самым существенно снижая выбросы углекислого газа.



Emerson: плюсы охладительных решений на базе CO2



Американская компания Emerson Climate Technologies занимается разработкой новых технологических решений в области энергетических сетей, управления процессами, промышленной автоматики, климатических технологий, а также приборостроения. Специалисты компании собираются запустить веб-инструмент для информирования операторов дата-центров и других заинтересованных сторон о преимуществах хладагентов на базе CO2 и соответствующего климатического оборудования.







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



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



Чиллер EcoDesign от компании Star Refrigeration



Британская компания Star Refrigeration продемонстрировала аммиачный чиллер Azanechiller 2.0, совместимый со стандартом EcoDesign. По словам инженеров компании, КПД разработки на 71 процентов выше значения, прописанного в директиве ЕС по стандарту минимальной энергетической эффективности (MEPS).







Проведенные специалистами расчеты показывают, что использование Azanechiller 2.0 позволит сократить эксплуатационные расходы на lb 13 000 по сравнению с другими аммиачными чиллерами. Кроме того удастся добиться сокращения углеродного следа на 1204 тонн СО2 в течение 20 лет. Если же сравнивать новинку с чиллерами на базе R22, то годовая экономия на эксплуатационных расходах будет находиться в районе lb 30 000.



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



Новая система жидкостного охлаждения на ISC16 от Asetek



Датский производитель систем жидкостного охлаждения для ЦОД Asetek представил новый продукт на Международной конференции по суперкомпьютерам (ISC16) во Франкфурте, Германия.



В основе разработки лежит платформа СЖО RackCDU D2C. Данная система жидкостного охлаждения предназначается для оптимизации температурного режима графического ускорителя NVIDIA Tesla GPU P100 (Pascal). Он создавался в качестве дополнения для платформы NVIDIA Tesla Accelerated Computing Platform и используется при создании высокомощных суперкомпьютеров.







С помощью новой системы жидкостного охлаждения Asetek для Tesla P100, создатели суперкомпьютеров и операторы дата-центров могут добиться повышения плотности размещения комплектующих внутри серверов и вычислительных узлов при одновременном существенном сокращении затрат на охлаждение.



Модуль теплообмена Rack DCLC CHx80 на ISC16 от CoolIT Systems



На Международной конференции по суперкомпьютерам во Франкфурте также отметилась и канадская компания CoolIT Systems. Она специализируется на проектировании и изготовлении энергоэффективных систем жидкостного охлаждения серверов. Представители CoolIT Systems продемонстрировали участникам конференции новый модуль теплообмена Rack DCLC CHx80 Heat Exchange Module. Это решение поддерживает стойки с тепловой нагрузкой со стороны IT-оборудования на уровне до 80кВт и занимает при этом внутристоечное пространство высотой всего в 4U.



Конструкция устройства сделана таким образом, что позволяет осуществлять рекуперацию тепловой энергии для обогрева окружающих зданий или организации горячего водоснабжения. Теплообменник обеспечивает повышенную холодопроизводительность при достижении надежности на уровне N + 1. Как утверждают представители компании, с его помощью можно обслуживать до 120 микросерверов одновременно. И что важно, в качестве рабочего тела может использоваться теплая вода (температурой до +45 ° С). Благодаря этому повышается энергоэффективность.







Управлять модулем CHx80 можно локально с помощью встроенного 4.3-дюймового ЖК-экрана или же через удаленный терминал с поддержкой распространенных сетевых протоколов.



CoolIT Systems также продемонстрировала активные (EP2) и пассивные (RP2) охлаждаемые пластины, предназначенные специально для сопроцессоров следующего поколения Intel Xeon Phi Knights Landing. Помимо этого были показаны серверные СЖО, совместимые с продуктами нескольких крупных производителей, включая Dell (Dell PowerEdge C6320), Hewlett Packard Enterprise (суперкомпьютер Apollo r2000), Huawei, Lenovo, NEC (Blue Marlin) и Supermicro (Intel Ninja Developer Platform from Supermicro).
Original source: habrahabr.ru.

https://habrahabr.ru/post/304412/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Комментарии (0)КомментироватьВ цитатник или сообщество
ivapet

Может ли космос стать полем боя?

Пятница, 24 Июня 2016 г. 16:49 (ссылка)
infopolk.ru/1/U/events/7926...9efd14bb02


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

Комментарии (0)КомментироватьВ цитатник или сообщество
anob

Поле боя ХХI века. Новые российские разработки

Четверг, 23 Июня 2016 г. 08:04 (ссылка)
infopolk.ru/1/U/army/79140-...5c6ab90332


Пока это экспериментальные образцы, разработку которых финансирует Фонд перспективных исследований (ФПИ)
...

Комментарии (0)КомментироватьВ цитатник или сообщество
OLIVA4KA

Концепт грузовика Audi

Среда, 22 Июня 2016 г. 22:36 (ссылка)


Дуэт дизайнера и 3D-моделлера, в лице Артема Смирнова и Владимира Панченко, решил пофантазировать на тему, каким мог бы быть грузовик от известного немецкого автопроизводителя. Конечно, если бы в Audi решились начать выпуск грузовых авто.


Концепт грузовика Audi



 



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



Концепт грузовика Audi




Без-имени-1 (87x72, 4Kb)
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Цивилизация_21_век

ПМЭФ201: большой нефтегазовый день начался с фразы министра Новака

Суббота, 18 Июня 2016 г. 19:31 (ссылка)
ekogradmoscow.ru/tsivilizat...tra-novaka


ПМЭФ201: Министр Новак обещает использовать не только современные технологии в ТЭКе, но и разработки российских производителей. Фразу Александра Новака эксперты «ЭкоГрада» называют либо оговоркой по



ПМЭФ201: большой нефтегазовый день начался с фразы министра Новака




  • Печать

  •  

  • E-mail



 


ПМЭФ201: Министр Новак обещает использовать не только современные технологии в ТЭКе, но и разработки российских производителей. Фразу Александра Новака эксперты «ЭкоГрада» называют либо оговоркой по Фрейду, либо примером шутки от великих людей. Так же министр сказал несколько слов про возобновляемые источники энергии. К бою с конкурентами готовы



 








Подробности


Категория: Цивилизация век XXI


Опубликовано 18.06.2016 19:29


Просмотров: 0

Комментарии (0)КомментироватьВ цитатник или сообщество
anob

Большие калибры: пробьет ли новейшая немецкая пушка «Армату» Политикус InfoPolk.ru

Четверг, 16 Июня 2016 г. 10:10 (ссылка)
infopolk.ru/1/U/articles/78...5c6ab90332

Большие калибры: пробьет ли новейшая немецкая пушка «Армату»


Внимание к новейшей российской бронетехнике беспрецедентное ...

Комментарии (0)КомментироватьВ цитатник или сообщество
АльтэрЭго

Пётр Горяев о технологиях продления жизни

Понедельник, 13 Июня 2016 г. 20:35 (ссылка)


 




Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
TourDnepr

Разработки, которые делают мир лучше

Пятница, 10 Июня 2016 г. 20:26 (ссылка)
tourdnepr.com/content/view/15203/15130/


Разработки, которые делают мир лучше

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
casinozru

Слоты нового поколения покорят вас

Понедельник, 30 Мая 2016 г. 23:42 (ссылка)


screenshot-10 (551x310, 276Kb)



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



 



Игровой автомат + аркадная игра



Например, одна из новинок предполагает объединение в одной игре функций обычного игрового автомата и некоторых элементов аркад, что привнесет свежую струю в игровой процесс. Есть правда, небольшая заминка, игорное законодательство «раскачивается» гораздо дольше, чем новые технологии, и для того, чтобы игроки смогли наслаждаться игрой на обновленных слотах, им придется подождать, когда будут изменены и правила игры на автоматах. Массачусетский регулятор старается не отставать от веяния времени и необходимые требования уже обновил.



Читать далее...
Метки:   Комментарии (2)КомментироватьВ цитатник или сообщество
vsemmoney

Продам форекс интернет-бизнес! доход от 5000$ в месяц! - Купля/продажа и услуги - Форум о заработке в интернете и инвестициях

Воскресенье, 29 Мая 2016 г. 17:57 (ссылка)
vsemmoney.ru/topic/3515-pro...000-v-mes/


Продам форекс интернет-бизнес! доход от 5000$ в месяц! - отправлено в Купля/продажа и услуги:

Продам форекс интернет-бизнес! доход от 5000$ в месяц!



Тематика бизнеса: продукты для рынка форекс: торговые роботы! торговые системы!индика...

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Из песочницы] «Подсмотрено» — путь от идеи для VK Mobile Challenge до реального продукта

Четверг, 21 Апреля 2016 г. 21:17 (ссылка)

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









Меня зовут Алексей, я расскажу вам о нашем опыте участия в конкурсе ВК по разработке мобильных приложений для платформ Android, iOS и Windows Phone. Думаю, моя статья поможет новичкам трезво оценивать свои силы и знать, что их ожидает.



Условия конкурса, если интересно, здесь, и пара слов о нашем продукте. На конкурс мы решили выйти с проектом «Подсмотрено – город на ладони». У нас было около 50 пабликов «Подсмотрено» в разных городах, но нам хотелось создать что-то, объединяющее все городские новости в одном месте. И мы принялись за работу. Нужно было сделать функциональное мобильное приложение, в котором все события и новости города (агрегирующиеся из Вконтакте) были бы максимально доступны каждому пользователю.



За основной показатель успеха приложения «Подсмотрено» мы взяли реакцию пользователей (Retention) и понимание того, будет ли продукт формировать новую привычку людей пользоваться приложением.



На данный момент:




  • Retention 1 дня на уровне 30% (не много, хорошая практика 50%),

  • Retention 3 дня – 18%

  • Retention 7 дня – 15%



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

За эти три месяца, что мы «пилили» проект, естественно, возникали разные сложности. Наши разработчики поделятся с вами полученным опытом решения проблем.



Кейс от iOS разработчика



«Сложностей в работе над «Подсмотрено» возникало достаточно. Вот одна из них. Передо мной была поставлена задача засунуть вертикально скролящийся контент в категории, которые можно переключать скроллом. Не свайпом, а именно скроллом. Сначала было решено использовать UIPageViewController. Внутреннее чутье меня не подвело, через некоторое время появились подвисания при горизонтальной прокрутке. Пришлось переделать на UICollectionView, ячейками которой являются UIScrollView с контентом. Таким образом я добился плавного переключения между категориями, но вертикальный скролл не подавал признаков жизни. Пришлось переписать обработку касаний, чтобы жесты передавались дальше по иерархии.



- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
if (!_isHorizontalScroll && !_isMultitouch) {
CGPoint point = [[touches anyObject] locationInView:self];
if (fabs(_originalPoint.x - point.x) > kThresholdX && fabs(_originalPoint.y - point.y) < kThresholdY) {
_isHorizontalScroll = YES;
[_currentChild touchesCancelled:[event touchesForView:self] withEvent:event];
}
}
if (_isHorizontalScroll){
[super touchesMoved:touches withEvent:event];
}else{
[_currentChild touchesMoved:touches withEvent:event];
}
}






Кейс от Android-разработчика



При выборе архитектуры приложения я остановился на Clean Architecture (https://github.com/android10/Android-CleanArchitecture). Данная архитектура построена на принципах, сформулированных Бобом Мартином. Нет смысла описывать саму архитектуру и преимущества, получаемые при её использовании, на эту тему написано много отличный статей (например: «Архитектура Android-приложений… Правильный путь?», и "Чистая архитектура"), но для понимания того, о чем пойдет речь далее, советую ознакомиться с ними. Сразу перейду к проблеме, возникшей при разработке нашего приложения.



“Подсмотрено — город на ладони” — своего рода площадка для просмотра актуальной информации о конкретном городе. Для того чтобы избавить пользователей от ручного поиска по большому списку городов, нам необходимо определять текущее местоположение пользователя. Сначала я работал по старинке: использовал системный LocationManager, из него получал список провайдеров, а из них определённую локацию. Стандартный способ решения проблемы, думаю, каждый знаком с ним. Всё работало отлично. Но было несколько проблем.



1. В Android API >=23 ввели Runtime Permossions. Это значит, что на девайсах с Android 6.0 нужно в рантайме запрашивать некоторые разрешения, в нашем случае на определение координат. У нас определение текущей локации производится сразу — на первом экране. Мы посчитали, что такой запрос может отпугнуть часть пользователей.



2. LocationManager лежал в слое presentation, что очень сильно противоречит принципам, заложенным в Clean Architecture.



Для решения первой проблемы я прибегнул к сервису от Яндекса: Локатор (https://tech.yandex.ru/locator/). С помощью данного сервиса можно определить текущее местоположение по ближайшим точкам доступа Wi-Fi и мобильным сотам, без использования GPS. Таким образом, мы избавимся от назойливого диалога. Но данный сервис, по различным причинам не всегда выдаёт правильный результат. На сайте самого сервиса написано:



> В некоторых случаях Яндекс.Локатор сообщает о точности 100000 метров, которая означает, что достоверно определить местоположение не удалось. Это происходит, если местоположение определяется не по IP-адресу мобильного устройства, а по IP-адресу какого-либо публичного сервера или прокси-сервера.



В этом случае полагаться на полученный результат мы не можем. Выходит, нам необходимо вернуться обратно к LocationManager. Таким образом алгоритм следующий: Сделали запрос к Яндекс локатору, если он ничего не вернул, либо у точность определённой локации >= 100000 метров, запрашиваем у системного LocationManagerа.



Перейду к решению второй проблемы: вынесем ответственность за выдачу текущей координаты в слой data, так как он отвечает за управление данными в приложении.



Но сначала перейдём в слой domain. Я создал интерфейс LocationService:



public interface LocationService {
Observable getCurrentLocation();
}


И использовал его в UseCase:



public class GetCurrentLocationUseCase extends UseCase {
public static final String CASE_NAME = "get_current_location";

private final LocationService mLocationService;
@Inject
public GetCurrentLocationUseCase(LocationService locationService, ThreadExecutor threadExecutor, PostExecutionThread postExecutionThread) {
super(threadExecutor, postExecutionThread);
mLocationService = locationService;
}
@Override
protected Observable buildUseCaseObservable() {
return mLocationService.getCurrentLocation();
}
}


Теперь этот UseCase можно легко «заинъектить» в Presenter, с помощью Dagger2, таким образом абстрагироваться от конкретной реализации сервиса.



public class YandexLocationService implements LocationService, Constants {

public static final int MAX_PRECISION = 100000;
private final YandexLocatorService mYandexLocatorService;

@Inject
public YandexLocationService() {
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(BASE_URL_LOCATOR)
.setLogLevel(RETROFIT_LOG_LEVEL)
.build();
mYandexLocatorService = restAdapter.create(YandexLocatorService.class);
}

@Override
public Observable getCurrentLocation() {
return getCurrentLocationByIp()
.timeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS)
.filter(yandexLocation ->
yandexLocation.getPrecision() < MAX_PRECISION)
.map(LocationTransformer::transformToLocationEntity);
}

public Observable getCurrentLocationByIp() {
return mYandexLocatorService.getLocation(getLocatorRequestObject());
}

public YandexRequest getLocatorRequestObject() {
return new YandexRequest(new Common(LOCATOR_VERSION, LOCATOR_API_KEY));
}
}


В данном примере определение координат производится только по IP адресу. Здесь я фильтрую координаты с плохой точностью (>= 100000) и преобразую полученную сущность YandexLocation в LocationEntity. Далее перейдём к системному сервису определения координат. Для него немного сложнее, так как он использует Runtime Permissions, а, следовательно, должен запрашивать разрешения. Я сделал интерфейс:



public interface PermissionsRequester {
Observable request(String... permissions);
}


Реализовывать этот интерфейс будем в слое presentation с помощью библиотеки RxPermissions:



public class PermissionsRequesterImpl implements PermissionsRequester {
private final RxPermissions mRxPermissions;
public PermissionsRequesterImpl(Context context) {
mRxPermissions = RxPermissions.getInstance(context);
}
@Override
public Observable request(String... permissions) {
return mRxPermissions.request(permissions);
}
}


Теперь можно легко использовать данный интерфейс:



public class SystemLocationService implements LocationService {
private final LocationManager mLocationManager;
private final PermissionsRequester mPermissionsRequester;
@Inject
public SystemLocationService(LocationManager locationManager, PermissionsRequester permissionsRequester) {
mLocationManager = locationManager;
mPermissionsRequester = permissionsRequester;
}
@Override
public Observable getCurrentLocation() {
return getCurrentGpsLocation()
.map(LocationTransformer::transformToLocationEntity);
}
public Observable getCurrentGpsLocation() {
return mPermissionsRequester
.request(Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION)
.flatMap(granted -> granted ? findLastLocation() : Observable.error(new RuntimeException()));
}

private Observable findLastLocation() {
return Observable.create(new Observable.OnSubscribe() {
@Override
public void call(Subscriber

https://habrahabr.ru/post/282193/

Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<разработки - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda